[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49147] branches/soc-2012-swiss_cheese/ source/gameengine/Ketsji/BL_Shader.cpp: Fix for Custom Shaders

Alexander Kuznetsov kuzsasha at gmail.com
Mon Jul 23 19:44:40 CEST 2012


Revision: 49147
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49147
Author:   alexk
Date:     2012-07-23 17:44:40 +0000 (Mon, 23 Jul 2012)
Log Message:
-----------
Fix for Custom Shaders
Add more definitions for ES
Fix for function call.


Reported by dfelinto

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/BL_Shader.cpp

Modified: branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/BL_Shader.cpp
===================================================================
--- branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/BL_Shader.cpp	2012-07-23 16:43:48 UTC (rev 49146)
+++ branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/BL_Shader.cpp	2012-07-23 17:44:40 UTC (rev 49147)
@@ -293,6 +293,8 @@
 	"uniform mat4 b_ModelViewMatrix ;	\n"
 	"uniform mat3 b_NormalMatrix ;	\n"
 	
+	"#define gl_ModelViewProjectionMatrix (gl_ProjectionMatrix * gl_ModelViewMatrix)\n"
+	
 	"attribute vec4 b_Vertex;	\n"
 	"attribute vec3 b_Normal;	\n"
 		
@@ -331,8 +333,18 @@
 	}
 
 	// -- fragment shader ----------------
+#ifdef GLES	
+	src[0] = ""
+	"#define B_GLES\n"
+	"precision mediump float;		\n"
+	;
+#else
+	src[0] = "";
+#endif
+	src[1] = fragProg;
+	
 	tmpFrag = gpuCreateShader(GL_FRAGMENT_SHADER);
-	gpuShaderSource(tmpFrag, 1,(const char**)&fragProg, 0);
+	gpuShaderSource(tmpFrag, 2,(const char**)src, 0);
 	gpuCompileShader(tmpFrag);
 	gpuGetShaderiv(tmpFrag, GL_INFO_LOG_LENGTH, (GLint*) &fraglen);
 	if (fraglen >0 && fraglen < MAX_LOG_LEN) {
@@ -631,7 +643,7 @@
 		)
 	{
 		MT_assert(mShader!=0);
-		int location = glGetUniformLocationARB(mShader, name.ReadPtr());
+		int location = gpuGetUniformLocation(mShader, name.ReadPtr());
 		if (location == -1)
 			spit("Invalid uniform value: " << name.ReadPtr() << ".");
 		return location;




More information about the Bf-blender-cvs mailing list