diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2005-09-03 16:43:02 +0000 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2005-09-03 16:43:02 +0000 |
commit | 687918b794d12a0ff5d395b8cf87880dbe8012bf (patch) | |
tree | 280d1b882dc3bfd0e105d14a1f9d90c7cef935dd /src/mesa/drivers/dri/savage/savage_xmesa.c | |
parent | e6925b51e1e71dc45079636ce336a09806356999 (diff) |
SetBuffer, renderbuffer changes
Diffstat (limited to 'src/mesa/drivers/dri/savage/savage_xmesa.c')
-rw-r--r-- | src/mesa/drivers/dri/savage/savage_xmesa.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/savage/savage_xmesa.c b/src/mesa/drivers/dri/savage/savage_xmesa.c index 12cf78535a..477564cad3 100644 --- a/src/mesa/drivers/dri/savage/savage_xmesa.c +++ b/src/mesa/drivers/dri/savage/savage_xmesa.c @@ -634,6 +634,8 @@ savageCreateBuffer( __DRIscreenPrivate *driScrnPriv, screen->frontOffset, screen->aperturePitch); savageSetSpanFunctions(frontRb, mesaVis, float_depth); _mesa_add_renderbuffer(fb, BUFFER_FRONT_LEFT, &frontRb->Base); + frontRb->Base.Data = frontRb->flippedData + = (GLubyte *) screen->aperture.map + 0x01000000 * TARGET_FRONT; } if (mesaVis->doubleBufferMode) { @@ -642,26 +644,32 @@ savageCreateBuffer( __DRIscreenPrivate *driScrnPriv, screen->backOffset, screen->aperturePitch); savageSetSpanFunctions(backRb, mesaVis, float_depth); _mesa_add_renderbuffer(fb, BUFFER_BACK_LEFT, &backRb->Base); + backRb->Base.Data = backRb->flippedData + = (GLubyte *) screen->aperture.map + 0x01000000 * TARGET_BACK; } if (mesaVis->depthBits == 16) { driRenderbuffer *depthRb - = driNewRenderbuffer(GL_DEPTH_COMPONENT16, screen->cpp, + = driNewRenderbuffer(GL_DEPTH_COMPONENT16, screen->zpp, screen->depthOffset, screen->aperturePitch); savageSetSpanFunctions(depthRb, mesaVis, float_depth); _mesa_add_renderbuffer(fb, BUFFER_DEPTH, &depthRb->Base); + depthRb->Base.Data = depthRb->flippedData + = (GLubyte *) screen->aperture.map + 0x01000000 * TARGET_DEPTH; } else if (mesaVis->depthBits == 24) { driRenderbuffer *depthRb - = driNewRenderbuffer(GL_DEPTH_COMPONENT24, screen->cpp, + = driNewRenderbuffer(GL_DEPTH_COMPONENT24, screen->zpp, screen->depthOffset, screen->aperturePitch); savageSetSpanFunctions(depthRb, mesaVis, float_depth); _mesa_add_renderbuffer(fb, BUFFER_DEPTH, &depthRb->Base); + depthRb->Base.Data = depthRb->flippedData + = (GLubyte *) screen->aperture.map + 0x01000000 * TARGET_DEPTH; } if (mesaVis->stencilBits > 0 && !swStencil) { driRenderbuffer *stencilRb - = driNewRenderbuffer(GL_STENCIL_INDEX8_EXT, screen->cpp, + = driNewRenderbuffer(GL_STENCIL_INDEX8_EXT, screen->zpp, screen->depthOffset, screen->aperturePitch); savageSetSpanFunctions(stencilRb, mesaVis, float_depth); _mesa_add_renderbuffer(fb, BUFFER_STENCIL, &stencilRb->Base); @@ -805,16 +813,25 @@ savageMakeCurrent(__DRIcontextPrivate *driContextPriv, __DRIdrawablePrivate *driReadPriv) { if (driContextPriv) { - savageContextPtr imesa = (savageContextPtr) driContextPriv->driverPrivate; - + savageContextPtr imesa + = (savageContextPtr) driContextPriv->driverPrivate; + struct gl_framebuffer *drawBuffer + = (GLframebuffer *) driDrawPriv->driverPrivate; + struct gl_framebuffer *readBuffer + = (GLframebuffer *) driReadPriv->driverPrivate; + driRenderbuffer *frontRb = (driRenderbuffer *) + drawBuffer->Attachment[BUFFER_FRONT_LEFT].Renderbuffer; + driRenderbuffer *backRb = (driRenderbuffer *) + drawBuffer->Attachment[BUFFER_BACK_LEFT].Renderbuffer; + + assert(frontRb->Base.Data); + assert(backRb->Base.Data); + imesa->driReadable = driReadPriv; imesa->driDrawable = driDrawPriv; - imesa->mesa_drawable = driDrawPriv; imesa->dirty = ~0; - _mesa_make_current(imesa->glCtx, - (GLframebuffer *) driDrawPriv->driverPrivate, - (GLframebuffer *) driReadPriv->driverPrivate); + _mesa_make_current(imesa->glCtx, drawBuffer, readBuffer); savageXMesaWindowMoved( imesa ); } |