mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
i965: store read drawable info in intel_context. Some OpenGL
operations are based on read drawable. fix bug#10136.
This commit is contained in:
parent
f6a89e1884
commit
bad6e175cf
3 changed files with 8 additions and 2 deletions
|
|
@ -576,6 +576,10 @@ GLboolean intelMakeCurrent(__DRIcontextPrivate *driContextPriv,
|
|||
if (driContextPriv) {
|
||||
struct intel_context *intel = (struct intel_context *) driContextPriv->driverPrivate;
|
||||
|
||||
if (intel->driReadDrawable != driReadPriv) {
|
||||
intel->driReadDrawable = driReadPriv;
|
||||
}
|
||||
|
||||
if ( intel->driDrawable != driDrawPriv ) {
|
||||
/* Shouldn't the readbuffer be stored also? */
|
||||
driDrawableInitVBlank( driDrawPriv, intel->vblank_flags,
|
||||
|
|
|
|||
|
|
@ -234,6 +234,7 @@ struct intel_context
|
|||
int driFd;
|
||||
|
||||
__DRIdrawablePrivate *driDrawable;
|
||||
__DRIdrawablePrivate *driReadDrawable;
|
||||
__DRIscreenPrivate *driScreen;
|
||||
intelScreenPrivate *intelScreen;
|
||||
volatile drmI830Sarea *sarea;
|
||||
|
|
|
|||
|
|
@ -231,6 +231,7 @@ do_blit_copypixels(GLcontext * ctx,
|
|||
|
||||
if (intel->driDrawable->numClipRects) {
|
||||
__DRIdrawablePrivate *dPriv = intel->driDrawable;
|
||||
__DRIdrawablePrivate *dReadPriv = intel->driReadDrawable;
|
||||
drm_clip_rect_t *box = dPriv->pClipRects;
|
||||
drm_clip_rect_t dest_rect;
|
||||
GLint nbox = dPriv->numClipRects;
|
||||
|
|
@ -262,8 +263,8 @@ do_blit_copypixels(GLcontext * ctx,
|
|||
srcy = dPriv->h - srcy - height;
|
||||
dstx += dPriv->x;
|
||||
dsty += dPriv->y;
|
||||
srcx += dPriv->x;
|
||||
srcy += dPriv->y;
|
||||
srcx += dReadPriv->x;
|
||||
srcy += dReadPriv->y;
|
||||
|
||||
/* Clip against the source region. This is the only source
|
||||
* clipping we do. Dst is clipped with cliprects below.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue