summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i830/i830_span.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/i830/i830_span.c')
-rw-r--r--src/mesa/drivers/dri/i830/i830_span.c22
1 files changed, 15 insertions, 7 deletions
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 <jhartmann@2d3d.com>
+/**
+ * \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 <keith@tungstengraphics.com>
+ * \author Jeff Hartmann <jhartmann@2d3d.com>
+ * \author Keith Whitwell <keith@tungstengraphics.com>
*/
#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;