diff --git a/project/src/opengl/OGLShaders.cpp b/project/src/opengl/OGLShaders.cpp index 44a5837b1..f56d0daa3 100644 --- a/project/src/opengl/OGLShaders.cpp +++ b/project/src/opengl/OGLShaders.cpp @@ -111,17 +111,17 @@ void OGLProg::recreate() // Check the status of the compile/link int logLen = 0; glGetProgramiv(mProgramId, GL_INFO_LOG_LENGTH, &logLen); - if(logLen > 0 || !linkStatus) + if(logLen > 1 || !linkStatus) { // Show any errors as appropriate - ELOG("----"); + ELOG("---- ll=%d, !linkStatus=%d\n",logLen,!linkStatus); ELOG("VERT: %s", mVertProg.c_str()); ELOG("FRAG: %s", mFragProg.c_str()); if (logLen>0) { char *log = new char[logLen]; glGetProgramInfoLog(mProgramId, logLen, &logLen, log); - ELOG("ERROR:\n%s\n", log); + ELOG("ERROR:x%d\n%s\n",logLen, log); delete [] log; } else @@ -129,10 +129,18 @@ void OGLProg::recreate() ELOG("no error message."); } - glDeleteShader(mVertId); - glDeleteShader(mFragId); - glDeleteProgram(mProgramId); - mVertId = mFragId = mProgramId = 0; + if (!linkStatus) + { + ELOG("Could not link."); + glDeleteShader(mVertId); + glDeleteShader(mFragId); + glDeleteProgram(mProgramId); + mVertId = mFragId = mProgramId = 0; + } + else + { + ELOG("non fatal."); + } } vertexSlot = glGetAttribLocation(mProgramId, "aVertex"); diff --git a/src/nme/gl/GL.hx b/src/nme/gl/GL.hx index d8fd71130..cf471e5d8 100644 --- a/src/nme/gl/GL.hx +++ b/src/nme/gl/GL.hx @@ -1805,6 +1805,13 @@ class GL #else // not (neko||cpp) + + public static inline function getSupportedExtensions():Array + { + var result = new Array(); + return result; + } + // Stub to get flixel to compile public static function getParameter(pname:Int):Dynamic {