From 8c9906eb9190b40ffec981944174e96e6a471af2 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Sat, 16 Feb 2013 04:38:53 +0000 Subject: BGE: Fix for issue #34242 "It does not render in "P" mode for Game engine if you UV mapa a face of a cube" reported by joaclint. Material caching can now be disabled for Multitexture and GLSL Materials. --- source/gameengine/Converter/BL_BlenderDataConversion.cpp | 8 ++------ source/gameengine/Converter/KX_BlenderSceneConverter.cpp | 10 ++++++---- 2 files changed, 8 insertions(+), 10 deletions(-) (limited to 'source/gameengine/Converter') diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index e5503dfd0a7..f7726ebaf78 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -921,9 +921,6 @@ static RAS_MaterialBucket *material_from_mesh(Material *ma, MFace *mface, MTFace /* do Texture Face materials */ Image* bima = (tface)? (Image*)tface->tpage: NULL; STR_String imastr = (tface)? (bima? (bima)->id.name : "" ) : ""; - - if (!converter->GetCacheMaterials()) - polymat = NULL; char alpha_blend=0; short tile=0; @@ -1045,9 +1042,8 @@ static RAS_MaterialBucket *material_from_mesh(Material *ma, MFace *mface, MTFace polymat->m_specular.setValue(0.0f,0.0f,0.0f); polymat->m_shininess = 35.0; } - - if (converter->GetCacheMaterials()) - converter->CachePolyMaterial(ma, polymat); + + converter->CachePolyMaterial(ma, polymat); } } diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp index 376f75959ed..cd5dec4669d 100644 --- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp +++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp @@ -601,22 +601,24 @@ void KX_BlenderSceneConverter::RegisterPolyMaterial(RAS_IPolyMaterial *polymat) void KX_BlenderSceneConverter::CachePolyMaterial(struct Material *mat, RAS_IPolyMaterial *polymat) { - m_polymat_cache[mat] = polymat; + if (m_use_mat_cache) + m_polymat_cache[mat] = polymat; } RAS_IPolyMaterial *KX_BlenderSceneConverter::FindCachedPolyMaterial(struct Material *mat) { - return m_polymat_cache[mat]; + return (m_use_mat_cache) ? m_polymat_cache[mat] : NULL; } void KX_BlenderSceneConverter::CacheBlenderMaterial(struct Material *mat, BL_Material *blmat) { - m_mat_cache[mat] = blmat; + if (m_use_mat_cache) + m_mat_cache[mat] = blmat; } BL_Material *KX_BlenderSceneConverter::FindCachedBlenderMaterial(struct Material *mat) { - return m_mat_cache[mat]; + return (m_use_mat_cache) ? m_mat_cache[mat] : NULL; } void KX_BlenderSceneConverter::RegisterInterpolatorList( -- cgit v1.2.3