ソースを参照

i965: store read drawable info in intel_context. Some OpenGL

operations are based on read drawable. fix bug#10136.
tags/mesa_7_1_rc1
Xiang, Haihao 18年前
コミット
bad6e175cf

+ 4
- 0
src/mesa/drivers/dri/i965/intel_context.c ファイルの表示

@@ -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,

+ 1
- 0
src/mesa/drivers/dri/i965/intel_context.h ファイルの表示

@@ -234,6 +234,7 @@ struct intel_context
int driFd;

__DRIdrawablePrivate *driDrawable;
__DRIdrawablePrivate *driReadDrawable;
__DRIscreenPrivate *driScreen;
intelScreenPrivate *intelScreen;
volatile drmI830Sarea *sarea;

+ 3
- 2
src/mesa/drivers/dri/i965/intel_pixel_copy.c ファイルの表示

@@ -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.

読み込み中…
キャンセル
保存