diff --git a/include/Nazara/Renderer/Material.hpp b/include/Nazara/Renderer/Material.hpp index f7c1eca29..6c11f9599 100644 --- a/include/Nazara/Renderer/Material.hpp +++ b/include/Nazara/Renderer/Material.hpp @@ -64,7 +64,7 @@ class NAZARA_API NzMaterial : public NzResource const NzTextureSampler& GetDiffuseSampler() const; nzBlendFunc GetDstBlend() const; NzTexture* GetEmissiveMap() const; - nzFaceCulling GetFaceCulling() const; + nzFaceSide GetFaceCulling() const; nzFaceFilling GetFaceFilling() const; NzTexture* GetHeightMap() const; NzTexture* GetNormalMap() const; @@ -107,7 +107,7 @@ class NAZARA_API NzMaterial : public NzResource void SetDstBlend(nzBlendFunc func); bool SetEmissiveMap(const NzString& texturePath); void SetEmissiveMap(NzTexture* map); - void SetFaceCulling(nzFaceCulling culling); + void SetFaceCulling(nzFaceSide faceSide); void SetFaceFilling(nzFaceFilling filling); bool SetHeightMap(const NzString& texturePath); void SetHeightMap(NzTexture* map); diff --git a/include/Nazara/Renderer/OpenGL.hpp b/include/Nazara/Renderer/OpenGL.hpp index afa5974d4..006335dfb 100644 --- a/include/Nazara/Renderer/OpenGL.hpp +++ b/include/Nazara/Renderer/OpenGL.hpp @@ -133,8 +133,8 @@ class NAZARA_API NzOpenGL static GLenum BufferTargetBinding[nzBufferType_Max+1]; static GLenum BufferUsage[nzBufferUsage_Max+1]; static GLenum CubemapFace[6]; // Un cube possède six faces et ça n'est pas prêt de changer - static GLenum FaceCulling[nzFaceCulling_Max+1]; static GLenum FaceFilling[nzFaceFilling_Max+1]; + static GLenum FaceSide[nzFaceSide_Max+1]; static GLenum PrimitiveMode[nzPrimitiveMode_Max+1]; static GLenum QueryCondition[nzGpuQueryCondition_Max+1]; static GLenum QueryMode[nzGpuQueryMode_Max+1]; diff --git a/include/Nazara/Renderer/RenderStates.hpp b/include/Nazara/Renderer/RenderStates.hpp index d95d6dfb9..827ca6250 100644 --- a/include/Nazara/Renderer/RenderStates.hpp +++ b/include/Nazara/Renderer/RenderStates.hpp @@ -19,8 +19,8 @@ struct NzRenderStates nzBlendFunc dstBlend; nzBlendFunc srcBlend; - nzFaceCulling faceCulling; nzFaceFilling faceFilling; + nzFaceSide faceCulling; nzRendererComparison depthFunc; nzRendererComparison stencilCompare; nzStencilOperation stencilFail; diff --git a/include/Nazara/Renderer/RenderStates.inl b/include/Nazara/Renderer/RenderStates.inl index a7cdcf3c1..360982526 100644 --- a/include/Nazara/Renderer/RenderStates.inl +++ b/include/Nazara/Renderer/RenderStates.inl @@ -8,8 +8,8 @@ inline NzRenderStates::NzRenderStates() : dstBlend(nzBlendFunc_Zero), srcBlend(nzBlendFunc_One), -faceCulling(nzFaceCulling_Back), faceFilling(nzFaceFilling_Fill), +faceCulling(nzFaceSide_Back), depthFunc(nzRendererComparison_Less), stencilCompare(nzRendererComparison_Always), stencilFail(nzStencilOperation_Keep), diff --git a/src/Nazara/Renderer/Material.cpp b/src/Nazara/Renderer/Material.cpp index c3c39a2b3..55fec6b1e 100644 --- a/src/Nazara/Renderer/Material.cpp +++ b/src/Nazara/Renderer/Material.cpp @@ -231,7 +231,7 @@ NzTexture* NzMaterial::GetEmissiveMap() const return m_emissiveMap; } -nzFaceCulling NzMaterial::GetFaceCulling() const +nzFaceSide NzMaterial::GetFaceCulling() const { return m_states.faceCulling; } @@ -370,6 +370,8 @@ bool NzMaterial::LoadFromStream(NzInputStream& stream, const NzMaterialParams& p void NzMaterial::Reset() { + NotifyDestroy(); + m_alphaMap.Reset(); m_diffuseMap.Reset(); m_emissiveMap.Reset(); @@ -506,9 +508,9 @@ void NzMaterial::SetEmissiveMap(NzTexture* map) InvalidatePrograms(nzShaderTarget_Model); } -void NzMaterial::SetFaceCulling(nzFaceCulling culling) +void NzMaterial::SetFaceCulling(nzFaceSide faceSide) { - m_states.faceCulling = culling; + m_states.faceCulling = faceSide; } void NzMaterial::SetFaceFilling(nzFaceFilling filling) diff --git a/src/Nazara/Renderer/OpenGL.cpp b/src/Nazara/Renderer/OpenGL.cpp index 3b6ec3074..5355ecf49 100644 --- a/src/Nazara/Renderer/OpenGL.cpp +++ b/src/Nazara/Renderer/OpenGL.cpp @@ -177,7 +177,7 @@ void NzOpenGL::ApplyStates(const NzRenderStates& states) { if (currentRenderStates.faceCulling != states.faceCulling) { - glCullFace(FaceCulling[states.faceCulling]); + glCullFace(FaceSide[states.faceCulling]); currentRenderStates.faceCulling = states.faceCulling; } } @@ -1856,15 +1856,6 @@ GLenum NzOpenGL::CubemapFace[6] = static_assert(sizeof(NzOpenGL::CubemapFace)/sizeof(GLenum) == 6, "Cubemap face array is incomplete"); -GLenum NzOpenGL::FaceCulling[nzFaceCulling_Max+1] = -{ - GL_BACK, // nzFaceCulling_Back - GL_FRONT, // nzFaceCulling_Front - GL_FRONT_AND_BACK // nzFaceCulling_FrontAndBack -}; - -static_assert(sizeof(NzOpenGL::FaceCulling)/sizeof(GLenum) == nzFaceCulling_Max+1, "Face culling array is incomplete"); - GLenum NzOpenGL::FaceFilling[nzFaceFilling_Max+1] = { GL_POINT, // nzFaceFilling_Point @@ -1874,6 +1865,15 @@ GLenum NzOpenGL::FaceFilling[nzFaceFilling_Max+1] = static_assert(sizeof(NzOpenGL::FaceFilling)/sizeof(GLenum) == nzFaceFilling_Max+1, "Face filling array is incomplete"); +GLenum NzOpenGL::FaceSide[nzFaceSide_Max+1] = +{ + GL_BACK, // nzFaceSide_Back + GL_FRONT, // nzFaceSide_Front + GL_FRONT_AND_BACK // nzFaceSide_FrontAndBack +}; + +static_assert(sizeof(NzOpenGL::FaceSide)/sizeof(GLenum) == nzFaceSide_Max+1, "Face side array is incomplete"); + GLenum NzOpenGL::PrimitiveMode[nzPrimitiveMode_Max+1] = { GL_LINES, // nzPrimitiveMode_LineList