mirror of
https://github.com/libretro/RetroArch
synced 2025-03-31 19:21:06 +00:00
Due to limitations in how the input overlay driver talks
back to the video driver, we can only have one active overlay state running at a time. So build around this
This commit is contained in:
parent
28f6922520
commit
0ea6a28b6b
@ -317,7 +317,6 @@ static void init_video_input(const input_driver_t *tmp)
|
||||
void uninit_video_input(void)
|
||||
{
|
||||
rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);
|
||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_DEINIT);
|
||||
|
||||
if (
|
||||
!driver.input_data_own &&
|
||||
@ -485,9 +484,7 @@ void init_video(void)
|
||||
init_video_input(tmp);
|
||||
|
||||
rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);
|
||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_DEINIT);
|
||||
rarch_main_command(RARCH_CMD_OVERLAY_INIT);
|
||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_INIT);
|
||||
|
||||
g_extern.measure_data.frame_time_samples_count = 0;
|
||||
|
||||
|
22
retroarch.c
22
retroarch.c
@ -2687,10 +2687,14 @@ bool rarch_main_command(unsigned cmd)
|
||||
break;
|
||||
case RARCH_CMD_OSK_OVERLAY_STOP:
|
||||
#ifdef HAVE_OVERLAY
|
||||
|
||||
driver.osk_active = false;
|
||||
g_settings.osk.opacity = 0;
|
||||
input_overlay_set_alpha_mod(driver.osk_overlay,
|
||||
g_settings.osk.opacity);
|
||||
|
||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_DEINIT);
|
||||
|
||||
if (g_settings.input.overlay_enable)
|
||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_INIT);
|
||||
|
||||
#endif
|
||||
break;
|
||||
case RARCH_CMD_OSK_OVERLAY_START:
|
||||
@ -2698,18 +2702,14 @@ bool rarch_main_command(unsigned cmd)
|
||||
if (!g_settings.osk.enable)
|
||||
return false;
|
||||
|
||||
rarch_main_command(RARCH_CMD_OVERLAY_DEINIT);
|
||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_INIT);
|
||||
|
||||
driver.osk_active = true;
|
||||
g_settings.osk.opacity = 100;
|
||||
input_overlay_set_alpha_mod(driver.osk_overlay,
|
||||
g_settings.osk.opacity);
|
||||
input_overlay_enable(driver.osk_overlay,
|
||||
true);
|
||||
#endif
|
||||
break;
|
||||
case RARCH_CMD_OSK_OVERLAY_DEINIT:
|
||||
#ifdef HAVE_OVERLAY
|
||||
if (driver.osk_active)
|
||||
return false;
|
||||
if (driver.osk_overlay)
|
||||
input_overlay_free(driver.osk_overlay);
|
||||
driver.osk_overlay = NULL;
|
||||
@ -2720,7 +2720,7 @@ bool rarch_main_command(unsigned cmd)
|
||||
rarch_main_command(RARCH_CMD_OSK_OVERLAY_DEINIT);
|
||||
|
||||
driver.osk_overlay = input_overlay_new(g_settings.osk.overlay, g_settings.osk.enable,
|
||||
g_settings.osk.opacity, g_settings.osk.scale);
|
||||
100, g_settings.osk.scale);
|
||||
if (!driver.osk_overlay)
|
||||
RARCH_ERR("Failed to load OSK overlay.\n");
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user