case GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB:
_mesa_glthread_destroy(ctx, "Enable(DEBUG_OUTPUT_SYNCHRONOUS)");
break;
+ case GL_BLEND:
+ ctx->GLThread.Blend = true;
+ break;
case GL_DEPTH_TEST:
ctx->GLThread.DepthTest = true;
break;
case GL_CULL_FACE:
ctx->GLThread.CullFace = true;
break;
+ case GL_LIGHTING:
+ ctx->GLThread.Lighting = true;
+ break;
+ case GL_POLYGON_STIPPLE:
+ ctx->GLThread.PolygonStipple = true;
+ break;
}
}
case GL_PRIMITIVE_RESTART_FIXED_INDEX:
_mesa_glthread_set_prim_restart(ctx, cap, false);
break;
+ case GL_BLEND:
+ ctx->GLThread.Blend = false;
+ break;
case GL_CULL_FACE:
ctx->GLThread.CullFace = false;
break;
case GL_DEPTH_TEST:
ctx->GLThread.DepthTest = false;
break;
+ case GL_LIGHTING:
+ ctx->GLThread.Lighting = false;
+ break;
+ case GL_POLYGON_STIPPLE:
+ ctx->GLThread.PolygonStipple = false;
+ break;
}
}
return -1;
switch (cap) {
+ case GL_BLEND:
+ return ctx->GLThread.Blend;
case GL_CULL_FACE:
return ctx->GLThread.CullFace;
case GL_DEPTH_TEST:
return ctx->GLThread.DepthTest;
+ case GL_LIGHTING:
+ return ctx->GLThread.Lighting;
+ case GL_POLYGON_STIPPLE:
+ return ctx->GLThread.PolygonStipple;
case GL_VERTEX_ARRAY:
return !!(ctx->GLThread.CurrentVAO->UserEnabled & VERT_BIT_POS);
case GL_NORMAL_ARRAY:
attr->Mask = mask;
- if (mask & (GL_POLYGON_BIT | GL_ENABLE_BIT))
+ if (mask & GL_ENABLE_BIT)
+ attr->Blend = ctx->GLThread.Blend;
+
+ if (mask & (GL_POLYGON_BIT | GL_ENABLE_BIT)) {
attr->CullFace = ctx->GLThread.CullFace;
+ attr->PolygonStipple = ctx->GLThread.PolygonStipple;
+ }
if (mask & (GL_DEPTH_BUFFER_BIT | GL_ENABLE_BIT))
attr->DepthTest = ctx->GLThread.DepthTest;
+ if (mask & (GL_LIGHTING_BIT | GL_ENABLE_BIT))
+ attr->Lighting = ctx->GLThread.Lighting;
+
if (mask & GL_TEXTURE_BIT)
attr->ActiveTexture = ctx->GLThread.ActiveTexture;
&ctx->GLThread.AttribStack[--ctx->GLThread.AttribStackDepth];
unsigned mask = attr->Mask;
- if (mask & (GL_POLYGON_BIT | GL_ENABLE_BIT))
+ if (mask & GL_ENABLE_BIT)
+ ctx->GLThread.Blend = attr->Blend;
+
+ if (mask & (GL_POLYGON_BIT | GL_ENABLE_BIT)) {
ctx->GLThread.CullFace = attr->CullFace;
+ ctx->GLThread.PolygonStipple = attr->PolygonStipple;
+ }
if (mask & (GL_DEPTH_BUFFER_BIT | GL_ENABLE_BIT))
ctx->GLThread.DepthTest = attr->DepthTest;
+ if (mask & (GL_LIGHTING_BIT | GL_ENABLE_BIT))
+ ctx->GLThread.Lighting = attr->Lighting;
+
if (mask & GL_TEXTURE_BIT)
ctx->GLThread.ActiveTexture = attr->ActiveTexture;