Revision: 49546
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49546
Author: moguri
Date: 2012-08-03 23:45:47 +0000 (Fri, 03 Aug 2012)
Log Message:
-----------
Patch from Daniel Stokes to fix bugs when using VBOs and a mesh gets split
across different material buckets.
Modified Paths:
--------------
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_BucketManager.cpp
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
Modified:
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_BucketManager.cpp
===================================================================
---
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_BucketManager.cpp
2012-08-03 23:44:50 UTC (rev 49545)
+++
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_BucketManager.cpp
2012-08-03 23:45:47 UTC (rev 49546)
@@ -233,8 +233,26 @@
rasty->ClearCachingInfo();
RenderSolidBuckets(cameratrans, rasty, rendertools);
- RenderAlphaBuckets(cameratrans, rasty, rendertools);
+ RenderAlphaBuckets(cameratrans, rasty, rendertools);
+ /* All meshes should be up to date now */
+ /* Don't do this while processing buckets because some meshes are split
between buckets */
+ BucketList::iterator bit;
+ list<RAS_MeshSlot>::iterator mit;
+ for (bit = m_SolidBuckets.begin(); bit != m_SolidBuckets.end(); ++bit) {
+ RAS_MaterialBucket* bucket = *bit;
+ for (mit = (*bit)->msBegin(); mit != (*bit)->msEnd(); ++mit) {
+ mit->m_mesh->SetMeshModified(false);
+ }
+ }
+ for (bit = m_AlphaBuckets.begin(); bit != m_AlphaBuckets.end(); ++bit) {
+ RAS_MaterialBucket* bucket = *bit;
+ for (mit = (*bit)->msBegin(); mit != (*bit)->msEnd(); ++mit) {
+ mit->m_mesh->SetMeshModified(false);
+ }
+ }
+
+
rendertools->SetClientObject(rasty, NULL);
}
Modified:
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
===================================================================
---
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
2012-08-03 23:44:50 UTC (rev 49545)
+++
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
2012-08-03 23:45:47 UTC (rev 49546)
@@ -651,9 +651,6 @@
else
rasty->IndexPrimitives(ms);
-
- ms.m_mesh->SetMeshModified(false);
-
rendertools->PopMatrix();
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs