[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [61093] trunk/blender/source: BGE Rasterizer Cleanup: Removing the Singletexture material mode.

Mitchell Stokes mogurijin at gmail.com
Mon Nov 4 20:21:50 CET 2013


Revision: 61093
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=61093
Author:   moguri
Date:     2013-11-04 19:21:50 +0000 (Mon, 04 Nov 2013)
Log Message:
-----------
BGE Rasterizer Cleanup: Removing the Singletexture material mode. More conversion code will probably be needed.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
    trunk/blender/source/gameengine/Ketsji/CMakeLists.txt
    trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
    trunk/blender/source/gameengine/VideoTexture/Texture.cpp

Removed Paths:
-------------
    trunk/blender/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
    trunk/blender/source/gameengine/Ketsji/KX_PolygonMaterial.h

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2013-11-04 19:21:37 UTC (rev 61092)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2013-11-04 19:21:50 UTC (rev 61093)
@@ -9783,6 +9783,16 @@
 		}
 	}
 
+	{
+		Scene *scene;
+
+		for (scene = main->scene.first; scene; scene = scene->id.next) {
+			if (scene->gm.matmode == GAME_MAT_TEXFACE) {
+				scene->gm.matmode = GAME_MAT_MULTITEX;
+			}
+		}
+	}
+
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
 	/* WATCH IT 2!: Userdef struct init see do_versions_userdef() above! */
 

Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h	2013-11-04 19:21:37 UTC (rev 61092)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h	2013-11-04 19:21:50 UTC (rev 61093)
@@ -725,7 +725,7 @@
 #define GAME_PLAYER_DESKTOP_RESOLUTION		(1 << 1)
 
 /* GameData.matmode */
