Graphics: Add default materials

This commit is contained in:
SirLynix
2022-09-08 08:57:11 +02:00
parent 7f7ddb415b
commit 99c9df5731
5 changed files with 49 additions and 3 deletions

View File

@@ -3,6 +3,8 @@
// For conditions of distribution and use, see copyright notice in Config.hpp
#include <Nazara/Graphics/Graphics.hpp>
#include <Nazara/Graphics/BasicMaterial.hpp>
#include <Nazara/Graphics/DepthMaterial.hpp>
#include <Nazara/Graphics/GuillotineTextureAtlas.hpp>
#include <Nazara/Graphics/MaterialPipeline.hpp>
#include <Nazara/Graphics/PredefinedShaderStructs.hpp>
@@ -118,6 +120,7 @@ namespace Nz
SelectDepthStencilFormats();
MaterialPipeline::Initialize();
BuildDefaultMaterials();
Font::SetDefaultAtlas(std::make_shared<GuillotineTextureAtlas>(*m_renderDevice));
@@ -156,7 +159,8 @@ namespace Nz
m_samplerCache.reset();
m_blitPipeline.reset();
m_blitPipelineLayout.reset();
m_defaultTextures.whiteTextures.fill(nullptr);
m_defaultMaterials = DefaultMaterials{};
m_defaultTextures = DefaultTextures{};
}
void Graphics::BuildBlitPipeline()
@@ -202,6 +206,27 @@ namespace Nz
m_blitPipelineTransparent = m_renderDevice->InstantiateRenderPipeline(std::move(pipelineInfo));
}
void Graphics::BuildDefaultMaterials()
{
m_defaultMaterials.depthMaterial = std::make_shared<Material>();
{
std::shared_ptr<Nz::MaterialPass> depthPass = std::make_shared<Nz::MaterialPass>(Nz::DepthMaterial::GetSettings());
depthPass->EnableDepthBuffer(true);
m_defaultMaterials.depthMaterial->AddPass("DepthPass", depthPass);
std::shared_ptr<Nz::MaterialPass> forwardPass = std::make_shared<Nz::MaterialPass>(Nz::BasicMaterial::GetSettings());
forwardPass->EnableDepthBuffer(true);
m_defaultMaterials.depthMaterial->AddPass("ForwardPass", forwardPass);
}
m_defaultMaterials.noDepthMaterial = std::make_shared<Material>();
{
m_defaultMaterials.noDepthMaterial->AddPass("ForwardPass", std::make_shared<Nz::MaterialPass>(Nz::BasicMaterial::GetSettings()));
}
}
void Graphics::BuildDefaultTextures()
{
// White texture 2D