cogl-texture: Avoid premult conversion if the dst format has no alpha
authorNeil Roberts <neil@linux.intel.com>
Tue, 1 Jun 2010 12:32:57 +0000 (13:32 +0100)
committerNeil Roberts <neil@linux.intel.com>
Tue, 22 Jun 2010 11:22:47 +0000 (12:22 +0100)
The _cogl_texture_needs_premult_conversion function was already
checking whether the source format had an alpha channel before
returning TRUE, but it also doesn't make sense to do the premult
conversion if the destination format has no alpha. This patch adds
that check in too.

clutter/cogl/cogl/cogl-texture.c

index 9dea40e..3338df9 100644 (file)
@@ -125,8 +125,9 @@ static gboolean
 _cogl_texture_needs_premult_conversion (CoglPixelFormat src_format,
                                         CoglPixelFormat dst_format)
 {
-  return ((src_format & COGL_A_BIT) &&
+  return ((src_format & dst_format & COGL_A_BIT) &&
           src_format != COGL_PIXEL_FORMAT_A_8 &&
+          dst_format != COGL_PIXEL_FORMAT_A_8 &&
           (src_format & COGL_PREMULT_BIT) !=
           (dst_format & COGL_PREMULT_BIT));
 }