meta: Add a state flag for the GL_DITHER
The Meta implementation of glClearTexSubImage is going to want to ensure that dithering is disabled so that it can get a consistent color across the whole texture when clearing. This adds a state flag to easily save it and set it to the default value when performing meta operations. Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
This commit is contained in:
parent
df9945ca26
commit
05b52efbc9
|
@ -505,6 +505,11 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
|
||||||
_mesa_set_enable(ctx, GL_COLOR_LOGIC_OP, GL_FALSE);
|
_mesa_set_enable(ctx, GL_COLOR_LOGIC_OP, GL_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (state & MESA_META_DITHER) {
|
||||||
|
save->DitherFlag = ctx->Color.DitherFlag;
|
||||||
|
_mesa_set_enable(ctx, GL_DITHER, GL_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
if (state & MESA_META_COLOR_MASK) {
|
if (state & MESA_META_COLOR_MASK) {
|
||||||
memcpy(save->ColorMask, ctx->Color.ColorMask,
|
memcpy(save->ColorMask, ctx->Color.ColorMask,
|
||||||
sizeof(ctx->Color.ColorMask));
|
sizeof(ctx->Color.ColorMask));
|
||||||
|
@ -875,6 +880,9 @@ _mesa_meta_end(struct gl_context *ctx)
|
||||||
_mesa_set_enable(ctx, GL_COLOR_LOGIC_OP, save->ColorLogicOpEnabled);
|
_mesa_set_enable(ctx, GL_COLOR_LOGIC_OP, save->ColorLogicOpEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (state & MESA_META_DITHER)
|
||||||
|
_mesa_set_enable(ctx, GL_DITHER, save->DitherFlag);
|
||||||
|
|
||||||
if (state & MESA_META_COLOR_MASK) {
|
if (state & MESA_META_COLOR_MASK) {
|
||||||
GLuint i;
|
GLuint i;
|
||||||
for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {
|
for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
#define MESA_META_FRAMEBUFFER_SRGB 0x200000
|
#define MESA_META_FRAMEBUFFER_SRGB 0x200000
|
||||||
#define MESA_META_OCCLUSION_QUERY 0x400000
|
#define MESA_META_OCCLUSION_QUERY 0x400000
|
||||||
#define MESA_META_DRAW_BUFFERS 0x800000
|
#define MESA_META_DRAW_BUFFERS 0x800000
|
||||||
|
#define MESA_META_DITHER 0x1000000
|
||||||
/**\}*/
|
/**\}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,6 +85,9 @@ struct save_state
|
||||||
GLbitfield BlendEnabled;
|
GLbitfield BlendEnabled;
|
||||||
GLboolean ColorLogicOpEnabled;
|
GLboolean ColorLogicOpEnabled;
|
||||||
|
|
||||||
|
/** MESA_META_DITHER */
|
||||||
|
GLboolean DitherFlag;
|
||||||
|
|
||||||
/** MESA_META_COLOR_MASK */
|
/** MESA_META_COLOR_MASK */
|
||||||
GLubyte ColorMask[MAX_DRAW_BUFFERS][4];
|
GLubyte ColorMask[MAX_DRAW_BUFFERS][4];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue