As we get into supporting GL 3.x core, we come across more and more features
of the API that depend on the version number as opposed to just the extension
list.  This will let us more sanely do version checks than "(VersionMajor == 3
&& VersionMinor >= 2) || VersionMajor >= 4".
---
 src/mesa/main/mtypes.h  |    2 ++
 src/mesa/main/version.c |    6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 3d59dc6..23d32a6 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3427,6 +3427,8 @@ struct gl_context
 
    /** Version info */
    GLuint VersionMajor, VersionMinor;
+   /** VersionMajor * 10 + VersionMinor, so 31 for GL 3.1. */
+   GLuint Version;
    char *VersionString;
 
    /** \name State attribute stack (for glPush/PopAttrib) */
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index efaaf58..697758e 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -223,6 +223,8 @@ compute_version(struct gl_context *ctx)
 
    override_version(ctx, &ctx->VersionMajor, &ctx->VersionMinor);
 
+   ctx->Version = ctx->VersionMajor * 10 + ctx->VersionMinor;
+
    ctx->VersionString = (char *) malloc(max);
    if (ctx->VersionString) {
       _mesa_snprintf(ctx->VersionString, max,
@@ -257,6 +259,8 @@ compute_version_es1(struct gl_context *ctx)
       _mesa_problem(ctx, "Incomplete OpenGL ES 1.0 support.");
    }
 
+   ctx->Version = ctx->VersionMajor * 10 + ctx->VersionMinor;
+
    ctx->VersionString = (char *) malloc(max);
    if (ctx->VersionString) {
       _mesa_snprintf(ctx->VersionString, max,
@@ -291,6 +295,8 @@ compute_version_es2(struct gl_context *ctx)
       _mesa_problem(ctx, "Incomplete OpenGL ES 2.0 support.");
    }
 
+   ctx->Version = ctx->VersionMajor * 10 + ctx->VersionMinor;
+
    ctx->VersionString = (char *) malloc(max);
    if (ctx->VersionString) {
       _mesa_snprintf(ctx->VersionString, max,
-- 
1.7.10.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to