@@ -6761,7 +6761,18 @@ static bool vulkan_frame(void *data, const void *frame,
67616761#endif /* VULKAN_HDR_SWAPCHAIN */
67626762
67636763#ifdef HAVE_OVERLAY
6764- if ((vk -> flags & VK_FLAG_OVERLAY_ENABLE ) && overlay_behind_menu )
6764+ /* Render background overlay (behind game viewport) */
6765+ if ((vk -> flags & VK_FLAG_OVERLAY_ENABLE ) && (vk -> flags & VK_FLAG_OVERLAY_BACKGROUND_FILL ))
6766+ {
6767+ uint64_t saved_flags = vk -> flags & VK_FLAG_OVERLAY_FULLSCREEN ;
6768+
6769+ vk -> flags |= VK_FLAG_OVERLAY_FULLSCREEN ;
6770+ vulkan_render_overlay (vk , video_width , video_height );
6771+
6772+ if (!saved_flags )
6773+ vk -> flags &= ~VK_FLAG_OVERLAY_FULLSCREEN ;
6774+ }
6775+ else if ((vk -> flags & VK_FLAG_OVERLAY_ENABLE ) && overlay_behind_menu )
67656776 vulkan_render_overlay (vk , video_width , video_height );
67666777#endif
67676778
@@ -6818,7 +6829,8 @@ static bool vulkan_frame(void *data, const void *frame,
68186829#endif
68196830
68206831#ifdef HAVE_OVERLAY
6821- if ((vk -> flags & VK_FLAG_OVERLAY_ENABLE ) && !overlay_behind_menu )
6832+ if ((vk -> flags & VK_FLAG_OVERLAY_ENABLE ) && !overlay_behind_menu
6833+ && !(vk -> flags & VK_FLAG_OVERLAY_BACKGROUND_FILL ))
68226834 vulkan_render_overlay (vk , video_width , video_height );
68236835#endif
68246836
@@ -7965,6 +7977,18 @@ static void vulkan_overlay_full_screen(void *data, bool enable)
79657977 vk -> flags &= ~VK_FLAG_OVERLAY_FULLSCREEN ;
79667978}
79677979
7980+ static void vulkan_overlay_background_fill (void * data , bool enable )
7981+ {
7982+ vk_t * vk = (vk_t * )data ;
7983+ if (!vk )
7984+ return ;
7985+
7986+ if (enable )
7987+ vk -> flags |= VK_FLAG_OVERLAY_BACKGROUND_FILL ;
7988+ else
7989+ vk -> flags &= ~VK_FLAG_OVERLAY_BACKGROUND_FILL ;
7990+ }
7991+
79687992static void vulkan_overlay_free (vk_t * vk )
79697993{
79707994 int i ;
@@ -8288,6 +8312,7 @@ static const video_overlay_interface_t vulkan_overlay_interface = {
82888312 vulkan_overlay_vertex_geom ,
82898313 vulkan_overlay_full_screen ,
82908314 vulkan_overlay_set_alpha ,
8315+ vulkan_overlay_background_fill ,
82918316};
82928317
82938318static void vulkan_get_overlay_interface (void * data ,
0 commit comments