aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/main/enable.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-01-14 15:13:52 +0100
committermarha <marha@users.sourceforge.net>2013-01-14 15:13:52 +0100
commit2a1abdc8fe640583dac90dc316caf2d40b9ee4e2 (patch)
tree721982dda954c217323cf726bf1ff527b0477ebe /mesalib/src/mesa/main/enable.c
parentddc05759f098f06bd93253a7bffe38640963dfb3 (diff)
downloadvcxsrv-2a1abdc8fe640583dac90dc316caf2d40b9ee4e2.tar.gz
vcxsrv-2a1abdc8fe640583dac90dc316caf2d40b9ee4e2.tar.bz2
vcxsrv-2a1abdc8fe640583dac90dc316caf2d40b9ee4e2.zip
libxtrans xwininfo libX11 libXau libXmu libXdmcp mesa mkfontscale
xkeyboard-config git update 14 jan 2013 libxtrans: ec3136232f7ce930f9ca812b6ab42a71b60af4af xwininfo: 3e60a26559221e561770710a8c4ed0b8ebc31afb libX11: 3cd974b1d4d1fa6389d3695fa9fcc0c22a51d50c libXau: 8570d287396934f26224c76d48d7f17d87380e72 libXmu: 9b253d99d5b4f3fbb681c2cb1b84f8f9acfee528 libXdmcp: ca65a92405500393f09d34388edbbf6350e6c146 mesa: e3e1ffb2520498584ef402213d0c8aa4303a46a3 mkfontscale: 1157b3039551b552b483f05f6a411e57941a87c0
Diffstat (limited to 'mesalib/src/mesa/main/enable.c')
-rw-r--r--mesalib/src/mesa/main/enable.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/mesalib/src/mesa/main/enable.c b/mesalib/src/mesa/main/enable.c
index b48794f95..73257290e 100644
--- a/mesalib/src/mesa/main/enable.c
+++ b/mesalib/src/mesa/main/enable.c
@@ -48,6 +48,20 @@
}
+static void
+update_derived_primitive_restart_state(struct gl_context *ctx)
+{
+ /* Update derived primitive restart state.
+ */
+ if (ctx->Array.PrimitiveRestart)
+ ctx->Array._RestartIndex = ctx->Array.RestartIndex;
+ else
+ ctx->Array._RestartIndex = ~0;
+
+ ctx->Array._PrimitiveRestart = ctx->Array.PrimitiveRestart
+ || ctx->Array.PrimitiveRestartFixedIndex;
+}
+
/**
* Helper to enable/disable client-side state.
*/
@@ -119,6 +133,8 @@ client_state(struct gl_context *ctx, GLenum cap, GLboolean state)
*var = state;
+ update_derived_primitive_restart_state(ctx);
+
if (state)
arrayObj->_Enabled |= flag;
else
@@ -967,6 +983,17 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
if (ctx->Array.PrimitiveRestart != state) {
FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
ctx->Array.PrimitiveRestart = state;
+ update_derived_primitive_restart_state(ctx);
+ }
+ break;
+
+ case GL_PRIMITIVE_RESTART_FIXED_INDEX:
+ if (!_mesa_is_gles3(ctx) && !ctx->Extensions.ARB_ES3_compatibility)
+ goto invalid_enum_error;
+ if (ctx->Array.PrimitiveRestartFixedIndex != state) {
+ FLUSH_VERTICES(ctx, _NEW_TRANSFORM);
+ ctx->Array.PrimitiveRestartFixedIndex = state;
+ update_derived_primitive_restart_state(ctx);
}
break;
@@ -1542,6 +1569,12 @@ _mesa_IsEnabled( GLenum cap )
}
return ctx->Array.PrimitiveRestart;
+ case GL_PRIMITIVE_RESTART_FIXED_INDEX:
+ if (!_mesa_is_gles3(ctx) && !ctx->Extensions.ARB_ES3_compatibility) {
+ goto invalid_enum_error;
+ }
+ return ctx->Array.PrimitiveRestartFixedIndex;
+
/* GL3.0 - GL_framebuffer_sRGB */
case GL_FRAMEBUFFER_SRGB_EXT:
if (!_mesa_is_desktop_gl(ctx))