http://bugs.freedesktop.org/show_bug.cgi?id=18626
Summary: Regression in swfdec_renderer_transform() Product: swfdec Version: git Platform: All OS/Version: All Status: NEW Severity: critical Priority: medium Component: library AssignedTo: swfdec@lists.freedesktop.org ReportedBy: [EMAIL PROTECTED] QAContact: swfdec@lists.freedesktop.org commit 90dab77f5639ee9d3d75eb739557350aa432e353 changed the target surface format from always ARGB32 to depend upon whether the source surface has an alpha channel. This fails to take into account the result of the color transformation which may require the alpha channel. The simple fix would be: diff --git a/swfdec/swfdec_renderer.c b/swfdec/swfdec_renderer.c index 787e592..dcf74dd 100644 --- a/swfdec/swfdec_renderer.c +++ b/swfdec/swfdec_renderer.c @@ -424,11 +424,10 @@ swfdec_renderer_transform (SwfdecRenderer *renderer, cairo_surface_t *surface, /* FIXME: This function should likely be a vfunc. * Or better: it should compile to a shader */ + target = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, rect->width, rect->height); if (cairo_surface_get_content (surface) & CAIRO_CONTENT_ALPHA) { - target = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, rect->width, rect->height); mask = 0; } else { - target = cairo_image_surface_create (CAIRO_FORMAT_RGB24, rect->width, rect->height); mask = SWFDEC_COLOR_COMBINE (0, 0, 0, 0xFF); } cairo_surface_set_device_offset (target, -rect->x, -rect->y); -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ Swfdec mailing list Swfdec@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/swfdec