Skip to content

Commit 183a7d6

Browse files
committed
opengl: Clean up flextGL definitions
Remove commented definitions. They can be found in commit history. Move OpenGL version check out of flextGL, and use LOG_* macros for error reporting.
1 parent c4aabad commit 183a7d6

File tree

4 files changed

+14
-298
lines changed

4 files changed

+14
-298
lines changed

examples/protonect/src/flextGL.c

Lines changed: 1 addition & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,11 @@
1-
/* WARNING: This file was automatically generated */
2-
/* Do not edit. */
3-
41
#include "flextGL.h"
52
#include "GLFW/glfw3.h"
63

7-
#include <stdio.h>
8-
9-
104
#ifdef __cplusplus
115
extern "C" {
126
#endif
137

14-
15-
void flextLoadOpenGLFunctions(OpenGLBindings *bindings);
16-
17-
int flextInit(GLFWwindow* window, OpenGLBindings *bindings)
18-
{
19-
20-
int major = glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MAJOR);
21-
int minor = glfwGetWindowAttrib(window, GLFW_CONTEXT_VERSION_MINOR);
22-
23-
flextLoadOpenGLFunctions(bindings);
24-
25-
/* --- Check for minimal version and profile --- */
26-
27-
if (major * 10 + minor < 31) {
28-
fprintf(stderr, "Error: OpenGL version 3.1 not supported.\n");
29-
fprintf(stderr, " Your version is %d.%d.\n", major, minor);
30-
fprintf(stderr, " Try updating your graphics driver.\n");
31-
return GL_FALSE;
32-
}
33-
34-
35-
/* --- Check for extensions --- */
36-
37-
38-
return GL_TRUE;
39-
}
40-
41-
42-
43-
void flextLoadOpenGLFunctions(OpenGLBindings *bindings)
8+
void flextInit(OpenGLBindings *bindings)
449
{
4510
/* --- Function pointer loading --- */
4611

@@ -305,59 +270,6 @@ void flextLoadOpenGLFunctions(OpenGLBindings *bindings)
305270
bindings->glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAME_PROC*)glfwGetProcAddress("glGetActiveUniformBlockName");
306271
bindings->glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDING_PROC*)glfwGetProcAddress("glUniformBlockBinding");
307272

