From 5669b5bc6034fbcb295bb4cd663b73aa14e566a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Tue, 13 Jul 2021 14:56:52 +0200 Subject: [PATCH] Graphics: Rename Material to MaterialPass --- examples/DeferredShading/main.cpp | 4 +- examples/GraphicsTest/main.cpp | 2 +- examples/PhysicsDemo/main.cpp | 4 +- include/Nazara/Graphics.hpp | 2 +- include/Nazara/Graphics/BasicMaterial.hpp | 6 +- .../Nazara/Graphics/ForwardFramePipeline.hpp | 12 +- .../Nazara/Graphics/InstancedRenderable.hpp | 6 +- .../{Material.hpp => MaterialPass.hpp} | 18 +-- .../{Material.inl => MaterialPass.inl} | 122 +++++++++--------- include/Nazara/Graphics/Model.hpp | 8 +- include/Nazara/Graphics/Model.inl | 2 +- .../Nazara/Graphics/PhongLightingMaterial.hpp | 6 +- src/Nazara/Graphics/BasicMaterial.cpp | 2 +- src/Nazara/Graphics/ForwardFramePipeline.cpp | 14 +- .../{Material.cpp => MaterialPass.cpp} | 10 +- src/Nazara/Graphics/MaterialPipeline.cpp | 2 +- src/Nazara/Graphics/Model.cpp | 4 +- src/Nazara/Graphics/PhongLightingMaterial.cpp | 2 +- 18 files changed, 113 insertions(+), 113 deletions(-) rename include/Nazara/Graphics/{Material.hpp => MaterialPass.hpp} (92%) rename include/Nazara/Graphics/{Material.inl => MaterialPass.inl} (74%) rename src/Nazara/Graphics/{Material.cpp => MaterialPass.cpp} (94%) diff --git a/examples/DeferredShading/main.cpp b/examples/DeferredShading/main.cpp index ff261d90e..8ebd475aa 100644 --- a/examples/DeferredShading/main.cpp +++ b/examples/DeferredShading/main.cpp @@ -189,7 +189,7 @@ int main() auto customMatSettings = std::make_shared(std::move(customSettings)); - std::shared_ptr spaceshipMat = std::make_shared(customMatSettings); + std::shared_ptr spaceshipMat = std::make_shared(customMatSettings); spaceshipMat->EnableDepthBuffer(true); { Nz::BasicMaterial basicMat(*spaceshipMat); @@ -198,7 +198,7 @@ int main() basicMat.SetDiffuseMap(Nz::Texture::LoadFromFile(resourceDir / "Spaceship/Texture/diffuse.png", texParams)); } - std::shared_ptr planeMat = std::make_shared(customMatSettings); + std::shared_ptr planeMat = std::make_shared(customMatSettings); planeMat->EnableDepthBuffer(true); { Nz::BasicMaterial basicMat(*planeMat); diff --git a/examples/GraphicsTest/main.cpp b/examples/GraphicsTest/main.cpp index 6b7d81893..09c98bbf6 100644 --- a/examples/GraphicsTest/main.cpp +++ b/examples/GraphicsTest/main.cpp @@ -62,7 +62,7 @@ int main() texParams.renderDevice = device; texParams.loadFormat = Nz::PixelFormat::RGBA8_SRGB; - std::shared_ptr material = std::make_shared(Nz::BasicMaterial::GetSettings()); + std::shared_ptr material = std::make_shared(Nz::BasicMaterial::GetSettings()); material->EnableDepthBuffer(true); material->EnableFaceCulling(true); diff --git a/examples/PhysicsDemo/main.cpp b/examples/PhysicsDemo/main.cpp index d9a7dbaea..c6f0d2146 100644 --- a/examples/PhysicsDemo/main.cpp +++ b/examples/PhysicsDemo/main.cpp @@ -75,7 +75,7 @@ int main() texParams.renderDevice = device; texParams.loadFormat = Nz::PixelFormat::RGBA8_SRGB; - std::shared_ptr material = std::make_shared(Nz::BasicMaterial::GetSettings()); + std::shared_ptr material = std::make_shared(Nz::BasicMaterial::GetSettings()); material->EnableDepthBuffer(true); material->EnableDepthClamp(true); material->EnableFaceCulling(true); @@ -111,7 +111,7 @@ int main() auto shipCollider = std::make_shared(vertices, vertexMapper.GetVertexCount(), 0.01f); - std::shared_ptr colliderMat = std::make_shared(Nz::BasicMaterial::GetSettings()); + std::shared_ptr colliderMat = std::make_shared(Nz::BasicMaterial::GetSettings()); colliderMat->EnableDepthBuffer(true); colliderMat->SetPrimitiveMode(Nz::PrimitiveMode::LineList); diff --git a/include/Nazara/Graphics.hpp b/include/Nazara/Graphics.hpp index a689b1b4c..03d798120 100644 --- a/include/Nazara/Graphics.hpp +++ b/include/Nazara/Graphics.hpp @@ -43,7 +43,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/include/Nazara/Graphics/BasicMaterial.hpp b/include/Nazara/Graphics/BasicMaterial.hpp index 415369fdd..7fd0640ff 100644 --- a/include/Nazara/Graphics/BasicMaterial.hpp +++ b/include/Nazara/Graphics/BasicMaterial.hpp @@ -8,7 +8,7 @@ #define NAZARA_BASIC_MATERIAL_HPP #include -#include +#include namespace Nz { @@ -19,7 +19,7 @@ namespace Nz public: struct UniformOffsets; - BasicMaterial(Material& material); + BasicMaterial(MaterialPass& material); inline void EnableAlphaTest(bool alphaTest); @@ -72,7 +72,7 @@ namespace Nz static bool Initialize(); static void Uninitialize(); - Material& m_material; + MaterialPass& m_material; std::size_t m_uniformBlockIndex; OptionIndexes m_optionIndexes; TextureIndexes m_textureIndexes; diff --git a/include/Nazara/Graphics/ForwardFramePipeline.hpp b/include/Nazara/Graphics/ForwardFramePipeline.hpp index 04f3fa6ef..f046b6195 100644 --- a/include/Nazara/Graphics/ForwardFramePipeline.hpp +++ b/include/Nazara/Graphics/ForwardFramePipeline.hpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include @@ -44,14 +44,14 @@ namespace Nz private: BakedFrameGraph BuildFrameGraph(); - void RegisterMaterial(Material* material); - void UnregisterMaterial(Material* material); + void RegisterMaterial(MaterialPass* material); + void UnregisterMaterial(MaterialPass* material); struct MaterialData { std::size_t usedCount = 0; - NazaraSlot(Material, OnMaterialInvalidated, onMaterialInvalided); + NazaraSlot(MaterialPass, OnMaterialInvalidated, onMaterialInvalided); }; struct RenderableData @@ -68,10 +68,10 @@ namespace Nz std::size_t m_forwardPass; std::unordered_map m_viewers; - std::unordered_map m_materials; + std::unordered_map m_materials; std::unordered_map> m_renderables; std::unordered_set m_invalidatedViewerInstances; - std::unordered_set m_invalidatedMaterials; + std::unordered_set m_invalidatedMaterials; std::unordered_set m_invalidatedWorldInstances; BakedFrameGraph m_bakedFrameGraph; bool m_rebuildFrameGraph; diff --git a/include/Nazara/Graphics/InstancedRenderable.hpp b/include/Nazara/Graphics/InstancedRenderable.hpp index d7968e1d4..c1836bb04 100644 --- a/include/Nazara/Graphics/InstancedRenderable.hpp +++ b/include/Nazara/Graphics/InstancedRenderable.hpp @@ -15,7 +15,7 @@ namespace Nz { class CommandBufferBuilder; - class Material; + class MaterialPass; class WorldInstance; class NAZARA_GRAPHICS_API InstancedRenderable @@ -28,13 +28,13 @@ namespace Nz virtual void Draw(CommandBufferBuilder& commandBuffer) const = 0; - virtual const std::shared_ptr& GetMaterial(std::size_t i) const = 0; + virtual const std::shared_ptr& GetMaterial(std::size_t i) const = 0; virtual std::size_t GetMaterialCount() const = 0; InstancedRenderable& operator=(const InstancedRenderable&) = delete; InstancedRenderable& operator=(InstancedRenderable&&) noexcept = default; - NazaraSignal(OnMaterialInvalidated, InstancedRenderable* /*instancedRenderable*/, std::size_t /*materialIndex*/, const std::shared_ptr& /*newMaterial*/); + NazaraSignal(OnMaterialInvalidated, InstancedRenderable* /*instancedRenderable*/, std::size_t /*materialIndex*/, const std::shared_ptr& /*newMaterial*/); }; } diff --git a/include/Nazara/Graphics/Material.hpp b/include/Nazara/Graphics/MaterialPass.hpp similarity index 92% rename from include/Nazara/Graphics/Material.hpp rename to include/Nazara/Graphics/MaterialPass.hpp index 94a3c141c..8c530ee78 100644 --- a/include/Nazara/Graphics/Material.hpp +++ b/include/Nazara/Graphics/MaterialPass.hpp @@ -4,8 +4,8 @@ #pragma once -#ifndef NAZARA_BASE_MATERIAL_HPP -#define NAZARA_BASE_MATERIAL_HPP +#ifndef NAZARA_MATERIAL_PASS_HPP +#define NAZARA_MATERIAL_PASS_HPP #include #include @@ -30,11 +30,11 @@ namespace Nz class CommandBufferBuilder; class RenderFrame; - class NAZARA_GRAPHICS_API Material : public Resource + class NAZARA_GRAPHICS_API MaterialPass : public Resource { public: - Material(std::shared_ptr settings); - inline ~Material(); + MaterialPass(std::shared_ptr settings); + inline ~MaterialPass(); inline void Configure(std::shared_ptr pipeline); inline void Configure(const MaterialPipelineInfo& pipelineInfo); @@ -101,8 +101,8 @@ namespace Nz bool Update(RenderFrame& renderFrame, CommandBufferBuilder& builder); // Signals: - NazaraSignal(OnMaterialInvalidated, const Material* /*material*/); - NazaraSignal(OnMaterialRelease, const Material* /*material*/); + NazaraSignal(OnMaterialInvalidated, const MaterialPass* /*material*/); + NazaraSignal(OnMaterialRelease, const MaterialPass* /*material*/); private: inline void InvalidatePipeline(); @@ -138,6 +138,6 @@ namespace Nz }; } -#include +#include -#endif // NAZARA_BASE_MATERIAL_HPP +#endif // NAZARA_MATERIAL_PASS_HPP diff --git a/include/Nazara/Graphics/Material.inl b/include/Nazara/Graphics/MaterialPass.inl similarity index 74% rename from include/Nazara/Graphics/Material.inl rename to include/Nazara/Graphics/MaterialPass.inl index 565740531..ba1382afb 100644 --- a/include/Nazara/Graphics/Material.inl +++ b/include/Nazara/Graphics/MaterialPass.inl @@ -2,7 +2,7 @@ // This file is part of the "Nazara Engine - Graphics module" // For conditions of distribution and use, see copyright notice in Config.hpp -#include +#include #include #include #include @@ -14,7 +14,7 @@ namespace Nz * * \see OnMaterialRelease */ - inline Material::~Material() + inline MaterialPass::~MaterialPass() { OnMaterialRelease(this); } @@ -28,7 +28,7 @@ namespace Nz * * \see Configure */ - inline void Material::Configure(std::shared_ptr pipeline) + inline void MaterialPass::Configure(std::shared_ptr pipeline) { NazaraAssert(pipeline, "Invalid material pipeline"); @@ -46,7 +46,7 @@ namespace Nz * * \see Configure */ - inline void Material::Configure(const MaterialPipelineInfo& pipelineInfo) + inline void MaterialPass::Configure(const MaterialPipelineInfo& pipelineInfo) { m_pipelineInfo = pipelineInfo; @@ -67,7 +67,7 @@ namespace Nz * \see SetDstBlend * \see SetSrcBlend */ - inline void Material::EnableBlending(bool blending) + inline void MaterialPass::EnableBlending(bool blending) { m_pipelineInfo.blending = blending; @@ -83,7 +83,7 @@ namespace Nz * * \see IsColorWritingEnabled */ - inline void Material::EnableColorWrite(bool colorWrite) + inline void MaterialPass::EnableColorWrite(bool colorWrite) { m_pipelineInfo.colorWrite = colorWrite; @@ -108,7 +108,7 @@ namespace Nz * \see IsDepthBufferEnabled * \see SetDepthFunc */ - inline void Material::EnableDepthBuffer(bool depthBuffer) + inline void MaterialPass::EnableDepthBuffer(bool depthBuffer) { m_pipelineInfo.depthBuffer = depthBuffer; @@ -130,7 +130,7 @@ namespace Nz * * \see IsDepthClampEnabled */ - inline void Material::EnableDepthClamp(bool depthClamp) + inline void MaterialPass::EnableDepthClamp(bool depthClamp) { m_pipelineInfo.depthClamp = depthClamp; @@ -153,7 +153,7 @@ namespace Nz * \see EnableDepthBuffer * \see IsDepthWriteEnabled */ - inline void Material::EnableDepthWrite(bool depthWrite) + inline void MaterialPass::EnableDepthWrite(bool depthWrite) { m_pipelineInfo.depthWrite = depthWrite; @@ -175,14 +175,14 @@ namespace Nz * \see IsFaceCullingEnabled * \see SetFaceCulling */ - inline void Material::EnableFaceCulling(bool faceCulling) + inline void MaterialPass::EnableFaceCulling(bool faceCulling) { m_pipelineInfo.faceCulling = faceCulling; InvalidatePipeline(); } - inline void Material::EnableOption(std::size_t optionIndex, bool enable) + inline void MaterialPass::EnableOption(std::size_t optionIndex, bool enable) { if (TestBit(m_enabledOptions, optionIndex) != enable) { @@ -203,7 +203,7 @@ namespace Nz * * \see IsScissorTestEnabled */ - inline void Material::EnableScissorTest(bool scissorTest) + inline void MaterialPass::EnableScissorTest(bool scissorTest) { m_pipelineInfo.scissorTest = scissorTest; @@ -221,7 +221,7 @@ namespace Nz * * \see IsStencilTestEnabled */ - inline void Material::EnableStencilTest(bool stencilTest) + inline void MaterialPass::EnableStencilTest(bool stencilTest) { m_pipelineInfo.stencilTest = stencilTest; @@ -236,7 +236,7 @@ namespace Nz * * \see GetPipeline */ - inline void Material::EnsurePipelineUpdate() const + inline void MaterialPass::EnsurePipelineUpdate() const { if (!m_pipelineUpdated) UpdatePipeline(); @@ -250,37 +250,37 @@ namespace Nz * \see EnableDepthTest * \see SetAmbientColor */ - inline RendererComparison Material::GetDepthCompareFunc() const + inline RendererComparison MaterialPass::GetDepthCompareFunc() const { return m_pipelineInfo.depthCompare; } - inline BlendEquation Material::GetBlendAlphaModeEquation() const + inline BlendEquation MaterialPass::GetBlendAlphaModeEquation() const { return m_pipelineInfo.blend.modeAlpha; } - inline BlendEquation Material::GetBlendColorModeEquation() const + inline BlendEquation MaterialPass::GetBlendColorModeEquation() const { return m_pipelineInfo.blend.modeColor; } - inline BlendFunc Material::GetBlendDstAlphaFunc() const + inline BlendFunc MaterialPass::GetBlendDstAlphaFunc() const { return m_pipelineInfo.blend.dstAlpha; } - inline BlendFunc Material::GetBlendDstColorFunc() const + inline BlendFunc MaterialPass::GetBlendDstColorFunc() const { return m_pipelineInfo.blend.dstColor; } - inline BlendFunc Material::GetBlendSrcAlphaFunc() const + inline BlendFunc MaterialPass::GetBlendSrcAlphaFunc() const { return m_pipelineInfo.blend.srcAlpha; } - inline BlendFunc Material::GetBlendSrcColorFunc() const + inline BlendFunc MaterialPass::GetBlendSrcColorFunc() const { return m_pipelineInfo.blend.srcColor; } @@ -292,7 +292,7 @@ namespace Nz * * \see SetFaceCulling */ - inline FaceSide Material::GetFaceCulling() const + inline FaceSide MaterialPass::GetFaceCulling() const { return m_pipelineInfo.cullingSide; } @@ -301,7 +301,7 @@ namespace Nz * \brief Gets the face filling * \return Current face filling */ - inline FaceFilling Material::GetFaceFilling() const + inline FaceFilling MaterialPass::GetFaceFilling() const { return m_pipelineInfo.faceFilling; } @@ -310,7 +310,7 @@ namespace Nz * \brief Gets the line width of this material * \return Line width */ - inline float Material::GetLineWidth() const + inline float MaterialPass::GetLineWidth() const { return m_pipelineInfo.lineWidth; } @@ -319,7 +319,7 @@ namespace Nz * \brief Gets the render states * \return Constant reference to the render states */ - inline const std::shared_ptr& Material::GetPipeline() const + inline const std::shared_ptr& MaterialPass::GetPipeline() const { EnsurePipelineUpdate(); @@ -330,7 +330,7 @@ namespace Nz * \brief Gets the pipeline informations * \return Constant reference to the pipeline info */ - inline const MaterialPipelineInfo& Material::GetPipelineInfo() const + inline const MaterialPipelineInfo& MaterialPass::GetPipelineInfo() const { return m_pipelineInfo; } @@ -339,17 +339,17 @@ namespace Nz * \brief Gets the point size of this material * \return Point size */ - inline float Material::GetPointSize() const + inline float MaterialPass::GetPointSize() const { return m_pipelineInfo.pointSize; } - inline PrimitiveMode Material::GetPrimitiveMode() const + inline PrimitiveMode MaterialPass::GetPrimitiveMode() const { return m_pipelineInfo.primitiveMode; } - inline const std::shared_ptr& Material::GetSettings() const + inline const std::shared_ptr& MaterialPass::GetSettings() const { return m_settings; } @@ -358,42 +358,42 @@ namespace Nz * \brief Gets the über-shader used by this material * \return Constant pointer to the über-shader used */ - inline const std::shared_ptr& Material::GetShader(ShaderStageType shaderStage) const + inline const std::shared_ptr& MaterialPass::GetShader(ShaderStageType shaderStage) const { return m_pipelineInfo.shaders[UnderlyingCast(shaderStage)].uberShader; } - inline ShaderBinding& Material::GetShaderBinding() + inline ShaderBinding& MaterialPass::GetShaderBinding() { assert(m_shaderBinding); return *m_shaderBinding; } - inline const std::shared_ptr& Material::GetTexture(std::size_t textureIndex) const + inline const std::shared_ptr& MaterialPass::GetTexture(std::size_t textureIndex) const { NazaraAssert(textureIndex < m_textures.size(), "Invalid texture index"); return m_textures[textureIndex].texture; } - inline const TextureSamplerInfo& Material::GetTextureSampler(std::size_t textureIndex) const + inline const TextureSamplerInfo& MaterialPass::GetTextureSampler(std::size_t textureIndex) const { NazaraAssert(textureIndex < m_textures.size(), "Invalid texture index"); return m_textures[textureIndex].samplerInfo; } - inline const std::shared_ptr& Material::GetUniformBuffer(std::size_t bufferIndex) const + inline const std::shared_ptr& MaterialPass::GetUniformBuffer(std::size_t bufferIndex) const { NazaraAssert(bufferIndex < m_uniformBuffers.size(), "Invalid uniform buffer index"); return m_uniformBuffers[bufferIndex].buffer; } - inline const std::vector& Material::GetUniformBufferConstData(std::size_t bufferIndex) + inline const std::vector& MaterialPass::GetUniformBufferConstData(std::size_t bufferIndex) { NazaraAssert(bufferIndex < m_uniformBuffers.size(), "Invalid uniform buffer index"); return m_uniformBuffers[bufferIndex].data; } - inline std::vector& Material::GetUniformBufferData(std::size_t bufferIndex) + inline std::vector& MaterialPass::GetUniformBufferData(std::size_t bufferIndex) { NazaraAssert(bufferIndex < m_uniformBuffers.size(), "Invalid uniform buffer index"); UniformBuffer& uboEntry = m_uniformBuffers[bufferIndex]; @@ -402,7 +402,7 @@ namespace Nz return uboEntry.data; } - inline bool Material::HasTexture(std::size_t textureIndex) const + inline bool MaterialPass::HasTexture(std::size_t textureIndex) const { return GetTexture(textureIndex) != nullptr; } @@ -411,7 +411,7 @@ namespace Nz * \brief Checks whether this material has blending enabled * \return true If it is the case */ - inline bool Material::IsBlendingEnabled() const + inline bool MaterialPass::IsBlendingEnabled() const { return m_pipelineInfo.blending; } @@ -420,7 +420,7 @@ namespace Nz * \brief Checks whether this material has color write enabled * \return true If it is the case */ - inline bool Material::IsColorWriteEnabled() const + inline bool MaterialPass::IsColorWriteEnabled() const { return m_pipelineInfo.colorWrite; } @@ -429,7 +429,7 @@ namespace Nz * \brief Checks whether this material has depth buffer enabled * \return true If it is the case */ - inline bool Material::IsDepthBufferEnabled() const + inline bool MaterialPass::IsDepthBufferEnabled() const { return m_pipelineInfo.depthBuffer; } @@ -438,7 +438,7 @@ namespace Nz * \brief Checks whether this material has depth clamping enabled * \return true If it is the case */ - inline bool Material::IsDepthClampEnabled() const + inline bool MaterialPass::IsDepthClampEnabled() const { return m_pipelineInfo.depthClamp; } @@ -447,7 +447,7 @@ namespace Nz * \brief Checks whether this material has depth writing enabled * \return true If it is the case */ - inline bool Material::IsDepthWriteEnabled() const + inline bool MaterialPass::IsDepthWriteEnabled() const { return m_pipelineInfo.depthWrite; } @@ -456,12 +456,12 @@ namespace Nz * \brief Checks whether this material has face culling enabled * \return true If it is the case */ - inline bool Material::IsFaceCullingEnabled() const + inline bool MaterialPass::IsFaceCullingEnabled() const { return m_pipelineInfo.faceCulling; } - inline bool Material::IsOptionEnabled(std::size_t optionIndex) const + inline bool MaterialPass::IsOptionEnabled(std::size_t optionIndex) const { return TestBit(m_enabledOptions, optionIndex); } @@ -470,7 +470,7 @@ namespace Nz * \brief Checks whether this material has scissor test enabled * \return true If it is the case */ - inline bool Material::IsScissorTestEnabled() const + inline bool MaterialPass::IsScissorTestEnabled() const { return m_pipelineInfo.scissorTest; } @@ -479,7 +479,7 @@ namespace Nz * \brief Checks whether this material has stencil test enabled * \return true If it is the case */ - inline bool Material::IsStencilTestEnabled() const + inline bool MaterialPass::IsStencilTestEnabled() const { return m_pipelineInfo.stencilTest; } @@ -491,14 +491,14 @@ namespace Nz * * \remark Invalidates the pipeline */ - inline void Material::SetDepthCompareFunc(RendererComparison depthFunc) + inline void MaterialPass::SetDepthCompareFunc(RendererComparison depthFunc) { m_pipelineInfo.depthCompare = depthFunc; InvalidatePipeline(); } - inline void Material::SetBlendEquation(BlendEquation colorMode, BlendEquation alphaMode) + inline void MaterialPass::SetBlendEquation(BlendEquation colorMode, BlendEquation alphaMode) { m_pipelineInfo.blend.modeAlpha = alphaMode; m_pipelineInfo.blend.modeColor = colorMode; @@ -506,7 +506,7 @@ namespace Nz InvalidatePipeline(); } - inline void Material::SetBlendFunc(BlendFunc srcColor, BlendFunc dstColor, BlendFunc srcAlpha, BlendFunc dstAlpha) + inline void MaterialPass::SetBlendFunc(BlendFunc srcColor, BlendFunc dstColor, BlendFunc srcAlpha, BlendFunc dstAlpha) { m_pipelineInfo.blend.dstAlpha = dstAlpha; m_pipelineInfo.blend.dstColor = dstColor; @@ -523,7 +523,7 @@ namespace Nz * * \remark Invalidates the pipeline */ - inline void Material::SetFaceCulling(FaceSide faceSide) + inline void MaterialPass::SetFaceCulling(FaceSide faceSide) { m_pipelineInfo.cullingSide = faceSide; @@ -537,7 +537,7 @@ namespace Nz * * \remark Invalidates the pipeline */ - inline void Material::SetFaceFilling(FaceFilling filling) + inline void MaterialPass::SetFaceFilling(FaceFilling filling) { m_pipelineInfo.faceFilling = filling; @@ -555,7 +555,7 @@ namespace Nz * * \see GetLineWidth */ - inline void Material::SetLineWidth(float lineWidth) + inline void MaterialPass::SetLineWidth(float lineWidth) { m_pipelineInfo.lineWidth = lineWidth; @@ -573,7 +573,7 @@ namespace Nz * * \see GetPointSize */ - inline void Material::SetPointSize(float pointSize) + inline void MaterialPass::SetPointSize(float pointSize) { m_pipelineInfo.pointSize = pointSize; @@ -581,14 +581,14 @@ namespace Nz } - inline void Material::SetPrimitiveMode(PrimitiveMode mode) + inline void MaterialPass::SetPrimitiveMode(PrimitiveMode mode) { m_pipelineInfo.primitiveMode = mode; InvalidatePipeline(); } - inline void Material::SetTexture(std::size_t textureIndex, std::shared_ptr texture) + inline void MaterialPass::SetTexture(std::size_t textureIndex, std::shared_ptr texture) { NazaraAssert(textureIndex < m_textures.size(), "Invalid texture index"); if (m_textures[textureIndex].texture != texture) @@ -598,7 +598,7 @@ namespace Nz } } - inline void Material::SetTextureSampler(std::size_t textureIndex, TextureSamplerInfo samplerInfo) + inline void MaterialPass::SetTextureSampler(std::size_t textureIndex, TextureSamplerInfo samplerInfo) { NazaraAssert(textureIndex < m_textures.size(), "Invalid texture index"); if (m_textures[textureIndex].samplerInfo != samplerInfo) @@ -608,7 +608,7 @@ namespace Nz } } - inline void Material::SetUniformBuffer(std::size_t bufferIndex, std::shared_ptr uniformBuffer) + inline void MaterialPass::SetUniformBuffer(std::size_t bufferIndex, std::shared_ptr uniformBuffer) { NazaraAssert(bufferIndex < m_uniformBuffers.size(), "Invalid shared uniform buffer index"); if (m_uniformBuffers[bufferIndex].buffer != uniformBuffer) @@ -619,19 +619,19 @@ namespace Nz } } - inline void Material::InvalidatePipeline() + inline void MaterialPass::InvalidatePipeline() { m_pipelineUpdated = false; OnMaterialInvalidated(this); } - inline void Material::InvalidateShaderBinding() + inline void MaterialPass::InvalidateShaderBinding() { m_shaderBindingUpdated = false; OnMaterialInvalidated(this); } - inline void Material::InvalidateTextureSampler(std::size_t textureIndex) + inline void MaterialPass::InvalidateTextureSampler(std::size_t textureIndex) { assert(textureIndex < m_textures.size()); m_textures[textureIndex].sampler.reset(); @@ -639,7 +639,7 @@ namespace Nz InvalidateShaderBinding(); } - inline void Material::InvalidateUniformData(std::size_t uniformBufferIndex) + inline void MaterialPass::InvalidateUniformData(std::size_t uniformBufferIndex) { assert(uniformBufferIndex < m_uniformBuffers.size()); UniformBuffer& uboEntry = m_uniformBuffers[uniformBufferIndex]; diff --git a/include/Nazara/Graphics/Model.hpp b/include/Nazara/Graphics/Model.hpp index b59d7aec1..a4a3e4f92 100644 --- a/include/Nazara/Graphics/Model.hpp +++ b/include/Nazara/Graphics/Model.hpp @@ -18,7 +18,7 @@ namespace Nz { class GraphicalMesh; - class Material; + class MaterialPass; class NAZARA_GRAPHICS_API Model : public InstancedRenderable { @@ -32,13 +32,13 @@ namespace Nz const std::shared_ptr& GetIndexBuffer(std::size_t subMeshIndex) const; std::size_t GetIndexCount(std::size_t subMeshIndex) const; - const std::shared_ptr& GetMaterial(std::size_t subMeshIndex) const override; + const std::shared_ptr& GetMaterial(std::size_t subMeshIndex) const override; std::size_t GetMaterialCount() const override; const std::shared_ptr& GetRenderPipeline(std::size_t subMeshIndex) const; const std::shared_ptr& GetVertexBuffer(std::size_t subMeshIndex) const; inline std::size_t GetSubMeshCount() const; - inline void SetMaterial(std::size_t subMeshIndex, std::shared_ptr material); + inline void SetMaterial(std::size_t subMeshIndex, std::shared_ptr material); Model& operator=(const Model&) = delete; Model& operator=(Model&&) noexcept = default; @@ -46,7 +46,7 @@ namespace Nz private: struct SubMeshData { - std::shared_ptr material; + std::shared_ptr material; std::vector vertexBufferData; }; diff --git a/include/Nazara/Graphics/Model.inl b/include/Nazara/Graphics/Model.inl index d68b51d7e..58e22a02a 100644 --- a/include/Nazara/Graphics/Model.inl +++ b/include/Nazara/Graphics/Model.inl @@ -13,7 +13,7 @@ namespace Nz return m_subMeshes.size(); } - inline void Model::SetMaterial(std::size_t subMeshIndex, std::shared_ptr material) + inline void Model::SetMaterial(std::size_t subMeshIndex, std::shared_ptr material) { assert(subMeshIndex < m_subMeshes.size()); diff --git a/include/Nazara/Graphics/PhongLightingMaterial.hpp b/include/Nazara/Graphics/PhongLightingMaterial.hpp index 34f4cf42a..1cda99896 100644 --- a/include/Nazara/Graphics/PhongLightingMaterial.hpp +++ b/include/Nazara/Graphics/PhongLightingMaterial.hpp @@ -8,7 +8,7 @@ #define NAZARA_PHONG_LIGHTING_MATERIAL_HPP #include -#include +#include namespace Nz { @@ -17,7 +17,7 @@ namespace Nz friend class MaterialPipeline; public: - PhongLightingMaterial(Material& material); + PhongLightingMaterial(MaterialPass& material); inline const std::shared_ptr& GetAlphaMap() const; float GetAlphaThreshold() const; @@ -86,7 +86,7 @@ namespace Nz static bool Initialize(); static void Uninitialize(); - Material& m_material; + MaterialPass& m_material; std::size_t m_phongUniformIndex; TextureIndexes m_textureIndexes; PhongUniformOffsets m_phongUniformOffsets; diff --git a/src/Nazara/Graphics/BasicMaterial.cpp b/src/Nazara/Graphics/BasicMaterial.cpp index 8610ad051..96547a221 100644 --- a/src/Nazara/Graphics/BasicMaterial.cpp +++ b/src/Nazara/Graphics/BasicMaterial.cpp @@ -26,7 +26,7 @@ namespace Nz }; } - BasicMaterial::BasicMaterial(Material& material) : + BasicMaterial::BasicMaterial(MaterialPass& material) : m_material(material) { // Most common case: don't fetch texture indexes as a little optimization diff --git a/src/Nazara/Graphics/ForwardFramePipeline.cpp b/src/Nazara/Graphics/ForwardFramePipeline.cpp index c0e4b3b03..3d41f4efd 100644 --- a/src/Nazara/Graphics/ForwardFramePipeline.cpp +++ b/src/Nazara/Graphics/ForwardFramePipeline.cpp @@ -41,7 +41,7 @@ namespace Nz if (auto it = renderableMap.find(instancedRenderable); it == renderableMap.end()) { auto& renderableData = renderableMap.emplace(instancedRenderable, RenderableData{}).first->second; - renderableData.onMaterialInvalidated.Connect(instancedRenderable->OnMaterialInvalidated, [this](InstancedRenderable* instancedRenderable, std::size_t materialIndex, const std::shared_ptr& newMaterial) + renderableData.onMaterialInvalidated.Connect(instancedRenderable->OnMaterialInvalidated, [this](InstancedRenderable* instancedRenderable, std::size_t materialIndex, const std::shared_ptr& newMaterial) { if (newMaterial) RegisterMaterial(newMaterial.get()); @@ -56,7 +56,7 @@ namespace Nz std::size_t matCount = instancedRenderable->GetMaterialCount(); for (std::size_t i = 0; i < matCount; ++i) { - if (Material* mat = instancedRenderable->GetMaterial(i).get()) + if (MaterialPass* mat = instancedRenderable->GetMaterial(i).get()) RegisterMaterial(mat); } @@ -99,7 +99,7 @@ namespace Nz m_invalidatedWorldInstances.clear(); - for (Material* material : m_invalidatedMaterials) + for (MaterialPass* material : m_invalidatedMaterials) { if (material->Update(renderFrame, builder)) m_rebuildForwardPass = true; @@ -192,7 +192,7 @@ namespace Nz std::size_t matCount = instancedRenderable->GetMaterialCount(); for (std::size_t i = 0; i < matCount; ++i) { - if (Material* mat = instancedRenderable->GetMaterial(i).get()) + if (MaterialPass* mat = instancedRenderable->GetMaterial(i).get()) UnregisterMaterial(mat); } @@ -268,13 +268,13 @@ namespace Nz return frameGraph.Bake(); } - void ForwardFramePipeline::RegisterMaterial(Material* material) + void ForwardFramePipeline::RegisterMaterial(MaterialPass* material) { auto it = m_materials.find(material); if (it == m_materials.end()) { it = m_materials.emplace(material, MaterialData{}).first; - it->second.onMaterialInvalided.Connect(material->OnMaterialInvalidated, [this, material](const Material* /*material*/) + it->second.onMaterialInvalided.Connect(material->OnMaterialInvalidated, [this, material](const MaterialPass* /*material*/) { m_invalidatedMaterials.insert(material); }); @@ -285,7 +285,7 @@ namespace Nz it->second.usedCount++; } - void ForwardFramePipeline::UnregisterMaterial(Material* material) + void ForwardFramePipeline::UnregisterMaterial(MaterialPass* material) { auto it = m_materials.find(material); assert(it != m_materials.end()); diff --git a/src/Nazara/Graphics/Material.cpp b/src/Nazara/Graphics/MaterialPass.cpp similarity index 94% rename from src/Nazara/Graphics/Material.cpp rename to src/Nazara/Graphics/MaterialPass.cpp index be7a01ba2..8a1332b6e 100644 --- a/src/Nazara/Graphics/Material.cpp +++ b/src/Nazara/Graphics/MaterialPass.cpp @@ -2,7 +2,7 @@ // This file is part of the "Nazara Engine - Graphics module" // For conditions of distribution and use, see copyright notice in Config.hpp -#include +#include #include #include #include @@ -26,7 +26,7 @@ namespace Nz * * \see Reset */ - Material::Material(std::shared_ptr settings) : + MaterialPass::MaterialPass(std::shared_ptr settings) : m_settings(std::move(settings)), m_enabledOptions(0), m_pipelineUpdated(false), @@ -64,7 +64,7 @@ namespace Nz UpdateShaderBinding(); } - bool Material::Update(RenderFrame& renderFrame, CommandBufferBuilder& builder) + bool MaterialPass::Update(RenderFrame& renderFrame, CommandBufferBuilder& builder) { bool shouldRegenerateCommandBuffer = false; if (!m_shaderBindingUpdated) @@ -95,7 +95,7 @@ namespace Nz return shouldRegenerateCommandBuffer; } - void Material::UpdatePipeline() const + void MaterialPass::UpdatePipeline() const { for (auto& shader : m_pipelineInfo.shaders) shader.enabledOptions = 0; @@ -122,7 +122,7 @@ namespace Nz m_pipelineUpdated = true; } - void Material::UpdateShaderBinding() + void MaterialPass::UpdateShaderBinding() { assert(!m_shaderBinding); diff --git a/src/Nazara/Graphics/MaterialPipeline.cpp b/src/Nazara/Graphics/MaterialPipeline.cpp index 5f3446315..86f822a1a 100644 --- a/src/Nazara/Graphics/MaterialPipeline.cpp +++ b/src/Nazara/Graphics/MaterialPipeline.cpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/Nazara/Graphics/Model.cpp b/src/Nazara/Graphics/Model.cpp index d9648a6ee..f97a2fa09 100644 --- a/src/Nazara/Graphics/Model.cpp +++ b/src/Nazara/Graphics/Model.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include #include @@ -57,7 +57,7 @@ namespace Nz return m_graphicalMesh->GetIndexCount(subMeshIndex); } - const std::shared_ptr& Model::GetMaterial(std::size_t subMeshIndex) const + const std::shared_ptr& Model::GetMaterial(std::size_t subMeshIndex) const { assert(subMeshIndex < m_subMeshes.size()); const auto& subMeshData = m_subMeshes[subMeshIndex]; diff --git a/src/Nazara/Graphics/PhongLightingMaterial.cpp b/src/Nazara/Graphics/PhongLightingMaterial.cpp index 0f103b676..90a5201e2 100644 --- a/src/Nazara/Graphics/PhongLightingMaterial.cpp +++ b/src/Nazara/Graphics/PhongLightingMaterial.cpp @@ -15,7 +15,7 @@ namespace Nz { - PhongLightingMaterial::PhongLightingMaterial(Material& material) : + PhongLightingMaterial::PhongLightingMaterial(MaterialPass& material) : m_material(material) { // Most common case: don't fetch texture indexes as a little optimization