[iortcw] 85/89: All: Rend2: Use extension functions with OpenGL versions before 3.0

Simon McVittie smcv at debian.org
Fri Sep 8 10:44:35 UTC 2017


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 <M4N4T4RMS at 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



More information about the Pkg-games-commits mailing list