308-
/* GL_VERSION_3_2 */
309-
/*
310-
bindings->glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEX_PROC*)glfwGetProcAddress("glDrawElementsBaseVertex");
311-
bindings->glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEX_PROC*)glfwGetProcAddress("glDrawRangeElementsBaseVertex");
312-
bindings->glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEX_PROC*)glfwGetProcAddress("glDrawElementsInstancedBaseVertex");
313-
bindings->glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEX_PROC*)glfwGetProcAddress("glMultiDrawElementsBaseVertex");
314-
bindings->glProvokingVertex = (PFNGLPROVOKINGVERTEX_PROC*)glfwGetProcAddress("glProvokingVertex");
315-
bindings->glFenceSync = (PFNGLFENCESYNC_PROC*)glfwGetProcAddress("glFenceSync");
316-
bindings->glIsSync = (PFNGLISSYNC_PROC*)glfwGetProcAddress("glIsSync");
317-
bindings->glDeleteSync = (PFNGLDELETESYNC_PROC*)glfwGetProcAddress("glDeleteSync");
318-
bindings->glClientWaitSync = (PFNGLCLIENTWAITSYNC_PROC*)glfwGetProcAddress("glClientWaitSync");
319-
bindings->glWaitSync = (PFNGLWAITSYNC_PROC*)glfwGetProcAddress("glWaitSync");
320-
bindings->glGetInteger64v = (PFNGLGETINTEGER64V_PROC*)glfwGetProcAddress("glGetInteger64v");
321-
bindings->glGetSynciv = (PFNGLGETSYNCIV_PROC*)glfwGetProcAddress("glGetSynciv");
322-
bindings->glGetInteger64i_v = (PFNGLGETINTEGER64I_V_PROC*)glfwGetProcAddress("glGetInteger64i_v");
323-
bindings->glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64V_PROC*)glfwGetProcAddress("glGetBufferParameteri64v");
324-
bindings->glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTURE_PROC*)glfwGetProcAddress("glFramebufferTexture");
325-
bindings->glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLE_PROC*)glfwGetProcAddress("glTexImage2DMultisample");
326-
bindings->glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLE_PROC*)glfwGetProcAddress("glTexImage3DMultisample");
327-
bindings->glGetMultisamplefv = (PFNGLGETMULTISAMPLEFV_PROC*)glfwGetProcAddress("glGetMultisamplefv");
328-
bindings->glSampleMaski = (PFNGLSAMPLEMASKI_PROC*)glfwGetProcAddress("glSampleMaski");
329-
*/
330-
/* GL_VERSION_3_3 */
331-
/*
332-
bindings->glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXED_PROC*)glfwGetProcAddress("glBindFragDataLocationIndexed");
333-
bindings->glGetFragDataIndex = (PFNGLGETFRAGDATAINDEX_PROC*)glfwGetProcAddress("glGetFragDataIndex");
334-
bindings->glGenSamplers = (PFNGLGENSAMPLERS_PROC*)glfwGetProcAddress("glGenSamplers");
335-
bindings->glDeleteSamplers = (PFNGLDELETESAMPLERS_PROC*)glfwGetProcAddress("glDeleteSamplers");
336-
bindings->glIsSampler = (PFNGLISSAMPLER_PROC*)glfwGetProcAddress("glIsSampler");
337-
bindings->glBindSampler = (PFNGLBINDSAMPLER_PROC*)glfwGetProcAddress("glBindSampler");
338-
bindings->glSamplerParameteri = (PFNGLSAMPLERPARAMETERI_PROC*)glfwGetProcAddress("glSamplerParameteri");
339-
bindings->glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIV_PROC*)glfwGetProcAddress("glSamplerParameteriv");
340-
bindings->glSamplerParameterf = (PFNGLSAMPLERPARAMETERF_PROC*)glfwGetProcAddress("glSamplerParameterf");
341-
bindings->glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFV_PROC*)glfwGetProcAddress("glSamplerParameterfv");
342-
bindings->glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIV_PROC*)glfwGetProcAddress("glSamplerParameterIiv");
343-
bindings->glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIV_PROC*)glfwGetProcAddress("glSamplerParameterIuiv");
344-
bindings->glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIV_PROC*)glfwGetProcAddress("glGetSamplerParameteriv");
345-
bindings->glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIV_PROC*)glfwGetProcAddress("glGetSamplerParameterIiv");
346-
bindings->glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFV_PROC*)glfwGetProcAddress("glGetSamplerParameterfv");
347-
bindings->glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIV_PROC*)glfwGetProcAddress("glGetSamplerParameterIuiv");
348-
bindings->glQueryCounter = (PFNGLQUERYCOUNTER_PROC*)glfwGetProcAddress("glQueryCounter");
349-
bindings->glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64V_PROC*)glfwGetProcAddress("glGetQueryObjecti64v");
350-
bindings->glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64V_PROC*)glfwGetProcAddress("glGetQueryObjectui64v");
351-
bindings->glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISOR_PROC*)glfwGetProcAddress("glVertexAttribDivisor");
352-
bindings->glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UI_PROC*)glfwGetProcAddress("glVertexAttribP1ui");
353-
bindings->glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIV_PROC*)glfwGetProcAddress("glVertexAttribP1uiv");
354-
bindings->glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UI_PROC*)glfwGetProcAddress("glVertexAttribP2ui");
355-
bindings->glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIV_PROC*)glfwGetProcAddress("glVertexAttribP2uiv");
356-
bindings->glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UI_PROC*)glfwGetProcAddress("glVertexAttribP3ui");
357-
bindings->glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIV_PROC*)glfwGetProcAddress("glVertexAttribP3uiv");
358-
bindings->glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UI_PROC*)glfwGetProcAddress("glVertexAttribP4ui");
359-
bindings->glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIV_PROC*)glfwGetProcAddress("glVertexAttribP4uiv");
360-
*/
361273
}
362274

