[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