[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55524] branches/ge_harmony/source/ gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp: Making sure that the same texture unit (mostly 0) does not end up bound to two different sampler types for the light shader.

Daniel Stokes kupomail at gmail.com
Sat Mar 23 02:05:49 CET 2013


Revision: 55524
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55524
Author:   kupoman
Date:     2013-03-23 01:05:46 +0000 (Sat, 23 Mar 2013)
Log Message:
-----------
Making sure that the same texture unit (mostly 0) does not end up bound to two different sampler types for the light shader. This gets sun and hemi lights working again for ATI cards, though spot and point lights still don't seem to work right.

Modified Paths:
--------------
    branches/ge_harmony/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp

Modified: branches/ge_harmony/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
===================================================================
--- branches/ge_harmony/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp	2013-03-22 23:48:26 UTC (rev 55523)
+++ branches/ge_harmony/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp	2013-03-23 01:05:46 UTC (rev 55524)
@@ -787,7 +787,7 @@
 		//Check completeness
 		GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
 		if (status != GL_FRAMEBUFFER_COMPLETE_EXT)
-			printf("Error in setting up FBO\n");
+			printf("Error in setting up primary FBO\n");
 
 		if (m_technique == KX_TECH_INFERRED)
 		{
@@ -1545,6 +1545,8 @@
 		glActiveTexture(GL_TEXTURE5);
 		glBindTexture(GL_TEXTURE_2D, light->m_shadowbuffer);
 		if (light->m_shadowtype == LA_SHADMAP_VARIANCE) {
+			bind = GPU_shader_get_uniform(m_light_shader, "bgl_ShadowBuffer");
+			glUniform1iARB(bind, 6);
 			bind = GPU_shader_get_uniform(m_light_shader, "bgl_ShadowBufferCol");
 		}
 		else {
@@ -1566,6 +1568,9 @@
 		GPU_shader_uniform_vector(m_light_shader, bind, 3, 1, light->m_shadowcolor);
 	}
 	else {
+		bind = GPU_shader_get_uniform(m_light_shader, "bgl_ShadowBuffer");
+		glUniform1iARB(bind, 6);
+
 		bind = GPU_shader_get_uniform(m_light_shader, "bgl_Light.shadowtype");
 		int type = 0;
 		GPU_shader_uniform_ivector(m_light_shader, bind, 1, 1, &type);




More information about the Bf-blender-cvs mailing list