Fix T40257: Frustum culling not working properly
Adding a hack so that KX_GameObjects' culling status is updated based on mesh slots.
This commit is contained in:
@@ -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)
|
static void setOccluder_recursive(SG_Node* node, bool v)
|
||||||
{
|
{
|
||||||
NodeList& children = node->GetSGChildren();
|
NodeList& children = node->GetSGChildren();
|
||||||
|
@@ -852,10 +852,10 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Was this object culled?
|
* Was this object culled?
|
||||||
*/
|
*/
|
||||||
inline bool
|
bool
|
||||||
GetCulled(
|
GetCulled(
|
||||||
void
|
void
|
||||||
) { return m_bCulled; }
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set culled flag of this object
|
* Set culled flag of this object
|
||||||
|
Reference in New Issue
Block a user