This is an automated email from the git hooks/post-receive script. smcv pushed a commit to tag 1.51b in repository iortcw.
commit b922900f2dc7df78a36eb177a77d1edc0d7750cb Author: MAN-AT-ARMS <m4n4t4...@gmail.com> Date: Wed Aug 9 12:38:13 2017 -0400 All: Rend2: Use extension functions with OpenGL versions before 3.0 --- MP/code/rend2/qgl.h | 10 +++- MP/code/rend2/tr_extensions.c | 130 +++++++++++++++++++++++++----------------- MP/code/renderer/qgl.h | 11 +++- SP/code/rend2/qgl.h | 10 +++- SP/code/rend2/tr_extensions.c | 130 +++++++++++++++++++++++++----------------- SP/code/renderer/qgl.h | 10 +++- 6 files changed, 192 insertions(+), 109 deletions(-) diff --git a/MP/code/rend2/qgl.h b/MP/code/rend2/qgl.h index 93fb8e6..530fe12 100644 --- a/MP/code/rend2/qgl.h +++ b/MP/code/rend2/qgl.h @@ -562,9 +562,12 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); #define GL_HALF_FLOAT_ARB 0x140B #endif -// OpenGL 3.0, was GL_EXT_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, and GL_ARB_vertex_array_object +// OpenGL 3.0 specific #define QGL_3_0_PROCS \ GLE(const GLubyte *, GetStringi, GLenum name, GLuint index) \ + +// GL_ARB_framebuffer_object, built-in to OpenGL 3.0 +#define QGL_ARB_framebuffer_object_PROCS \ GLE(void, BindRenderbuffer, GLenum target, GLuint renderbuffer) \ GLE(void, DeleteRenderbuffers, GLsizei n, const GLuint *renderbuffers) \ GLE(void, GenRenderbuffers, GLsizei n, GLuint *renderbuffers) \ @@ -578,6 +581,9 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); GLE(void, GenerateMipmap, GLenum target) \ GLE(void, BlitFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) \ GLE(void, RenderbufferStorageMultisample, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) \ + +// GL_ARB_vertex_array_object, built-in to OpenGL 3.0 +#define QGL_ARB_vertex_array_object_PROCS \ GLE(void, BindVertexArray, GLuint array) \ GLE(void, DeleteVertexArrays, GLsizei n, const GLuint *arrays) \ GLE(void, GenVertexArrays, GLsizei n, GLuint *arrays) \ @@ -637,6 +643,8 @@ QGL_1_3_PROCS; QGL_1_5_PROCS; QGL_2_0_PROCS; QGL_3_0_PROCS; +QGL_ARB_framebuffer_object_PROCS; +QGL_ARB_vertex_array_object_PROCS; QGL_EXT_direct_state_access_PROCS; #undef GLE diff --git a/MP/code/rend2/tr_extensions.c b/MP/code/rend2/tr_extensions.c index 7df5295..8447608 100644 --- a/MP/code/rend2/tr_extensions.c +++ b/MP/code/rend2/tr_extensions.c @@ -35,6 +35,8 @@ QGL_1_3_PROCS; QGL_1_5_PROCS; QGL_2_0_PROCS; QGL_3_0_PROCS; +QGL_ARB_framebuffer_object_PROCS; +QGL_ARB_vertex_array_object_PROCS; QGL_EXT_direct_state_access_PROCS; #undef GLE @@ -42,6 +44,8 @@ void GLimp_InitExtraExtensions() { char *extension; const char* result[3] = { "...ignoring %s\n", "...using %s\n", "...%s not found\n" }; + qboolean q_gl_version_at_least_3_0; + qboolean q_gl_version_at_least_3_2; // Check OpenGL version sscanf(glConfig.version_string, "%d.%d", &glRefConfig.openglMajorVersion, &glRefConfig.openglMinorVersion); @@ -49,6 +53,9 @@ void GLimp_InitExtraExtensions() ri.Error(ERR_FATAL, "OpenGL 2.0 required!"); ri.Printf(PRINT_ALL, "...using OpenGL %s\n", glConfig.version_string); + q_gl_version_at_least_3_0 = (glRefConfig.openglMajorVersion >= 3); + q_gl_version_at_least_3_2 = (glRefConfig.openglMajorVersion > 3 || (glRefConfig.openglMajorVersion == 3 && glRefConfig.openglMinorVersion > 2)); + // Check if we need Intel graphics specific fixes. glRefConfig.intelGraphics = qfalse; if (strstr((char *)qglGetString(GL_RENDERER), "Intel")) @@ -72,31 +79,92 @@ void GLimp_InitExtraExtensions() // OpenGL 2.0, was GL_ARB_shading_language_100, GL_ARB_vertex_program, GL_ARB_shader_objects, and GL_ARB_vertex_shader QGL_2_0_PROCS; - // OpenGL 3.0, was GL_EXT_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, and GL_ARB_vertex_array_object + // OpenGL 3.0 - no matching extension // QGL_*_PROCS becomes several functions, do not remove {} - if (glRefConfig.openglMajorVersion >= 3) + if (q_gl_version_at_least_3_0) { QGL_3_0_PROCS; + } + // OpenGL 3.0 - GL_ARB_framebuffer_object + extension = "GL_ARB_framebuffer_object"; + glRefConfig.framebufferObject = qfalse; + glRefConfig.framebufferBlit = qfalse; + glRefConfig.framebufferMultisample = qfalse; + if (q_gl_version_at_least_3_0 || SDL_GL_ExtensionSupported(extension)) + { glRefConfig.framebufferObject = !!r_ext_framebuffer_object->integer; glRefConfig.framebufferBlit = qtrue; glRefConfig.framebufferMultisample = qtrue; - qglGetIntegerv(GL_MAX_RENDERBUFFER_SIZE_EXT, &glRefConfig.maxRenderbufferSize); - qglGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &glRefConfig.maxColorAttachments); + qglGetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &glRefConfig.maxRenderbufferSize); + qglGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &glRefConfig.maxColorAttachments); + + QGL_ARB_framebuffer_object_PROCS; + + ri.Printf(PRINT_ALL, result[glRefConfig.framebufferObject], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); + } + + // OpenGL 3.0 - GL_ARB_vertex_array_object + extension = "GL_ARB_vertex_array_object"; + glRefConfig.vertexArrayObject = qfalse; + if (SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.vertexArrayObject = !!r_arb_vertex_array_object->integer; - ri.Printf(PRINT_ALL, result[glRefConfig.framebufferObject], "OpenGL 3.0+ framebuffer procs"); + QGL_ARB_vertex_array_object_PROCS; - // Don't let this be disabled, core context requires it - glRefConfig.vertexArrayObject = qtrue; + ri.Printf(PRINT_ALL, result[glRefConfig.vertexArrayObject], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); + } + + // OpenGL 3.0 - GL_ARB_texture_float + extension = "GL_ARB_texture_float"; + glRefConfig.textureFloat = qfalse; + if (q_gl_version_at_least_3_0 || SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.textureFloat = !!r_ext_texture_float->integer; - ri.Printf(PRINT_ALL, result[glRefConfig.vertexArrayObject], "OpenGL 3.0+ vertex array object procs"); + ri.Printf(PRINT_ALL, result[glRefConfig.textureFloat], extension); } else { - ri.Printf(PRINT_ALL, result[2], "OpenGL 3.0+ framebuffer procs"); - ri.Printf(PRINT_ALL, result[2], "OpenGL 3.0+ vertex array object procs"); + ri.Printf(PRINT_ALL, result[2], extension); + } + // OpenGL 3.2 - GL_ARB_depth_clamp + extension = "GL_ARB_depth_clamp"; + glRefConfig.depthClamp = qfalse; + if (q_gl_version_at_least_3_2 || SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.depthClamp = qtrue; + + ri.Printf(PRINT_ALL, result[glRefConfig.depthClamp], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); + } + + // OpenGL 3.2 - GL_ARB_seamless_cube_map + extension = "GL_ARB_seamless_cube_map"; + glRefConfig.seamlessCubeMap = qfalse; + if (q_gl_version_at_least_3_2 || SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.seamlessCubeMap = !!r_arb_seamless_cube_map->integer; + + ri.Printf(PRINT_ALL, result[glRefConfig.seamlessCubeMap], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); } // Determine GLSL version @@ -146,20 +214,6 @@ void GLimp_InitExtraExtensions() ri.Printf(PRINT_ALL, result[2], extension); } - // GL_ARB_texture_float - extension = "GL_ARB_texture_float"; - glRefConfig.textureFloat = qfalse; - if( SDL_GL_ExtensionSupported( extension ) ) - { - glRefConfig.textureFloat = !!r_ext_texture_float->integer; - - ri.Printf(PRINT_ALL, result[glRefConfig.textureFloat], extension); - } - else - { - ri.Printf(PRINT_ALL, result[2], extension); - } - glRefConfig.textureCompression = TCR_NONE; // GL_ARB_texture_compression_rgtc @@ -196,34 +250,6 @@ void GLimp_InitExtraExtensions() ri.Printf(PRINT_ALL, result[2], extension); } - // GL_ARB_depth_clamp - extension = "GL_ARB_depth_clamp"; - glRefConfig.depthClamp = qfalse; - if( SDL_GL_ExtensionSupported( extension ) ) - { - glRefConfig.depthClamp = qtrue; - - ri.Printf(PRINT_ALL, result[glRefConfig.depthClamp], extension); - } - else - { - ri.Printf(PRINT_ALL, result[2], extension); - } - - // GL_ARB_seamless_cube_map - extension = "GL_ARB_seamless_cube_map"; - glRefConfig.seamlessCubeMap = qfalse; - if( SDL_GL_ExtensionSupported( extension ) ) - { - glRefConfig.seamlessCubeMap = !!r_arb_seamless_cube_map->integer; - - ri.Printf(PRINT_ALL, result[glRefConfig.seamlessCubeMap], extension); - } - else - { - ri.Printf(PRINT_ALL, result[2], extension); - } - // GL_EXT_direct_state_access extension = "GL_EXT_direct_state_access"; glRefConfig.directStateAccess = qfalse; diff --git a/MP/code/renderer/qgl.h b/MP/code/renderer/qgl.h index fd929a2..1682956 100644 --- a/MP/code/renderer/qgl.h +++ b/MP/code/renderer/qgl.h @@ -621,9 +621,12 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); #define GL_HALF_FLOAT_ARB 0x140B #endif -// OpenGL 3.0, was GL_EXT_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, and GL_ARB_vertex_array_object +// OpenGL 3.0 specific #define QGL_3_0_PROCS \ GLE(const GLubyte *, GetStringi, GLenum name, GLuint index) \ + +// GL_ARB_framebuffer_object, built-in to OpenGL 3.0 +#define QGL_ARB_framebuffer_object_PROCS \ GLE(void, BindRenderbuffer, GLenum target, GLuint renderbuffer) \ GLE(void, DeleteRenderbuffers, GLsizei n, const GLuint *renderbuffers) \ GLE(void, GenRenderbuffers, GLsizei n, GLuint *renderbuffers) \ @@ -635,8 +638,10 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); GLE(void, FramebufferTexture2D, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) \ GLE(void, FramebufferRenderbuffer, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) \ GLE(void, GenerateMipmap, GLenum target) \ - GLE(void, BlitFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) \ GLE(void, RenderbufferStorageMultisample, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) \ + +// GL_ARB_vertex_array_object, built-in to OpenGL 3.0 +#define QGL_ARB_vertex_array_object_PROCS \ GLE(void, BindVertexArray, GLuint array) \ GLE(void, DeleteVertexArrays, GLsizei n, const GLuint *arrays) \ GLE(void, GenVertexArrays, GLsizei n, GLuint *arrays) \ @@ -696,6 +701,8 @@ QGL_1_3_PROCS; QGL_1_5_PROCS; QGL_2_0_PROCS; QGL_3_0_PROCS; +QGL_ARB_framebuffer_object_PROCS; +QGL_ARB_vertex_array_object_PROCS; QGL_EXT_direct_state_access_PROCS; #undef GLE diff --git a/SP/code/rend2/qgl.h b/SP/code/rend2/qgl.h index b1f3a18..da26a6c 100644 --- a/SP/code/rend2/qgl.h +++ b/SP/code/rend2/qgl.h @@ -562,9 +562,12 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); #define GL_HALF_FLOAT_ARB 0x140B #endif -// OpenGL 3.0, was GL_EXT_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, and GL_ARB_vertex_array_object +// OpenGL 3.0 specific #define QGL_3_0_PROCS \ GLE(const GLubyte *, GetStringi, GLenum name, GLuint index) \ + +// GL_ARB_framebuffer_object, built-in to OpenGL 3.0 +#define QGL_ARB_framebuffer_object_PROCS \ GLE(void, BindRenderbuffer, GLenum target, GLuint renderbuffer) \ GLE(void, DeleteRenderbuffers, GLsizei n, const GLuint *renderbuffers) \ GLE(void, GenRenderbuffers, GLsizei n, GLuint *renderbuffers) \ @@ -578,6 +581,9 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); GLE(void, GenerateMipmap, GLenum target) \ GLE(void, BlitFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) \ GLE(void, RenderbufferStorageMultisample, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) \ + +// GL_ARB_vertex_array_object, built-in to OpenGL 3.0 +#define QGL_ARB_vertex_array_object_PROCS \ GLE(void, BindVertexArray, GLuint array) \ GLE(void, DeleteVertexArrays, GLsizei n, const GLuint *arrays) \ GLE(void, GenVertexArrays, GLsizei n, GLuint *arrays) \ @@ -637,6 +643,8 @@ QGL_1_3_PROCS; QGL_1_5_PROCS; QGL_2_0_PROCS; QGL_3_0_PROCS; +QGL_ARB_framebuffer_object_PROCS; +QGL_ARB_vertex_array_object_PROCS; QGL_EXT_direct_state_access_PROCS; #undef GLE diff --git a/SP/code/rend2/tr_extensions.c b/SP/code/rend2/tr_extensions.c index 7df5295..8447608 100644 --- a/SP/code/rend2/tr_extensions.c +++ b/SP/code/rend2/tr_extensions.c @@ -35,6 +35,8 @@ QGL_1_3_PROCS; QGL_1_5_PROCS; QGL_2_0_PROCS; QGL_3_0_PROCS; +QGL_ARB_framebuffer_object_PROCS; +QGL_ARB_vertex_array_object_PROCS; QGL_EXT_direct_state_access_PROCS; #undef GLE @@ -42,6 +44,8 @@ void GLimp_InitExtraExtensions() { char *extension; const char* result[3] = { "...ignoring %s\n", "...using %s\n", "...%s not found\n" }; + qboolean q_gl_version_at_least_3_0; + qboolean q_gl_version_at_least_3_2; // Check OpenGL version sscanf(glConfig.version_string, "%d.%d", &glRefConfig.openglMajorVersion, &glRefConfig.openglMinorVersion); @@ -49,6 +53,9 @@ void GLimp_InitExtraExtensions() ri.Error(ERR_FATAL, "OpenGL 2.0 required!"); ri.Printf(PRINT_ALL, "...using OpenGL %s\n", glConfig.version_string); + q_gl_version_at_least_3_0 = (glRefConfig.openglMajorVersion >= 3); + q_gl_version_at_least_3_2 = (glRefConfig.openglMajorVersion > 3 || (glRefConfig.openglMajorVersion == 3 && glRefConfig.openglMinorVersion > 2)); + // Check if we need Intel graphics specific fixes. glRefConfig.intelGraphics = qfalse; if (strstr((char *)qglGetString(GL_RENDERER), "Intel")) @@ -72,31 +79,92 @@ void GLimp_InitExtraExtensions() // OpenGL 2.0, was GL_ARB_shading_language_100, GL_ARB_vertex_program, GL_ARB_shader_objects, and GL_ARB_vertex_shader QGL_2_0_PROCS; - // OpenGL 3.0, was GL_EXT_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, and GL_ARB_vertex_array_object + // OpenGL 3.0 - no matching extension // QGL_*_PROCS becomes several functions, do not remove {} - if (glRefConfig.openglMajorVersion >= 3) + if (q_gl_version_at_least_3_0) { QGL_3_0_PROCS; + } + // OpenGL 3.0 - GL_ARB_framebuffer_object + extension = "GL_ARB_framebuffer_object"; + glRefConfig.framebufferObject = qfalse; + glRefConfig.framebufferBlit = qfalse; + glRefConfig.framebufferMultisample = qfalse; + if (q_gl_version_at_least_3_0 || SDL_GL_ExtensionSupported(extension)) + { glRefConfig.framebufferObject = !!r_ext_framebuffer_object->integer; glRefConfig.framebufferBlit = qtrue; glRefConfig.framebufferMultisample = qtrue; - qglGetIntegerv(GL_MAX_RENDERBUFFER_SIZE_EXT, &glRefConfig.maxRenderbufferSize); - qglGetIntegerv(GL_MAX_COLOR_ATTACHMENTS_EXT, &glRefConfig.maxColorAttachments); + qglGetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &glRefConfig.maxRenderbufferSize); + qglGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &glRefConfig.maxColorAttachments); + + QGL_ARB_framebuffer_object_PROCS; + + ri.Printf(PRINT_ALL, result[glRefConfig.framebufferObject], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); + } + + // OpenGL 3.0 - GL_ARB_vertex_array_object + extension = "GL_ARB_vertex_array_object"; + glRefConfig.vertexArrayObject = qfalse; + if (SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.vertexArrayObject = !!r_arb_vertex_array_object->integer; - ri.Printf(PRINT_ALL, result[glRefConfig.framebufferObject], "OpenGL 3.0+ framebuffer procs"); + QGL_ARB_vertex_array_object_PROCS; - // Don't let this be disabled, core context requires it - glRefConfig.vertexArrayObject = qtrue; + ri.Printf(PRINT_ALL, result[glRefConfig.vertexArrayObject], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); + } + + // OpenGL 3.0 - GL_ARB_texture_float + extension = "GL_ARB_texture_float"; + glRefConfig.textureFloat = qfalse; + if (q_gl_version_at_least_3_0 || SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.textureFloat = !!r_ext_texture_float->integer; - ri.Printf(PRINT_ALL, result[glRefConfig.vertexArrayObject], "OpenGL 3.0+ vertex array object procs"); + ri.Printf(PRINT_ALL, result[glRefConfig.textureFloat], extension); } else { - ri.Printf(PRINT_ALL, result[2], "OpenGL 3.0+ framebuffer procs"); - ri.Printf(PRINT_ALL, result[2], "OpenGL 3.0+ vertex array object procs"); + ri.Printf(PRINT_ALL, result[2], extension); + } + // OpenGL 3.2 - GL_ARB_depth_clamp + extension = "GL_ARB_depth_clamp"; + glRefConfig.depthClamp = qfalse; + if (q_gl_version_at_least_3_2 || SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.depthClamp = qtrue; + + ri.Printf(PRINT_ALL, result[glRefConfig.depthClamp], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); + } + + // OpenGL 3.2 - GL_ARB_seamless_cube_map + extension = "GL_ARB_seamless_cube_map"; + glRefConfig.seamlessCubeMap = qfalse; + if (q_gl_version_at_least_3_2 || SDL_GL_ExtensionSupported(extension)) + { + glRefConfig.seamlessCubeMap = !!r_arb_seamless_cube_map->integer; + + ri.Printf(PRINT_ALL, result[glRefConfig.seamlessCubeMap], extension); + } + else + { + ri.Printf(PRINT_ALL, result[2], extension); } // Determine GLSL version @@ -146,20 +214,6 @@ void GLimp_InitExtraExtensions() ri.Printf(PRINT_ALL, result[2], extension); } - // GL_ARB_texture_float - extension = "GL_ARB_texture_float"; - glRefConfig.textureFloat = qfalse; - if( SDL_GL_ExtensionSupported( extension ) ) - { - glRefConfig.textureFloat = !!r_ext_texture_float->integer; - - ri.Printf(PRINT_ALL, result[glRefConfig.textureFloat], extension); - } - else - { - ri.Printf(PRINT_ALL, result[2], extension); - } - glRefConfig.textureCompression = TCR_NONE; // GL_ARB_texture_compression_rgtc @@ -196,34 +250,6 @@ void GLimp_InitExtraExtensions() ri.Printf(PRINT_ALL, result[2], extension); } - // GL_ARB_depth_clamp - extension = "GL_ARB_depth_clamp"; - glRefConfig.depthClamp = qfalse; - if( SDL_GL_ExtensionSupported( extension ) ) - { - glRefConfig.depthClamp = qtrue; - - ri.Printf(PRINT_ALL, result[glRefConfig.depthClamp], extension); - } - else - { - ri.Printf(PRINT_ALL, result[2], extension); - } - - // GL_ARB_seamless_cube_map - extension = "GL_ARB_seamless_cube_map"; - glRefConfig.seamlessCubeMap = qfalse; - if( SDL_GL_ExtensionSupported( extension ) ) - { - glRefConfig.seamlessCubeMap = !!r_arb_seamless_cube_map->integer; - - ri.Printf(PRINT_ALL, result[glRefConfig.seamlessCubeMap], extension); - } - else - { - ri.Printf(PRINT_ALL, result[2], extension); - } - // GL_EXT_direct_state_access extension = "GL_EXT_direct_state_access"; glRefConfig.directStateAccess = qfalse; diff --git a/SP/code/renderer/qgl.h b/SP/code/renderer/qgl.h index 9d92b9f..430e758 100644 --- a/SP/code/renderer/qgl.h +++ b/SP/code/renderer/qgl.h @@ -621,9 +621,12 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); #define GL_HALF_FLOAT_ARB 0x140B #endif -// OpenGL 3.0, was GL_EXT_framebuffer_object, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, and GL_ARB_vertex_array_object +// OpenGL 3.0 specific #define QGL_3_0_PROCS \ GLE(const GLubyte *, GetStringi, GLenum name, GLuint index) \ + +// GL_ARB_framebuffer_object, built-in to OpenGL 3.0 +#define QGL_ARB_framebuffer_object_PROCS \ GLE(void, BindRenderbuffer, GLenum target, GLuint renderbuffer) \ GLE(void, DeleteRenderbuffers, GLsizei n, const GLuint *renderbuffers) \ GLE(void, GenRenderbuffers, GLsizei n, GLuint *renderbuffers) \ @@ -637,6 +640,9 @@ extern void (APIENTRYP qglPNTrianglesfATI)(GLenum pname, GLfloat param); GLE(void, GenerateMipmap, GLenum target) \ GLE(void, BlitFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) \ GLE(void, RenderbufferStorageMultisample, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) \ + +// GL_ARB_vertex_array_object, built-in to OpenGL 3.0 +#define QGL_ARB_vertex_array_object_PROCS \ GLE(void, BindVertexArray, GLuint array) \ GLE(void, DeleteVertexArrays, GLsizei n, const GLuint *arrays) \ GLE(void, GenVertexArrays, GLsizei n, GLuint *arrays) \ @@ -696,6 +702,8 @@ QGL_1_3_PROCS; QGL_1_5_PROCS; QGL_2_0_PROCS; QGL_3_0_PROCS; +QGL_ARB_framebuffer_object_PROCS; +QGL_ARB_vertex_array_object_PROCS; QGL_EXT_direct_state_access_PROCS; #undef GLE -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git _______________________________________________ Pkg-games-commits mailing list Pkg-games-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits