VIDEO: revert parts of flextgl changes

broke osx and windows builds
master
Martin Gerhardy 2020-05-23 20:12:41 +02:00
parent 57ec7faab6
commit 155db88ba3
4 changed files with 244 additions and 152 deletions

View File

@ -1,34 +1,106 @@
/*
This file was generated using https://github.com/mosra/flextgl:
path/to/flextGLgen.py -T sdl -D /home/mgerhardy/dev/engine/src/modules/video/gl profiles/gl33.txt
Do not edit directly, modify the template or profile and regenerate.
*/
/* WARNING: This file was automatically generated */
/* Do not edit. */
#include "flextGL.h"
#include <SDL.h>
#ifdef __cplusplus
extern "C" {
#endif
void flextLoadOpenGLFunctions(void) {
void flextLoadOpenGLFunctions(void);
/**
* \return -1 on error, 0 on success
* \sa SDL_GetError
*/
int flextInit(void)
{
int major;
int minor;
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &major);
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &minor);
flextLoadOpenGLFunctions();
/* --- Check for minimal version and profile --- */
if (major * 10 + minor < 33) {
return SDL_SetError("OpenGL context hasn't the expected version 3.3.");
}
/* --- Check for extensions --- */
if (SDL_GL_ExtensionSupported("GL_ARB_debug_output")) {
FLEXT_ARB_debug_output = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_direct_state_access")) {
FLEXT_ARB_direct_state_access = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_buffer_storage")) {
FLEXT_ARB_buffer_storage = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_multi_draw_indirect")) {
FLEXT_ARB_multi_draw_indirect = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_draw_indirect")) {
FLEXT_ARB_draw_indirect = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_instanced_arrays")) {
FLEXT_ARB_instanced_arrays = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_compute_shader")) {
FLEXT_ARB_compute_shader = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_shader_image_load_store")) {
FLEXT_ARB_shader_image_load_store = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_transform_feedback2")) {
FLEXT_ARB_transform_feedback2 = GL_TRUE;
}
if (SDL_GL_ExtensionSupported("GL_ARB_shader_storage_buffer_object")) {
FLEXT_ARB_shader_storage_buffer_object = GL_TRUE;
}
return 0;
}
void flextLoadOpenGLFunctions(void)
{
/* --- Function pointer loading --- */
/* GL_ARB_buffer_storage */
glpfBufferStorage = (PFNGLBUFFERSTORAGE_PROC*)SDL_GL_GetProcAddress("glBufferStorage");
/* GL_ARB_compute_shader */
glpfDispatchCompute = (PFNGLDISPATCHCOMPUTE_PROC*)SDL_GL_GetProcAddress("glDispatchCompute");
glpfDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECT_PROC*)SDL_GL_GetProcAddress("glDispatchComputeIndirect");
/* GL_ARB_debug_output */
glpfDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARB_PROC*)SDL_GL_GetProcAddress("glDebugMessageCallbackARB");
glpfDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARB_PROC*)SDL_GL_GetProcAddress("glDebugMessageControlARB");
glpfDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARB_PROC*)SDL_GL_GetProcAddress("glDebugMessageInsertARB");
glpfGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARB_PROC*)SDL_GL_GetProcAddress("glGetDebugMessageLogARB");
/* GL_ARB_direct_state_access */
glpfBindTextureUnit = (PFNGLBINDTEXTUREUNIT_PROC*)SDL_GL_GetProcAddress("glBindTextureUnit");
glpfBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFER_PROC*)SDL_GL_GetProcAddress("glBlitNamedFramebuffer");
glpfCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUS_PROC*)SDL_GL_GetProcAddress("glCheckNamedFramebufferStatus");
@ -128,24 +200,30 @@ void flextLoadOpenGLFunctions(void) {
glpfVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERS_PROC*)SDL_GL_GetProcAddress("glVertexArrayVertexBuffers");
/* GL_ARB_draw_indirect */
glpfDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECT_PROC*)SDL_GL_GetProcAddress("glDrawArraysIndirect");
glpfDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECT_PROC*)SDL_GL_GetProcAddress("glDrawElementsIndirect");
/* GL_ARB_instanced_arrays */
glpfVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARB_PROC*)SDL_GL_GetProcAddress("glVertexAttribDivisorARB");
/* GL_ARB_multi_draw_indirect */
glpfMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECT_PROC*)SDL_GL_GetProcAddress("glMultiDrawArraysIndirect");
glpfMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECT_PROC*)SDL_GL_GetProcAddress("glMultiDrawElementsIndirect");
/* GL_ARB_shader_image_load_store */
glpfBindImageTexture = (PFNGLBINDIMAGETEXTURE_PROC*)SDL_GL_GetProcAddress("glBindImageTexture");
glpfMemoryBarrier = (PFNGLMEMORYBARRIER_PROC*)SDL_GL_GetProcAddress("glMemoryBarrier");
/* GL_ARB_shader_storage_buffer_object */
glpfShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDING_PROC*)SDL_GL_GetProcAddress("glShaderStorageBlockBinding");
/* GL_ARB_transform_feedback2 */
glpfBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACK_PROC*)SDL_GL_GetProcAddress("glBindTransformFeedback");
glpfDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKS_PROC*)SDL_GL_GetProcAddress("glDeleteTransformFeedbacks");
glpfDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACK_PROC*)SDL_GL_GetProcAddress("glDrawTransformFeedback");
@ -155,6 +233,7 @@ void flextLoadOpenGLFunctions(void) {
glpfResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACK_PROC*)SDL_GL_GetProcAddress("glResumeTransformFeedback");
/* GL_VERSION_1_0 */
glpfBlendFunc = (PFNGLBLENDFUNC_PROC*)SDL_GL_GetProcAddress("glBlendFunc");
glpfClear = (PFNGLCLEAR_PROC*)SDL_GL_GetProcAddress("glClear");
glpfClearColor = (PFNGLCLEARCOLOR_PROC*)SDL_GL_GetProcAddress("glClearColor");
@ -205,6 +284,7 @@ void flextLoadOpenGLFunctions(void) {
glpfViewport = (PFNGLVIEWPORT_PROC*)SDL_GL_GetProcAddress("glViewport");
/* GL_VERSION_1_1 */
glpfBindTexture = (PFNGLBINDTEXTURE_PROC*)SDL_GL_GetProcAddress("glBindTexture");
glpfCopyTexImage1D = (PFNGLCOPYTEXIMAGE1D_PROC*)SDL_GL_GetProcAddress("glCopyTexImage1D");
glpfCopyTexImage2D = (PFNGLCOPYTEXIMAGE2D_PROC*)SDL_GL_GetProcAddress("glCopyTexImage2D");
@ -220,12 +300,14 @@ void flextLoadOpenGLFunctions(void) {
glpfTexSubImage2D = (PFNGLTEXSUBIMAGE2D_PROC*)SDL_GL_GetProcAddress("glTexSubImage2D");
/* GL_VERSION_1_2 */
glpfCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3D_PROC*)SDL_GL_GetProcAddress("glCopyTexSubImage3D");
glpfDrawRangeElements = (PFNGLDRAWRANGEELEMENTS_PROC*)SDL_GL_GetProcAddress("glDrawRangeElements");
glpfTexImage3D = (PFNGLTEXIMAGE3D_PROC*)SDL_GL_GetProcAddress("glTexImage3D");
glpfTexSubImage3D = (PFNGLTEXSUBIMAGE3D_PROC*)SDL_GL_GetProcAddress("glTexSubImage3D");
/* GL_VERSION_1_3 */
glpfActiveTexture = (PFNGLACTIVETEXTURE_PROC*)SDL_GL_GetProcAddress("glActiveTexture");
glpfCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1D_PROC*)SDL_GL_GetProcAddress("glCompressedTexImage1D");
glpfCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2D_PROC*)SDL_GL_GetProcAddress("glCompressedTexImage2D");
@ -237,6 +319,7 @@ void flextLoadOpenGLFunctions(void) {
glpfSampleCoverage = (PFNGLSAMPLECOVERAGE_PROC*)SDL_GL_GetProcAddress("glSampleCoverage");
/* GL_VERSION_1_4 */
glpfBlendColor = (PFNGLBLENDCOLOR_PROC*)SDL_GL_GetProcAddress("glBlendColor");
glpfBlendEquation = (PFNGLBLENDEQUATION_PROC*)SDL_GL_GetProcAddress("glBlendEquation");
glpfBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATE_PROC*)SDL_GL_GetProcAddress("glBlendFuncSeparate");
@ -248,6 +331,7 @@ void flextLoadOpenGLFunctions(void) {
glpfPointParameteriv = (PFNGLPOINTPARAMETERIV_PROC*)SDL_GL_GetProcAddress("glPointParameteriv");
/* GL_VERSION_1_5 */
glpfBeginQuery = (PFNGLBEGINQUERY_PROC*)SDL_GL_GetProcAddress("glBeginQuery");
glpfBindBuffer = (PFNGLBINDBUFFER_PROC*)SDL_GL_GetProcAddress("glBindBuffer");
glpfBufferData = (PFNGLBUFFERDATA_PROC*)SDL_GL_GetProcAddress("glBufferData");
@ -269,6 +353,7 @@ void flextLoadOpenGLFunctions(void) {
glpfUnmapBuffer = (PFNGLUNMAPBUFFER_PROC*)SDL_GL_GetProcAddress("glUnmapBuffer");
/* GL_VERSION_2_0 */
glpfAttachShader = (PFNGLATTACHSHADER_PROC*)SDL_GL_GetProcAddress("glAttachShader");
glpfBindAttribLocation = (PFNGLBINDATTRIBLOCATION_PROC*)SDL_GL_GetProcAddress("glBindAttribLocation");
glpfBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATE_PROC*)SDL_GL_GetProcAddress("glBlendEquationSeparate");
@ -364,6 +449,7 @@ void flextLoadOpenGLFunctions(void) {
glpfVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTER_PROC*)SDL_GL_GetProcAddress("glVertexAttribPointer");
/* GL_VERSION_2_1 */
glpfUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FV_PROC*)SDL_GL_GetProcAddress("glUniformMatrix2x3fv");
glpfUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FV_PROC*)SDL_GL_GetProcAddress("glUniformMatrix2x4fv");
glpfUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FV_PROC*)SDL_GL_GetProcAddress("glUniformMatrix3x2fv");
@ -372,6 +458,7 @@ void flextLoadOpenGLFunctions(void) {
glpfUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FV_PROC*)SDL_GL_GetProcAddress("glUniformMatrix4x3fv");
/* GL_VERSION_3_0 */
glpfBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDER_PROC*)SDL_GL_GetProcAddress("glBeginConditionalRender");
glpfBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACK_PROC*)SDL_GL_GetProcAddress("glBeginTransformFeedback");
glpfBindBufferBase = (PFNGLBINDBUFFERBASE_PROC*)SDL_GL_GetProcAddress("glBindBufferBase");
@ -458,6 +545,7 @@ void flextLoadOpenGLFunctions(void) {
glpfVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTER_PROC*)SDL_GL_GetProcAddress("glVertexAttribIPointer");
/* GL_VERSION_3_1 */
glpfCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATA_PROC*)SDL_GL_GetProcAddress("glCopyBufferSubData");
glpfDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCED_PROC*)SDL_GL_GetProcAddress("glDrawArraysInstanced");
glpfDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCED_PROC*)SDL_GL_GetProcAddress("glDrawElementsInstanced");
@ -472,6 +560,7 @@ void flextLoadOpenGLFunctions(void) {
glpfUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDING_PROC*)SDL_GL_GetProcAddress("glUniformBlockBinding");
/* GL_VERSION_3_2 */
glpfClientWaitSync = (PFNGLCLIENTWAITSYNC_PROC*)SDL_GL_GetProcAddress("glClientWaitSync");
glpfDeleteSync = (PFNGLDELETESYNC_PROC*)SDL_GL_GetProcAddress("glDeleteSync");
glpfDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEX_PROC*)SDL_GL_GetProcAddress("glDrawElementsBaseVertex");
@ -493,6 +582,7 @@ void flextLoadOpenGLFunctions(void) {
glpfWaitSync = (PFNGLWAITSYNC_PROC*)SDL_GL_GetProcAddress("glWaitSync");
/* GL_VERSION_3_3 */
glpfBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXED_PROC*)SDL_GL_GetProcAddress("glBindFragDataLocationIndexed");
glpfBindSampler = (PFNGLBINDSAMPLER_PROC*)SDL_GL_GetProcAddress("glBindSampler");
glpfDeleteSamplers = (PFNGLDELETESAMPLERS_PROC*)SDL_GL_GetProcAddress("glDeleteSamplers");
@ -524,57 +614,7 @@ void flextLoadOpenGLFunctions(void) {
}
int flextInit(void) {
int major;
int minor;
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &major);
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &minor);
flextLoadOpenGLFunctions();
/* Check for minimal version and profile */
if(major * 10 + minor < 33) {
return SDL_SetError("OpenGL context hasn't the expected version 3.3.");
}
/* --- Check for extensions --- */
if(SDL_GL_ExtensionSupported("GL_ARB_debug_output")) {
FLEXT_ARB_debug_output = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_direct_state_access")) {
FLEXT_ARB_direct_state_access = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_buffer_storage")) {
FLEXT_ARB_buffer_storage = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_multi_draw_indirect")) {
FLEXT_ARB_multi_draw_indirect = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_draw_indirect")) {
FLEXT_ARB_draw_indirect = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_instanced_arrays")) {
FLEXT_ARB_instanced_arrays = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_compute_shader")) {
FLEXT_ARB_compute_shader = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_shader_image_load_store")) {
FLEXT_ARB_shader_image_load_store = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_transform_feedback2")) {
FLEXT_ARB_transform_feedback2 = GL_TRUE;
}
if(SDL_GL_ExtensionSupported("GL_ARB_shader_storage_buffer_object")) {
FLEXT_ARB_shader_storage_buffer_object = GL_TRUE;
}
return 0;
}
/* Extension flag definitions */
/* ----------------------- Extension flag definitions ---------------------- */
int FLEXT_ARB_debug_output = GL_FALSE;
int FLEXT_ARB_direct_state_access = GL_FALSE;
int FLEXT_ARB_buffer_storage = GL_FALSE;
@ -586,7 +626,7 @@ int FLEXT_ARB_shader_image_load_store = GL_FALSE;
int FLEXT_ARB_transform_feedback2 = GL_FALSE;
int FLEXT_ARB_shader_storage_buffer_object = GL_FALSE;
/* Function pointer definitions */
/* ---------------------- Function pointer definitions --------------------- */
/* GL_ARB_buffer_storage */
@ -1117,6 +1157,7 @@ PFNGLVERTEXATTRIBP3UIV_PROC* glpfVertexAttribP3uiv = NULL;
PFNGLVERTEXATTRIBP4UI_PROC* glpfVertexAttribP4ui = NULL;
PFNGLVERTEXATTRIBP4UIV_PROC* glpfVertexAttribP4uiv = NULL;
#ifdef __cplusplus
}
#endif

