[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58423] trunk/blender: Merging from ge_dev to trunk r58091-58422.

Mitchell Stokes mogurijin at gmail.com
Sat Jul 20 00:37:40 CEST 2013


Revision: 58423
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58423
Author:   moguri
Date:     2013-07-19 22:37:40 +0000 (Fri, 19 Jul 2013)
Log Message:
-----------
Merging from ge_dev to trunk r58091-58422.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58091

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h
    trunk/blender/source/gameengine/Converter/KX_ConvertProperties.cpp
    trunk/blender/source/gameengine/GameLogic/SCA_IScene.cpp
    trunk/blender/source/gameengine/GameLogic/SCA_IScene.h
    trunk/blender/source/gameengine/GamePlayer/CMakeLists.txt
    trunk/blender/source/gameengine/GamePlayer/common/CMakeLists.txt
    trunk/blender/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_Canvas.h
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Canvas.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_System.h
    trunk/blender/source/gameengine/Ketsji/CMakeLists.txt
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
    trunk/blender/source/gameengine/Ketsji/KX_KetsjiEngine.h
    trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
    trunk/blender/source/gameengine/Ketsji/KX_Scene.h
    trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp

Removed Paths:
-------------
    trunk/blender/source/gameengine/GamePlayer/common/GPC_Engine.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_Engine.h
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RawImage.h
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RawLoadDotBlendArray.h
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RawLogoArrays.h
    trunk/blender/source/gameengine/GamePlayer/common/GPC_System.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_System.h
    trunk/blender/source/gameengine/GamePlayer/common/bmfont.cpp
    trunk/blender/source/gameengine/GamePlayer/common/load.blend
    trunk/blender/source/gameengine/GamePlayer/common/logo_blender.raw
    trunk/blender/source/gameengine/GamePlayer/common/logo_blender3d.raw
    trunk/blender/source/gameengine/GamePlayer/common/logo_nan.raw
    trunk/blender/source/gameengine/GamePlayer/xembed/
    trunk/blender/source/gameengine/Ketsji/KX_PhysicsPropertiesobsolete.h

Property Changed:
----------------
    trunk/blender/


Property changes on: trunk/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-depsgraph_mt:57516
/tags/blender-2.67b-release/blender:57122
   + /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-depsgraph_mt:57516
/tags/blender-2.67b-release/blender:57122

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2013-07-19 22:11:26 UTC (rev 58422)
+++ trunk/blender/CMakeLists.txt	2013-07-19 22:37:40 UTC (rev 58423)
@@ -538,9 +538,6 @@
 set(PLATFORM_LINKFLAGS_DEBUG "")
 
 
-# disabled for now, not supported
-# option(WITH_WEBPLUGIN     "Enable Web Plugin (Unix only)" OFF)
-
 # For alternate Python locations the commandline can be used to override detected/default cache settings, e.g:
 # On Unix:
 #   cmake ../blender \
@@ -1874,17 +1871,7 @@
 	set(REDCODE_INC ${REDCODE})
 endif()
 
-#-----------------------------------------------------------------------------
-# Blender WebPlugin
 
-if(WITH_WEBPLUGIN)
-	set(GECKO_DIR "${CMAKE_SOURCE_DIR}/../gecko-sdk/" CACHE PATH "Gecko SDK path")
-	set(WEBPLUGIN_SANDBOX_MODE "apparmor" CACHE STRING "WEB Plugin sandbox mode, can be apparmor, privsep, none")
-
-	set(WITH_PLAYER ON)
-endif()
-
-
 #-----------------------------------------------------------------------------
 # Configure OpenGL.
 find_package(OpenGL)

Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-07-19 22:11:26 UTC (rev 58422)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-07-19 22:37:40 UTC (rev 58423)
@@ -890,8 +890,8 @@
 
 static RAS_MaterialBucket *material_from_mesh(Material *ma, MFace *mface, MTFace *tface, MCol *mcol, MTF_localLayer *layers, int lightlayer, unsigned int *rgb, MT_Point2 uvs[4][RAS_TexVert::MAX_UNIT], const char *tfaceName, KX_Scene* scene, KX_BlenderSceneConverter *converter)
 {
-	RAS_IPolyMaterial* polymat = converter->FindCachedPolyMaterial(ma);
-	BL_Material* bl_mat = converter->FindCachedBlenderMaterial(ma);
+	RAS_IPolyMaterial* polymat = converter->FindCachedPolyMaterial(scene, ma);
+	BL_Material* bl_mat = converter->FindCachedBlenderMaterial(scene, ma);
 	KX_BlenderMaterial* kx_blmat = NULL;
 	KX_PolygonMaterial* kx_polymat = NULL;
 		
@@ -907,7 +907,7 @@
 				converter->GetGLSLMaterials());
 
 			if (ma && (ma->mode & MA_FACETEXTURE) == 0)
