Graphics: Make use of shader binding sets
This commit is contained in:
@@ -51,11 +51,11 @@ namespace Nz
|
||||
|
||||
MaterialPipeline::Initialize();
|
||||
|
||||
Nz::PredefinedViewerData viewerUboOffsets = Nz::PredefinedViewerData::GetOffsets();
|
||||
RenderPipelineLayoutInfo referenceLayoutInfo;
|
||||
FillViewerPipelineLayout(referenceLayoutInfo);
|
||||
FillWorldPipelineLayout(referenceLayoutInfo);
|
||||
|
||||
m_viewerDataUBO = m_renderDevice->InstantiateBuffer(Nz::BufferType::Uniform);
|
||||
if (!m_viewerDataUBO->Initialize(viewerUboOffsets.totalSize, Nz::BufferUsage::DeviceLocal | Nz::BufferUsage::Dynamic))
|
||||
throw std::runtime_error("failed to initialize viewer data UBO");
|
||||
m_referencePipelineLayout = m_renderDevice->InstantiateRenderPipelineLayout(std::move(referenceLayoutInfo));
|
||||
}
|
||||
|
||||
Graphics::~Graphics()
|
||||
@@ -63,5 +63,23 @@ namespace Nz
|
||||
MaterialPipeline::Uninitialize();
|
||||
}
|
||||
|
||||
void Graphics::FillViewerPipelineLayout(RenderPipelineLayoutInfo& layoutInfo, UInt32 set)
|
||||
{
|
||||
layoutInfo.bindings.push_back({
|
||||
set, 0,
|
||||
ShaderBindingType::UniformBuffer,
|
||||
ShaderStageType_All
|
||||
});
|
||||
}
|
||||
|
||||
void Graphics::FillWorldPipelineLayout(RenderPipelineLayoutInfo& layoutInfo, UInt32 set)
|
||||
{
|
||||
layoutInfo.bindings.push_back({
|
||||
set, 0,
|
||||
ShaderBindingType::UniformBuffer,
|
||||
ShaderStageType_All
|
||||
});
|
||||
}
|
||||
|
||||
Graphics* Graphics::s_instance = nullptr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user