intelScreenPrivate *screen = intel->intelScreen;
int front = 0;
+ if (!ctx->DrawBuffer)
+ return;
+
switch ( ctx->DrawBuffer->_ColorDrawBufferMask[0] ) {
case BUFFER_BIT_FRONT_LEFT:
front = 1;
return;
}
- /* We want to update the s/w rast state too so that r200SetBuffer()
- * gets called.
- */
- _swrast_DrawBuffer(ctx, mode);
-
if ( intel->sarea->pf_current_page == 1 )
front ^= 1;
intelSetFrontClipRects( intel );
if (front) {
- intel->drawOffset = screen->frontOffset;
- intel->drawMap = (char *)intel->driScreen->pFB;
- intel->readMap = (char *)intel->driScreen->pFB;
+ intel->drawOffset = screen->front.offset;
} else {
- intel->drawOffset = screen->backOffset;
- intel->drawMap = screen->back.map;
- intel->readMap = screen->back.map;
+ intel->drawOffset = screen->back.offset;
}
intel->vtbl.set_draw_offset( intel, intel->drawOffset );