Mesa (master): mesa: add GL 3.2 GL_CONTEXT_PROFILE_MASK query

Brian Paul brianp at kemper.freedesktop.org
Wed Apr 21 03:18:53 UTC 2010


Module: Mesa
Branch: master
Commit: bd1d35fb5d3c889b11de5a1d493f711fc091fbed
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd1d35fb5d3c889b11de5a1d493f711fc091fbed

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Apr 20 20:52:56 2010 -0600

mesa: add GL 3.2 GL_CONTEXT_PROFILE_MASK query

---

 src/mesa/main/context.c  |    3 +++
 src/mesa/main/get.c      |   12 ++++++++++++
 src/mesa/main/get_gen.py |    9 +++++++--
 src/mesa/main/mtypes.h   |    8 +++++---
 4 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 2074b32..1707e22 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -566,6 +566,9 @@ _mesa_init_constants(GLcontext *ctx)
    ctx->Const.MaxTransformFeedbackSeparateAttribs = MAX_FEEDBACK_ATTRIBS;
    ctx->Const.MaxTransformFeedbackSeparateComponents = 4 * MAX_FEEDBACK_ATTRIBS;
    ctx->Const.MaxTransformFeedbackInterleavedComponents = 4 * MAX_FEEDBACK_ATTRIBS;
+
+   /* GL 3.2: hard-coded for now: */
+   ctx->Const.ProfileMask = GL_CONTEXT_COMPATIBILITY_PROFILE_BIT;
 }
 
 
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index e9ccbda..cb12737 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1954,6 +1954,9 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
       case GL_CONTEXT_FLAGS:
          params[0] = INT_TO_BOOLEAN(ctx->Const.ContextFlags);
          break;
+      case GL_CONTEXT_PROFILE_MASK:
+         params[0] = INT_TO_BOOLEAN(ctx->Const.ProfileMask);
+         break;
       default:
          goto invalid_enum_error;
    }
@@ -3853,6 +3856,9 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
       case GL_CONTEXT_FLAGS:
          params[0] = (GLfloat)(ctx->Const.ContextFlags);
          break;
+      case GL_CONTEXT_PROFILE_MASK:
+         params[0] = (GLfloat)(ctx->Const.ProfileMask);
+         break;
       default:
          goto invalid_enum_error;
    }
@@ -5752,6 +5758,9 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
       case GL_CONTEXT_FLAGS:
          params[0] = ctx->Const.ContextFlags;
          break;
+      case GL_CONTEXT_PROFILE_MASK:
+         params[0] = ctx->Const.ProfileMask;
+         break;
       default:
          goto invalid_enum_error;
    }
@@ -7652,6 +7661,9 @@ _mesa_GetInteger64v( GLenum pname, GLint64 *params )
       case GL_CONTEXT_FLAGS:
          params[0] = (GLint64)(ctx->Const.ContextFlags);
          break;
+      case GL_CONTEXT_PROFILE_MASK:
+         params[0] = (GLint64)(ctx->Const.ProfileMask);
+         break;
       default:
          goto invalid_enum_error;
    }
diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py
index e6245e4..63b64a9 100644
--- a/src/mesa/main/get_gen.py
+++ b/src/mesa/main/get_gen.py
@@ -1139,11 +1139,16 @@ StateVars = [
 	  ["ctx->Const.MaxTransformFeedbackSeparateComponents"], "",
 	  NoState, ["EXT_transform_feedback"] ),
 
-	# GL3
+	# GL 3.0
 	( "GL_NUM_EXTENSIONS", GLint, ["_mesa_get_extension_count(ctx)"], "", NoState, NoExt ),
 	( "GL_MAJOR_VERSION", GLint, ["ctx->VersionMajor"], "", NoState, NoExt ),
 	( "GL_MINOR_VERSION", GLint, ["ctx->VersionMinor"], "", NoState, NoExt ),
-	( "GL_CONTEXT_FLAGS", GLint, ["ctx->Const.ContextFlags"], "", NoState, NoExt )
+	( "GL_CONTEXT_FLAGS", GLint, ["ctx->Const.ContextFlags"], "", NoState, NoExt ),
+
+	# GL 3.2
+	( "GL_CONTEXT_PROFILE_MASK", GLint, ["ctx->Const.ProfileMask"], "",
+	  NoState, NoExt )
+
 ]
 
 
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 688172a..a980405 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2417,13 +2417,15 @@ struct gl_constants
     */
    GLuint64 MaxServerWaitTimeout;
 
-
-   /**< GL_EXT_provoking_vertex */
+   /** GL_EXT_provoking_vertex */
    GLboolean QuadsFollowProvokingVertexConvention;
 
-   /**< OpenGL version 3.x */
+   /** OpenGL version 3.0 */
    GLbitfield ContextFlags;  /**< Ex: GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT */
 
+   /** OpenGL version 3.2 */
+   GLbitfield ProfileMask;   /**< Mask of CONTEXT_x_PROFILE_BIT */
+
    /** GL_EXT_transform_feedback */
    GLuint MaxTransformFeedbackSeparateAttribs;
    GLuint MaxTransformFeedbackSeparateComponents;




More information about the mesa-commit mailing list