-				converter->CacheBlenderMaterial(ma, bl_mat);
+				converter->CacheBlenderMaterial(scene, ma, bl_mat);
 		}
 
 		const bool use_vcol = GetMaterialUseVColor(ma, bl_mat->glslmat);
@@ -923,7 +923,7 @@
 			kx_blmat->Initialize(scene, bl_mat, (ma?&ma->game:NULL), lightlayer);
 			polymat = static_cast<RAS_IPolyMaterial*>(kx_blmat);
 			if (ma && (ma->mode & MA_FACETEXTURE) == 0)
-				converter->CachePolyMaterial(ma, polymat);
+				converter->CachePolyMaterial(scene, ma, polymat);
 		}
 	}
 	else {
@@ -1052,7 +1052,7 @@
 				polymat->m_shininess = 35.0;
 			}
 
-			converter->CachePolyMaterial(ma, polymat);
+			converter->CachePolyMaterial(scene, ma, polymat);
 		}
 	}
 	

Modified: trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2013-07-19 22:11:26 UTC (rev 58422)
+++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2013-07-19 22:37:40 UTC (rev 58423)
@@ -174,7 +174,7 @@
 
 	vector<pair<KX_Scene*,RAS_IPolyMaterial*> >::iterator itp = m_polymaterials.begin();
 	while (itp != m_polymaterials.end()) {
-		m_polymat_cache.erase((*itp).second->GetBlenderMaterial());
+		//m_polymat_cache.erase((*itp).second->GetBlenderMaterial());
 		delete (*itp).second;
 		itp++;
 	}
@@ -183,7 +183,7 @@
 	// delete after RAS_IPolyMaterial
 	vector<pair<KX_Scene*,BL_Material *> >::iterator itmat = m_materials.begin();
 	while (itmat != m_materials.end()) {
-		m_mat_cache.erase((*itmat).second->material);
+		//m_mat_cache.erase((*itmat).second->material);
 		delete (*itmat).second;
 		itmat++;
 	}
@@ -439,7 +439,7 @@
 	size = m_polymaterials.size();
 	for (i=0, polymit=m_polymaterials.begin(); i<size; ) {
 		if ((*polymit).first == scene) {
-			m_polymat_cache.erase((*polymit).second->GetBlenderMaterial());
+			m_polymat_cache[scene].erase((*polymit).second->GetBlenderMaterial());
 			delete (*polymit).second;
 			*polymit = m_polymaterials.back();
 			m_polymaterials.pop_back();
@@ -450,11 +450,13 @@
 		}
 	}
 
+	m_polymat_cache.erase(scene);
+
 	vector<pair<KX_Scene*,BL_Material*> >::iterator matit;
 	size = m_materials.size();
 	for (i=0, matit=m_materials.begin(); i<size; ) {
 		if ((*matit).first == scene) {
-			m_mat_cache.erase((*matit).second->material);
+			m_mat_cache[scene].erase((*matit).second->material);
 			delete (*matit).second;
 			*matit = m_materials.back();
 			m_materials.pop_back();
@@ -465,6 +467,8 @@
 		}
 	}
 
+	m_mat_cache.erase(scene);
+
 	vector<pair<KX_Scene*,RAS_MeshObject*> >::iterator meshit;
 	size = m_meshobjects.size();
 	for (i=0, meshit=m_meshobjects.begin(); i<size; ) {
@@ -603,26 +607,26 @@
 	m_polymaterials.push_back(pair<KX_Scene*,RAS_IPolyMaterial*>(m_currentScene,polymat));
 }
 
-void KX_BlenderSceneConverter::CachePolyMaterial(struct Material *mat, RAS_IPolyMaterial *polymat)
+void KX_BlenderSceneConverter::CachePolyMaterial(KX_Scene *scene, Material *mat, RAS_IPolyMaterial *polymat)
 {
 	if (m_use_mat_cache && mat)
-		m_polymat_cache[mat] = polymat;
+		m_polymat_cache[scene][mat] = polymat;
 }
 
