Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/gameengine/Rasterizer')
-rw-r--r--source/gameengine/Rasterizer/RAS_BucketManager.cpp8
-rw-r--r--source/gameengine/Rasterizer/RAS_FramingManager.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.h1
3 files changed, 16 insertions, 0 deletions
diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.cpp b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
index f7938bb62e6..ec290f89d9e 100644
--- a/source/gameengine/Rasterizer/RAS_BucketManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
@@ -148,6 +148,10 @@ void RAS_BucketManager::RenderAlphaBuckets(
while(sit->m_bucket->ActivateMaterial(cameratrans, rasty, rendertools))
sit->m_bucket->RenderMeshSlot(cameratrans, rasty, rendertools, *(sit->m_ms));
+
+ // make this mesh slot culled automatically for next frame
+ // it will be culled out by frustrum culling
+ sit->m_ms->SetCulled(true);
}
rasty->SetDepthMask(RAS_IRasterizer::KX_DEPTHMASK_ENABLED);
@@ -170,6 +174,10 @@ void RAS_BucketManager::RenderSolidBuckets(
while ((*bit)->ActivateMaterial(cameratrans, rasty, rendertools))
(*bit)->RenderMeshSlot(cameratrans, rasty, rendertools, *mit);
+
+ // make this mesh slot culled automatically for next frame
+ // it will be culled out by frustrum culling
+ mit->SetCulled(true);
}
}
diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.h b/source/gameengine/Rasterizer/RAS_FramingManager.h
index 610bd13ff12..0a226ac30f9 100644
--- a/source/gameengine/Rasterizer/RAS_FramingManager.h
+++ b/source/gameengine/Rasterizer/RAS_FramingManager.h
@@ -163,6 +163,13 @@ struct RAS_FrameFrustum
float x2,y2;
};
+/* must match R_CULLING_... from DNA_scene_types.h */
+enum RAS_CullingMode
+{
+ RAS_CULLING_DBVT = 0,
+ RAS_CULLING_NORMAL,
+ RAS_CULLING_NONE
+};
/**
* @section RAS_FramingManager
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
index 475f01d549a..211770318ae 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
@@ -156,6 +156,7 @@ public:
bool Join(RAS_MeshSlot *target, MT_Scalar distance);
bool Equals(RAS_MeshSlot *target);
bool IsCulled();
+ void SetCulled(bool culled) { m_bCulled = culled; }
};
/* Used by RAS_MeshObject, to point to it's slots in a bucket */