diff --git a/menu/drivers_display/menu_display_gl.c b/menu/drivers_display/menu_display_gl.c index 3ae085c9da..6cf546f5e1 100644 --- a/menu/drivers_display/menu_display_gl.c +++ b/menu/drivers_display/menu_display_gl.c @@ -257,7 +257,7 @@ static void menu_display_gl_scissor_begin(video_frame_info_t *video_info, int x, glEnable(GL_SCISSOR_TEST); } -static void menu_display_gl_scissor_end(void) +static void menu_display_gl_scissor_end(video_frame_info_t *video_info) { glDisable(GL_SCISSOR_TEST); } diff --git a/menu/drivers_display/menu_display_vulkan.c b/menu/drivers_display/menu_display_vulkan.c index 9784eee0c9..dd060dd2a1 100644 --- a/menu/drivers_display/menu_display_vulkan.c +++ b/menu/drivers_display/menu_display_vulkan.c @@ -360,9 +360,17 @@ static void menu_display_vk_scissor_begin(video_frame_info_t *video_info, vkCmdSetScissor (vk->cmd, 0, 1, &sci); } -static void menu_display_vk_scissor_end(void) +static void menu_display_vk_scissor_end(video_frame_info_t *video_info) { - /* Can remain a stub for Vulkan */ + VkRect2D sci; + vk_t *vk = video_info ? (vk_t*)video_info->userdata : NULL; + + sci.offset.x = 0; + sci.offset.y = 0; + sci.extent.width = video_info->width; + sci.extent.height = video_info->height; + + vkCmdSetScissor (vk->cmd, 0, 1, &sci); } menu_display_ctx_driver_t menu_display_ctx_vulkan = { diff --git a/menu/drivers_display/menu_display_wiiu.c b/menu/drivers_display/menu_display_wiiu.c index 6ae28f418f..ff3f8cea7e 100644 --- a/menu/drivers_display/menu_display_wiiu.c +++ b/menu/drivers_display/menu_display_wiiu.c @@ -334,7 +334,7 @@ static void menu_display_wiiu_scissor_begin(video_frame_info_t *video_info, int GX2SetScissor(max(x, 0), max(video_info->height - y - height, 0), min(width, video_info->width), min(height, video_info->height)); } -static void menu_display_wiiu_scissor_end(void) +static void menu_display_wiiu_scissor_end(video_frame_info_t *video_info) { GX2SetScissor(0, 0, video_info->width, video_info->height); } diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 2750c973aa..4bae4f41b1 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -393,10 +393,10 @@ void menu_display_scissor_begin(video_frame_info_t *video_info, int x, int y, un } /* End scissoring operation */ -void menu_display_scissor_end() +void menu_display_scissor_end(video_frame_info_t *video_info) { if (menu_disp && menu_disp->scissor_end) - menu_disp->scissor_end(); + menu_disp->scissor_end(video_info); } /* Teardown; deinitializes and frees all diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 029eb752df..a48402c62b 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -379,7 +379,7 @@ typedef struct menu_display_ctx_driver bool handles_transform; /* Enables and disables scissoring */ void (*scissor_begin)(video_frame_info_t *video_info, int x, int y, unsigned width, unsigned height); - void (*scissor_end)(void); + void (*scissor_end)(video_frame_info_t *video_info); } menu_display_ctx_driver_t; @@ -686,7 +686,7 @@ void menu_display_blend_begin(video_frame_info_t *video_info); void menu_display_blend_end(video_frame_info_t *video_info); void menu_display_scissor_begin(video_frame_info_t *video_info, int x, int y, unsigned width, unsigned height); -void menu_display_scissor_end(void); +void menu_display_scissor_end(video_frame_info_t *video_info); void menu_display_font_free(font_data_t *font);