[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