From 42441e87d4b1632ca08eb5931beca52c86bb1bc6 Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Thu, 19 Jan 2023 11:33:49 +0900 Subject: [PATCH] [vulkan] Create a vulkan-specific UpdateScreen The goal is to get vulkan relying on the "renderpass" abstraction, but this gets vulkan up and running again, and even fixes the rendering issues (in the end, getting canvas working wasn't required, but is still planned). --- libs/video/renderer/vid_render_vulkan.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/libs/video/renderer/vid_render_vulkan.c b/libs/video/renderer/vid_render_vulkan.c index f8682e165..faeed851f 100644 --- a/libs/video/renderer/vid_render_vulkan.c +++ b/libs/video/renderer/vid_render_vulkan.c @@ -488,6 +488,20 @@ vulkan_end_frame (void) vulkan_ctx->curFrame %= vulkan_ctx->frames.size; } +static void +vulkan_UpdateScreen (transform_t camera, double realtime, SCR_Func *scr_funcs) +{ + EntQueue_Clear (r_ent_queue); + vulkan_begin_frame (); + r_funcs->set_2d (1); + while (*scr_funcs) { + (*scr_funcs) (); + scr_funcs++; + } + vulkan_render_view (); + vulkan_end_frame (); +} + static framebuffer_t * vulkan_create_cube_map (int size) { @@ -774,7 +788,7 @@ vulkan_vid_render_shutdown (void) vid_render_funcs_t vulkan_vid_render_funcs = { .init = vulkan_vid_render_init, - .UpdateScreen = SCR_UpdateScreen_legacy, + .UpdateScreen = vulkan_UpdateScreen, .Draw_CharBuffer = vulkan_Draw_CharBuffer, .Draw_SetScale = vulkan_Draw_SetScale,