summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <[email protected]>2013-11-14 10:10:47 -0700
committerIan Romanick <[email protected]>2014-01-20 11:32:00 -0800
commit9ef16befd0068544287c5f327a77fe8af6aee329 (patch)
tree5e7ce61c348ae8d09b53284b3b24ada7eec944de /src
parentc2eefb06aa3522920548046ee0c1be59428649ed (diff)
mesa: Add ARB_viewport_array plumbing
Define API connections to extension entry points added in previous commits. Update entry points to use floating point arguments as required by the extension. Add get tokens for ARB_viewport_array state. v2: Include review feedback. v3 (idr): Fix 'make check'. Add missing Get infrastructure (some was culled from other pathces). Signed-off-by: Courtney Goeltzenleuchter <[email protected]> Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mapi/glapi/gen/ARB_viewport_array.xml79
-rw-r--r--src/mapi/glapi/gen/Makefile.am1
-rw-r--r--src/mapi/glapi/gen/gl_API.xml2
-rw-r--r--src/mesa/main/get.c1
-rw-r--r--src/mesa/main/get_hash_params.py7
-rw-r--r--src/mesa/main/tests/dispatch_sanity.cpp20
6 files changed, 99 insertions, 11 deletions
diff --git a/src/mapi/glapi/gen/ARB_viewport_array.xml b/src/mapi/glapi/gen/ARB_viewport_array.xml
new file mode 100644
index 00000000000..e1c6c2d81ab
--- /dev/null
+++ b/src/mapi/glapi/gen/ARB_viewport_array.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<!-- Note: no GLX protocol info yet. -->
+
+<OpenGLAPI>
+
+<category name="GL_ARB_viewport_array" number="100">
+
+ <enum name="MAX_VIEWPORTS" value="0x825B"/>
+ <enum name="VIEWPORT_SUBPIXEL_BITS" value="0x825C"/>
+ <enum name="VIEWPORT_BOUNDS_RANGE" value="0x825D"/>
+ <enum name="LAYER_PROVOKING_VERTEX" value="0x825E"/>
+ <enum name="VIEWPORT_INDEX_PROVOKING_VERTEX" value="0x825F"/>
+ <enum name="SCISSOR_BOX" value="0x0C10"/>
+ <enum name="VIEWPORT" value="0x0BA2"/>
+ <enum name="DEPTH_RANGE" value="0x0B70"/>
+ <enum name="SCISSOR_TEST" value="0x0C11"/>
+ <enum name="FIRST_VERTEX_CONVENTION" value="0x8E4D"/>
+ <enum name="LAST_VERTEX_CONVENTION" value="0x8E4E"/>
+ <enum name="PROVOKING_VERTEX" value="0x8E4F"/>
+ <enum name="UNDEFINED_VERTEX" value="0x8260"/>
+
+ <function name="ViewportArrayv" offset="assign">
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="v" type="const GLfloat *"/>
+ </function>
+ <function name="ViewportIndexedf" offset="assign">
+ <param name="index" type="GLuint"/>
+ <param name="x" type="GLfloat"/>
+ <param name="y" type="GLfloat"/>
+ <param name="w" type="GLfloat"/>
+ <param name="h" type="GLfloat"/>
+ </function>
+ <function name="ViewportIndexedfv" offset="assign">
+ <param name="index" type="GLuint"/>
+ <param name="v" type="const GLfloat *"/>
+ </function>
+ <function name="ScissorArrayv" offset="assign">
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="v" type="const int *"/>
+ </function>
+ <function name="ScissorIndexed" offset="assign">
+ <param name="index" type="GLuint"/>
+ <param name="left" type="GLint"/>
+ <param name="bottom" type="GLint"/>
+ <param name="width" type="GLsizei"/>
+ <param name="height" type="GLsizei"/>
+ </function>
+ <function name="ScissorIndexedv" offset="assign">
+ <param name="index" type="GLuint"/>
+ <param name="v" type="const GLint *"/>
+ </function>
+ <function name="DepthRangeArrayv" offset="assign">
+ <param name="first" type="GLuint"/>
+ <param name="count" type="GLsizei"/>
+ <param name="v" type="const GLclampd *"/>
+ </function>
+ <function name="DepthRangeIndexed" offset="assign">
+ <param name="index" type="GLuint"/>
+ <param name="n" type="GLclampd"/>
+ <param name="f" type="GLclampd"/>
+ </function>
+ <function name="GetFloati_v" offset="assign">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ <param name="data" type="GLfloat *"/>
+ </function>
+ <function name="GetDoublei_v" offset="assign">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ <param name="data" type="GLdouble *"/>
+ </function>
+
+</category>
+
+</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am
index d5c20b71e2e..7354725df9c 100644
--- a/src/mapi/glapi/gen/Makefile.am
+++ b/src/mapi/glapi/gen/Makefile.am
@@ -129,6 +129,7 @@ API_XML = \
ARB_texture_view.xml \
ARB_vertex_array_object.xml \
ARB_vertex_attrib_binding.xml \
+ ARB_viewport_array.xml \
AMD_draw_buffers_blend.xml \
AMD_performance_monitor.xml \
ARB_vertex_type_2_10_10_10_rev.xml \
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index ff65b489a08..193ee370c0d 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -9926,7 +9926,7 @@
</category>
<!-- Extension number 99 is not listed in the extension registry. -->
-<!-- Extension number 100 is a GLU extension. -->
+<xi:include href="ARB_viewport_array.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<!-- Shouldn't this be EXT_fragment_lighting? -->
<category name="GL_SGIX_fragment_lighting" number="102">
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 9edf05620a9..2b1538df938 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -391,6 +391,7 @@ EXTRA_EXT(ARB_texture_gather);
EXTRA_EXT(ARB_shader_atomic_counters);
EXTRA_EXT(ARB_draw_indirect);
EXTRA_EXT(ARB_shader_image_load_store);
+EXTRA_EXT(ARB_viewport_array);
static const int
extra_ARB_color_buffer_float_or_glcore[] = {
diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
index 3aa05483c84..b45e1430bac 100644
--- a/src/mesa/main/get_hash_params.py
+++ b/src/mesa/main/get_hash_params.py
@@ -759,6 +759,13 @@ descriptor=[
[ "TEXTURE_BUFFER_OFFSET_ALIGNMENT", "CONTEXT_INT(Const.TextureBufferOffsetAlignment), extra_ARB_texture_buffer_range" ],
# GL_ARB_draw_indirect
[ "DRAW_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_draw_indirect" ],
+
+# GL_ARB_viewport_array
+ [ "MAX_VIEWPORTS", "CONTEXT_INT(Const.MaxViewports), extra_ARB_viewport_array" ],
+ [ "VIEWPORT_SUBPIXEL_BITS", "CONTEXT_INT(Const.ViewportSubpixelBits), extra_ARB_viewport_array" ],
+ [ "VIEWPORT_BOUNDS_RANGE", "CONTEXT_FLOAT2(Const.ViewportBounds), extra_ARB_viewport_array" ],
+ [ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM(Light.ProvokingVertex), extra_ARB_viewport_array" ],
+ [ "VIEWPORT_INDEX_PROVOKING_VERTEX", "CONTEXT_ENUM(Light.ProvokingVertex), extra_ARB_viewport_array" ],
]}
]
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index b9719569f08..78a218ea17b 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -786,16 +786,16 @@ const struct function gl_core_functions_possible[] = {
// { "glVertexAttribL4dv", 43, -1 }, // XXX: Add to xml
// { "glVertexAttribLPointer", 43, -1 }, // XXX: Add to xml
// { "glGetVertexAttribLdv", 43, -1 }, // XXX: Add to xml
-// { "glViewportArrayv", 43, -1 }, // XXX: Add to xml
-// { "glViewportIndexedf", 43, -1 }, // XXX: Add to xml
-// { "glViewportIndexedfv", 43, -1 }, // XXX: Add to xml
-// { "glScissorArrayv", 43, -1 }, // XXX: Add to xml
-// { "glScissorIndexed", 43, -1 }, // XXX: Add to xml
-// { "glScissorIndexedv", 43, -1 }, // XXX: Add to xml
-// { "glDepthRangeArrayv", 43, -1 }, // XXX: Add to xml
-// { "glDepthRangeIndexed", 43, -1 }, // XXX: Add to xml
-// { "glGetFloati_v", 43, -1 }, // XXX: Add to xml
-// { "glGetDoublei_v", 43, -1 }, // XXX: Add to xml
+ { "glViewportArrayv", 43, -1 },
+ { "glViewportIndexedf", 43, -1 },
+ { "glViewportIndexedfv", 43, -1 },
+ { "glScissorArrayv", 43, -1 },
+ { "glScissorIndexed", 43, -1 },
+ { "glScissorIndexedv", 43, -1 },
+ { "glDepthRangeArrayv", 43, -1 },
+ { "glDepthRangeIndexed", 43, -1 },
+ { "glGetFloati_v", 43, -1 },
+ { "glGetDoublei_v", 43, -1 },
// { "glCreateSyncFromCLeventARB", 43, -1 }, // XXX: Add to xml
{ "glDebugMessageControlARB", 43, -1 },
{ "glDebugMessageInsertARB", 43, -1 },