Commit: 978dba4616852e0b94374f2ae56934049d9b3669
Author: Mitchell Stokes
Date:   Tue Jul 1 12:39:17 2014 -0700
https://developer.blender.org/rB978dba4616852e0b94374f2ae56934049d9b3669

Fix T40257: Frustum culling not working properly

Adding a hack so that KX_GameObjects' culling status is updated based on
mesh slots.

===================================================================

M       source/gameengine/Ketsji/KX_GameObject.cpp
M       source/gameengine/Ketsji/KX_GameObject.h

===================================================================

diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp 
b/source/gameengine/Ketsji/KX_GameObject.cpp
index 9e8e58e..7b78134 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -928,6 +928,27 @@ KX_GameObject::SetVisible(
        }
 }
 
+bool KX_GameObject::GetCulled()
+{
+       // If we're set to not cull, double-check with
+       // the mesh slots first. This is kind of nasty, but
+       // it allows us to get proper culling information.
+       if (!m_bCulled)
+       {
+               SG_QList::iterator<RAS_MeshSlot> mit(m_meshSlots);
+               for (mit.begin(); !mit.end(); ++mit)
+               {
+                       if ((*mit)->m_bCulled)
+                       {
+                               m_bCulled = true;
+                               break;
+                       }
+               }
+       }
+
+       return m_bCulled;
+}
+
 static void setOccluder_recursive(SG_Node* node, bool v)
 {
        NodeList& children = node->GetSGChildren();
diff --git a/source/gameengine/Ketsji/KX_GameObject.h 
b/source/gameengine/Ketsji/KX_GameObject.h
index 7450be4..f7f40ac 100644
--- a/source/gameengine/Ketsji/KX_GameObject.h
+++ b/source/gameengine/Ketsji/KX_GameObject.h
@@ -852,10 +852,10 @@ public:
        /**
         * Was this object culled?
         */
-       inline bool
+       bool
        GetCulled(
                void
-       ) { return m_bCulled; }
+       );
 
        /**
         * Set culled flag of this object

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to