[Mesa-dev] [PATCH 08/12] mesa: add a context-independent variant of _mesa_override_gl_version

Marek Olšák maraeo at gmail.com
Sun Aug 3 08:18:31 PDT 2014


From: Marek Olšák <marek.olsak at amd.com>

---
 src/mesa/main/version.c | 25 ++++++++++++++++++-------
 src/mesa/main/version.h |  8 +++++---
 2 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index 7621144..c98e30c 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -124,8 +124,9 @@ create_version_string(struct gl_context *ctx, const char *prefix)
  * 3.1: select a Core profile with GL version 3.1
  * 3.1FC: select a Core+Forward Compatible profile with GL version 3.1
  */
-void
-_mesa_override_gl_version(struct gl_context *ctx)
+GLboolean
+_mesa_override_gl_version_contextless(struct gl_constants *consts,
+                                      gl_api *apiOut, GLuint *versionOut)
 {
    int version;
    GLboolean fwd_context;
@@ -133,15 +134,25 @@ _mesa_override_gl_version(struct gl_context *ctx)
    get_gl_override(&version, &fwd_context);
 
    if (version > 0) {
-      ctx->Version = version;
+      *versionOut = version;
       if (version >= 30 && fwd_context) {
-         ctx->API = API_OPENGL_CORE;
-         ctx->Const.ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT;
+         *apiOut = API_OPENGL_CORE;
+         consts->ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT;
       } else if (version >= 31) {
-         ctx->API = API_OPENGL_CORE;
+         *apiOut = API_OPENGL_CORE;
       } else {
-         ctx->API = API_OPENGL_COMPAT;
+         *apiOut = API_OPENGL_COMPAT;
       }
+      return GL_TRUE;
+   }
+   return GL_FALSE;
+}
+
+void
+_mesa_override_gl_version(struct gl_context *ctx)
+{
+   if (_mesa_override_gl_version_contextless(&ctx->Const, &ctx->API,
+                                             &ctx->Version)) {
       create_version_string(ctx, "");
    }
 }
diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h
index 42eada9..8dcd6a0 100644
--- a/src/mesa/main/version.h
+++ b/src/mesa/main/version.h
@@ -27,14 +27,16 @@
 #ifndef VERSION_H
 #define VERSION_H
 
-
-struct gl_context;
-struct gl_constants;
+#include "mtypes.h"
 
 
 extern void
 _mesa_compute_version(struct gl_context *ctx);
 
+extern GLboolean
+_mesa_override_gl_version_contextless(struct gl_constants *consts,
+                                      gl_api *apiOut, GLuint *versionOut);
+
 extern void
 _mesa_override_gl_version(struct gl_context *ctx);
 
-- 
1.9.1



More information about the mesa-dev mailing list