From c94a96bae4225f6c31b5908f633703c03aee7079 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 7 May 2004 22:46:37 +0000 Subject: Add support for GLX_SGI_make_current_read. --- src/mesa/drivers/dri/i830/i830_span.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/mesa/drivers/dri/i830/i830_span.c') diff --git a/src/mesa/drivers/dri/i830/i830_span.c b/src/mesa/drivers/dri/i830/i830_span.c index 28610923e3..9076b34423 100644 --- a/src/mesa/drivers/dri/i830/i830_span.c +++ b/src/mesa/drivers/dri/i830/i830_span.c @@ -27,12 +27,13 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. /* $XFree86: xc/lib/GL/mesa/src/drv/i830/i830_span.c,v 1.4 2002/12/10 01:26:53 dawes Exp $ */ -/* - * Author: - * Jeff Hartmann +/** + * \file i830_span.c + * + * Heavily based on the I810 driver, which was written by Keith Whitwell. * - * Heavily based on the I810 driver, which was written by: - * Keith Whitwell + * \author Jeff Hartmann + * \author Keith Whitwell */ #include "glheader.h" @@ -52,7 +53,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #define LOCAL_VARS \ i830ContextPtr imesa = I830_CONTEXT(ctx); \ - __DRIdrawablePrivate *dPriv = imesa->driDrawable; \ + __DRIdrawablePrivate *dPriv = imesa->mesa_drawable; \ i830ScreenPrivate *i830Screen = imesa->i830Screen; \ GLuint pitch = i830Screen->backPitch * i830Screen->cpp; \ GLuint height = dPriv->h; \ @@ -67,7 +68,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #define LOCAL_DEPTH_VARS \ i830ContextPtr imesa = I830_CONTEXT(ctx); \ - __DRIdrawablePrivate *dPriv = imesa->driDrawable; \ + __DRIdrawablePrivate *dPriv = imesa->mesa_drawable; \ i830ScreenPrivate *i830Screen = imesa->i830Screen; \ GLuint pitch = i830Screen->backPitch * i830Screen->cpp; \ GLuint height = dPriv->h; \ @@ -267,6 +268,13 @@ static void i830SetBuffer(GLcontext *ctx, GLframebuffer *colorBuffer, GLuint bufferBit) { i830ContextPtr imesa = I830_CONTEXT(ctx); + + assert( (colorBuffer == imesa->driDrawable->driverPrivate) + || (colorBuffer == imesa->driReadable->driverPrivate) ); + + imesa->mesa_drawable = (colorBuffer == imesa->driDrawable->driverPrivate) + ? imesa->driDrawable : imesa->driReadable; + if (bufferBit == DD_FRONT_LEFT_BIT) { imesa->drawMap = (char *)imesa->driScreen->pFB; imesa->readMap = (char *)imesa->driScreen->pFB; -- cgit v1.2.3