diff options
Diffstat (limited to 'make/stub_includes/opengl/GL')
-rw-r--r-- | make/stub_includes/opengl/GL/gl-platform.h | 54 | ||||
-rw-r--r-- | make/stub_includes/opengl/GL/gl.h | 4 | ||||
-rw-r--r-- | make/stub_includes/opengl/GL/glext-supplement.h | 24 | ||||
-rw-r--r-- | make/stub_includes/opengl/GL/glx.h | 13 |
4 files changed, 54 insertions, 41 deletions
diff --git a/make/stub_includes/opengl/GL/gl-platform.h b/make/stub_includes/opengl/GL/gl-platform.h index d55410b0a..f3680f28c 100644 --- a/make/stub_includes/opengl/GL/gl-platform.h +++ b/make/stub_includes/opengl/GL/gl-platform.h @@ -13,6 +13,20 @@ #define __WIN32__ #endif +/* + * WINDOWS: Include windows.h here to define APIENTRY. + * It is also useful when applications include this file by + * including only glut.h, since glut.h depends on windows.h. + * Applications needing to include windows.h with parms other + * than "WIN32_LEAN_AND_MEAN" may include windows.h before + * glut.h or gl.h. + */ +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include <windows.h> +#undef WIN32_LEAN_AND_MEAN +#endif + #if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) # if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ # define GLAPI __declspec(dllexport) @@ -31,32 +45,19 @@ # endif # ifndef APIENTRY # define APIENTRY -# endif /* APIENTRY */ +# endif #endif /* WIN32 / CYGWIN bracket */ -#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) -# define PRAGMA_EXPORT_SUPPORTED 1 +#ifndef GLAPI +#define GLAPI extern #endif - -/* - * WINDOWS: Include windows.h here to define APIENTRY. - * It is also useful when applications include this file by - * including only glut.h, since glut.h depends on windows.h. - * Applications needing to include windows.h with parms other - * than "WIN32_LEAN_AND_MEAN" may include windows.h before - * glut.h or gl.h. - */ -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include <windows.h> -#undef WIN32_LEAN_AND_MEAN +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * #endif -/** -#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__) -#include <gl/mesa_wgl.h> +#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) +# define PRAGMA_EXPORT_SUPPORTED 1 #endif -*/ #if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED #pragma import on @@ -70,18 +71,5 @@ #pragma export on #endif -/** - * The defaults for all .. - */ -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - #endif /* __gl_platform_h_ */ diff --git a/make/stub_includes/opengl/GL/gl.h b/make/stub_includes/opengl/GL/gl.h index 56812a531..430846e29 100644 --- a/make/stub_includes/opengl/GL/gl.h +++ b/make/stub_includes/opengl/GL/gl.h @@ -1314,7 +1314,9 @@ GLAPI void APIENTRY glCopyTexSubImage2D( GLenum target, GLint level, GLint xoffs #endif /* GL_VERSION_1_1 */ /* Include Post-GL 1.1 changes and extensions */ -#include <GL/glext.h> +// Due to 'glext-supplement.h', we prefer to include it manually afterwards. +// This gives us the same behavior as the vanilla GLES, GLES2, GLES3 and glcorearb header. +// #include <GL/glext.h> /********************************************************************** diff --git a/make/stub_includes/opengl/GL/glext-supplement.h b/make/stub_includes/opengl/GL/glext-supplement.h index cbcf7e0a7..0ea284f28 100644 --- a/make/stub_includes/opengl/GL/glext-supplement.h +++ b/make/stub_includes/opengl/GL/glext-supplement.h @@ -35,7 +35,6 @@ extern "C" { /* Function declaration macros - to move into gl-platform.h */ #include "gl-platform.h" -#include "gl-types.h" /** * GL_EXT_texture_storage == GL_ARB_texture_storage @@ -74,9 +73,11 @@ extern "C" { typedef void (APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#ifdef __GLUEGEN__ typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GLAPI void APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); @@ -92,8 +93,14 @@ GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsize * which collides from GL/glext.h. The latter is obsolete and has different semantics! * This variant will override the 'odd' GL/glext.h one. * See gl-common.cfg! + * This extension is only included while running GlueGen, + * due to redefined in glext.h under a different extension. + * However, native compilation will validate GlueGen's + * 'ProcAddrTypedef' w/ the glext.h variant! */ +#ifdef __GLUEGEN__ #ifndef GL_EXT_separate_shader_objects +typedef char GLchar; #define GL_EXT_separate_shader_objects 1 #define GL_ACTIVE_PROGRAM_EXT 0x8259 #define GL_VERTEX_SHADER_BIT_EXT 0x00000001 @@ -190,8 +197,21 @@ GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint locati GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif +#endif /* GL_GLEXT_PROTOTYPES */ #endif /* GL_EXT_separate_shader_objects */ +#else /* __GLUEGEN_ */ +// GL/glext.h only has the non EXT (subsumed) variants of the following symbols +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +#endif /* __GLUEGEN_ */ #ifdef __cplusplus } diff --git a/make/stub_includes/opengl/GL/glx.h b/make/stub_includes/opengl/GL/glx.h index a74cd23e8..dc4b85dac 100644 --- a/make/stub_includes/opengl/GL/glx.h +++ b/make/stub_includes/opengl/GL/glx.h @@ -44,8 +44,10 @@ #pragma message enable nosimpint #endif #endif -#include <GL/gl.h> +// Due to 'glext-supplement.h', we prefer to include it manually afterwards. +// This gives us the same behavior as the vanilla GLES, GLES2, GLES3 and glcorearb header. +// #include <GL/gl.h> #if defined(USE_MGL_NAMESPACE) #include <GL/glx_mangle.h> @@ -176,7 +178,7 @@ typedef void ( *__GLXextFuncPtr)(void); #define GLX_SAMPLE_BUFFERS 100000 #define GLX_SAMPLES 100001 typedef __GLXextFuncPtr ( *PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); -#ifdef GL_GLEXT_PROTOTYPES +#ifdef GLX_GLXEXT_PROTOTYPES __GLXextFuncPtr glXGetProcAddress (const GLubyte *procName); #endif #endif /* GLX_VERSION_1_4 */ @@ -184,13 +186,14 @@ __GLXextFuncPtr glXGetProcAddress (const GLubyte *procName); #ifndef GLX_ARB_get_proc_address #define GLX_ARB_get_proc_address 1 typedef __GLXextFuncPtr ( *PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); -#ifdef GL_GLEXT_PROTOTYPES +#ifdef GLX_GLXEXT_PROTOTYPES __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName); #endif #endif /* GLX_ARB_get_proc_address */ - -#include <GL/glxext.h> +// Due to 'glext-supplement.h', we prefer to include it manually afterwards. +// This gives us the same behavior as the vanilla GLES, GLES2, GLES3 and glcorearb header. +// #include <GL/glxext.h> #ifdef __cplusplus } |