From e073e1a44d7a2a9fb758667ea1c167fb3e4144d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Sun, 20 Jun 2021 13:42:00 +0200 Subject: [PATCH] Graphics/Material: Add PrimitiveMode support --- include/Nazara/Graphics/Material.hpp | 2 ++ include/Nazara/Graphics/Material.inl | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/Nazara/Graphics/Material.hpp b/include/Nazara/Graphics/Material.hpp index 2a737d1f2..dae8c1d17 100644 --- a/include/Nazara/Graphics/Material.hpp +++ b/include/Nazara/Graphics/Material.hpp @@ -68,6 +68,7 @@ namespace Nz inline const std::shared_ptr& GetPipeline() const; inline const MaterialPipelineInfo& GetPipelineInfo() const; inline float GetPointSize() const; + inline PrimitiveMode GetPrimitiveMode() const; inline const std::shared_ptr& GetSettings() const; inline const std::shared_ptr& GetShader(ShaderStageType shaderStage) const; inline ShaderBinding& GetShaderBinding(); @@ -100,6 +101,7 @@ namespace Nz inline void SetFaceFilling(FaceFilling filling); inline void SetLineWidth(float lineWidth); inline void SetPointSize(float pointSize); + inline void SetPrimitiveMode(PrimitiveMode mode); inline void SetTexture(std::size_t textureIndex, std::shared_ptr texture); inline void SetTextureSampler(std::size_t textureIndex, TextureSamplerInfo samplerInfo); inline void SetUniformBuffer(std::size_t bufferIndex, std::shared_ptr uniformBuffer); diff --git a/include/Nazara/Graphics/Material.inl b/include/Nazara/Graphics/Material.inl index 697930b04..c9687814d 100644 --- a/include/Nazara/Graphics/Material.inl +++ b/include/Nazara/Graphics/Material.inl @@ -425,6 +425,11 @@ namespace Nz return m_pipelineInfo.pointSize; } + inline PrimitiveMode Material::GetPrimitiveMode() const + { + return m_pipelineInfo.primitiveMode; + } + inline const std::shared_ptr& Material::GetSettings() const { return m_settings; @@ -693,6 +698,14 @@ namespace Nz InvalidatePipeline(); } + + inline void Material::SetPrimitiveMode(PrimitiveMode mode) + { + m_pipelineInfo.primitiveMode = mode; + + InvalidatePipeline(); + } + inline void Material::SetTexture(std::size_t textureIndex, std::shared_ptr texture) { NazaraAssert(textureIndex < m_textures.size(), "Invalid texture index");