363275
/* ----------------------- Extension flag definitions ---------------------- */

examples/protonect/src/flextGL.h

Lines changed: 2 additions & 204 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
/* WARNING: This file was automatically generated */
2-
/* Do not edit. */
3-
41
#ifndef __gl_h_
52
#define __gl_h_
63

@@ -840,92 +837,6 @@ typedef struct __GLsync *GLsync;
840837
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
841838
#define GL_INVALID_INDEX 0xFFFFFFFFu
842839

843-
/* GL_VERSION_3_2 */
844-
/*
845-
#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
846-
#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
847-
#define GL_LINES_ADJACENCY 0x000A
848-
#define GL_LINE_STRIP_ADJACENCY 0x000B
849-
#define GL_TRIANGLES_ADJACENCY 0x000C
850-
#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
851-
#define GL_PROGRAM_POINT_SIZE 0x8642
852-
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
853-
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
854-
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
855-
#define GL_GEOMETRY_SHADER 0x8DD9
856-
#define GL_GEOMETRY_VERTICES_OUT 0x8916
857-
#define GL_GEOMETRY_INPUT_TYPE 0x8917
858-
#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
859-
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
860-
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
861-
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
862-
#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
863-
#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
864-
#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
865-
#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
866-
#define GL_CONTEXT_PROFILE_MASK 0x9126
867-
#define GL_DEPTH_CLAMP 0x864F
868-
#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
869-
#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
870-
#define GL_LAST_VERTEX_CONVENTION 0x8E4E
871-
#define GL_PROVOKING_VERTEX 0x8E4F
872-
#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
873-
#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
874-
#define GL_OBJECT_TYPE 0x9112
875-
#define GL_SYNC_CONDITION 0x9113
876-
#define GL_SYNC_STATUS 0x9114
877-
#define GL_SYNC_FLAGS 0x9115
878-
#define GL_SYNC_FENCE 0x9116
879-
#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
880-
#define GL_UNSIGNALED 0x9118
881-
#define GL_SIGNALED 0x9119
882-
#define GL_ALREADY_SIGNALED 0x911A
883-
#define GL_TIMEOUT_EXPIRED 0x911B
884-
#define GL_CONDITION_SATISFIED 0x911C
885-
#define GL_WAIT_FAILED 0x911D
886-
#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
887-
#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
888-
#define GL_SAMPLE_POSITION 0x8E50
889-
#define GL_SAMPLE_MASK 0x8E51
890-
#define GL_SAMPLE_MASK_VALUE 0x8E52
891-
#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
892-
#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
893-
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
894-
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
895-
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
896-
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
897-
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
898-
#define GL_TEXTURE_SAMPLES 0x9106
899-
#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
900-
#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
901-
#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
902-
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
903-
#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
904-
#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
905-
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
906-
#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
907-
#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
908-
#define GL_MAX_INTEGER_SAMPLES 0x9110
909-
*/
910-
/* GL_VERSION_3_3 */
911-
/*
912-
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
913-
#define GL_SRC1_COLOR 0x88F9
914-
#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
915-
#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
916-
#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
917-
#define GL_ANY_SAMPLES_PASSED 0x8C2F
918-
#define GL_SAMPLER_BINDING 0x8919
919-
#define GL_RGB10_A2UI 0x906F
920-
#define GL_TEXTURE_SWIZZLE_R 0x8E42
921-
#define GL_TEXTURE_SWIZZLE_G 0x8E43
922-
#define GL_TEXTURE_SWIZZLE_B 0x8E44
923-
#define GL_TEXTURE_SWIZZLE_A 0x8E45
924-
#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
925-
#define GL_TIME_ELAPSED 0x88BF
926-
#define GL_TIMESTAMP 0x8E28
927-
#define GL_INT_2_10_10_10_REV 0x8D9F
928-
*/
929840
/* --------------------------- FUNCTION PROTOTYPES --------------------------- */
930841

