GenerateLightmap in DFrameBuffer

This commit is contained in:
RaveYard 2023-08-31 21:15:29 +02:00 committed by Christoph Oelckers
parent 27063276e5
commit 9137a5c2e7
4 changed files with 12 additions and 5 deletions

View file

@ -220,7 +220,8 @@ public:
virtual int GetClientHeight() = 0;
virtual void BlurScene(float amount) {}
virtual void InitLightmap(int LMTextureSize, int LMTextureCount, TArray<uint16_t>& LMTextureData, hwrenderer::LevelMesh& mesh) {}
virtual void GenerateLightmap(TArray<uint16_t>& LMTextureData, int LMTextureSize, hwrenderer::LevelMesh& mesh) {}
virtual void InitLightmap(int LMTextureSize, int LMTextureCount, TArray<uint16_t>& LMTextureData) {}
// Interface to hardware rendering resources
virtual IBuffer* CreateVertexBuffer(int numBindingPoints, int numAttributes, size_t stride, const FVertexBufferAttribute* attrs) { return nullptr; }

View file

@ -476,9 +476,9 @@ void VulkanRenderDevice::BeginFrame()
mDescriptorSetManager->BeginFrame();
}
void VulkanRenderDevice::InitLightmap(int LMTextureSize, int LMTextureCount, TArray<uint16_t>& LMTextureData, hwrenderer::LevelMesh& mesh)
void VulkanRenderDevice::GenerateLightmap(TArray<uint16_t>& 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<uint16_t>& LMTextureData)
{
if (LMTextureData.Size() > 0)
{
GetTextureManager()->SetLightmap(LMTextureSize, LMTextureCount, LMTextureData);

View file

@ -56,7 +56,8 @@ public:
void SetTextureFilterMode() override;
void StartPrecaching() override;
void BeginFrame() override;
void InitLightmap(int LMTextureSize, int LMTextureCount, TArray<uint16_t>& LMTextureData, hwrenderer::LevelMesh& mesh) override;
void GenerateLightmap(TArray<uint16_t>& LMTextureData, int LMTextureSize, hwrenderer::LevelMesh& mesh) override;
void InitLightmap(int LMTextureSize, int LMTextureCount, TArray<uint16_t>& LMTextureData) override;
void BlurScene(float amount) override;
void PostProcessScene(bool swscene, int fixedcm, float flash, const std::function<void()> &afterBloomDrawEndScene2D) override;
void AmbientOccludeScene(float m5) override;

View file

@ -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)
{