osmesa: fix broken triangle/line drawing when using float color buffer

Doesn't seem to help with bug 71363 but it fixed a failure I found in
my testing.

Cc: "9.2" <mesa-stable@lists.freedesktop.org>
Cc: "10.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
Brian Paul
2013-11-07 19:01:39 -07:00
parent 34ce1a8502
commit a66a008b17
+16
View File
@@ -197,6 +197,14 @@ osmesa_choose_line_function( struct gl_context *ctx )
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
const SWcontext *swrast = SWRAST_CONTEXT(ctx);
if (ctx->DrawBuffer &&
ctx->DrawBuffer->Visual.redBits == 32) {
/* the special-case line functions in this file don't work
* for float color channels.
*/
return NULL;
}
if (ctx->RenderMode != GL_RENDER) return NULL;
if (ctx->Line.SmoothFlag) return NULL;
if (ctx->Texture._EnabledUnits) return NULL;
@@ -298,6 +306,14 @@ osmesa_choose_triangle_function( struct gl_context *ctx )
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
const SWcontext *swrast = SWRAST_CONTEXT(ctx);
if (ctx->DrawBuffer &&
ctx->DrawBuffer->Visual.redBits == 32) {
/* the special-case triangle functions in this file don't work
* for float color channels.
*/
return (swrast_tri_func) NULL;
}
if (ctx->RenderMode != GL_RENDER) return (swrast_tri_func) NULL;
if (ctx->Polygon.SmoothFlag) return (swrast_tri_func) NULL;
if (ctx->Polygon.StippleFlag) return (swrast_tri_func) NULL;