diff options
author | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-05-26 16:01:08 +0400 |
---|---|---|
committer | Kester Maddock <Christopher.Maddock.1@uni.massey.ac.nz> | 2004-05-26 16:01:08 +0400 |
commit | e5cc9abceb5047b934b3ae8c4aac521d7e82fc00 (patch) | |
tree | a97e64cfcc8f28541facfb127e64cf851401f1e5 /source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp | |
parent | 05e76c22b08cd2844b25d9c45b25581da78ee7c9 (diff) |
Fix Bug #1309 Disabling Actor leaves Ghost, Dynamic and Rigid Body etc enabled.
Depth sorting for Transparent polygons. Use ZTransp in Material buttons to enable.
This will cause an object's polygons to be sorted (back to front for alpha polygons, front to back for solid polygons.)
Diffstat (limited to 'source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp index 6a202780652..b5b47598b1b 100644 --- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp +++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp @@ -42,7 +42,8 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname, int tilexrep, int tileyrep, int mode, - int transparant, + bool transparant, + bool zsort, int lightlayer, bool bIsTriangle, void* clientobject=NULL) : @@ -54,6 +55,7 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname, m_tileyrep(tileyrep), m_drawingmode (mode), m_transparant(transparant), + m_zsort(zsort), m_lightlayer(lightlayer), m_bIsTriangle(bIsTriangle) { @@ -71,6 +73,7 @@ bool RAS_IPolyMaterial::Equals(const RAS_IPolyMaterial& lhs) const this->m_tilexrep == lhs.m_tilexrep && this->m_tileyrep == lhs.m_tileyrep && this->m_transparant == lhs.m_transparant && + this->m_zsort == lhs.m_zsort && this->m_drawingmode == lhs.m_drawingmode && this->m_bIsTriangle == lhs.m_bIsTriangle && this->m_lightlayer == lhs.m_lightlayer && @@ -117,51 +120,49 @@ bool RAS_IPolyMaterial::Less(const RAS_IPolyMaterial& rhs) const m_tilexrep > rhs.m_tilexrep) return false; - return (m_tilexrep < rhs.m_tilexrep || - m_tile < rhs.m_tile); + if (m_tilexrep < rhs.m_tilexrep || + m_tile < rhs.m_tile) + return true; + + return !(m_tile > rhs.m_tile || + m_zsort > rhs.m_zsort); } -int RAS_IPolyMaterial::GetLightLayer() +int RAS_IPolyMaterial::GetLightLayer() const { return m_lightlayer; } - - -bool RAS_IPolyMaterial::IsTransparant() +bool RAS_IPolyMaterial::IsTransparant() const { - return (m_transparant != 0); + return m_transparant; } +bool RAS_IPolyMaterial::IsZSort() const +{ + return m_zsort; +} - -bool RAS_IPolyMaterial::UsesTriangles() +bool RAS_IPolyMaterial::UsesTriangles() const { return m_bIsTriangle; } - - unsigned int RAS_IPolyMaterial::hash() const { return m_texturename.hash(); } - - -int RAS_IPolyMaterial::GetDrawingMode() +int RAS_IPolyMaterial::GetDrawingMode() const { return m_drawingmode; } - - const STR_String& RAS_IPolyMaterial::GetMaterialName() const { return m_materialname; } - const STR_String& RAS_IPolyMaterial::GetTextureName() const { return m_texturename; |