DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

Link: http://www.fltk.org/str.php?L2583
Version: 1.3-current


This STR shows us that situations arise where
an image is made of series of 4 bytes, only 3 of which have 
meaningful (RGB) values. Thus, the present semantic of 
fl_draw_image() on the Mac platform where the 4th byte, if present,
must be an alpha channel is not adequate.

My suggestion would be:
1) unify the fl_draw_image() semantic on all platforms to ignore
the 4th byte if it exists;
2) reserve a future API that would allow to draw RGBA images
with this function:
  void fl_draw_image(uchar*, X,Y,W,H, D, L, bool alpha=false);
where transparency would require an explicit true last argument.

The code change, in fl_draw_image_mac.cxx, is just to replace:

   //lut, delta&1?kCGImageAlphaNone:kCGImageAlphaNoneSkipLast,
     lut, delta&1?kCGImageAlphaNone:kCGImageAlphaLast,
by:
     lut, delta&1?kCGImageAlphaNone:kCGImageAlphaNoneSkipLast,
   //lut, delta&1?kCGImageAlphaNone:kCGImageAlphaLast,


Link: http://www.fltk.org/str.php?L2583
Version: 1.3-current

_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs

Reply via email to