diff options
Diffstat (limited to 'source/gameengine')
-rw-r--r-- | source/gameengine/Converter/BL_ShapeDeformer.cpp | 7 | ||||
-rw-r--r-- | source/gameengine/GamePlayer/common/GPC_RenderTools.cpp | 23 |
2 files changed, 29 insertions, 1 deletions
diff --git a/source/gameengine/Converter/BL_ShapeDeformer.cpp b/source/gameengine/Converter/BL_ShapeDeformer.cpp index fb0a86d6084..bb3636881ea 100644 --- a/source/gameengine/Converter/BL_ShapeDeformer.cpp +++ b/source/gameengine/Converter/BL_ShapeDeformer.cpp @@ -50,6 +50,8 @@ #include "DNA_meshdata_types.h" #include "BKE_armature.h" #include "BKE_action.h" +#include "BKE_global.h" +#include "BKE_main.h" #include "BKE_key.h" #include "BKE_ipo.h" #include "MT_Point3.h" @@ -97,10 +99,13 @@ BL_ShapeDeformer::BL_ShapeDeformer(BL_DeformableGameObject *gameobj, BL_ShapeDeformer::~BL_ShapeDeformer() { - if (m_key && m_bmesh->key) + if (m_key && m_bmesh->key && m_key != m_bmesh->key) { free_key(m_bmesh->key); + BLI_remlink_safe(&G.main->key, m_bmesh->key); + MEM_freeN(m_bmesh->key); m_bmesh->key = m_key; + m_key = NULL; } }; diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp index 55e3220c08c..54e2efd8776 100644 --- a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp +++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp @@ -291,6 +291,29 @@ void GPC_RenderTools::RenderText3D( int fontid, double* mat, float aspect) { + if(GLEW_ARB_multitexture) { + for(int i=0; i<MAXTEX; i++) { + glActiveTextureARB(GL_TEXTURE0_ARB+i); + + if(GLEW_ARB_texture_cube_map) + if(glIsEnabled(GL_TEXTURE_CUBE_MAP_ARB)) + glDisable(GL_TEXTURE_CUBE_MAP_ARB); + + if(glIsEnabled(GL_TEXTURE_2D)) + glDisable(GL_TEXTURE_2D); + } + + glActiveTextureARB(GL_TEXTURE0_ARB); + } + else { + if(GLEW_ARB_texture_cube_map) + if(glIsEnabled(GL_TEXTURE_CUBE_MAP_ARB)) + glDisable(GL_TEXTURE_CUBE_MAP_ARB); + + if(glIsEnabled(GL_TEXTURE_2D)) + glDisable(GL_TEXTURE_2D); + } + /* the actual drawing */ glColor4fv(color); |