Begin removing binding points from the hwrenderer layer.

Well known buffers should be created and managed by the backend, otherwise the backend just becomes an OpenGL emulator.
This commit is contained in:
Magnus Norddahl 2023-04-16 19:30:27 +02:00
commit 6894eb013f
35 changed files with 265 additions and 238 deletions

View file

@ -39,7 +39,6 @@
#include "hw_skydome.h"
#include "hwrenderer/data/hw_viewpointbuffer.h"
#include "flatvertices.h"
#include "hwrenderer/data/shaderuniforms.h"
#include "hw_lightbuffer.h"
#include "hw_bonebuffer.h"
@ -138,7 +137,7 @@ VulkanRenderDevice::~VulkanRenderDevice()
delete mViewpoints;
delete mLights;
delete mBones;
mShadowMap.Reset();
delete mShadowMap;
if (mDescriptorSetManager)
mDescriptorSetManager->Deinit();
@ -192,11 +191,12 @@ void VulkanRenderDevice::InitializeState()
mRenderPassManager.reset(new VkRenderPassManager(this));
mRaytrace.reset(new VkRaytrace(this));
mVertexData = new FFlatVertexBuffer(GetWidth(), GetHeight());
mSkyData = new FSkyVertexBuffer;
mViewpoints = new HWViewpointBuffer;
mLights = new FLightBuffer();
mBones = new BoneBuffer();
mVertexData = new FFlatVertexBuffer(this, GetWidth(), GetHeight());
mSkyData = new FSkyVertexBuffer(this);
mViewpoints = new HWViewpointBuffer(this);
mLights = new FLightBuffer(this);
mBones = new BoneBuffer(this);
mShadowMap = new ShadowMap(this);
mShaderManager.reset(new VkShaderManager(this));
mDescriptorSetManager->Init();
@ -322,9 +322,34 @@ IIndexBuffer *VulkanRenderDevice::CreateIndexBuffer()
return GetBufferManager()->CreateIndexBuffer();
}
IDataBuffer *VulkanRenderDevice::CreateDataBuffer(int bindingpoint, bool ssbo, bool needsresize)
IDataBuffer* VulkanRenderDevice::CreateLightBuffer()
{
return GetBufferManager()->CreateDataBuffer(bindingpoint, ssbo, needsresize);
return GetBufferManager()->CreateLightBuffer();
}
IDataBuffer* VulkanRenderDevice::CreateBoneBuffer()
{
return GetBufferManager()->CreateBoneBuffer();
}
IDataBuffer* VulkanRenderDevice::CreateViewpointBuffer()
{
return GetBufferManager()->CreateViewpointBuffer();
}
IDataBuffer* VulkanRenderDevice::CreateShadowmapNodesBuffer()
{
return GetBufferManager()->CreateShadowmapNodesBuffer();
}
IDataBuffer* VulkanRenderDevice::CreateShadowmapLinesBuffer()
{
return GetBufferManager()->CreateShadowmapLinesBuffer();
}
IDataBuffer* VulkanRenderDevice::CreateShadowmapLightsBuffer()
{
return GetBufferManager()->CreateShadowmapLightsBuffer();
}
void VulkanRenderDevice::SetTextureFilterMode()