mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-01-17 08:14:01 +00:00
Change namespace of thread functions
This commit is contained in:
parent
88ae5c0875
commit
7c20f2b868
@ -347,7 +347,7 @@ static bool audio_driver_init_internal(bool audio_cb_inited)
|
|||||||
if (audio_cb_inited)
|
if (audio_cb_inited)
|
||||||
{
|
{
|
||||||
RARCH_LOG("Starting threaded audio driver ...\n");
|
RARCH_LOG("Starting threaded audio driver ...\n");
|
||||||
if (!rarch_threaded_audio_init(
|
if (!audio_init_thread(
|
||||||
¤t_audio,
|
¤t_audio,
|
||||||
&audio_driver_context_audio_data,
|
&audio_driver_context_audio_data,
|
||||||
*settings->audio.device ? settings->audio.device : NULL,
|
*settings->audio.device ? settings->audio.device : NULL,
|
||||||
|
@ -260,7 +260,7 @@ static const audio_driver_t audio_thread = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_threaded_audio_init:
|
* audio_thread_init:
|
||||||
* @out_driver : output driver
|
* @out_driver : output driver
|
||||||
* @out_data : output audio data
|
* @out_data : output audio data
|
||||||
* @device : audio device (optional)
|
* @device : audio device (optional)
|
||||||
@ -275,7 +275,7 @@ static const audio_driver_t audio_thread = {
|
|||||||
*
|
*
|
||||||
* Returns: true (1) if successful, otherwise false (0).
|
* Returns: true (1) if successful, otherwise false (0).
|
||||||
**/
|
**/
|
||||||
bool rarch_threaded_audio_init(const audio_driver_t **out_driver,
|
bool audio_init_thread(const audio_driver_t **out_driver,
|
||||||
void **out_data, const char *device, unsigned audio_out_rate,
|
void **out_data, const char *device, unsigned audio_out_rate,
|
||||||
unsigned latency, const audio_driver_t *drv)
|
unsigned latency, const audio_driver_t *drv)
|
||||||
{
|
{
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "audio_driver.h"
|
#include "audio_driver.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_threaded_audio_init:
|
* audio_thread_init:
|
||||||
* @out_driver : output driver
|
* @out_driver : output driver
|
||||||
* @out_data : output audio data
|
* @out_data : output audio data
|
||||||
* @device : audio device (optional)
|
* @device : audio device (optional)
|
||||||
@ -36,7 +36,7 @@
|
|||||||
*
|
*
|
||||||
* Returns: true (1) if successful, otherwise false (0).
|
* Returns: true (1) if successful, otherwise false (0).
|
||||||
**/
|
**/
|
||||||
bool rarch_threaded_audio_init(const audio_driver_t **out_driver, void **out_data,
|
bool audio_init_thread(const audio_driver_t **out_driver, void **out_data,
|
||||||
const char *device, unsigned out_rate, unsigned latency,
|
const char *device, unsigned out_rate, unsigned latency,
|
||||||
const audio_driver_t *driver);
|
const audio_driver_t *driver);
|
||||||
|
|
||||||
|
@ -1731,7 +1731,7 @@ static uintptr_t d3d_load_texture(void *video_data, void *data,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rarch_threaded_video_texture_load(data, func);
|
return video_thread_texture_load(data, func);
|
||||||
}
|
}
|
||||||
|
|
||||||
video_texture_load_d3d((d3d_video_t*)video_driver_get_ptr(false), (struct texture_image*)data, filter_type, &id);
|
video_texture_load_d3d((d3d_video_t*)video_driver_get_ptr(false), (struct texture_image*)data, filter_type, &id);
|
||||||
|
@ -3827,7 +3827,7 @@ static uintptr_t gl_load_texture(void *video_data, void *data,
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return rarch_threaded_video_texture_load(data, func);
|
return video_thread_texture_load(data, func);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -313,7 +313,7 @@ bool font_driver_init_first(
|
|||||||
if (threading_hint
|
if (threading_hint
|
||||||
&& settings->video.threaded
|
&& settings->video.threaded
|
||||||
&& !video_driver_is_hw_context())
|
&& !video_driver_is_hw_context())
|
||||||
return rarch_threaded_video_font_init(new_font_driver, new_font_handle,
|
return video_thread_font_init(new_font_driver, new_font_handle,
|
||||||
data, font_path, font_size, api, font_init_first);
|
data, font_path, font_size, api, font_init_first);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ void *video_driver_get_ptr(bool force_nonthreaded_data)
|
|||||||
if (settings->video.threaded
|
if (settings->video.threaded
|
||||||
&& !video_driver_is_hw_context()
|
&& !video_driver_is_hw_context()
|
||||||
&& !force_nonthreaded_data)
|
&& !force_nonthreaded_data)
|
||||||
return rarch_threaded_video_get_ptr(NULL);
|
return video_thread_get_ptr(NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return video_driver_data;
|
return video_driver_data;
|
||||||
@ -700,7 +700,7 @@ static bool init_video(void)
|
|||||||
/* Can't do hardware rendering with threaded driver currently. */
|
/* Can't do hardware rendering with threaded driver currently. */
|
||||||
RARCH_LOG("Starting threaded video driver ...\n");
|
RARCH_LOG("Starting threaded video driver ...\n");
|
||||||
|
|
||||||
if (!rarch_threaded_video_init((const video_driver_t**)¤t_video,
|
if (!video_init_thread((const video_driver_t**)¤t_video,
|
||||||
&video_driver_data,
|
&video_driver_data,
|
||||||
input_get_double_ptr(), input_driver_get_data_ptr(),
|
input_get_double_ptr(), input_driver_get_data_ptr(),
|
||||||
current_video, &video))
|
current_video, &video))
|
||||||
|
@ -185,7 +185,7 @@ struct thread_video
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static void *thread_init_never_call(const video_info_t *video,
|
static void *video_thread_init_never_call(const video_info_t *video,
|
||||||
const input_driver_t **input, void **input_data)
|
const input_driver_t **input, void **input_data)
|
||||||
{
|
{
|
||||||
(void)video;
|
(void)video;
|
||||||
@ -197,7 +197,7 @@ static void *thread_init_never_call(const video_info_t *video,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* thread -> user */
|
/* thread -> user */
|
||||||
static void thread_reply(thread_video_t *thr, const thread_packet_t *pkt)
|
static void video_thread_reply(thread_video_t *thr, const thread_packet_t *pkt)
|
||||||
{
|
{
|
||||||
slock_lock(thr->lock);
|
slock_lock(thr->lock);
|
||||||
|
|
||||||
@ -211,7 +211,8 @@ static void thread_reply(thread_video_t *thr, const thread_packet_t *pkt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* user -> thread */
|
/* user -> thread */
|
||||||
static void thread_send_packet(thread_video_t *thr, const thread_packet_t *pkt)
|
static void video_thread_send_packet(thread_video_t *thr,
|
||||||
|
const thread_packet_t *pkt)
|
||||||
{
|
{
|
||||||
slock_lock(thr->lock);
|
slock_lock(thr->lock);
|
||||||
|
|
||||||
@ -226,7 +227,7 @@ static void thread_send_packet(thread_video_t *thr, const thread_packet_t *pkt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* user -> thread */
|
/* user -> thread */
|
||||||
static void thread_wait_reply(thread_video_t *thr, thread_packet_t *pkt)
|
static void video_thread_wait_reply(thread_video_t *thr, thread_packet_t *pkt)
|
||||||
{
|
{
|
||||||
slock_lock(thr->lock);
|
slock_lock(thr->lock);
|
||||||
|
|
||||||
@ -240,10 +241,10 @@ static void thread_wait_reply(thread_video_t *thr, thread_packet_t *pkt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* user -> thread */
|
/* user -> thread */
|
||||||
static void thread_send_and_wait(thread_video_t *thr, thread_packet_t *pkt)
|
static void video_thread_send_and_wait_user_to_thread(thread_video_t *thr, thread_packet_t *pkt)
|
||||||
{
|
{
|
||||||
thread_send_packet(thr, pkt);
|
video_thread_send_packet(thr, pkt);
|
||||||
thread_wait_reply(thr, pkt);
|
video_thread_wait_reply(thr, pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_update_driver_state(thread_video_t *thr)
|
static void thread_update_driver_state(thread_video_t *thr)
|
||||||
@ -287,8 +288,10 @@ static void thread_update_driver_state(thread_video_t *thr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns true when thread_loop should quit */
|
/* returns true when video_thread_loop should quit */
|
||||||
static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *incoming)
|
static bool video_thread_handle_packet(
|
||||||
|
thread_video_t *thr,
|
||||||
|
const thread_packet_t *incoming)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
unsigned i;
|
unsigned i;
|
||||||
@ -303,7 +306,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
thr->input, thr->input_data);
|
thr->input, thr->input_data);
|
||||||
pkt.data.b = thr->driver_data;
|
pkt.data.b = thr->driver_data;
|
||||||
thr->driver->viewport_info(thr->driver_data, &thr->vp);
|
thr->driver->viewport_info(thr->driver_data, &thr->vp);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_FREE:
|
case CMD_FREE:
|
||||||
@ -313,13 +316,13 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
thr->driver->free(thr->driver_data);
|
thr->driver->free(thr->driver_data);
|
||||||
}
|
}
|
||||||
thr->driver_data = NULL;
|
thr->driver_data = NULL;
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case CMD_SET_ROTATION:
|
case CMD_SET_ROTATION:
|
||||||
if (thr->driver && thr->driver->set_rotation)
|
if (thr->driver && thr->driver->set_rotation)
|
||||||
thr->driver->set_rotation(thr->driver_data, pkt.data.i);
|
thr->driver->set_rotation(thr->driver_data, pkt.data.i);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_READ_VIEWPORT:
|
case CMD_READ_VIEWPORT:
|
||||||
@ -357,7 +360,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
* thread read the async value. Cannot read safely. */
|
* thread read the async value. Cannot read safely. */
|
||||||
pkt.data.b = false;
|
pkt.data.b = false;
|
||||||
}
|
}
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,7 +371,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
pkt.data.set_shader.path);
|
pkt.data.set_shader.path);
|
||||||
|
|
||||||
pkt.data.b = ret;
|
pkt.data.b = ret;
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_ALIVE:
|
case CMD_ALIVE:
|
||||||
@ -376,14 +379,14 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
ret = thr->driver->alive(thr->driver_data);
|
ret = thr->driver->alive(thr->driver_data);
|
||||||
|
|
||||||
pkt.data.b = ret;
|
pkt.data.b = ret;
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
case CMD_OVERLAY_ENABLE:
|
case CMD_OVERLAY_ENABLE:
|
||||||
if (thr->overlay && thr->overlay->enable)
|
if (thr->overlay && thr->overlay->enable)
|
||||||
thr->overlay->enable(thr->driver_data, pkt.data.b);
|
thr->overlay->enable(thr->driver_data, pkt.data.b);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_OVERLAY_LOAD:
|
case CMD_OVERLAY_LOAD:
|
||||||
@ -404,7 +407,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
thr->alpha_mod[i] = 1.0f;
|
thr->alpha_mod[i] = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_OVERLAY_TEX_GEOM:
|
case CMD_OVERLAY_TEX_GEOM:
|
||||||
@ -415,7 +418,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
pkt.data.rect.y,
|
pkt.data.rect.y,
|
||||||
pkt.data.rect.w,
|
pkt.data.rect.w,
|
||||||
pkt.data.rect.h);
|
pkt.data.rect.h);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_OVERLAY_VERTEX_GEOM:
|
case CMD_OVERLAY_VERTEX_GEOM:
|
||||||
@ -426,14 +429,14 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
pkt.data.rect.y,
|
pkt.data.rect.y,
|
||||||
pkt.data.rect.w,
|
pkt.data.rect.w,
|
||||||
pkt.data.rect.h);
|
pkt.data.rect.h);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_OVERLAY_FULL_SCREEN:
|
case CMD_OVERLAY_FULL_SCREEN:
|
||||||
if (thr->overlay && thr->overlay->full_screen)
|
if (thr->overlay && thr->overlay->full_screen)
|
||||||
thr->overlay->full_screen(thr->driver_data,
|
thr->overlay->full_screen(thr->driver_data,
|
||||||
pkt.data.b);
|
pkt.data.b);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -443,14 +446,14 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
pkt.data.new_mode.width,
|
pkt.data.new_mode.width,
|
||||||
pkt.data.new_mode.height,
|
pkt.data.new_mode.height,
|
||||||
pkt.data.new_mode.fullscreen);
|
pkt.data.new_mode.fullscreen);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
case CMD_POKE_SET_FILTERING:
|
case CMD_POKE_SET_FILTERING:
|
||||||
if (thr->poke && thr->poke->set_filtering)
|
if (thr->poke && thr->poke->set_filtering)
|
||||||
thr->poke->set_filtering(thr->driver_data,
|
thr->poke->set_filtering(thr->driver_data,
|
||||||
pkt.data.filtering.index,
|
pkt.data.filtering.index,
|
||||||
pkt.data.filtering.smooth);
|
pkt.data.filtering.smooth);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_POKE_GET_VIDEO_OUTPUT_SIZE:
|
case CMD_POKE_GET_VIDEO_OUTPUT_SIZE:
|
||||||
@ -458,25 +461,25 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
thr->poke->get_video_output_size(thr->driver_data,
|
thr->poke->get_video_output_size(thr->driver_data,
|
||||||
&pkt.data.output.width,
|
&pkt.data.output.width,
|
||||||
&pkt.data.output.height);
|
&pkt.data.output.height);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_POKE_GET_VIDEO_OUTPUT_PREV:
|
case CMD_POKE_GET_VIDEO_OUTPUT_PREV:
|
||||||
if (thr->poke && thr->poke->get_video_output_prev)
|
if (thr->poke && thr->poke->get_video_output_prev)
|
||||||
thr->poke->get_video_output_prev(thr->driver_data);
|
thr->poke->get_video_output_prev(thr->driver_data);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_POKE_GET_VIDEO_OUTPUT_NEXT:
|
case CMD_POKE_GET_VIDEO_OUTPUT_NEXT:
|
||||||
if (thr->poke && thr->poke->get_video_output_next)
|
if (thr->poke && thr->poke->get_video_output_next)
|
||||||
thr->poke->get_video_output_next(thr->driver_data);
|
thr->poke->get_video_output_next(thr->driver_data);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_POKE_SET_ASPECT_RATIO:
|
case CMD_POKE_SET_ASPECT_RATIO:
|
||||||
thr->poke->set_aspect_ratio(thr->driver_data,
|
thr->poke->set_aspect_ratio(thr->driver_data,
|
||||||
pkt.data.i);
|
pkt.data.i);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_POKE_SET_OSD_MSG:
|
case CMD_POKE_SET_OSD_MSG:
|
||||||
@ -484,7 +487,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
thr->poke->set_osd_msg(thr->driver_data,
|
thr->poke->set_osd_msg(thr->driver_data,
|
||||||
pkt.data.osd_message.msg,
|
pkt.data.osd_message.msg,
|
||||||
&pkt.data.osd_message.params, NULL);
|
&pkt.data.osd_message.params, NULL);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_FONT_INIT:
|
case CMD_FONT_INIT:
|
||||||
@ -497,7 +500,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
pkt.data.font_init.font_path,
|
pkt.data.font_init.font_path,
|
||||||
pkt.data.font_init.font_size,
|
pkt.data.font_init.font_size,
|
||||||
pkt.data.font_init.api);
|
pkt.data.font_init.api);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_CUSTOM_COMMAND:
|
case CMD_CUSTOM_COMMAND:
|
||||||
@ -505,7 +508,7 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
pkt.data.custom_command.return_value =
|
pkt.data.custom_command.return_value =
|
||||||
pkt.data.custom_command.method
|
pkt.data.custom_command.method
|
||||||
(pkt.data.custom_command.data);
|
(pkt.data.custom_command.data);
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_NONE:
|
case CMD_NONE:
|
||||||
@ -513,14 +516,14 @@ static bool thread_handle_packet(thread_video_t *thr, const thread_packet_t *inc
|
|||||||
* thread sends command right after frame update. */
|
* thread sends command right after frame update. */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
thread_reply(thr, &pkt);
|
video_thread_reply(thr, &pkt);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_loop(void *data)
|
static void video_thread_loop(void *data)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
|
|
||||||
@ -541,7 +544,7 @@ static void thread_loop(void *data)
|
|||||||
|
|
||||||
slock_unlock(thr->lock);
|
slock_unlock(thr->lock);
|
||||||
|
|
||||||
if (thread_handle_packet(thr, &pkt))
|
if (video_thread_handle_packet(thr, &pkt))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (updated)
|
if (updated)
|
||||||
@ -588,7 +591,7 @@ static void thread_loop(void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_alive(void *data)
|
static bool video_thread_alive(void *data)
|
||||||
{
|
{
|
||||||
bool ret;
|
bool ret;
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -596,7 +599,8 @@ static bool thread_alive(void *data)
|
|||||||
if (runloop_ctl(RUNLOOP_CTL_IS_PAUSED, NULL))
|
if (runloop_ctl(RUNLOOP_CTL_IS_PAUSED, NULL))
|
||||||
{
|
{
|
||||||
thread_packet_t pkt = { CMD_ALIVE };
|
thread_packet_t pkt = { CMD_ALIVE };
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
return pkt.data.b;
|
return pkt.data.b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -607,7 +611,7 @@ static bool thread_alive(void *data)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_focus(void *data)
|
static bool video_thread_focus(void *data)
|
||||||
{
|
{
|
||||||
bool ret;
|
bool ret;
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -619,7 +623,7 @@ static bool thread_focus(void *data)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_suppress_screensaver(void *data, bool enable)
|
static bool video_thread_suppress_screensaver(void *data, bool enable)
|
||||||
{
|
{
|
||||||
bool ret;
|
bool ret;
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -631,7 +635,7 @@ static bool thread_suppress_screensaver(void *data, bool enable)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_has_windowed(void *data)
|
static bool video_thread_has_windowed(void *data)
|
||||||
{
|
{
|
||||||
bool ret;
|
bool ret;
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -643,7 +647,7 @@ static bool thread_has_windowed(void *data)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_frame(void *data, const void *frame_,
|
static bool video_thread_frame(void *data, const void *frame_,
|
||||||
unsigned width, unsigned height, uint64_t frame_count,
|
unsigned width, unsigned height, uint64_t frame_count,
|
||||||
unsigned pitch, const char *msg)
|
unsigned pitch, const char *msg)
|
||||||
{
|
{
|
||||||
@ -742,14 +746,14 @@ static bool thread_frame(void *data, const void *frame_,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_set_nonblock_state(void *data, bool state)
|
static void video_thread_set_nonblock_state(void *data, bool state)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
if (thr)
|
if (thr)
|
||||||
thr->nonblock = state;
|
thr->nonblock = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_init(thread_video_t *thr, const video_info_t *info,
|
static bool video_thread_init(thread_video_t *thr, const video_info_t *info,
|
||||||
const input_driver_t **input, void **input_data)
|
const input_driver_t **input, void **input_data)
|
||||||
{
|
{
|
||||||
size_t max_size;
|
size_t max_size;
|
||||||
@ -779,18 +783,18 @@ static bool thread_init(thread_video_t *thr, const video_info_t *info,
|
|||||||
memset(thr->frame.buffer, 0x80, max_size);
|
memset(thr->frame.buffer, 0x80, max_size);
|
||||||
|
|
||||||
thr->last_time = retro_get_time_usec();
|
thr->last_time = retro_get_time_usec();
|
||||||
thr->thread = sthread_create(thread_loop, thr);
|
thr->thread = sthread_create(video_thread_loop, thr);
|
||||||
|
|
||||||
if (!thr->thread)
|
if (!thr->thread)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
thread_send_and_wait(thr, &pkt);
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
|
|
||||||
thr->send_and_wait = thread_send_and_wait;
|
thr->send_and_wait = video_thread_send_and_wait_user_to_thread;
|
||||||
return pkt.data.b;
|
return pkt.data.b;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_set_shader(void *data,
|
static bool video_thread_set_shader(void *data,
|
||||||
enum rarch_shader_type type, const char *path)
|
enum rarch_shader_type type, const char *path)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -800,12 +804,13 @@ static bool thread_set_shader(void *data,
|
|||||||
|
|
||||||
pkt.data.set_shader.type = type;
|
pkt.data.set_shader.type = type;
|
||||||
pkt.data.set_shader.path = path;
|
pkt.data.set_shader.path = path;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
|
|
||||||
return pkt.data.b;
|
return pkt.data.b;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_set_viewport(void *data, unsigned width,
|
static void video_thread_set_viewport(void *data, unsigned width,
|
||||||
unsigned height, bool force_full, bool allow_rotate)
|
unsigned height, bool force_full, bool allow_rotate)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -821,7 +826,7 @@ static void thread_set_viewport(void *data, unsigned width,
|
|||||||
slock_unlock(thr->lock);
|
slock_unlock(thr->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_set_rotation(void *data, unsigned rotation)
|
static void video_thread_set_rotation(void *data, unsigned rotation)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
thread_packet_t pkt = { CMD_SET_ROTATION };
|
thread_packet_t pkt = { CMD_SET_ROTATION };
|
||||||
@ -830,7 +835,8 @@ static void thread_set_rotation(void *data, unsigned rotation)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
pkt.data.i = rotation;
|
pkt.data.i = rotation;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This value is set async as stalling on the video driver for
|
/* This value is set async as stalling on the video driver for
|
||||||
@ -838,7 +844,7 @@ static void thread_set_rotation(void *data, unsigned rotation)
|
|||||||
*
|
*
|
||||||
* This means this value might not be correct, so viewport
|
* This means this value might not be correct, so viewport
|
||||||
* reads are not supported for now. */
|
* reads are not supported for now. */
|
||||||
static void thread_viewport_info(void *data, struct video_viewport *vp)
|
static void video_thread_viewport_info(void *data, struct video_viewport *vp)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
|
|
||||||
@ -853,7 +859,7 @@ static void thread_viewport_info(void *data, struct video_viewport *vp)
|
|||||||
slock_unlock(thr->lock);
|
slock_unlock(thr->lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_read_viewport(void *data, uint8_t *buffer)
|
static bool video_thread_read_viewport(void *data, uint8_t *buffer)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
thread_packet_t pkt = { CMD_READ_VIEWPORT };
|
thread_packet_t pkt = { CMD_READ_VIEWPORT };
|
||||||
@ -862,12 +868,13 @@ static bool thread_read_viewport(void *data, uint8_t *buffer)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
pkt.data.v = buffer;
|
pkt.data.v = buffer;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
|
|
||||||
return pkt.data.b;
|
return pkt.data.b;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_free(void *data)
|
static void video_thread_free(void *data)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
thread_packet_t pkt = { CMD_FREE };
|
thread_packet_t pkt = { CMD_FREE };
|
||||||
@ -875,7 +882,7 @@ static void thread_free(void *data)
|
|||||||
if (!thr)
|
if (!thr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
thread_send_and_wait(thr, &pkt);
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
|
|
||||||
sthread_join(thr->thread);
|
sthread_join(thr->thread);
|
||||||
|
|
||||||
@ -907,7 +914,8 @@ static void thread_overlay_enable(void *data, bool state)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
pkt.data.b = state;
|
pkt.data.b = state;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool thread_overlay_load(void *data,
|
static bool thread_overlay_load(void *data,
|
||||||
@ -922,8 +930,9 @@ static bool thread_overlay_load(void *data,
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
pkt.data.image.data = images;
|
pkt.data.image.data = images;
|
||||||
pkt.data.image.num = num_images;
|
pkt.data.image.num = num_images;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
|
|
||||||
return pkt.data.b;
|
return pkt.data.b;
|
||||||
}
|
}
|
||||||
@ -942,7 +951,7 @@ static void thread_overlay_tex_geom(void *data,
|
|||||||
pkt.data.rect.w = w;
|
pkt.data.rect.w = w;
|
||||||
pkt.data.rect.h = h;
|
pkt.data.rect.h = h;
|
||||||
|
|
||||||
thread_send_and_wait(thr, &pkt);
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_overlay_vertex_geom(void *data,
|
static void thread_overlay_vertex_geom(void *data,
|
||||||
@ -960,7 +969,7 @@ static void thread_overlay_vertex_geom(void *data,
|
|||||||
pkt.data.rect.w = w;
|
pkt.data.rect.w = w;
|
||||||
pkt.data.rect.h = h;
|
pkt.data.rect.h = h;
|
||||||
|
|
||||||
thread_send_and_wait(thr, &pkt);
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_overlay_full_screen(void *data, bool enable)
|
static void thread_overlay_full_screen(void *data, bool enable)
|
||||||
@ -969,7 +978,8 @@ static void thread_overlay_full_screen(void *data, bool enable)
|
|||||||
thread_packet_t pkt = { CMD_OVERLAY_FULL_SCREEN };
|
thread_packet_t pkt = { CMD_OVERLAY_FULL_SCREEN };
|
||||||
|
|
||||||
pkt.data.b = enable;
|
pkt.data.b = enable;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We cannot wait for this to complete. Totally blocks the main thread. */
|
/* We cannot wait for this to complete. Totally blocks the main thread. */
|
||||||
@ -995,7 +1005,7 @@ static const video_overlay_interface_t thread_overlay = {
|
|||||||
thread_overlay_set_alpha,
|
thread_overlay_set_alpha,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void thread_get_overlay_interface(void *data,
|
static void video_thread_get_overlay_interface(void *data,
|
||||||
const video_overlay_interface_t **iface)
|
const video_overlay_interface_t **iface)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -1018,7 +1028,8 @@ static void thread_set_video_mode(void *data, unsigned width, unsigned height,
|
|||||||
pkt.data.new_mode.width = width;
|
pkt.data.new_mode.width = width;
|
||||||
pkt.data.new_mode.height = height;
|
pkt.data.new_mode.height = height;
|
||||||
pkt.data.new_mode.fullscreen = fullscreen;
|
pkt.data.new_mode.fullscreen = fullscreen;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_set_filtering(void *data, unsigned idx, bool smooth)
|
static void thread_set_filtering(void *data, unsigned idx, bool smooth)
|
||||||
@ -1030,7 +1041,8 @@ static void thread_set_filtering(void *data, unsigned idx, bool smooth)
|
|||||||
return;
|
return;
|
||||||
pkt.data.filtering.index = idx;
|
pkt.data.filtering.index = idx;
|
||||||
pkt.data.filtering.smooth = smooth;
|
pkt.data.filtering.smooth = smooth;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_get_video_output_size(void *data,
|
static void thread_get_video_output_size(void *data,
|
||||||
@ -1042,7 +1054,7 @@ static void thread_get_video_output_size(void *data,
|
|||||||
if (!thr)
|
if (!thr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
thread_send_and_wait(thr, &pkt);
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
|
|
||||||
*width = pkt.data.output.width;
|
*width = pkt.data.output.width;
|
||||||
*height = pkt.data.output.height;
|
*height = pkt.data.output.height;
|
||||||
@ -1055,7 +1067,8 @@ static void thread_get_video_output_prev(void *data)
|
|||||||
|
|
||||||
if (!thr)
|
if (!thr)
|
||||||
return;
|
return;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_get_video_output_next(void *data)
|
static void thread_get_video_output_next(void *data)
|
||||||
@ -1065,7 +1078,8 @@ static void thread_get_video_output_next(void *data)
|
|||||||
|
|
||||||
if (!thr)
|
if (!thr)
|
||||||
return;
|
return;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void thread_set_aspect_ratio(void *data, unsigned aspectratio_idx)
|
static void thread_set_aspect_ratio(void *data, unsigned aspectratio_idx)
|
||||||
@ -1076,7 +1090,8 @@ static void thread_set_aspect_ratio(void *data, unsigned aspectratio_idx)
|
|||||||
if (!thr)
|
if (!thr)
|
||||||
return;
|
return;
|
||||||
pkt.data.i = aspectratio_idx;
|
pkt.data.i = aspectratio_idx;
|
||||||
thread_send_and_wait(thr, &pkt);
|
|
||||||
|
video_thread_send_and_wait_user_to_thread(thr, &pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAVE_MENU)
|
#if defined(HAVE_MENU)
|
||||||
@ -1206,7 +1221,8 @@ static const video_poke_interface_t thread_poke = {
|
|||||||
thread_get_current_shader,
|
thread_get_current_shader,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void thread_get_poke_interface(void *data,
|
static void video_thread_get_poke_interface(
|
||||||
|
void *data,
|
||||||
const video_poke_interface_t **iface)
|
const video_poke_interface_t **iface)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)data;
|
thread_video_t *thr = (thread_video_t*)data;
|
||||||
@ -1221,28 +1237,29 @@ static void thread_get_poke_interface(void *data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const video_driver_t video_thread = {
|
static const video_driver_t video_thread = {
|
||||||
thread_init_never_call, /* Should never be called directly. */
|
video_thread_init_never_call, /* Should never be called directly. */
|
||||||
thread_frame,
|
video_thread_frame,
|
||||||
thread_set_nonblock_state,
|
video_thread_set_nonblock_state,
|
||||||
thread_alive,
|
video_thread_alive,
|
||||||
thread_focus,
|
video_thread_focus,
|
||||||
thread_suppress_screensaver,
|
video_thread_suppress_screensaver,
|
||||||
thread_has_windowed,
|
video_thread_has_windowed,
|
||||||
thread_set_shader,
|
video_thread_set_shader,
|
||||||
thread_free,
|
video_thread_free,
|
||||||
"Thread wrapper",
|
"Thread wrapper",
|
||||||
thread_set_viewport,
|
video_thread_set_viewport,
|
||||||
thread_set_rotation,
|
video_thread_set_rotation,
|
||||||
thread_viewport_info,
|
video_thread_viewport_info,
|
||||||
thread_read_viewport,
|
video_thread_read_viewport,
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
thread_get_overlay_interface, /* get_overlay_interface */
|
video_thread_get_overlay_interface, /* get_overlay_interface */
|
||||||
#endif
|
#endif
|
||||||
thread_get_poke_interface,
|
video_thread_get_poke_interface,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void thread_set_callbacks(thread_video_t *thr,
|
static void video_thread_set_callbacks(
|
||||||
|
thread_video_t *thr,
|
||||||
const video_driver_t *drv)
|
const video_driver_t *drv)
|
||||||
{
|
{
|
||||||
thr->video_thread = video_thread;
|
thr->video_thread = video_thread;
|
||||||
@ -1267,7 +1284,7 @@ static void thread_set_callbacks(thread_video_t *thr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_threaded_video_init:
|
* video_init_thread:
|
||||||
* @out_driver : Output video driver
|
* @out_driver : Output video driver
|
||||||
* @out_data : Output video data
|
* @out_data : Output video data
|
||||||
* @input : Input input driver
|
* @input : Input input driver
|
||||||
@ -1280,7 +1297,7 @@ static void thread_set_callbacks(thread_video_t *thr,
|
|||||||
*
|
*
|
||||||
* Returns: true (1) if successful, otherwise false (0).
|
* Returns: true (1) if successful, otherwise false (0).
|
||||||
**/
|
**/
|
||||||
bool rarch_threaded_video_init(const video_driver_t **out_driver,
|
bool video_init_thread(const video_driver_t **out_driver,
|
||||||
void **out_data, const input_driver_t **input, void **input_data,
|
void **out_data, const input_driver_t **input, void **input_data,
|
||||||
const video_driver_t *drv, const video_info_t *info)
|
const video_driver_t *drv, const video_info_t *info)
|
||||||
{
|
{
|
||||||
@ -1288,16 +1305,16 @@ bool rarch_threaded_video_init(const video_driver_t **out_driver,
|
|||||||
if (!thr)
|
if (!thr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
thread_set_callbacks(thr, drv);
|
video_thread_set_callbacks(thr, drv);
|
||||||
|
|
||||||
thr->driver = drv;
|
thr->driver = drv;
|
||||||
*out_driver = &thr->video_thread;
|
*out_driver = &thr->video_thread;
|
||||||
*out_data = thr;
|
*out_data = thr;
|
||||||
return thread_init(thr, info, input, input_data);
|
return video_thread_init(thr, info, input, input_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_threaded_video_get_ptr:
|
* video_thread_get_ptr:
|
||||||
* @drv : Found driver.
|
* @drv : Found driver.
|
||||||
*
|
*
|
||||||
* Gets the underlying video driver associated with the
|
* Gets the underlying video driver associated with the
|
||||||
@ -1308,9 +1325,10 @@ bool rarch_threaded_video_init(const video_driver_t **out_driver,
|
|||||||
* with the threaded wrapper (if successful). If not successful,
|
* with the threaded wrapper (if successful). If not successful,
|
||||||
* NULL.
|
* NULL.
|
||||||
**/
|
**/
|
||||||
void *rarch_threaded_video_get_ptr(const video_driver_t **drv)
|
void *video_thread_get_ptr(const video_driver_t **drv)
|
||||||
{
|
{
|
||||||
const thread_video_t *thr = (const thread_video_t*)video_driver_get_ptr(true);
|
const thread_video_t *thr = (const thread_video_t*)
|
||||||
|
video_driver_get_ptr(true);
|
||||||
|
|
||||||
if (drv)
|
if (drv)
|
||||||
*drv = thr->driver;
|
*drv = thr->driver;
|
||||||
@ -1320,23 +1338,25 @@ void *rarch_threaded_video_get_ptr(const video_driver_t **drv)
|
|||||||
return thr->driver_data;
|
return thr->driver_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *rarch_threaded_video_get_ident(void)
|
const char *video_thread_get_ident(void)
|
||||||
{
|
{
|
||||||
const thread_video_t *thr = (const thread_video_t*)video_driver_get_ptr(true);
|
const thread_video_t *thr = (const thread_video_t*)
|
||||||
|
video_driver_get_ptr(true);
|
||||||
|
|
||||||
if (!thr || !thr->driver)
|
if (!thr || !thr->driver)
|
||||||
return NULL;
|
return NULL;
|
||||||
return thr->driver->ident;
|
return thr->driver->ident;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rarch_threaded_video_send_and_wait(thread_video_t *thr, thread_packet_t *pkt)
|
static void video_thread_send_and_wait(thread_video_t *thr,
|
||||||
|
thread_packet_t *pkt)
|
||||||
{
|
{
|
||||||
if (!thr || !pkt)
|
if (!thr || !pkt)
|
||||||
return;
|
return;
|
||||||
thr->send_and_wait(thr, pkt);
|
thr->send_and_wait(thr, pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool rarch_threaded_video_font_init(const void **font_driver, void **font_handle,
|
bool video_thread_font_init(const void **font_driver, void **font_handle,
|
||||||
void *data, const char *font_path, float font_size,
|
void *data, const char *font_path, float font_size,
|
||||||
enum font_driver_render_api api, custom_font_command_method_t func)
|
enum font_driver_render_api api, custom_font_command_method_t func)
|
||||||
{
|
{
|
||||||
@ -1355,12 +1375,12 @@ bool rarch_threaded_video_font_init(const void **font_driver, void **font_handle
|
|||||||
pkt.data.font_init.font_size = font_size;
|
pkt.data.font_init.font_size = font_size;
|
||||||
pkt.data.font_init.api = api;
|
pkt.data.font_init.api = api;
|
||||||
|
|
||||||
rarch_threaded_video_send_and_wait(thr, &pkt);
|
video_thread_send_and_wait(thr, &pkt);
|
||||||
|
|
||||||
return pkt.data.font_init.return_value;
|
return pkt.data.font_init.return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned rarch_threaded_video_texture_load(void *data,
|
unsigned video_thread_texture_load(void *data,
|
||||||
custom_command_method_t func)
|
custom_command_method_t func)
|
||||||
{
|
{
|
||||||
thread_video_t *thr = (thread_video_t*)video_driver_get_ptr(true);
|
thread_video_t *thr = (thread_video_t*)video_driver_get_ptr(true);
|
||||||
@ -1372,7 +1392,7 @@ unsigned rarch_threaded_video_texture_load(void *data,
|
|||||||
pkt.data.custom_command.method = func;
|
pkt.data.custom_command.method = func;
|
||||||
pkt.data.custom_command.data = (void*)data;
|
pkt.data.custom_command.data = (void*)data;
|
||||||
|
|
||||||
rarch_threaded_video_send_and_wait(thr, &pkt);
|
video_thread_send_and_wait(thr, &pkt);
|
||||||
|
|
||||||
return pkt.data.custom_command.return_value;
|
return pkt.data.custom_command.return_value;
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,7 @@ typedef struct thread_packet thread_packet_t;
|
|||||||
typedef struct thread_video thread_video_t;
|
typedef struct thread_video thread_video_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_threaded_video_init:
|
* video_init_thread:
|
||||||
* @out_driver : Output video driver
|
* @out_driver : Output video driver
|
||||||
* @out_data : Output video data
|
* @out_data : Output video data
|
||||||
* @input : Input input driver
|
* @input : Input input driver
|
||||||
@ -87,13 +87,13 @@ typedef struct thread_video thread_video_t;
|
|||||||
*
|
*
|
||||||
* Returns: true (1) if successful, otherwise false (0).
|
* Returns: true (1) if successful, otherwise false (0).
|
||||||
**/
|
**/
|
||||||
bool rarch_threaded_video_init(
|
bool video_init_thread(
|
||||||
const video_driver_t **out_driver, void **out_data,
|
const video_driver_t **out_driver, void **out_data,
|
||||||
const input_driver_t **input, void **input_data,
|
const input_driver_t **input, void **input_data,
|
||||||
const video_driver_t *driver, const video_info_t *info);
|
const video_driver_t *driver, const video_info_t *info);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_threaded_video_get_ptr:
|
* video_thread_get_ptr:
|
||||||
* @drv : Found driver.
|
* @drv : Found driver.
|
||||||
*
|
*
|
||||||
* Gets the underlying video driver associated with the
|
* Gets the underlying video driver associated with the
|
||||||
@ -104,16 +104,20 @@ bool rarch_threaded_video_init(
|
|||||||
* with the threaded wrapper (if successful). If not successful,
|
* with the threaded wrapper (if successful). If not successful,
|
||||||
* NULL.
|
* NULL.
|
||||||
**/
|
**/
|
||||||
void *rarch_threaded_video_get_ptr(const video_driver_t **drv);
|
void *video_thread_get_ptr(const video_driver_t **drv);
|
||||||
|
|
||||||
const char *rarch_threaded_video_get_ident(void);
|
const char *video_thread_get_ident(void);
|
||||||
|
|
||||||
bool rarch_threaded_video_font_init(const void **font_driver,
|
bool video_thread_font_init(
|
||||||
|
const void **font_driver,
|
||||||
void **font_handle,
|
void **font_handle,
|
||||||
void *data, const char *font_path, float font_size,
|
void *data,
|
||||||
enum font_driver_render_api api, custom_font_command_method_t func);
|
const char *font_path,
|
||||||
|
float font_size,
|
||||||
|
enum font_driver_render_api api,
|
||||||
|
custom_font_command_method_t func);
|
||||||
|
|
||||||
unsigned rarch_threaded_video_texture_load(void *data,
|
unsigned video_thread_texture_load(void *data,
|
||||||
custom_command_method_t func);
|
custom_command_method_t func);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -60,7 +60,7 @@ static const char *menu_video_get_ident(void)
|
|||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
if (settings->video.threaded)
|
if (settings->video.threaded)
|
||||||
return rarch_threaded_video_get_ident();
|
return video_thread_get_ident();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return video_driver_get_ident();
|
return video_driver_get_ident();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user