intelScreenPrivate *screen = intel->intelScreen;
int front = 0;
- switch ( ctx->Color._DrawDestMask[0] ) {
- case DD_FRONT_LEFT_BIT:
+ if (!ctx->DrawBuffer)
+ return;
+
+ switch ( ctx->DrawBuffer->_ColorDrawBufferMask[0] ) {
+ case BUFFER_BIT_FRONT_LEFT:
front = 1;
FALLBACK( intel, INTEL_FALLBACK_DRAW_BUFFER, GL_FALSE );
break;
- case DD_BACK_LEFT_BIT:
+ case BUFFER_BIT_BACK_LEFT:
front = 0;
FALLBACK( intel, INTEL_FALLBACK_DRAW_BUFFER, GL_FALSE );
break;
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 );