trying to fix OpenGL problem on MAC - part 2

This commit is contained in:
Vadim Lopatin 2015-03-16 17:16:44 +03:00
parent 945aabfc1d
commit 8d0d67a5ba
1 changed files with 8 additions and 5 deletions

View File

@ -86,16 +86,19 @@ class GLProgram {
char[] versionLine; char[] versionLine;
versionLine ~= "#version "; versionLine ~= "#version ";
foreach(ch; glslversion) foreach(ch; glslversion) {
if (ch >= '0' && ch <= '9') if (ch >= '0' && ch <= '9')
versionLine ~= ch; versionLine ~= ch;
else if (ch != '.')
break;
}
versionLine ~= "\n\n"; versionLine ~= "\n\n";
string sourceCode = versionLine ~ src; char[] sourceCode = versionLine ~ src;
Log.d("compileShader glsl=", glslversion, " code: ", sourceCode); Log.d("compileShader glsl=", glslversion, " code:\n", sourceCode);
GLuint shader = glCreateShader(type);//GL_VERTEX_SHADER GLuint shader = glCreateShader(type);//GL_VERTEX_SHADER
const char * psrc = sourceCode.toStringz; const char * psrc = sourceCode.toStringz;
GLuint len = cast(uint)src.length; GLuint len = cast(uint)sourceCode.length;
glShaderSource(shader, 1, &psrc, cast(const(int)*)&len); glShaderSource(shader, 1, &psrc, cast(const(int)*)&len);
glCompileShader(shader); glCompileShader(shader);
GLint compiled; GLint compiled;
@ -118,7 +121,7 @@ class GLProgram {
} }
} }
bool compile() { bool compile() {
glslversion = cast(string)std.string.fromStringz(glGetString(GL_SHADING_LANGUAGE_VERSION)); glslversion = std.string.fromStringz(glGetString(GL_SHADING_LANGUAGE_VERSION)).dup;
vertexShader = compileShader(vertexSource, GL_VERTEX_SHADER); vertexShader = compileShader(vertexSource, GL_VERTEX_SHADER);
fragmentShader = compileShader(fragmentSource, GL_FRAGMENT_SHADER); fragmentShader = compileShader(fragmentSource, GL_FRAGMENT_SHADER);
if (!vertexShader || !fragmentShader) { if (!vertexShader || !fragmentShader) {