aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2014-01-07 14:39:48 -0800
committerIan Romanick <[email protected]>2014-01-20 11:29:41 -0800
commit1f59e963b40a260d3087f83799de0a6fb0941d07 (patch)
tree60d800d39449fb1686e01616fa7e55ca80b4da60 /src/mesa
parentb39bfa4f492fc88dc053a098893b0441f8aed496 (diff)
mesa: Add new constants related to GL_ARB_viewport_array
These limits will be queryable by GL_MAX_VIEWPORTS, GL_VIEWPORT_SUBPIXEL_BITS, and GL_VIEWPORT_BOUNDS_RANGE. Drivers that actually implement the extension must set values for these constants that comply with the minimum-maximums from the spec. Most of these changes were part of other patches. They were separated out because it make reordering of later patches easier. Also, MaxViewports wasn't set by that patch, and I completely overlooked it in review. It's now obvious that it's set. :) v2 (idr): Split these changes out from the original patches. Keep MaxViewportWidth and MaxViewportHeight as GLuint. Signed-off-by: Courtney Goeltzenleuchter <[email protected]> Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/config.h3
-rw-r--r--src/mesa/main/context.c6
-rw-r--r--src/mesa/main/mtypes.h6
3 files changed, 15 insertions, 0 deletions
diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h
index ff9da779bf8..aa2b37aafb7 100644
--- a/src/mesa/main/config.h
+++ b/src/mesa/main/config.h
@@ -137,6 +137,9 @@
#define MAX_VIEWPORT_WIDTH 16384
#define MAX_VIEWPORT_HEIGHT 16384
+/** Maximun number of viewports supported with ARB_viewport_array */
+#define MAX_VIEWPORTS 16
+
/** Maxmimum size for CVA. May be overridden by the drivers. */
#define MAX_ARRAY_LOCK_SIZE 3000
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 0b8fb94e8fb..538322e9eb8 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -588,6 +588,12 @@ _mesa_init_constants(struct gl_context *ctx)
ctx->Const.MaxViewportWidth = MAX_VIEWPORT_WIDTH;
ctx->Const.MaxViewportHeight = MAX_VIEWPORT_HEIGHT;
+ /* Driver must override these values if ARB_viewport_array is supported. */
+ ctx->Const.MaxViewports = 1;
+ ctx->Const.ViewportSubpixelBits = 0;
+ ctx->Const.ViewportBounds.Min = 0;
+ ctx->Const.ViewportBounds.Max = 0;
+
/** GL_ARB_uniform_buffer_object */
ctx->Const.MaxCombinedUniformBlocks = 36;
ctx->Const.MaxUniformBufferBindings = 36;
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 93390ec3703..a939d9c9f62 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3166,6 +3166,12 @@ struct gl_constants
GLfloat MaxSpotExponent; /**< GL_NV_light_max_exponent */
GLuint MaxViewportWidth, MaxViewportHeight;
+ GLuint MaxViewports; /**< GL_ARB_viewport_array */
+ GLuint ViewportSubpixelBits; /**< GL_ARB_viewport_array */
+ struct {
+ GLfloat Min;
+ GLfloat Max;
+ } ViewportBounds; /**< GL_ARB_viewport_array */
struct gl_program_constants Program[MESA_SHADER_STAGES];
GLuint MaxProgramMatrices;