From 169c282187209c88f256546d5e53d36010fb938f Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Thu, 27 Oct 2022 11:11:38 +0900 Subject: [PATCH] [vulkan] "Fix" view model check in rendering loop The check for the entity being the view model was checking only the view model id, which is not sufficient when the view model is invalid by never being set to other than 0s. A better system for dealing with the view model is needed. --- libs/video/renderer/vulkan/vulkan_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/video/renderer/vulkan/vulkan_main.c b/libs/video/renderer/vulkan/vulkan_main.c index c8eb00e89..d334883a7 100644 --- a/libs/video/renderer/vulkan/vulkan_main.c +++ b/libs/video/renderer/vulkan/vulkan_main.c @@ -72,6 +72,8 @@ Vulkan_RenderEntities (entqueue_t *queue, qfv_renderframe_t *rFrame) { if (!r_drawentities) return; + //FIXME need a better way (components? but HasComponent isn't free) + int vmod = Entity_Valid (vr_data.view_model); #define RE_LOOP(type_name, Type) \ do { \ int begun = 0; \ @@ -84,12 +86,12 @@ Vulkan_RenderEntities (entqueue_t *queue, qfv_renderframe_t *rFrame) } \ /* FIXME hack the depth range to prevent view model */\ /* from poking into walls */\ - if (ent.id == vr_data.view_model.id) { \ + if (vmod && ent.id == vr_data.view_model.id) { \ Vulkan_AliasDepthRange (rFrame, 0, 0.3); \ } \ Vulkan_Draw##Type (ent, rFrame); \ /* unhack in case the view_model is not the last */\ - if (ent.id == vr_data.view_model.id) { \ + if (vmod && ent.id == vr_data.view_model.id) { \ Vulkan_AliasDepthRange (rFrame, 0, 1); \ } \ } \