From 8d0d67a5ba201e739316946fb891e232d76d2f0b Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Mon, 16 Mar 2015 17:16:44 +0300 Subject: [PATCH] trying to fix OpenGL problem on MAC - part 2 --- src/dlangui/graphics/glsupport.d | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/dlangui/graphics/glsupport.d b/src/dlangui/graphics/glsupport.d index d5f896c4..122dbe98 100644 --- a/src/dlangui/graphics/glsupport.d +++ b/src/dlangui/graphics/glsupport.d @@ -86,16 +86,19 @@ class GLProgram { char[] versionLine; versionLine ~= "#version "; - foreach(ch; glslversion) + foreach(ch; glslversion) { if (ch >= '0' && ch <= '9') versionLine ~= ch; + else if (ch != '.') + break; + } versionLine ~= "\n\n"; - string sourceCode = versionLine ~ src; - Log.d("compileShader glsl=", glslversion, " code: ", sourceCode); + char[] sourceCode = versionLine ~ src; + Log.d("compileShader glsl=", glslversion, " code:\n", sourceCode); GLuint shader = glCreateShader(type);//GL_VERTEX_SHADER 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); glCompileShader(shader); GLint compiled; @@ -118,7 +121,7 @@ class GLProgram { } } 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); fragmentShader = compileShader(fragmentSource, GL_FRAGMENT_SHADER); if (!vertexShader || !fragmentShader) {