Doug Morgan wrote:
> 
> Hello,
> 
> In Mesa-3.0, glReadPixels doesn't always return the correct alpha values.  The
> bug is related to read_fast_rgba_pixels().  In cases where
> (*ctx->Driver.ReadRGBASpan) calls read_color_span, the final returned alpha
> values are all 255, even if there is a local enabled alpha buffer with other
> values.  I think a fix might be to in readpix.c change line 507 and beyond from:
> 
>          for (row=0; row<readHeight; row++) {
>             (*ctx->Driver.ReadRGBASpan)(ctx, readWidth, srcX, srcY,
>                                         (void *) dest);
>             dest += rowLength * 4;
>             srcY++;
>          }
> 
> to:
>          for (row=0; row<readHeight; row++) {
>             (*ctx->Driver.ReadRGBASpan)(ctx, readWidth, srcX, srcY,
>                                         (void *) dest);
>             if (ctx->RasterMask & ALPHABUF_BIT) {
>               gl_read_alpha_span( ctx, readWidth, srcX, srcY, dest );
>             }
>             dest += rowLength * 4;
>             srcY++;
>          }

Thanks for the patch and test program.  I've commited a fix for
this for Mesa 3.1 (and 3.3).

-Brian


_______________________________________________
Mesa-dev maillist  -  [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-dev

Reply via email to