-RAS_IPolyMaterial *KX_BlenderSceneConverter::FindCachedPolyMaterial(struct Material *mat)
+RAS_IPolyMaterial *KX_BlenderSceneConverter::FindCachedPolyMaterial(KX_Scene *scene, struct Material *mat)
 {
-	return (m_use_mat_cache) ? m_polymat_cache[mat] : NULL;
+	return (m_use_mat_cache) ? m_polymat_cache[scene][mat] : NULL;
 }
 
-void KX_BlenderSceneConverter::CacheBlenderMaterial(struct Material *mat, BL_Material *blmat)
+void KX_BlenderSceneConverter::CacheBlenderMaterial(KX_Scene *scene, struct Material *mat, BL_Material *blmat)
 {
 	if (m_use_mat_cache && mat)
-		m_mat_cache[mat] = blmat;
+		m_mat_cache[scene][mat] = blmat;
 }
 
-BL_Material *KX_BlenderSceneConverter::FindCachedBlenderMaterial(struct Material *mat)
+BL_Material *KX_BlenderSceneConverter::FindCachedBlenderMaterial(KX_Scene *scene, struct Material *mat)
 {
-	return (m_use_mat_cache) ? m_mat_cache[mat] : NULL;
+	return (m_use_mat_cache) ? m_mat_cache[scene][mat] : NULL;
 }
 
 void KX_BlenderSceneConverter::RegisterInterpolatorList(
@@ -1262,6 +1266,8 @@
 		KX_Scene* scene = scenes->at(scene_idx);
 		if (IS_TAGGED(scene->GetBlenderScene())) {
 			m_ketsjiEngine->RemoveScene(scene->GetName());
+			m_mat_cache.erase(scene);
+			m_polymat_cache.erase(scene);
 			scene_idx--;
 			numScenes--;
 		}
@@ -1456,7 +1462,6 @@
 		}
 
 		if (IS_TAGGED(bmat)) {
-			m_polymat_cache.erase((*polymit).second->GetBlenderMaterial());
 			delete (*polymit).second;
 			*polymit = m_polymaterials.back();
 			m_polymaterials.pop_back();
@@ -1474,7 +1479,6 @@
 	for (i=0, matit=m_materials.begin(); i<size; ) {
 		BL_Material *mat= (*matit).second;
 		if (IS_TAGGED(mat->material)) {
-			m_mat_cache.erase((*matit).second->material);
 			delete (*matit).second;
 			*matit = m_materials.back();
 			m_materials.pop_back();

Modified: trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h	2013-07-19 22:11:26 UTC (rev 58422)
+++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.h	2013-07-19 22:37:40 UTC (rev 58423)
@@ -53,7 +53,11 @@
 struct Main;
 struct Scene;
 struct ThreadInfo;
+struct Material;
 
+typedef map<KX_Scene*, map<Material*, BL_Material*> > MaterialCache;
+typedef map<KX_Scene*, map<Material*, RAS_IPolyMaterial*> > PolyMaterialCache;
+
 class KX_BlenderSceneConverter : public KX_ISceneConverter
 {
 	// Use vector of pairs to allow removal of entities between scene switch
@@ -66,8 +70,8 @@
 	ThreadInfo	*m_threadinfo;
 
 	// Cached material conversions
-	map<struct Material*, BL_Material*> m_mat_cache;
-	map<struct Material*, RAS_IPolyMaterial*> m_polymat_cache;
+	MaterialCache m_mat_cache;
+	PolyMaterialCache m_polymat_cache;
 
 	// Saved KX_LibLoadStatus objects
 	map<char *, class KX_LibLoadStatus*> m_status_map;
@@ -126,12 +130,12 @@
 	RAS_MeshObject *FindGameMesh(struct Mesh *for_blendermesh/*, unsigned int onlayer*/);
 
 	void RegisterPolyMaterial(RAS_IPolyMaterial *polymat);
-	void CachePolyMaterial(struct Material *mat, RAS_IPolyMaterial *polymat);
-	RAS_IPolyMaterial *FindCachedPolyMaterial(struct Material *mat);
+	void CachePolyMaterial(KX_Scene *scene, Material *mat, RAS_IPolyMaterial *polymat);
+	RAS_IPolyMaterial *FindCachedPolyMaterial(KX_Scene *scene, Material *mat);
 
 	void RegisterBlenderMaterial(BL_Material *mat);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list