Browse Source

Revert a dumb change that caused a crash due to reading from invalid memory

--HG--
branch : minor
Alex Szpakowski 8 years ago
parent
commit
100404c917
1 changed files with 5 additions and 9 deletions
  1. 5 9
      src/modules/graphics/opengl/Shader.cpp

+ 5 - 9
src/modules/graphics/opengl/Shader.cpp

@@ -237,15 +237,6 @@ void Shader::mapActiveUniforms()
 		if (u.location == -1)
 		if (u.location == -1)
 			continue;
 			continue;
 
 
-		if (u.baseType == UNIFORM_SAMPLER)
-		{
-			// Initialize all samplers to 0. Both GLSL and GLSL ES are supposed
-			// to do this themselves, but some Android devices (galaxy tab 3 and
-			// 4) don't seem to do it...
-			// NOTE: We also restore previously set texture units below.
-			glUniform1iv(u.location, u.count, u.ints);
-		}
-
 		// Make sure previously set uniform data is preserved, and shader-
 		// Make sure previously set uniform data is preserved, and shader-
 		// initialized values are retrieved.
 		// initialized values are retrieved.
 		auto oldu = olduniforms.find(u.name);
 		auto oldu = olduniforms.find(u.name);
@@ -303,6 +294,11 @@ void Shader::mapActiveUniforms()
 
 
 				if (u.baseType == UNIFORM_SAMPLER)
 				if (u.baseType == UNIFORM_SAMPLER)
 				{
 				{
+					// Initialize all samplers to 0. Both GLSL and GLSL ES are
+					// supposed to do this themselves, but some Android devices
+					// (galaxy tab 3 and 4) don't seem to do it...
+					glUniform1iv(u.location, u.count, u.ints);
+
 					u.textures = new Texture*[u.count];
 					u.textures = new Texture*[u.count];
 					memset(u.textures, 0, sizeof(Texture *) * u.count);
 					memset(u.textures, 0, sizeof(Texture *) * u.count);
 				}
 				}