[Bf-blender-cvs] [51c32ac] master: Revert "Fix T37920: BGE LibLoad failed for meshes with no materials"
Campbell Barton
noreply at git.blender.org
Wed Jan 22 14:50:47 CET 2014
Commit: 51c32ac1996f3e6794b1fe29d4e03b10360f9455
Author: Campbell Barton
Date: Thu Jan 23 00:49:58 2014 +1100
https://developer.blender.org/rB51c32ac1996f3e6794b1fe29d4e03b10360f9455
Revert "Fix T37920: BGE LibLoad failed for meshes with no materials"
This reverts commit 6a473305af22468abfc4c4f8f3002dc0a97fffd7.
Caused T38296, need to investigate this further but for now
better not leave blender in unstable state.
===================================================================
M source/gameengine/Converter/KX_BlenderSceneConverter.cpp
M source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
M source/gameengine/Rasterizer/RAS_MaterialBucket.h
M source/gameengine/Rasterizer/RAS_MeshObject.cpp
===================================================================
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 1d7d3eb..c58746a 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -1313,8 +1313,6 @@ bool KX_BlenderSceneConverter::FreeBlendFile(struct Main *maggie)
int size_before = obs->GetCount();
- gameobj->RemoveMeshes();
-
/* Eventually calls RemoveNodeDestructObject
* frees m_map_gameobject_to_blender from UnregisterGameObject */
scene->RemoveObject(gameobj);
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
index b7a5804..0c71552 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
@@ -558,7 +558,7 @@ RAS_MeshSlot* RAS_MaterialBucket::CopyMesh(RAS_MeshSlot *ms)
return &m_meshSlots.back();
}
-void RAS_MaterialBucket::RemoveMeshSlot(RAS_MeshSlot *ms)
+void RAS_MaterialBucket::RemoveMesh(RAS_MeshSlot* ms)
{
list<RAS_MeshSlot>::iterator it;
@@ -570,20 +570,6 @@ void RAS_MaterialBucket::RemoveMeshSlot(RAS_MeshSlot *ms)
}
}
-void RAS_MaterialBucket::RemoveMesh(RAS_MeshObject *mesh)
-{
- list<RAS_MeshSlot>::iterator it;
- it=m_meshSlots.begin();
- while (it != m_meshSlots.end()) {
- if ((*it).m_mesh == mesh) {
- m_meshSlots.erase(it++);
- }
- else {
- ++it;
- }
- }
-}
-
list<RAS_MeshSlot>::iterator RAS_MaterialBucket::msBegin()
{
return m_meshSlots.begin();
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
index a55bf1d..007fdf2 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
@@ -228,8 +228,7 @@ public:
class RAS_MeshSlot* AddMesh(int numverts);
class RAS_MeshSlot* CopyMesh(class RAS_MeshSlot *ms);
- void RemoveMeshSlot(class RAS_MeshSlot *ms);
- void RemoveMesh(class RAS_MeshObject *mesh);
+ void RemoveMesh(class RAS_MeshSlot* ms);
void Optimize(MT_Scalar distance);
void ActivateMesh(RAS_MeshSlot* slot)
{
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
index fb13596..ff909b5 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
@@ -458,14 +458,9 @@ void RAS_MeshObject::RemoveFromBuckets(void *clientobj)
if (!msp)
continue;
- /* see [#37920] */
-#if 0
RAS_MeshSlot *ms = *msp;
- it->m_bucket->RemoveMeshSlot(ms);
-#else
- it->m_bucket->RemoveMesh(this);
-#endif
+ it->m_bucket->RemoveMesh(ms);
it->m_slots.remove(clientobj);
}
}
More information about the Bf-blender-cvs
mailing list