From 3058a5103ffc54e8db47ca51fbf8e61768f5036d Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Tue, 31 May 2022 10:49:40 +0900 Subject: [PATCH] [renderer] Move entity drawing in with view rendering I really don't remember why I made it separate, though it may have been to do with r_ent_queue. However, putting it together with the rest is needed for the "render pass" rework. --- include/QF/plugin/vid_render.h | 1 - libs/video/renderer/r_screen.c | 1 - libs/video/renderer/vid_render_gl.c | 2 +- libs/video/renderer/vid_render_glsl.c | 2 +- libs/video/renderer/vid_render_sw.c | 2 +- libs/video/renderer/vid_render_vulkan.c | 15 --------------- libs/video/renderer/vulkan/vulkan_main.c | 1 + 7 files changed, 4 insertions(+), 20 deletions(-) diff --git a/include/QF/plugin/vid_render.h b/include/QF/plugin/vid_render.h index 3d6774d08..5502d6220 100644 --- a/include/QF/plugin/vid_render.h +++ b/include/QF/plugin/vid_render.h @@ -114,7 +114,6 @@ typedef struct vid_render_funcs_s { void (*begin_frame) (void); void (*render_view) (void); - void (*draw_entities) (struct entqueue_s *queue); void (*draw_particles) (struct psystem_s *psystem); void (*draw_transparent) (void); void (*post_process) (struct framebuffer_s *src); diff --git a/libs/video/renderer/r_screen.c b/libs/video/renderer/r_screen.c index f55531c0c..0959b0c82 100644 --- a/libs/video/renderer/r_screen.c +++ b/libs/video/renderer/r_screen.c @@ -193,7 +193,6 @@ render_scene (void) r_framecount++; EntQueue_Clear (r_ent_queue); r_funcs->render_view (); - r_funcs->draw_entities (r_ent_queue); r_funcs->draw_particles (&r_psystem); r_funcs->draw_transparent (); } diff --git a/libs/video/renderer/vid_render_gl.c b/libs/video/renderer/vid_render_gl.c index 3fe390bf9..59d7a019a 100644 --- a/libs/video/renderer/vid_render_gl.c +++ b/libs/video/renderer/vid_render_gl.c @@ -264,6 +264,7 @@ gl_render_view (void) // do 3D refresh drawing, and then update the screen qfglClear (GL_DEPTH_BUFFER_BIT); gl_R_RenderView (); + gl_R_RenderEntities (r_ent_queue); } static void @@ -516,7 +517,6 @@ vid_render_funcs_t gl_vid_render_funcs = { gl_R_LineGraph, gl_begin_frame, gl_render_view, - gl_R_RenderEntities, gl_R_DrawParticles, gl_draw_transparent, gl_post_process, diff --git a/libs/video/renderer/vid_render_glsl.c b/libs/video/renderer/vid_render_glsl.c index 958cfbfdc..102c8f53f 100644 --- a/libs/video/renderer/vid_render_glsl.c +++ b/libs/video/renderer/vid_render_glsl.c @@ -225,6 +225,7 @@ glsl_render_view (void) { qfeglClear (GL_DEPTH_BUFFER_BIT); glsl_R_RenderView (); + glsl_R_RenderEntities (r_ent_queue); } static void @@ -460,7 +461,6 @@ vid_render_funcs_t glsl_vid_render_funcs = { glsl_R_LineGraph, glsl_begin_frame, glsl_render_view, - glsl_R_RenderEntities, glsl_R_DrawParticles, glsl_draw_transparent, glsl_post_process, diff --git a/libs/video/renderer/vid_render_sw.c b/libs/video/renderer/vid_render_sw.c index e1398bc72..b88435a08 100644 --- a/libs/video/renderer/vid_render_sw.c +++ b/libs/video/renderer/vid_render_sw.c @@ -160,6 +160,7 @@ static void sw_render_view (void) { R_RenderView (); + R_DrawEntitiesOnList (r_ent_queue); } static void @@ -480,7 +481,6 @@ vid_render_funcs_t sw_vid_render_funcs = { R_LineGraph, sw_begin_frame, sw_render_view, - R_DrawEntitiesOnList, R_DrawParticles, sw_draw_transparent, sw_post_process, diff --git a/libs/video/renderer/vid_render_vulkan.c b/libs/video/renderer/vid_render_vulkan.c index 720813da3..0b4ccf1e1 100644 --- a/libs/video/renderer/vid_render_vulkan.c +++ b/libs/video/renderer/vid_render_vulkan.c @@ -292,20 +292,6 @@ vulkan_render_view (void) } } -static void -vulkan_draw_entities (entqueue_t *queue) -{ - __auto_type frame = &vulkan_ctx->frames.a[vulkan_ctx->curFrame]; - uint32_t imageIndex = vulkan_ctx->swapImageIndex; - - for (size_t i = 0; i < vulkan_ctx->renderPasses.size; i++) { - __auto_type rp = vulkan_ctx->renderPasses.a[i]; - __auto_type rpFrame = &rp->frames.a[vulkan_ctx->curFrame]; - frame->framebuffer = rp->framebuffers->a[imageIndex]; - Vulkan_RenderEntities (queue, rpFrame); - } -} - static void vulkan_draw_particles (struct psystem_s *psystem) { @@ -758,7 +744,6 @@ vid_render_funcs_t vulkan_vid_render_funcs = { vulkan_R_LineGraph, vulkan_begin_frame, vulkan_render_view, - vulkan_draw_entities, vulkan_draw_particles, vulkan_draw_transparent, vulkan_post_process, diff --git a/libs/video/renderer/vulkan/vulkan_main.c b/libs/video/renderer/vulkan/vulkan_main.c index fa0fcd53b..4098a4336 100644 --- a/libs/video/renderer/vulkan/vulkan_main.c +++ b/libs/video/renderer/vulkan/vulkan_main.c @@ -132,6 +132,7 @@ Vulkan_RenderView (qfv_renderframe_t *rFrame) } Vulkan_DrawWaterSurfaces (rFrame); Vulkan_Bsp_Flush (ctx); + Vulkan_RenderEntities (r_ent_queue, rFrame); Vulkan_Scene_Flush (ctx); }