From 9137a5c2e788ee1ce3fa6e5424237f27bb98ce4d Mon Sep 17 00:00:00 2001 From: RaveYard <29225776+MrRaveYard@users.noreply.github.com> Date: Thu, 31 Aug 2023 21:15:29 +0200 Subject: [PATCH] GenerateLightmap in DFrameBuffer --- src/common/rendering/v_video.h | 3 ++- src/common/rendering/vulkan/vk_renderdevice.cpp | 7 +++++-- src/common/rendering/vulkan/vk_renderdevice.h | 3 ++- src/maploader/maploader.cpp | 4 +++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/common/rendering/v_video.h b/src/common/rendering/v_video.h index cae60a38a6..c926a52071 100644 --- a/src/common/rendering/v_video.h +++ b/src/common/rendering/v_video.h @@ -220,7 +220,8 @@ public: virtual int GetClientHeight() = 0; virtual void BlurScene(float amount) {} - virtual void InitLightmap(int LMTextureSize, int LMTextureCount, TArray& LMTextureData, hwrenderer::LevelMesh& mesh) {} + virtual void GenerateLightmap(TArray& LMTextureData, int LMTextureSize, hwrenderer::LevelMesh& mesh) {} + virtual void InitLightmap(int LMTextureSize, int LMTextureCount, TArray& LMTextureData) {} // Interface to hardware rendering resources virtual IBuffer* CreateVertexBuffer(int numBindingPoints, int numAttributes, size_t stride, const FVertexBufferAttribute* attrs) { return nullptr; } diff --git a/src/common/rendering/vulkan/vk_renderdevice.cpp b/src/common/rendering/vulkan/vk_renderdevice.cpp index 7af974e792..7173f2cba6 100644 --- a/src/common/rendering/vulkan/vk_renderdevice.cpp +++ b/src/common/rendering/vulkan/vk_renderdevice.cpp @@ -476,9 +476,9 @@ void VulkanRenderDevice::BeginFrame() mDescriptorSetManager->BeginFrame(); } -void VulkanRenderDevice::InitLightmap(int LMTextureSize, int LMTextureCount, TArray& LMTextureData, hwrenderer::LevelMesh& mesh) +void VulkanRenderDevice::GenerateLightmap(TArray& LMTextureData, int LMTextureSize, hwrenderer::LevelMesh& mesh) { - if(false && mesh.surfaces.size() > 0) + if (false && mesh.surfaces.size() > 0) { Printf("Running VkLightmap.\n"); @@ -520,7 +520,10 @@ void VulkanRenderDevice::InitLightmap(int LMTextureSize, int LMTextureCount, TAr } } } +} +void VulkanRenderDevice::InitLightmap(int LMTextureSize, int LMTextureCount, TArray& LMTextureData) +{ if (LMTextureData.Size() > 0) { GetTextureManager()->SetLightmap(LMTextureSize, LMTextureCount, LMTextureData); diff --git a/src/common/rendering/vulkan/vk_renderdevice.h b/src/common/rendering/vulkan/vk_renderdevice.h index d147e3ab62..a78f2bc5f5 100644 --- a/src/common/rendering/vulkan/vk_renderdevice.h +++ b/src/common/rendering/vulkan/vk_renderdevice.h @@ -56,7 +56,8 @@ public: void SetTextureFilterMode() override; void StartPrecaching() override; void BeginFrame() override; - void InitLightmap(int LMTextureSize, int LMTextureCount, TArray& LMTextureData, hwrenderer::LevelMesh& mesh) override; + void GenerateLightmap(TArray& LMTextureData, int LMTextureSize, hwrenderer::LevelMesh& mesh) override; + void InitLightmap(int LMTextureSize, int LMTextureCount, TArray& LMTextureData) override; void BlurScene(float amount) override; void PostProcessScene(bool swscene, int fixedcm, float flash, const std::function &afterBloomDrawEndScene2D) override; void AmbientOccludeScene(float m5) override; diff --git a/src/maploader/maploader.cpp b/src/maploader/maploader.cpp index 92ba5918ea..7e4090d208 100644 --- a/src/maploader/maploader.cpp +++ b/src/maploader/maploader.cpp @@ -3214,7 +3214,9 @@ void MapLoader::LoadLevel(MapData *map, const char *lumpname, int position) Level->levelMesh = new DoomLevelMesh(*Level); InitLightmap(map); - screen->InitLightmap(Level->LMTextureSize, Level->LMTextureCount, Level->LMTextureData, *Level->levelMesh); + screen->GenerateLightmap(Level->LMTextureData, Level->LMTextureSize, *Level->levelMesh); + + screen->InitLightmap(Level->LMTextureSize, Level->LMTextureCount, Level->LMTextureData); for (int i = 0; i < MAXPLAYERS; ++i) {