mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Get rid of video_context_driver_swap_interval
This commit is contained in:
parent
d3632eadb8
commit
88720b540e
@ -3228,7 +3228,14 @@ static void gl2_set_nonblock_state(void *data, bool state)
|
||||
if (!state)
|
||||
interval = settings->uints.video_swap_interval;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (gl->ctx_driver->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && settings->bools.video_adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
gl->ctx_driver->swap_interval(gl->ctx_data, interval);
|
||||
}
|
||||
gl2_context_bind_hw_render(gl, true);
|
||||
}
|
||||
|
||||
@ -3620,7 +3627,14 @@ static void *gl2_init(const video_info_t *video,
|
||||
if (video->vsync)
|
||||
interval = video->swap_interval;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (gl->ctx_driver->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && video->adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
gl->ctx_driver->swap_interval(gl->ctx_data, interval);
|
||||
}
|
||||
|
||||
win_width = video->width;
|
||||
win_height = video->height;
|
||||
|
@ -309,7 +309,14 @@ static void *gl1_gfx_init(const video_info_t *video,
|
||||
|
||||
interval = video->swap_interval;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (ctx_driver->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && video->adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
ctx_driver->swap_interval(gl1->ctx_data, interval);
|
||||
}
|
||||
|
||||
if (!video_context_driver_set_video_mode(&mode))
|
||||
goto error;
|
||||
@ -905,7 +912,14 @@ static void gl1_gfx_set_nonblock_state(void *data, bool state)
|
||||
if (!state)
|
||||
interval = settings->uints.video_swap_interval;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (gl1->ctx_driver->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && settings->bools.video_adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
gl1->ctx_driver->swap_interval(gl1->ctx_data, interval);
|
||||
}
|
||||
gl1_context_bind_hw_render(gl1, true);
|
||||
}
|
||||
|
||||
|
@ -985,7 +985,14 @@ static void *gl_core_init(const video_info_t *video,
|
||||
if (video->vsync)
|
||||
interval = video->swap_interval;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (gl->ctx_driver->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && video->adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
gl->ctx_driver->swap_interval(gl->ctx_data, interval);
|
||||
}
|
||||
|
||||
win_width = video->width;
|
||||
win_height = video->height;
|
||||
@ -1370,7 +1377,16 @@ static void gl_core_set_nonblock_state(void *data, bool state)
|
||||
if (!state)
|
||||
interval = settings->uints.video_swap_interval;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (gl->ctx_driver->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && settings->bools.
|
||||
video_adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
gl->ctx_driver->swap_interval(gl->ctx_data, interval);
|
||||
}
|
||||
|
||||
gl_core_context_bind_hw_render(gl, true);
|
||||
}
|
||||
|
||||
|
@ -79,8 +79,18 @@ static PFNVGCREATEEGLIMAGETARGETKHRPROC pvgCreateEGLImageTargetKHR;
|
||||
|
||||
static void vg_set_nonblock_state(void *data, bool state)
|
||||
{
|
||||
vg_t *vg = (vg_t*)data;
|
||||
int interval = state ? 0 : 1;
|
||||
video_context_driver_swap_interval(&interval);
|
||||
|
||||
if (vg->ctx_driver && vg->ctx_driver->swap_interval)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && settings->bools.video_adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
vg->ctx_driver->swap_interval(vg->ctx_data, interval);
|
||||
}
|
||||
}
|
||||
|
||||
static INLINE bool vg_query_extension(const char *ext)
|
||||
@ -134,7 +144,14 @@ static void *vg_init(const video_info_t *video,
|
||||
|
||||
interval = video->vsync ? 1 : 0;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (ctx->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && video->adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
ctx->swap_interval(vg->ctx_data, interval);
|
||||
}
|
||||
|
||||
vg->mTexType = video->rgb32 ? VG_sXRGB_8888 : VG_sRGB_565;
|
||||
vg->keep_aspect = video->force_aspect;
|
||||
|
@ -1188,7 +1188,15 @@ static void *vulkan_init(const video_info_t *video,
|
||||
|
||||
RARCH_LOG("[Vulkan]: Detecting screen resolution %ux%u.\n", full_x, full_y);
|
||||
interval = video->vsync ? video->swap_interval : 0;
|
||||
video_context_driver_swap_interval(&interval);
|
||||
|
||||
if (ctx_driver->swap_interval)
|
||||
{
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && video->adaptive_vsync;
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
ctx_driver->swap_interval(vk->ctx_data, interval);
|
||||
}
|
||||
|
||||
win_width = video->width;
|
||||
win_height = video->height;
|
||||
@ -1298,9 +1306,11 @@ static void vulkan_check_swapchain(vk_t *vk)
|
||||
|
||||
static void vulkan_set_nonblock_state(void *data, bool state)
|
||||
{
|
||||
int interval = 0;
|
||||
vk_t *vk = (vk_t*)data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
int interval = 0;
|
||||
vk_t *vk = (vk_t*)data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && settings->bools.video_adaptive_vsync;
|
||||
|
||||
if (!vk)
|
||||
return;
|
||||
@ -1310,7 +1320,12 @@ static void vulkan_set_nonblock_state(void *data, bool state)
|
||||
if (!state)
|
||||
interval = settings->uints.video_swap_interval;
|
||||
|
||||
video_context_driver_swap_interval(&interval);
|
||||
if (vk->ctx_driver->swap_interval)
|
||||
{
|
||||
if (adaptive_vsync_enabled && interval == 1)
|
||||
interval = -1;
|
||||
vk->ctx_driver->swap_interval(vk->ctx_data, interval);
|
||||
}
|
||||
|
||||
/* Changing vsync might require recreating the swapchain, which means new VkImages
|
||||
* to render into. */
|
||||
|
18
retroarch.c
18
retroarch.c
@ -17830,7 +17830,8 @@ static bool video_driver_init_internal(bool *video_is_threaded)
|
||||
video.vsync = settings->bools.video_vsync && !runloop_force_nonblock;
|
||||
video.force_aspect = settings->bools.video_force_aspect;
|
||||
video.font_enable = settings->bools.video_font_enable;
|
||||
video.swap_interval = settings->uints.video_swap_interval;
|
||||
video.swap_interval = settings->uints.video_swap_interval;
|
||||
video.adaptive_vsync = settings->bools.video_adaptive_vsync;
|
||||
#ifdef GEKKO
|
||||
video.viwidth = settings->uints.video_viwidth;
|
||||
video.vfilter = settings->bools.video_vfilter;
|
||||
@ -19644,21 +19645,6 @@ bool video_context_driver_get_video_output_size(gfx_ctx_size_t *size_data)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool video_context_driver_swap_interval(int *interval)
|
||||
{
|
||||
int current_interval = *interval;
|
||||
settings_t *settings = configuration_settings;
|
||||
bool adaptive_vsync_enabled = video_driver_test_all_flags(
|
||||
GFX_CTX_FLAGS_ADAPTIVE_VSYNC) && settings->bools.video_adaptive_vsync;
|
||||
|
||||
if (!current_video_context.swap_interval)
|
||||
return false;
|
||||
if (adaptive_vsync_enabled && current_interval == 1)
|
||||
current_interval = -1;
|
||||
current_video_context.swap_interval(video_context_data, current_interval);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool video_context_driver_get_proc_address(gfx_ctx_proc_address_t *proc)
|
||||
{
|
||||
if (!current_video_context.get_proc_address)
|
||||
|
@ -1094,6 +1094,8 @@ typedef struct video_info
|
||||
|
||||
int swap_interval;
|
||||
|
||||
bool adaptive_vsync;
|
||||
|
||||
#ifdef GEKKO
|
||||
bool vfilter;
|
||||
#endif
|
||||
@ -1857,8 +1859,6 @@ void video_context_driver_destroy(void);
|
||||
|
||||
bool video_context_driver_get_video_output_size(gfx_ctx_size_t *size_data);
|
||||
|
||||
bool video_context_driver_swap_interval(int *interval);
|
||||
|
||||
bool video_context_driver_get_proc_address(gfx_ctx_proc_address_t *proc);
|
||||
|
||||
bool video_context_driver_suppress_screensaver(bool *bool_data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user