diff --git a/src/Magnum/GL/AbstractShaderProgram.h b/src/Magnum/GL/AbstractShaderProgram.h index f72621eca..4bde9b65d 100644 --- a/src/Magnum/GL/AbstractShaderProgram.h +++ b/src/Magnum/GL/AbstractShaderProgram.h @@ -1699,7 +1699,7 @@ class MAGNUM_GL_EXPORT AbstractShaderProgram: public AbstractObject { static MAGNUM_GL_LOCAL void cleanLogImplementationAngle(std::string& message); #endif - static MAGNUM_GL_LOCAL void completionStatusImplementationFallback(GLuint, GLenum, GLint*); + static MAGNUM_GL_LOCAL APIENTRY void completionStatusImplementationFallback(GLuint, GLenum, GLint*); MAGNUM_GL_LOCAL static void use(GLuint id); void use(); diff --git a/src/Magnum/GL/Implementation/ShaderProgramState.h b/src/Magnum/GL/Implementation/ShaderProgramState.h index e057e5aad..95001ea80 100644 --- a/src/Magnum/GL/Implementation/ShaderProgramState.h +++ b/src/Magnum/GL/Implementation/ShaderProgramState.h @@ -47,7 +47,9 @@ struct ShaderProgramState { void(AbstractShaderProgram::*transformFeedbackVaryingsImplementation)(Containers::ArrayView, AbstractShaderProgram::TransformFeedbackBufferMode); #endif void(*cleanLogImplementation)(std::string&); - void(*completionStatusImplementation)(GLuint, GLenum, GLint* value); + /* This is a direct pointer to a GL function, so needs a __stdcall on + Windows to compile properly on 32 bits */ + void(APIENTRY *completionStatusImplementation)(GLuint, GLenum, GLint* value); #ifndef MAGNUM_TARGET_WEBGL void(APIENTRY *uniform1fvImplementation)(GLuint, GLint, GLsizei, const GLfloat*); diff --git a/src/Magnum/GL/Implementation/ShaderState.h b/src/Magnum/GL/Implementation/ShaderState.h index caddd741d..4d37c764d 100644 --- a/src/Magnum/GL/Implementation/ShaderState.h +++ b/src/Magnum/GL/Implementation/ShaderState.h @@ -53,7 +53,9 @@ struct ShaderState { void(Shader::*addSourceImplementation)(std::string); void(*cleanLogImplementation)(std::string&); - void(*completionStatusImplementation)(GLuint, GLenum, GLint* value); + /* This is a direct pointer to a GL function, so needs a __stdcall on + Windows to compile properly on 32 bits */ + void(APIENTRY *completionStatusImplementation)(GLuint, GLenum, GLint* value); GLint maxVertexOutputComponents, maxFragmentInputComponents; diff --git a/src/Magnum/GL/Shader.h b/src/Magnum/GL/Shader.h index 045d822bd..0272c2599 100644 --- a/src/Magnum/GL/Shader.h +++ b/src/Magnum/GL/Shader.h @@ -680,7 +680,7 @@ class MAGNUM_GL_EXPORT Shader: public AbstractObject { static MAGNUM_GL_LOCAL void cleanLogImplementationIntelWindows(std::string& message); #endif - static MAGNUM_GL_LOCAL void completionStatusImplementationFallback(GLuint, GLenum, GLint*); + static MAGNUM_GL_LOCAL APIENTRY void completionStatusImplementationFallback(GLuint, GLenum, GLint*); Type _type; GLuint _id; diff --git a/src/Magnum/Shaders/DistanceFieldVectorGL.cpp b/src/Magnum/Shaders/DistanceFieldVectorGL.cpp index 91ebe3acf..6c627cf98 100644 --- a/src/Magnum/Shaders/DistanceFieldVectorGL.cpp +++ b/src/Magnum/Shaders/DistanceFieldVectorGL.cpp @@ -166,8 +166,6 @@ template DistanceFieldVectorGL::DistanceFiel if (id() == 0) return; CORRADE_INTERNAL_ASSERT_OUTPUT(checkLink()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._vert.checkCompile()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._frag.checkCompile()); const GL::Context& context = GL::Context::current(); const GL::Version version = cs._version; diff --git a/src/Magnum/Shaders/FlatGL.cpp b/src/Magnum/Shaders/FlatGL.cpp index 11718dc63..645d7eade 100644 --- a/src/Magnum/Shaders/FlatGL.cpp +++ b/src/Magnum/Shaders/FlatGL.cpp @@ -241,8 +241,6 @@ template FlatGL::FlatGL(CompileState&& cs): if (id() == 0) return; CORRADE_INTERNAL_ASSERT_OUTPUT(checkLink()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._vert.checkCompile()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._frag.checkCompile()); const GL::Context& context = GL::Context::current(); const GL::Version version = cs._version; diff --git a/src/Magnum/Shaders/VectorGL.cpp b/src/Magnum/Shaders/VectorGL.cpp index b52aee517..dd6ff2c07 100644 --- a/src/Magnum/Shaders/VectorGL.cpp +++ b/src/Magnum/Shaders/VectorGL.cpp @@ -168,8 +168,6 @@ template VectorGL::VectorGL(CompileState&& c if (id() == 0) return; CORRADE_INTERNAL_ASSERT_OUTPUT(checkLink()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._vert.checkCompile()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._frag.checkCompile()); const GL::Context& context = GL::Context::current(); const GL::Version version = cs._version; diff --git a/src/Magnum/Shaders/VertexColorGL.cpp b/src/Magnum/Shaders/VertexColorGL.cpp index d796a8aaa..01af44cd1 100644 --- a/src/Magnum/Shaders/VertexColorGL.cpp +++ b/src/Magnum/Shaders/VertexColorGL.cpp @@ -146,8 +146,6 @@ template VertexColorGL::VertexColorGL(Compil if (id() == 0) return; CORRADE_INTERNAL_ASSERT_OUTPUT(checkLink()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._vert.checkCompile()); - CORRADE_INTERNAL_ASSERT_OUTPUT(cs._frag.checkCompile()); const GL::Context& context = GL::Context::current(); const GL::Version version = cs._version; diff --git a/src/MagnumExternal/OpenGL/GL/flextGL.h b/src/MagnumExternal/OpenGL/GL/flextGL.h index 626c8aff5..d11cc1880 100644 --- a/src/MagnumExternal/OpenGL/GL/flextGL.h +++ b/src/MagnumExternal/OpenGL/GL/flextGL.h @@ -1523,7 +1523,7 @@ typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum /* GL_VERSION_4_5 */ -#define GL_CONTEXT_LOST 0x0507 +#define GL_CONTEXT_LOST 0x0507 #define GL_LOWER_LEFT 0x8CA1 #define GL_UPPER_LEFT 0x8CA2 #define GL_NEGATIVE_ONE_TO_ONE 0x935E