diff --git a/src/common/rendering/v_video.h b/src/common/rendering/v_video.h index 18234ea92..75ec8f0d6 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 660473266..351236da5 100644 --- a/src/common/rendering/vulkan/vk_renderdevice.cpp +++ b/src/common/rendering/vulkan/vk_renderdevice.cpp @@ -475,9 +475,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"); @@ -519,7 +519,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 d147e3ab6..a78f2bc5f 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 bc19e56a4..9cdb214af 100644 --- a/src/maploader/maploader.cpp +++ b/src/maploader/maploader.cpp @@ -3219,7 +3219,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) {