summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/get_gen.py
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2009-08-28 15:37:25 -0700
committerIan Romanick <[email protected]>2009-09-03 11:22:45 -0700
commit10067e464132e6d484c34dd277da5eb5e21cf491 (patch)
tree609023f3e2ec2c049626333631f624e15e811f55 /src/mesa/main/get_gen.py
parentd75a99edd6386ab26d69a3f0cbbed4c79fe5fad4 (diff)
ARB sync: Add infrastructure for glGetInteger64v
Diffstat (limited to 'src/mesa/main/get_gen.py')
-rw-r--r--src/mesa/main/get_gen.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/mesa/main/get_gen.py b/src/mesa/main/get_gen.py
index 97dc7850201..4f0feaad3cb 100644
--- a/src/mesa/main/get_gen.py
+++ b/src/mesa/main/get_gen.py
@@ -35,6 +35,7 @@ GLfloat = 3
GLdouble = 4
GLboolean = 5
GLfloatN = 6 # A normalized value, such as a color or depth range
+GLint64 = 7
TypeStrings = {
@@ -42,7 +43,8 @@ TypeStrings = {
GLenum : "GLenum",
GLfloat : "GLfloat",
GLdouble : "GLdouble",
- GLboolean : "GLboolean"
+ GLboolean : "GLboolean",
+ GLint64 : "GLint64"
}
@@ -1029,10 +1031,16 @@ def ConversionFunc(fromType, toType):
return ""
elif fromType == GLfloat and toType == GLint:
return "IROUND"
+ elif fromType == GLfloat and toType == GLint64:
+ return "IROUND64"
elif fromType == GLfloatN and toType == GLfloat:
return ""
elif fromType == GLint and toType == GLfloat: # but not GLfloatN!
return "(GLfloat)"
+ elif fromType == GLint and toType == GLint64:
+ return ""
+ elif fromType == GLint64 and toType == GLfloat: # but not GLfloatN!
+ return "(GLfloat)"
else:
if fromType == GLfloatN:
fromType = GLfloat
@@ -1047,6 +1055,7 @@ def EmitGetFunction(stateVars, returnType):
"""Emit the code to implement glGetBooleanv, glGetIntegerv or glGetFloatv."""
assert (returnType == GLboolean or
returnType == GLint or
+ returnType == GLint64 or
returnType == GLfloat)
strType = TypeStrings[returnType]
@@ -1057,9 +1066,14 @@ def EmitGetFunction(stateVars, returnType):
function = "GetBooleanv"
elif returnType == GLfloat:
function = "GetFloatv"
+ elif returnType == GLint64:
+ function = "GetInteger64v"
else:
abort()
+ if returnType == GLint64:
+ print "#if FEATURE_ARB_sync"
+
print "void GLAPIENTRY"
print "_mesa_%s( GLenum pname, %s *params )" % (function, strType)
print "{"
@@ -1113,6 +1127,8 @@ def EmitGetFunction(stateVars, returnType):
print ' _mesa_error(ctx, GL_INVALID_ENUM, "gl%s(pname=0x%%x)", pname);' % function
print " }"
print "}"
+ if returnType == GLint64:
+ print "#endif /* FEATURE_ARB_sync */"
print ""
return
@@ -1142,8 +1158,11 @@ def EmitHeader():
#define INT_TO_BOOLEAN(I) ( (I) ? GL_TRUE : GL_FALSE )
#define BOOLEAN_TO_INT(B) ( (GLint) (B) )
+#define BOOLEAN_TO_INT64(B) ( (GLint64) (B) )
#define BOOLEAN_TO_FLOAT(B) ( (B) ? 1.0F : 0.0F )
+#define ENUM_TO_INT64(E) ( (GLint64) (E) )
+
/*
* Check if named extension is enabled, if not generate error and return.
@@ -1221,5 +1240,6 @@ EmitHeader()
EmitGetFunction(StateVars, GLboolean)
EmitGetFunction(StateVars, GLfloat)
EmitGetFunction(StateVars, GLint)
+EmitGetFunction(StateVars, GLint64)
EmitGetDoublev()