Opened 14 years ago

Closed 14 years ago

#3471 closed defect (fixed)

wrong blending of image channels with transparent layers in agg renderer on MSB architectures

Reported by: tbonfort Owned by: tbonfort
Priority: normal Milestone: 5.6.4 release
Component: AGG Version: 5.0
Severity: normal Keywords:
Cc: vincent.picavet@…

Description

the order of the image channels is messed up when merging a transparent layer with the AGG renderer on MSB architectures, e.g. sparc

Change History (3)

comment:1 by tbonfort, 14 years ago

patch:

Index: mapagg.cpp
===================================================================
--- mapagg.cpp	(revision 10217)
+++ mapagg.cpp	(working copy)
@@ -85,8 +85,10 @@
 
 #ifdef CPL_MSB
 typedef mapserver::order_argb gd_color_order;
+typedef mapserver::blender_argb32_pre raw_pixel_blender;
 #else
 typedef mapserver::order_bgra gd_color_order;
+typedef mapserver::blender_bgra32_pre raw_pixel_blender;
 #endif
 
 typedef mapserver::blender_rgba_pre<mapserver::rgba8, gd_color_order> blender_pre; 
@@ -2506,7 +2508,7 @@
             //blend the src pixel over it.
             //the color channels must also be scaled by the opacity
             //as the blender expects premultiplied colors
-            mapserver::blender_bgra32_pre::blend_pix(p,
+            raw_pixel_blender::blend_pix(p,
                     MS_NINT(src_p[gd_color_order::R]*factor),
                     MS_NINT(src_p[gd_color_order::G]*factor),
                     MS_NINT(src_p[gd_color_order::B]*factor),

comment:2 by tbonfort, 14 years ago

Cc: vincent.picavet@… added

comment:3 by tbonfort, 14 years ago

Resolution: fixed
Status: newclosed

fixed in branch 5.6 in r10218 and branch 5.4 in r10219.

trunk (future 6.0 is not concerned)

Note: See TracTickets for help on using tickets.