diff options
-rw-r--r-- | src/mesa/drivers/dri/x11/x11_dri.c | 82 |
1 files changed, 14 insertions, 68 deletions
diff --git a/src/mesa/drivers/dri/x11/x11_dri.c b/src/mesa/drivers/dri/x11/x11_dri.c index f414b7e424b..122b301f846 100644 --- a/src/mesa/drivers/dri/x11/x11_dri.c +++ b/src/mesa/drivers/dri/x11/x11_dri.c @@ -202,68 +202,6 @@ x11CreateContext(const __GLcontextModes *glVisual, _swsetup_CreateContext(ctx); _swsetup_Wakeup(ctx); - /* swrast init */ - { - struct swrast_device_driver *swdd; - swdd = _swrast_GetDeviceDriverReference(ctx); - swdd->SetBuffer = set_buffer; - if (!glVisual->rgbMode) { - swdd->WriteCI32Span = - swdd->WriteCI32Span = - swdd->WriteCI8Span = - swdd->WriteMonoCISpan = - swdd->WriteCI32Pixels = - swdd->WriteMonoCIPixels = - swdd->ReadCI32Span = - swdd->ReadCI32Pixels = nullwrite; - } - else if (glVisual->rgbBits == 24 && - glVisual->alphaBits == 0) { - swdd->WriteRGBASpan = - swdd->WriteRGBSpan = - swdd->WriteMonoRGBASpan = - swdd->WriteRGBAPixels = - swdd->WriteMonoRGBAPixels = - swdd->ReadRGBASpan = - swdd->ReadRGBAPixels = nullwrite; - } - else if (glVisual->rgbBits == 32 && - glVisual->alphaBits == 8) { - swdd->WriteRGBASpan = - swdd->WriteRGBSpan = - swdd->WriteMonoRGBASpan = - swdd->WriteRGBAPixels = - swdd->WriteMonoRGBAPixels = - swdd->ReadRGBASpan = - swdd->ReadRGBAPixels = nullwrite; - } - else if (glVisual->rgbBits == 16 && - glVisual->alphaBits == 0) { - swdd->WriteRGBASpan = - swdd->WriteRGBSpan = - swdd->WriteMonoRGBASpan = - swdd->WriteRGBAPixels = - swdd->WriteMonoRGBAPixels = - swdd->ReadRGBASpan = - swdd->ReadRGBAPixels = nullwrite; - } - else if (glVisual->rgbBits == 15 && - glVisual->alphaBits == 0) { - swdd->WriteRGBASpan = - swdd->WriteRGBSpan = - swdd->WriteMonoRGBASpan = - swdd->WriteRGBAPixels = - swdd->WriteMonoRGBAPixels = - swdd->ReadRGBASpan = - swdd->ReadRGBAPixels = nullwrite; - } - else { - _mesa_printf("bad pixelformat rgb %d alpha %d\n", - glVisual->rgbBits, - glVisual->alphaBits ); - } - } - /* use default TCL pipeline */ { TNLcontext *tnl = TNL_CONTEXT(ctx); @@ -317,16 +255,24 @@ x11CreateBuffer(__DRIscreenPrivate *driScrnPriv, return GL_FALSE; /* not implemented */ } else { + const GLboolean swColor = GL_TRUE; const GLboolean swDepth = mesaVis->depthBits > 0; const GLboolean swAlpha = mesaVis->alphaBits > 0; const GLboolean swAccum = mesaVis->accumRedBits > 0; const GLboolean swStencil = mesaVis->stencilBits > 0; - driDrawPriv->driverPrivate = (void *) - _mesa_create_framebuffer(mesaVis, - swDepth, - swStencil, - swAccum, - swAlpha); + const GLboolean swAux = mesaVis->auxBuffers > 0; + struct gl_framebuffer *fb = _mesa_create_framebuffer(mesaVis); + + driDrawPriv->driverPrivate = (void *) fb; + + /* all software-based renderbuffers */ + _mesa_add_soft_renderbuffers(fb, + swColor, + swDepth, + swStencil, + swAccum, + swAlpha, + swAux); if (!driDrawPriv->driverPrivate) return 0; |