mesa: Handle clip control in meta operations.
Restore clip control to the default state if MESA_META_VIEWPORT or MESA_META_DEPTH_TEST is requested. v3: Handle clip control state with MESA_META_TRANSFORM. Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Mathias Froehlich <Mathias.Froehlich@web.de>
This commit is contained in:
parent
34a3c97fe6
commit
85edaa8b72
|
@ -680,6 +680,10 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
|
|||
_mesa_Ortho(0.0, ctx->DrawBuffer->Width,
|
||||
0.0, ctx->DrawBuffer->Height,
|
||||
-1.0, 1.0);
|
||||
|
||||
save->ClipOrigin = ctx->Transform.ClipOrigin;
|
||||
save->ClipDepthMode = ctx->Transform.ClipDepthMode;
|
||||
_mesa_ClipControl(GL_LOWER_LEFT, GL_NEGATIVE_ONE_TO_ONE);
|
||||
}
|
||||
|
||||
if (state & MESA_META_CLIP) {
|
||||
|
@ -1081,6 +1085,8 @@ _mesa_meta_end(struct gl_context *ctx)
|
|||
_mesa_LoadMatrixf(save->ProjectionMatrix);
|
||||
|
||||
_mesa_MatrixMode(save->MatrixMode);
|
||||
|
||||
_mesa_ClipControl(save->ClipOrigin, save->ClipDepthMode);
|
||||
}
|
||||
|
||||
if (state & MESA_META_CLIP) {
|
||||
|
|
|
@ -136,6 +136,9 @@ struct save_state
|
|||
GLfloat ModelviewMatrix[16];
|
||||
GLfloat ProjectionMatrix[16];
|
||||
GLfloat TextureMatrix[16];
|
||||
/** GL_ARB_clip_control */
|
||||
GLenum ClipOrigin; /**< GL_LOWER_LEFT or GL_UPPER_LEFT */
|
||||
GLenum ClipDepthMode; /**< GL_NEGATIVE_ONE_TO_ONE or GL_ZERO_TO_ONE */
|
||||
|
||||
/** MESA_META_CLIP */
|
||||
GLbitfield ClipPlanesEnabled;
|
||||
|
|
Loading…
Reference in New Issue