931842

@@ -1257,59 +1168,6 @@ typedef void (APIENTRY PFNGLGETACTIVEUNIFORMBLOCKIV_PROC (GLuint program, GLuint
12571168
typedef void (APIENTRY PFNGLGETACTIVEUNIFORMBLOCKNAME_PROC (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName));
12581169
typedef void (APIENTRY PFNGLUNIFORMBLOCKBINDING_PROC (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding));
12591170

1260-
/* GL_VERSION_3_2 */
1261-
/*
1262-
typedef void (APIENTRY PFNGLDRAWELEMENTSBASEVERTEX_PROC (GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex));
1263-
typedef void (APIENTRY PFNGLDRAWRANGEELEMENTSBASEVERTEX_PROC (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex));
1264-
typedef void (APIENTRY PFNGLDRAWELEMENTSINSTANCEDBASEVERTEX_PROC (GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex));
1265-
typedef void (APIENTRY PFNGLMULTIDRAWELEMENTSBASEVERTEX_PROC (GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex));
1266-
typedef void (APIENTRY PFNGLPROVOKINGVERTEX_PROC (GLenum mode));
1267-
typedef GLsync (APIENTRY PFNGLFENCESYNC_PROC (GLenum condition, GLbitfield flags));
1268-
typedef GLboolean (APIENTRY PFNGLISSYNC_PROC (GLsync sync));
1269-
typedef void (APIENTRY PFNGLDELETESYNC_PROC (GLsync sync));
1270-
typedef GLenum (APIENTRY PFNGLCLIENTWAITSYNC_PROC (GLsync sync, GLbitfield flags, GLuint64 timeout));
1271-
typedef void (APIENTRY PFNGLWAITSYNC_PROC (GLsync sync, GLbitfield flags, GLuint64 timeout));
1272-
typedef void (APIENTRY PFNGLGETINTEGER64V_PROC (GLenum pname, GLint64 * data));
1273-
typedef void (APIENTRY PFNGLGETSYNCIV_PROC (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values));
1274-
typedef void (APIENTRY PFNGLGETINTEGER64I_V_PROC (GLenum target, GLuint index, GLint64 * data));
1275-
typedef void (APIENTRY PFNGLGETBUFFERPARAMETERI64V_PROC (GLenum target, GLenum pname, GLint64 * params));
1276-
typedef void (APIENTRY PFNGLFRAMEBUFFERTEXTURE_PROC (GLenum target, GLenum attachment, GLuint texture, GLint level));
1277-
typedef void (APIENTRY PFNGLTEXIMAGE2DMULTISAMPLE_PROC (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations));
1278-
typedef void (APIENTRY PFNGLTEXIMAGE3DMULTISAMPLE_PROC (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations));
1279-
typedef void (APIENTRY PFNGLGETMULTISAMPLEFV_PROC (GLenum pname, GLuint index, GLfloat * val));
1280-
typedef void (APIENTRY PFNGLSAMPLEMASKI_PROC (GLuint maskNumber, GLbitfield mask));
1281-
*/
1282-
/* GL_VERSION_3_3 */
1283-
/*
1284-
typedef void (APIENTRY PFNGLBINDFRAGDATALOCATIONINDEXED_PROC (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name));
1285-
typedef GLint (APIENTRY PFNGLGETFRAGDATAINDEX_PROC (GLuint program, const GLchar * name));
1286-
typedef void (APIENTRY PFNGLGENSAMPLERS_PROC (GLsizei count, GLuint * samplers));
1287-
typedef void (APIENTRY PFNGLDELETESAMPLERS_PROC (GLsizei count, const GLuint * samplers));
1288-
typedef GLboolean (APIENTRY PFNGLISSAMPLER_PROC (GLuint sampler));
1289-
typedef void (APIENTRY PFNGLBINDSAMPLER_PROC (GLuint unit, GLuint sampler));
1290-
typedef void (APIENTRY PFNGLSAMPLERPARAMETERI_PROC (GLuint sampler, GLenum pname, GLint param));
1291-
typedef void (APIENTRY PFNGLSAMPLERPARAMETERIV_PROC (GLuint sampler, GLenum pname, const GLint * param));
1292-
typedef void (APIENTRY PFNGLSAMPLERPARAMETERF_PROC (GLuint sampler, GLenum pname, GLfloat param));
1293-
typedef void (APIENTRY PFNGLSAMPLERPARAMETERFV_PROC (GLuint sampler, GLenum pname, const GLfloat * param));
1294-
typedef void (APIENTRY PFNGLSAMPLERPARAMETERIIV_PROC (GLuint sampler, GLenum pname, const GLint * param));
1295-
typedef void (APIENTRY PFNGLSAMPLERPARAMETERIUIV_PROC (GLuint sampler, GLenum pname, const GLuint * param));
1296-
typedef void (APIENTRY PFNGLGETSAMPLERPARAMETERIV_PROC (GLuint sampler, GLenum pname, GLint * params));
1297-
typedef void (APIENTRY PFNGLGETSAMPLERPARAMETERIIV_PROC (GLuint sampler, GLenum pname, GLint * params));
1298-
typedef void (APIENTRY PFNGLGETSAMPLERPARAMETERFV_PROC (GLuint sampler, GLenum pname, GLfloat * params));
1299-
typedef void (APIENTRY PFNGLGETSAMPLERPARAMETERIUIV_PROC (GLuint sampler, GLenum pname, GLuint * params));
1300-
typedef void (APIENTRY PFNGLQUERYCOUNTER_PROC (GLuint id, GLenum target));
1301-
typedef void (APIENTRY PFNGLGETQUERYOBJECTI64V_PROC (GLuint id, GLenum pname, GLint64 * params));
1302-
typedef void (APIENTRY PFNGLGETQUERYOBJECTUI64V_PROC (GLuint id, GLenum pname, GLuint64 * params));
1303-
typedef void (APIENTRY PFNGLVERTEXATTRIBDIVISOR_PROC (GLuint index, GLuint divisor));
1304-
typedef void (APIENTRY PFNGLVERTEXATTRIBP1UI_PROC (GLuint index, GLenum type, GLboolean normalized, GLuint value));
1305-
typedef void (APIENTRY PFNGLVERTEXATTRIBP1UIV_PROC (GLuint index, GLenum type, GLboolean normalized, const GLuint * value));
1306-
typedef void (APIENTRY PFNGLVERTEXATTRIBP2UI_PROC (GLuint index, GLenum type, GLboolean normalized, GLuint value));
1307-
typedef void (APIENTRY PFNGLVERTEXATTRIBP2UIV_PROC (GLuint index, GLenum type, GLboolean normalized, const GLuint * value));
1308-
typedef void (APIENTRY PFNGLVERTEXATTRIBP3UI_PROC (GLuint index, GLenum type, GLboolean normalized, GLuint value));
1309-
typedef void (APIENTRY PFNGLVERTEXATTRIBP3UIV_PROC (GLuint index, GLenum type, GLboolean normalized, const GLuint * value));
1310-
typedef void (APIENTRY PFNGLVERTEXATTRIBP4UI_PROC (GLuint index, GLenum type, GLboolean normalized, GLuint value));
1311-
typedef void (APIENTRY PFNGLVERTEXATTRIBP4UIV_PROC (GLuint index, GLenum type, GLboolean normalized, const GLuint * value));
1312-
*/
13131171
struct OpenGLBindings
13141172
{
13151173

@@ -1573,59 +1431,6 @@ struct OpenGLBindings
15731431
PFNGLGETACTIVEUNIFORMBLOCKNAME_PROC* glGetActiveUniformBlockName;
15741432
PFNGLUNIFORMBLOCKBINDING_PROC* glUniformBlockBinding;
15751433

1576-
/* GL_VERSION_3_2 */
1577-
/*
1578-
PFNGLDRAWELEMENTSBASEVERTEX_PROC* glDrawElementsBaseVertex;
1579-
PFNGLDRAWRANGEELEMENTSBASEVERTEX_PROC* glDrawRangeElementsBaseVertex;
1580-
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEX_PROC* glDrawElementsInstancedBaseVertex;
1581-
PFNGLMULTIDRAWELEMENTSBASEVERTEX_PROC* glMultiDrawElementsBaseVertex;
1582-
PFNGLPROVOKINGVERTEX_PROC* glProvokingVertex;
1583-
PFNGLFENCESYNC_PROC* glFenceSync;
1584-
PFNGLISSYNC_PROC* glIsSync;
1585-
PFNGLDELETESYNC_PROC* glDeleteSync;
1586-
PFNGLCLIENTWAITSYNC_PROC* glClientWaitSync;
1587-
PFNGLWAITSYNC_PROC* glWaitSync;
1588-
PFNGLGETINTEGER64V_PROC* glGetInteger64v;
1589-
PFNGLGETSYNCIV_PROC* glGetSynciv;
1590-
PFNGLGETINTEGER64I_V_PROC* glGetInteger64i_v;
1591-
PFNGLGETBUFFERPARAMETERI64V_PROC* glGetBufferParameteri64v;
1592-
PFNGLFRAMEBUFFERTEXTURE_PROC* glFramebufferTexture;
1593-
PFNGLTEXIMAGE2DMULTISAMPLE_PROC* glTexImage2DMultisample;
1594-
PFNGLTEXIMAGE3DMULTISAMPLE_PROC* glTexImage3DMultisample;
1595-
PFNGLGETMULTISAMPLEFV_PROC* glGetMultisamplefv;
1596-
PFNGLSAMPLEMASKI_PROC* glSampleMaski;
1597-
*/
1598-
/* GL_VERSION_3_3 */
1599-
/*
1600-
PFNGLBINDFRAGDATALOCATIONINDEXED_PROC* glBindFragDataLocationIndexed;
1601-
PFNGLGETFRAGDATAINDEX_PROC* glGetFragDataIndex;
1602-
PFNGLGENSAMPLERS_PROC* glGenSamplers;
1603-
PFNGLDELETESAMPLERS_PROC* glDeleteSamplers;
1604-
PFNGLISSAMPLER_PROC* glIsSampler;
1605-
PFNGLBINDSAMPLER_PROC* glBindSampler;
1606-
PFNGLSAMPLERPARAMETERI_PROC* glSamplerParameteri;
1607-
PFNGLSAMPLERPARAMETERIV_PROC* glSamplerParameteriv;
1608-
PFNGLSAMPLERPARAMETERF_PROC* glSamplerParameterf;
1609-
PFNGLSAMPLERPARAMETERFV_PROC* glSamplerParameterfv;
1610-
PFNGLSAMPLERPARAMETERIIV_PROC* glSamplerParameterIiv;
1611-
PFNGLSAMPLERPARAMETERIUIV_PROC* glSamplerParameterIuiv;
1612-
PFNGLGETSAMPLERPARAMETERIV_PROC* glGetSamplerParameteriv;
1613-
PFNGLGETSAMPLERPARAMETERIIV_PROC* glGetSamplerParameterIiv;
1614-
PFNGLGETSAMPLERPARAMETERFV_PROC* glGetSamplerParameterfv;
1615-
PFNGLGETSAMPLERPARAMETERIUIV_PROC* glGetSamplerParameterIuiv;
1616-
PFNGLQUERYCOUNTER_PROC* glQueryCounter;
1617-
PFNGLGETQUERYOBJECTI64V_PROC* glGetQueryObjecti64v;
1618-
PFNGLGETQUERYOBJECTUI64V_PROC* glGetQueryObjectui64v;
1619-
PFNGLVERTEXATTRIBDIVISOR_PROC* glVertexAttribDivisor;
1620-
PFNGLVERTEXATTRIBP1UI_PROC* glVertexAttribP1ui;
1621-
PFNGLVERTEXATTRIBP1UIV_PROC* glVertexAttribP1uiv;
1622-
PFNGLVERTEXATTRIBP2UI_PROC* glVertexAttribP2ui;
1623-
PFNGLVERTEXATTRIBP2UIV_PROC* glVertexAttribP2uiv;
1624-
PFNGLVERTEXATTRIBP3UI_PROC* glVertexAttribP3ui;
1625-
PFNGLVERTEXATTRIBP3UIV_PROC* glVertexAttribP3uiv;
1626-
PFNGLVERTEXATTRIBP4UI_PROC* glVertexAttribP4ui;
1627-
PFNGLVERTEXATTRIBP4UIV_PROC* glVertexAttribP4uiv;
1628-
*/
16291434
};
16301435

16311436
typedef struct OpenGLBindings OpenGLBindings;
@@ -1642,20 +1447,13 @@ typedef struct OpenGLBindings OpenGLBindings;
16421447
#define GL_VERSION_2_1
16431448
#define GL_VERSION_3_0
16441449
#define GL_VERSION_3_1
1645-
#define GL_VERSION_3_2
1646-
#define GL_VERSION_3_3
16471450

16481451
/* ---------------------- Flags for optional extensions ---------------------- */
16491452

1650-
1651-
1652-
struct GLFWwindow;
1653-
typedef struct GLFWwindow GLFWwindow;
1654-
1655-
int flextInit(GLFWwindow* window, OpenGLBindings *bindings);
1453+
void flextInit(OpenGLBindings *bindings);
16561454

16571455
#define FLEXT_MAJOR_VERSION 3
1658-
#define FLEXT_MINOR_VERSION 3
1456+
#define FLEXT_MINOR_VERSION 1
16591457
#define FLEXT_CORE_PROFILE 1
16601458

16611459
#ifdef __cplusplus

examples/protonect/src/opengl_depth_packet_processor.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -519,12 +519,18 @@ struct OpenGLDepthPacketProcessorImpl : public WithOpenGLBindings, public WithPe
519519
{
520520
ChangeCurrentOpenGLContext ctx(opengl_context_ptr);
521521

522-
OpenGLBindings *b = new OpenGLBindings();
523-
if (flextInit(opengl_context_ptr, b) == 0)
524-
{
525-
LOG_ERROR << "Failed to initialize flextGL.";
522+
int major = glfwGetWindowAttrib(opengl_context_ptr, GLFW_CONTEXT_VERSION_MAJOR);
523+
int minor = glfwGetWindowAttrib(opengl_context_ptr, GLFW_CONTEXT_VERSION_MINOR);
524+
525+
if (major * 10 + minor < 31) {
526+
LOG_ERROR << "OpenGL version 3.1 not supported.";
527+
LOG_ERROR << "Your version is " << major << "." << minor;
528+
LOG_ERROR << "Try updating your graphics driver.";
526529
exit(-1);
527530
}
531+
532+
OpenGLBindings *b = new OpenGLBindings();
533+
flextInit(b);
528534
gl(b);
529535

530536
input_data.allocate(352, 424 * 9);

0 commit comments

Comments
 (0)