-#define GAME_MAT_TEXFACE	0
+#define GAME_MAT_TEXFACE	0 /* deprecated */
 #define GAME_MAT_MULTITEX	1
 #define GAME_MAT_GLSL		2
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c	2013-11-04 19:21:37 UTC (rev 61092)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c	2013-11-04 19:21:50 UTC (rev 61093)
@@ -3143,7 +3143,6 @@
 	};
 
 	static EnumPropertyItem material_items[] = {
-		{GAME_MAT_TEXFACE, "SINGLETEXTURE", 0, "Singletexture", "Singletexture face materials"},
 		{GAME_MAT_MULTITEX, "MULTITEXTURE", 0, "Multitexture", "Multitexture materials"},
 		{GAME_MAT_GLSL, "GLSL", 0, "GLSL", "OpenGL shading language shaders"},
 		{0, NULL, 0, NULL, NULL}

Modified: trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2013-11-04 19:21:37 UTC (rev 61092)
+++ trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2013-11-04 19:21:50 UTC (rev 61093)
@@ -470,7 +470,7 @@
 			else if (gs.matmode == GAME_MAT_GLSL)
 				usemat = false;
 
-			if (usemat && (gs.matmode != GAME_MAT_TEXFACE))
+			if (usemat)
 				sceneconverter->SetMaterials(true);
 			if (useglslmat && (gs.matmode == GAME_MAT_GLSL))
 				sceneconverter->SetGLSLMaterials(true);

Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-11-04 19:21:37 UTC (rev 61092)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-11-04 19:21:50 UTC (rev 61093)
@@ -42,7 +42,6 @@
 #include "KX_BlenderScalarInterpolator.h"
 
 #include "RAS_IPolygonMaterial.h"
-#include "KX_PolygonMaterial.h"
 
 // Expressions
 #include "ListValue.h"
@@ -891,167 +890,33 @@
 	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;
-		
-	if (converter->GetMaterials()) {
-		/* do Blender Multitexture and Blender GLSL materials */
 
-		/* first is the BL_Material */
-		if (!bl_mat)
-		{
-			bl_mat = new BL_Material();
+	/* first is the BL_Material */
+	if (!bl_mat)
+	{
+		bl_mat = new BL_Material();
 
-			ConvertMaterial(bl_mat, ma, tface, tfaceName, mface, mcol,
-				converter->GetGLSLMaterials());
+		ConvertMaterial(bl_mat, ma, tface, tfaceName, mface, mcol,
+			converter->GetGLSLMaterials());
 
-			if (ma && (ma->mode & MA_FACETEXTURE) == 0)
-				converter->CacheBlenderMaterial(scene, ma, bl_mat);
-		}
-
-		const bool use_vcol = GetMaterialUseVColor(ma, bl_mat->glslmat);
-		GetRGB(use_vcol, mface, mcol, ma, rgb);
-
-		GetUVs(bl_mat, layers, mface, tface, uvs);
-				
-		/* then the KX_BlenderMaterial */
-		if (polymat == NULL)
-		{
-			kx_blmat = new KX_BlenderMaterial();
-
-			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(scene, ma, polymat);
-		}
+		if (ma && (ma->mode & MA_FACETEXTURE) == 0)
+			converter->CacheBlenderMaterial(scene, ma, bl_mat);
 	}
-	else {
-		/* do Texture Face materials */
-		Image* bima = (tface)? (Image*)tface->tpage: NULL;
-		STR_String imastr =  (tface)? (bima? (bima)->id.name : "" ) : "";
-		
-		char alpha_blend=0;
-		short tile=0;
-		int	tilexrep=4,tileyrep = 4;
 
-		/* set material properties - old TexFace */
-		if (ma) {
-			alpha_blend = ma->game.alpha_blend;
-			/* Commented out for now. If we ever get rid of
-			 * "Texture Face/Singletexture" we can then think about it */
+	const bool use_vcol = GetMaterialUseVColor(ma, bl_mat->glslmat);
+	GetRGB(use_vcol, mface, mcol, ma, rgb);
 
-			/* Texture Face mode ignores texture but requires "Face Textures to be True "*/
-	#if 0
-			if ((ma->mode &MA_FACETEXTURE)==0 && (ma->game.flag &GEMAT_TEXT)==0) {
-				bima = NULL;
-				imastr = "";
-				alpha_blend = GEMAT_SOLID;	 
-			}
-			else {
-				alpha_blend = ma->game.alpha_blend;
-			}
-	#endif
-		}
-		/* check for tface tex to fallback on */
-		else {
-			if (bima) {
-				/* see if depth of the image is 32 */
-				if (BKE_image_has_alpha(bima))
-					alpha_blend = GEMAT_ALPHA;
-				else
-					alpha_blend = GEMAT_SOLID;
-			}
-			else {
-				alpha_blend = GEMAT_SOLID;
-			}
-		}
+	GetUVs(bl_mat, layers, mface, tface, uvs);
 
-		if (bima) {
-			tilexrep = bima->xrep;
-			tileyrep = bima->yrep;
-		}
+	/* then the KX_BlenderMaterial */
+	if (polymat == NULL)
+	{
+		kx_blmat = new KX_BlenderMaterial();
 
-		/* set UV properties */
-		if (tface) {
-			uvs[0][0].setValue(tface->uv[0]);
-			uvs[1][0].setValue(tface->uv[1]);
-			uvs[2][0].setValue(tface->uv[2]);
-	
-			if (mface->v4)
-				uvs[3][0].setValue(tface->uv[3]);
-
-			tile = tface->tile;
-		} 
-		else {
-			/* no texfaces */
-			tile = 0;
-		}
-
-		/* get vertex colors */
-		if (mcol) {
-			/* we have vertex colors */
-			rgb[0] = KX_Mcol2uint_new(mcol[0]);
-			rgb[1] = KX_Mcol2uint_new(mcol[1]);
-			rgb[2] = KX_Mcol2uint_new(mcol[2]);
-					
-			if (mface->v4)
-				rgb[3] = KX_Mcol2uint_new(mcol[3]);
-		}
-		else {
-			/* no vertex colors, take from material, otherwise white */
-			unsigned int color = 0xFFFFFFFFL;
-
-			if (ma)
-			{
-				union
-				{
-					unsigned char cp[4];
-					unsigned int integer;
-				} col_converter;
-						
-				col_converter.cp[3] = (unsigned char) (ma->r*255.0);
-				col_converter.cp[2] = (unsigned char) (ma->g*255.0);
-				col_converter.cp[1] = (unsigned char) (ma->b*255.0);
-				col_converter.cp[0] = (unsigned char) (ma->alpha*255.0);
-						
-				color = col_converter.integer;
-			}
-
-			rgb[0] = KX_rgbaint2uint_new(color);
-			rgb[1] = KX_rgbaint2uint_new(color);
-			rgb[2] = KX_rgbaint2uint_new(color);	
-					
-			if (mface->v4)
-				rgb[3] = KX_rgbaint2uint_new(color);
-		}
-
-		// only zsort alpha + add
-		const bool alpha = ELEM3(alpha_blend, GEMAT_ALPHA, GEMAT_ADD, GEMAT_ALPHA_SORT);
-		const bool zsort = (alpha_blend == GEMAT_ALPHA_SORT);
-		const bool light = (ma)?(ma->mode & MA_SHLESS)==0:default_light_mode;
-
-		// don't need zort anymore, deal as if it it's alpha blend
-		if (alpha_blend == GEMAT_ALPHA_SORT) alpha_blend = GEMAT_ALPHA;
-
-		if (polymat == NULL)
-		{
-			kx_polymat = new KX_PolygonMaterial();
-			kx_polymat->Initialize(imastr, ma, (int)mface->mat_nr,
-				tile, tilexrep, tileyrep, 
-				alpha_blend, alpha, zsort, light, lightlayer, tface, (unsigned int*)mcol);
-			polymat = static_cast<RAS_IPolyMaterial*>(kx_polymat);
-	
-			if (ma) {
-				polymat->m_specular = MT_Vector3(ma->specr, ma->specg, ma->specb)*ma->spec;
-				polymat->m_shininess = (float)ma->har/4.0f; // 0 < ma->har <= 512
-				polymat->m_diffuse = MT_Vector3(ma->r, ma->g, ma->b)*(ma->emit + ma->ref);
-			}
-			else {
-				polymat->m_specular.setValue(0.0f,0.0f,0.0f);
-				polymat->m_shininess = 35.0;
-			}
-
+		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(scene, ma, polymat);
-		}
 	}
 	
 	// see if a bucket was reused or a new one was created
@@ -1061,8 +926,7 @@
 	if (bucketCreated) {
 		// this is needed to free up memory afterwards
 		converter->RegisterPolyMaterial(polymat);
-		if (converter->GetMaterials())
-			converter->RegisterBlenderMaterial(bl_mat);
+		converter->RegisterBlenderMaterial(bl_mat);
 	}
 
 	return bucket;

Modified: trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2013-11-04 19:21:37 UTC (rev 61092)
+++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2013-11-04 19:21:50 UTC (rev 61093)
@@ -46,7 +46,6 @@
 #include "BL_Material.h"
 #include "BL_ActionActuator.h"
 #include "KX_BlenderMaterial.h"
-#include "KX_PolygonMaterial.h"
 
 
 #include "BL_System.h"
@@ -1419,16 +1418,9 @@
 		RAS_IPolyMaterial *mat= (*polymit).second;
 		Material *bmat= NULL;
 
-		/* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject *)? - Campbell */
-		if (mat->GetFlag() & RAS_BLENDERMAT) {
-			KX_BlenderMaterial *bl_mat = static_cast<KX_BlenderMaterial*>(mat);
-			bmat= bl_mat->GetBlenderMaterial();
+		KX_BlenderMaterial *bl_mat = static_cast<KX_BlenderMaterial*>(mat);
+		bmat= bl_mat->GetBlenderMaterial();
 
-		} else {
-			KX_PolygonMaterial *kx_mat = static_cast<KX_PolygonMaterial*>(mat);
-			bmat= kx_mat->GetBlenderMaterial();
-		}
-
 		if (IS_TAGGED(bmat)) {
 			/* only remove from bucket */
 			((*polymit).first)->GetBucketManager()->RemoveMaterial(mat);
@@ -1444,16 +1436,9 @@
 		RAS_IPolyMaterial *mat= (*polymit).second;
 		Material *bmat= NULL;
 
-		/* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject *)? - Campbell */
-		if (mat->GetFlag() & RAS_BLENDERMAT) {
-			KX_BlenderMaterial *bl_mat = static_cast<KX_BlenderMaterial*>(mat);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list