Revision: 15264 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15264 Author: blendix Date: 2008-06-18 12:30:14 +0200 (Wed, 18 Jun 2008)
Log Message: ----------- * Fix for a crash in game engine vertex array drawing with texfaces. * For 2D filters, don't require opengl 2.0 but just the extensions, so it works on computers without full 2.0 support too. * In debug mode, don't print memory statistics for preview render. Modified Paths: -------------- trunk/blender/source/blender/render/intern/source/convertblender.c trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp Modified: trunk/blender/source/blender/render/intern/source/convertblender.c =================================================================== --- trunk/blender/source/blender/render/intern/source/convertblender.c 2008-06-18 09:52:31 UTC (rev 15263) +++ trunk/blender/source/blender/render/intern/source/convertblender.c 2008-06-18 10:30:14 UTC (rev 15264) @@ -4434,7 +4434,7 @@ LampRen *lar; /* statistics for debugging render memory usage */ - if(G.f & G_DEBUG) { + if((G.f & G_DEBUG) && (G.rendering)) { if((re->r.scemode & R_PREVIEWBUTS)==0) { BKE_image_print_memlist(); MEM_printmemlist_stats(); Modified: trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp =================================================================== --- trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp 2008-06-18 09:52:31 UTC (rev 15263) +++ trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp 2008-06-18 10:30:14 UTC (rev 15264) @@ -54,11 +54,13 @@ RAS_2DFilterManager::RAS_2DFilterManager(): -texturewidth(-1), textureheight(-1), +texname(-1), texturewidth(-1), textureheight(-1), canvaswidth(-1), canvasheight(-1), -numberoffilters(0),texname(-1) +numberoffilters(0) { - isshadersupported = GLEW_VERSION_2_0; + isshadersupported = GLEW_ARB_shader_objects && + GLEW_ARB_fragment_shader && GLEW_ARB_multitexture; + if(!isshadersupported) { std::cout<<"shaders not supported!" << std::endl; @@ -81,7 +83,6 @@ unsigned int RAS_2DFilterManager::CreateShaderProgram(char* shadersource) { GLuint program = 0; -#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT) GLuint fShader = glCreateShaderObjectARB(GL_FRAGMENT_SHADER); GLint success; @@ -117,7 +118,7 @@ std::cout << "2dFilters - Shader program validation error" << std::endl; return 0; } -#endif + return program; } @@ -151,7 +152,6 @@ void RAS_2DFilterManager::StartShaderProgram(unsigned int shaderprogram) { -#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT) GLint uniformLoc; glUseProgramObjectARB(shaderprogram); uniformLoc = glGetUniformLocationARB(shaderprogram, "bgl_RenderedTexture"); @@ -178,14 +178,11 @@ { glUniform1fARB(uniformLoc,textureheight); } -#endif } void RAS_2DFilterManager::EndShaderProgram() { -#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT) glUseProgramObjectARB(0); -#endif } void RAS_2DFilterManager::SetupTexture() @@ -295,7 +292,6 @@ { if(!isshadersupported) return; -#if defined(GL_ARB_shader_objects) && defined(WITH_GLEXT) if(pass<0 || pass>=MAX_RENDER_PASS) return; @@ -336,5 +332,4 @@ m_filters[pass] = CreateShaderProgram(mode); m_enabled[pass] = 1; } -#endif } Modified: trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp =================================================================== --- trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp 2008-06-18 09:52:31 UTC (rev 15263) +++ trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp 2008-06-18 10:30:14 UTC (rev 15264) @@ -142,6 +142,9 @@ glColor3d(0,0,0); } + EnableTextures(false); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + // use glDrawElements to draw each vertexarray for (vt=0;vt<vertexarrays.size();vt++) { @@ -168,6 +171,8 @@ } + + glDisableClientState(GL_TEXTURE_COORD_ARRAY); } void RAS_VAOpenGLRasterizer::IndexPrimitivesMulti( const vecVertexArray& vertexarrays, @@ -281,6 +286,8 @@ break; } } + + glClientActiveTextureARB(GL_TEXTURE0_ARB); } if(GLEW_ARB_vertex_program) { @@ -359,10 +366,14 @@ break; } } + + glClientActiveTextureARB(GL_TEXTURE0_ARB); } else { - if(enable) glEnableClientState(GL_TEXTURE_COORD_ARRAY); - else glDisableClientState(GL_TEXTURE_COORD_ARRAY); + if(texco_num) { + if(enable) glEnableClientState(GL_TEXTURE_COORD_ARRAY); + else glDisableClientState(GL_TEXTURE_COORD_ARRAY); + } } if(GLEW_ARB_vertex_program) { @@ -383,5 +394,10 @@ } } } + + if(!enable) { + m_last_texco_num = 0; + m_last_attrib_num = 0; + } } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs