mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-08 07:50:27 +01:00
recalculate state on drawable changes
This commit is contained in:
parent
1d43e729ec
commit
cabecbd314
2 changed files with 26 additions and 3 deletions
|
|
@ -140,8 +140,14 @@ static void intelBufferSize(GLframebuffer *buffer,
|
|||
* to be correct.
|
||||
*/
|
||||
LOCK_HARDWARE(intel);
|
||||
*width = intel->driDrawable->w;
|
||||
*height = intel->driDrawable->h;
|
||||
if (intel->driDrawable) {
|
||||
*width = intel->driDrawable->w;
|
||||
*height = intel->driDrawable->h;
|
||||
}
|
||||
else {
|
||||
*width = 0;
|
||||
*height = 0;
|
||||
}
|
||||
UNLOCK_HARDWARE(intel);
|
||||
}
|
||||
|
||||
|
|
@ -528,6 +534,19 @@ void intelWindowMoved( intelContextPtr intel )
|
|||
intelSetFrontClipRects( intel );
|
||||
}
|
||||
}
|
||||
|
||||
/* Set state we know depends on drawable parameters:
|
||||
*/
|
||||
{
|
||||
GLcontext *ctx = &intel->ctx;
|
||||
|
||||
ctx->Driver.Scissor( ctx, ctx->Scissor.X, ctx->Scissor.Y,
|
||||
ctx->Scissor.Width, ctx->Scissor.Height );
|
||||
|
||||
ctx->Driver.DepthRange( ctx,
|
||||
ctx->Viewport.Near,
|
||||
ctx->Viewport.Far );
|
||||
}
|
||||
}
|
||||
|
||||
GLboolean intelUnbindContext(__DRIcontextPrivate *driContextPriv)
|
||||
|
|
|
|||
|
|
@ -230,6 +230,10 @@ static void intelCalcViewport( GLcontext *ctx )
|
|||
intelContextPtr intel = INTEL_CONTEXT(ctx);
|
||||
const GLfloat *v = ctx->Viewport._WindowMap.m;
|
||||
GLfloat *m = intel->ViewportMatrix.m;
|
||||
GLint h = 0;
|
||||
|
||||
if (intel->driDrawable)
|
||||
h = intel->driDrawable->h + SUBPIXEL_Y;
|
||||
|
||||
/* See also intel_translate_vertex. SUBPIXEL adjustments can be done
|
||||
* via state vars, too.
|
||||
|
|
@ -237,7 +241,7 @@ static void intelCalcViewport( GLcontext *ctx )
|
|||
m[MAT_SX] = v[MAT_SX];
|
||||
m[MAT_TX] = v[MAT_TX] + SUBPIXEL_X;
|
||||
m[MAT_SY] = - v[MAT_SY];
|
||||
m[MAT_TY] = - v[MAT_TY] + intel->driDrawable->h + SUBPIXEL_Y;
|
||||
m[MAT_TY] = - v[MAT_TY] + h;
|
||||
m[MAT_SZ] = v[MAT_SZ] * intel->depth_scale;
|
||||
m[MAT_TZ] = v[MAT_TZ] * intel->depth_scale;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue