clean shader compilation

This commit is contained in:
gazer 2015-12-11 17:50:49 +03:00
parent 8015acaca2
commit a3ec66569d
1 changed files with 7 additions and 12 deletions

View File

@ -124,10 +124,9 @@ class GLProgram {
compatibilityFixes(sourceCode, type); compatibilityFixes(sourceCode, type);
Log.d("compileShader glsl=", glslversion, " type:", (type == GL_VERTEX_SHADER ? "GL_VERTEX_SHADER" : (type == GL_FRAGMENT_SHADER ? "GL_FRAGMENT_SHADER" : "UNKNOWN")), " code:\n", sourceCode); Log.d("compileShader glsl=", glslversion, " type:", (type == GL_VERTEX_SHADER ? "GL_VERTEX_SHADER" : (type == GL_FRAGMENT_SHADER ? "GL_FRAGMENT_SHADER" : "UNKNOWN")), " code:\n", sourceCode);
GLuint shader = glCreateShader(type);//GL_VERTEX_SHADER GLuint shader = glCreateShader(type);
const char * psrc = sourceCode.toStringz; const char * psrc = sourceCode.toStringz;
GLuint len = cast(uint)sourceCode.length; glShaderSource(shader, 1, &psrc, null);
glShaderSource(shader, 1, &psrc, cast(const(int)*)&len);
glCompileShader(shader); glCompileShader(shader);
GLint compiled; GLint compiled;
glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
@ -141,9 +140,8 @@ class GLProgram {
if (blen > 1) if (blen > 1)
{ {
GLchar[] msg = new GLchar[blen + 1]; GLchar[] msg = new GLchar[blen + 1];
GLchar * pmsg = &msg[0]; glGetShaderInfoLog(shader, blen, &slen, msg.ptr);
glGetShaderInfoLog(shader, blen, &slen, pmsg); Log.d("Shader compilation error: ", fromStringz(msg.ptr));
Log.d("Shader compilation error: ", fromStringz(pmsg));
} }
return 0; return 0;
} }
@ -178,15 +176,12 @@ class GLProgram {
GLint maxLength = 0; GLint maxLength = 0;
glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength);
GLchar[] msg = new GLchar[maxLength + 1]; GLchar[] msg = new GLchar[maxLength + 1];
GLchar * pmsg = &msg[0]; glGetProgramInfoLog(program, maxLength, &maxLength, msg.ptr);
glGetProgramInfoLog(program, maxLength, &maxLength, pmsg); Log.e("Error while linking program: ", fromStringz(msg.ptr));
Log.e("Error while linking program: ", fromStringz(pmsg));
error = true; error = true;
return false; return false;
} }
Log.d("Program compiled successfully"); Log.d("Program linked successfully");
//glDetachShader(program, vertexShader);
//glDetachShader(program, fragmentShader);
Log.v("trying glUseProgram with 0"); Log.v("trying glUseProgram with 0");
glUseProgram(0); glUseProgram(0);
Log.v("before useProgram"); Log.v("before useProgram");