Adam Jackson <a...@redhat.com> writes:

> diff --git a/fb/fbimage.c b/fb/fbimage.c
> index 59daa21..8f5f3dc 100644
> --- a/fb/fbimage.c
> +++ b/fb/fbimage.c
> @@ -250,13 +250,16 @@ fbGetImage(DrawablePtr pDrawable,
>  
>          pm = fbReplicatePixel(planeMask, srcBpp);
>          dstStride = PixmapBytePad(w, pDrawable->depth);
> -        if (pm != FB_ALLONES)
> -            memset(d, 0, dstStride * h);
>          dstStride /= sizeof(FbStip);
>          fbBltStip((FbStip *) (src + (y + srcYoff) * srcStride),
>                    FbBitsStrideToStipStride(srcStride),
>                    (x + srcXoff) * srcBpp,
> -                  dst, dstStride, 0, w * srcBpp, h, GXcopy, pm, srcBpp);
> +                  dst, dstStride, 0, w * srcBpp, h, GXcopy, FB_ALLONES, 
> srcBpp);
> +
> +        if (pm != FB_ALLONES) {
> +            for (int i = 0; i < dstStride * h; i++)
> +                dst[i] &= pm;
> +        }

You'll need to deal with 24bpp separately...

-- 
-keith

Attachment: signature.asc
Description: PGP signature

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to