View File

@ -1,12 +1,8 @@
/* WARNING: This file was automatically generated */
/* Do not edit. */
#ifndef __gl_h_
#define __gl_h_
/*
This file was generated using https://github.com/mosra/flextgl:
path/to/flextGLgen.py -T sdl -D /home/mgerhardy/dev/engine/src/modules/video/gl profiles/gl33.txt
Do not edit directly, modify the template or profile and regenerate.
*/
#ifdef __cplusplus
extern "C" {
@ -32,32 +28,71 @@ extern "C" {
#define GLAPI extern
#endif
/* ------------------------------- DATA TYPES ------------------------------ */
/* -------------------------------- DATA TYPES ------------------------------- */
#include <KHR/khrplatform.h>
#include <stddef.h>
#ifndef GLEXT_64_TYPES_DEFINED
/* This code block is duplicated in glxext.h, so must be protected */
#define GLEXT_64_TYPES_DEFINED
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
/* (as used in the GL_EXT_timer_query extension). */
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#include <inttypes.h>
#elif defined(__sun__) || defined(__digital__)
#include <inttypes.h>
#if defined(__STDC__)
#if defined(__arch64__) || defined(_LP64)
typedef long int int64_t;
typedef unsigned long int uint64_t;
#else
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#endif /* __arch64__ */
#endif /* __STDC__ */
#elif defined( __VMS ) || defined(__sgi)
#include <inttypes.h>
#elif defined(__SCO__) || defined(__USLC__)
#include <stdint.h>
#elif defined(__UNIXOS2__) || defined(__SOL64__)
typedef long int int32_t;
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#elif defined(_WIN32) && defined(__GNUC__)
#include <stdint.h>
#elif defined(_WIN32)
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
/* Fallback if nothing above works */
#include <inttypes.h>
#endif
#endif
typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef void GLvoid;
typedef khronos_int8_t GLbyte;
typedef khronos_uint8_t GLubyte;
typedef khronos_int16_t GLshort;
typedef khronos_uint16_t GLushort;
typedef signed char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef int GLsizei;
typedef khronos_float_t GLfloat;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;
typedef char GLchar;
typedef khronos_uint16_t GLhalf;
typedef khronos_intptr_t GLintptr;
typedef khronos_ssize_t GLsizeiptr;
typedef khronos_int64_t GLint64;
typedef khronos_uint64_t GLuint64;
typedef unsigned short GLhalf;
typedef ptrdiff_t GLintptr;
typedef ptrdiff_t GLsizeiptr;
typedef int64_t GLint64;
typedef uint64_t GLuint64;
typedef struct __GLsync *GLsync;
typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
/* ---------------------------------- ENUMS -------------------------------- */
/* ----------------------------------- ENUMS --------------------------------- */
/* GL_VERSION_1_0 */
@ -1090,7 +1125,8 @@ typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLen
#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
/* -------------------------- FUNCTION PROTOTYPES -------------------------- */
/* --------------------------- FUNCTION PROTOTYPES --------------------------- */
/* GL_ARB_buffer_storage */
@ -1100,6 +1136,7 @@ GLAPI PFNGLBUFFERSTORAGE_PROC* glpfBufferStorage;
#define glBufferStorage glpfBufferStorage
/* GL_ARB_compute_shader */
typedef void (APIENTRY PFNGLDISPATCHCOMPUTE_PROC (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z));
@ -1111,6 +1148,7 @@ GLAPI PFNGLDISPATCHCOMPUTEINDIRECT_PROC* glpfDispatchComputeIndirect;
#define glDispatchCompute glpfDispatchCompute
#define glDispatchComputeIndirect glpfDispatchComputeIndirect
/* GL_ARB_debug_output */
typedef void (APIENTRY PFNGLDEBUGMESSAGECALLBACKARB_PROC (GLDEBUGPROCARB callback, const void * userParam));
@ -1128,6 +1166,7 @@ GLAPI PFNGLGETDEBUGMESSAGELOGARB_PROC* glpfGetDebugMessageLogARB;
#define glDebugMessageInsertARB glpfDebugMessageInsertARB
#define glGetDebugMessageLogARB glpfGetDebugMessageLogARB
/* GL_ARB_direct_state_access */
typedef void (APIENTRY PFNGLBINDTEXTUREUNIT_PROC (GLuint unit, GLuint texture));
@ -1424,6 +1463,7 @@ GLAPI PFNGLVERTEXARRAYVERTEXBUFFERS_PROC* glpfVertexArrayVertexBuffers;
#define glVertexArrayVertexBuffer glpfVertexArrayVertexBuffer
#define glVertexArrayVertexBuffers glpfVertexArrayVertexBuffers
/* GL_ARB_draw_indirect */
typedef void (APIENTRY PFNGLDRAWARRAYSINDIRECT_PROC (GLenum mode, const void * indirect));
@ -1435,6 +1475,7 @@ GLAPI PFNGLDRAWELEMENTSINDIRECT_PROC* glpfDrawElementsIndirect;
#define glDrawArraysIndirect glpfDrawArraysIndirect
#define glDrawElementsIndirect glpfDrawElementsIndirect
/* GL_ARB_instanced_arrays */
typedef void (APIENTRY PFNGLVERTEXATTRIBDIVISORARB_PROC (GLuint index, GLuint divisor));
@ -1443,6 +1484,7 @@ GLAPI PFNGLVERTEXATTRIBDIVISORARB_PROC* glpfVertexAttribDivisorARB;
#define glVertexAttribDivisorARB glpfVertexAttribDivisorARB
/* GL_ARB_multi_draw_indirect */
typedef void (APIENTRY PFNGLMULTIDRAWARRAYSINDIRECT_PROC (GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride));
@ -1454,6 +1496,7 @@ GLAPI PFNGLMULTIDRAWELEMENTSINDIRECT_PROC* glpfMultiDrawElementsIndirect;
#define glMultiDrawArraysIndirect glpfMultiDrawArraysIndirect
#define glMultiDrawElementsIndirect glpfMultiDrawElementsIndirect
/* GL_ARB_shader_image_load_store */
typedef void (APIENTRY PFNGLBINDIMAGETEXTURE_PROC (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format));
@ -1465,6 +1508,7 @@ GLAPI PFNGLMEMORYBARRIER_PROC* glpfMemoryBarrier;
#define glBindImageTexture glpfBindImageTexture
#define glMemoryBarrier glpfMemoryBarrier
/* GL_ARB_shader_storage_buffer_object */
typedef void (APIENTRY PFNGLSHADERSTORAGEBLOCKBINDING_PROC (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding));
@ -1473,6 +1517,7 @@ GLAPI PFNGLSHADERSTORAGEBLOCKBINDING_PROC* glpfShaderStorageBlockBinding;
#define glShaderStorageBlockBinding glpfShaderStorageBlockBinding
/* GL_ARB_transform_feedback2 */
typedef void (APIENTRY PFNGLBINDTRANSFORMFEEDBACK_PROC (GLenum target, GLuint id));
@ -1499,6 +1544,7 @@ GLAPI PFNGLRESUMETRANSFORMFEEDBACK_PROC* glpfResumeTransformFeedback;
#define glPauseTransformFeedback glpfPauseTransformFeedback
#define glResumeTransformFeedback glpfResumeTransformFeedback
/* GL_VERSION_1_0 */
typedef void (APIENTRY PFNGLBLENDFUNC_PROC (GLenum sfactor, GLenum dfactor));
@ -1648,6 +1694,7 @@ GLAPI PFNGLVIEWPORT_PROC* glpfViewport;
#define glTexParameteriv glpfTexParameteriv
#define glViewport glpfViewport
/* GL_VERSION_1_1 */
typedef void (APIENTRY PFNGLBINDTEXTURE_PROC (GLenum target, GLuint texture));
@ -1692,6 +1739,7 @@ GLAPI PFNGLTEXSUBIMAGE2D_PROC* glpfTexSubImage2D;
#define glTexSubImage1D glpfTexSubImage1D
#define glTexSubImage2D glpfTexSubImage2D
/* GL_VERSION_1_2 */
typedef void (APIENTRY PFNGLCOPYTEXSUBIMAGE3D_PROC (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height));
@ -1709,6 +1757,7 @@ GLAPI PFNGLTEXSUBIMAGE3D_PROC* glpfTexSubImage3D;
#define glTexImage3D glpfTexImage3D
#define glTexSubImage3D glpfTexSubImage3D
/* GL_VERSION_1_3 */
typedef void (APIENTRY PFNGLACTIVETEXTURE_PROC (GLenum texture));
@ -1741,6 +1790,7 @@ GLAPI PFNGLSAMPLECOVERAGE_PROC* glpfSampleCoverage;
#define glGetCompressedTexImage glpfGetCompressedTexImage
#define glSampleCoverage glpfSampleCoverage
/* GL_VERSION_1_4 */
typedef void (APIENTRY PFNGLBLENDCOLOR_PROC (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha));
@ -1773,6 +1823,7 @@ GLAPI PFNGLPOINTPARAMETERIV_PROC* glpfPointParameteriv;
#define glPointParameteri glpfPointParameteri
#define glPointParameteriv glpfPointParameteriv
/* GL_VERSION_1_5 */
typedef void (APIENTRY PFNGLBEGINQUERY_PROC (GLenum target, GLuint id));
@ -1835,6 +1886,7 @@ GLAPI PFNGLUNMAPBUFFER_PROC* glpfUnmapBuffer;
#define glMapBuffer glpfMapBuffer
#define glUnmapBuffer glpfUnmapBuffer
/* GL_VERSION_2_0 */
typedef void (APIENTRY PFNGLATTACHSHADER_PROC (GLuint program, GLuint shader));
@ -2119,6 +2171,7 @@ GLAPI PFNGLVERTEXATTRIBPOINTER_PROC* glpfVertexAttribPointer;
#define glVertexAttrib4usv glpfVertexAttrib4usv
#define glVertexAttribPointer glpfVertexAttribPointer
/* GL_VERSION_2_1 */
typedef void (APIENTRY PFNGLUNIFORMMATRIX2X3FV_PROC (GLint location, GLsizei count, GLboolean transpose, const GLfloat * value));
@ -2142,6 +2195,7 @@ GLAPI PFNGLUNIFORMMATRIX4X3FV_PROC* glpfUniformMatrix4x3fv;
#define glUniformMatrix4x2fv glpfUniformMatrix4x2fv
#define glUniformMatrix4x3fv glpfUniformMatrix4x3fv
/* GL_VERSION_3_0 */
typedef void (APIENTRY PFNGLBEGINCONDITIONALRENDER_PROC (GLuint id, GLenum mode));
@ -2399,6 +2453,7 @@ GLAPI PFNGLVERTEXATTRIBIPOINTER_PROC* glpfVertexAttribIPointer;
#define glVertexAttribI4usv glpfVertexAttribI4usv
#define glVertexAttribIPointer glpfVertexAttribIPointer
/* GL_VERSION_3_1 */
typedef void (APIENTRY PFNGLCOPYBUFFERSUBDATA_PROC (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size));
@ -2440,6 +2495,7 @@ GLAPI PFNGLUNIFORMBLOCKBINDING_PROC* glpfUniformBlockBinding;
#define glTexBuffer glpfTexBuffer
#define glUniformBlockBinding glpfUniformBlockBinding
/* GL_VERSION_3_2 */
typedef GLenum (APIENTRY PFNGLCLIENTWAITSYNC_PROC (GLsync sync, GLbitfield flags, GLuint64 timeout));
@ -2502,6 +2558,7 @@ GLAPI PFNGLWAITSYNC_PROC* glpfWaitSync;
#define glTexImage3DMultisample glpfTexImage3DMultisample
#define glWaitSync glpfWaitSync
/* GL_VERSION_3_3 */
typedef void (APIENTRY PFNGLBINDFRAGDATALOCATIONINDEXED_PROC (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name));
@ -2591,7 +2648,8 @@ GLAPI PFNGLVERTEXATTRIBP4UIV_PROC* glpfVertexAttribP4uiv;
#define glVertexAttribP4ui glpfVertexAttribP4ui
#define glVertexAttribP4uiv glpfVertexAttribP4uiv
/* -------------------------- CATEGORY DEFINES ----------------------------- */
/* --------------------------- CATEGORY DEFINES ------------------------------ */
#define GL_ARB_buffer_storage
#define GL_ARB_compute_shader
@ -2616,7 +2674,8 @@ GLAPI PFNGLVERTEXATTRIBP4UIV_PROC* glpfVertexAttribP4uiv;
#define GL_VERSION_3_2
#define GL_VERSION_3_3
/* --------------------- FLAGS FOR OPTIONAL EXTENSIONS --------------------- */
/* ---------------------- Flags for optional extensions ---------------------- */
extern int FLEXT_ARB_debug_output;
extern int FLEXT_ARB_direct_state_access;
@ -2639,4 +2698,4 @@ int flextInit(void);
}
#endif
#endif
#endif /* _gl_h_ */

View File

@ -1,86 +1,90 @@
@require(passthru, functions, enums, options, version, extensions, args)
/*
This file was generated using https://github.com/mosra/flextgl:
path/to/flextGLgen.py @args
Do not edit directly, modify the template or profile and regenerate.
*/
@require(passthru, functions, enums, options, version, extensions)
/* WARNING: This file was automatically generated */
/* Do not edit. */
#include "flextGL.h"
#include <SDL.h>
#ifdef __cplusplus
extern "C" {
#endif
void flextLoadOpenGLFunctions(void) {
@for category,funcs in functions:
@if funcs:
@if category not in ['VERSION_1_0_DEPRECATED', 'VERSION_1_1_DEPRECATED']:
/* GL_@category */
@for f in funcs:
glpf@f.name = (PFNGL@f.name.upper()_PROC*)SDL_GL_GetProcAddress("gl@f.name");
@end
@end
@end
@end
}
void flextLoadOpenGLFunctions(void);
int flextInit(void) {
/**
* \return -1 on error, 0 on success
* \sa SDL_GetError
*/
int flextInit(void)
{
@if version.int_value() >= 32 and not version.profile == 'core':
GLint profile;
@end
int major;
int minor;
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &major);
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &minor);
flextLoadOpenGLFunctions();
/* Check for minimal version and profile */
/* --- Check for minimal version and profile --- */
if(major * 10 + minor < @version.int_value()!s) {
if (major * 10 + minor < @version.int_value()!s) {
return SDL_SetError("OpenGL context hasn't the expected version @version.major!s.@version.minor!s.");
}
@if version.int_value() >= 32 and not version.profile == 'core':
GLint profile;
@if version.int_value() >= 32 and not version.profile == 'core':
glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &profile);
if((profile & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) == 0) {
if ((profile & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) == 0) {
return SDL_SetError("This application requires a compatibility profile");
}
@end
@if extensions:
/* --- Check for extensions --- */
@for extension,required in extensions:
@if required:
if(!SDL_GL_ExtensionSupported("GL_@extension")) {
if (!SDL_GL_ExtensionSupported("GL_@extension")) {
return SDL_SetError("OpenGL extension @extension not supported.");
}
@else:
if(SDL_GL_ExtensionSupported("GL_@extension")) {
if (SDL_GL_ExtensionSupported("GL_@extension")) {
FLEXT_@extension = GL_TRUE;
}
@end
@end
@end
return 0;
}
@if extensions:
/* Extension flag definitions */
void flextLoadOpenGLFunctions(void)
{
/* --- Function pointer loading --- */
@for category,funcs in functions:
/* GL_@category */
@for f in funcs:
glpf@f.name = (PFNGL@f.name.upper()_PROC*)SDL_GL_GetProcAddress("gl@f.name");
@end
@end
}
/* ----------------------- Extension flag definitions ---------------------- */
@for extension,required in extensions:
int FLEXT_@extension = GL_FALSE;
@end
@end
/* Function pointer definitions */
/* ---------------------- Function pointer definitions --------------------- */
@for category,funcs in functions:
@if len(funcs) > 0 and category not in ['VERSION_1_0_DEPRECATED', 'VERSION_1_1_DEPRECATED' ]:
@if len(funcs) > 0:
/* GL_@category */
@for f in funcs:
@ -89,6 +93,7 @@ PFNGL@f.name.upper()_PROC* glpf@f.name = NULL;
@end
@end
#ifdef __cplusplus
}
#endif

View File

@ -1,13 +1,9 @@
@require(passthru, functions, enums, options, version, extensions, args)
@require(passthru, functions, enums, options, version, extensions)
/* WARNING: This file was automatically generated */
/* Do not edit. */
#ifndef __gl_h_
#define __gl_h_
/*
This file was generated using https://github.com/mosra/flextgl:
path/to/flextGLgen.py @args
Do not edit directly, modify the template or profile and regenerate.
*/
#ifdef __cplusplus
extern "C" {
@ -33,56 +29,47 @@ extern "C" {
#define GLAPI extern
#endif
/* ------------------------------- DATA TYPES ------------------------------ */
#include <KHR/khrplatform.h>
/* -------------------------------- DATA TYPES ------------------------------- */
@passthru
/* ---------------------------------- ENUMS -------------------------------- */
/* ----------------------------------- ENUMS --------------------------------- */
@enums
/* -------------------------- FUNCTION PROTOTYPES -------------------------- */
/* --------------------------- FUNCTION PROTOTYPES --------------------------- */
@for cat,funcs in functions:
@if funcs:
/* GL_@cat */
@if cat in ['VERSION_1_0_DEPRECATED', 'VERSION_1_1_DEPRECATED']:
@for f in funcs:
GLAPI @f.returntype APIENTRY gl@f.name (@f.param_list_string());
@end
@else:
@for f in funcs:
@for f in funcs:
typedef @f.returntype (APIENTRY PFNGL@f.name.upper()_PROC (@f.param_list_string()));
@end
@end
@for f in funcs:
@for f in funcs:
GLAPI PFNGL@f.name.upper()_PROC* glpf@f.name;
@end
@end
@for f in funcs:
@for f in funcs:
#define gl@f.name glpf@f.name
@end
@end
@end
@end
/* -------------------------- CATEGORY DEFINES ----------------------------- */
/* --------------------------- CATEGORY DEFINES ------------------------------ */
@for cat,funcs in functions:
#define GL_@cat
@end
@if extensions:
/* --------------------- FLAGS FOR OPTIONAL EXTENSIONS --------------------- */
/* ---------------------- Flags for optional extensions ---------------------- */
@for extension,required in extensions:
extern int FLEXT_@extension;
@end
@end
int flextInit(void);
#define FLEXT_MAJOR_VERSION @version.major!s
@ -97,4 +84,4 @@ int flextInit(void);
}
#endif
#endif
#endif /* _gl_h_ */