Approved!
On 11/15/10 2:53 PM, P T Withington wrote:
Change ptw-20101115-YPt by [email protected] on 2010-11-15 17:28:26 EST
in /Users/ptw/OpenLaszlo/trunk-devo
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: Change internal color representation to encode alpha accurately
Bugs Fixed:
LPP-9154 Investigate using 32bit ints instead of floats in LzColorUtils
LPP-9528 LzColorUtils does not handle rbga(n,n,n,0) correctly
Technical Reviewer: [email protected], [email protected] (pending)
QA Reviewer: [email protected] (pending)
Release Notes:
Colors are now represented internally as 32-bit integers with any
alpha value being stored as its complement in the high 8 bits.
Thus, a color with an alpha of 1 will be represented by the 24-bit
color as before, for compatibilty with code that does not
understand alpha.
Code that intends to respect alpha needs to be aware of the alpha
component of colors and be sure to preserve it when manipulating
colors. This is best done by unpacking the internal representaion
into components, manipulating the components, and then repacking
them. All standard color models are supported for unpacking and
repacking -- choose the one best suited to your manipulations.
Overview:
Basically implemented a whole new substrate in LzColorUtils that
knows how to pack/unpack internal representations from/to any of
rgba, hsla, hsva, 8-digit # colors, etc. Wrote a much more
complete CSS colorspec parser and unparser. Shoved these
underneath the existing API's in as compatible a manner as
possible.
Details:
lzunit-lzutils: Updated tests that depended on internal
representation, which has changed.
LzUtils: New color representation, pack/unpack methods, css
colorspec parser and unparser. Use those as the substrate for the
existing color APIs.
style: Bug discovered by new code -- the color type auto-quotes
its value property. If you want the value to be an expression,
you must use ${}.
Tests:
{smokecheck, lzuint-lzutils} x {swf8, swf10, dhtml}
Files:
M test/lfc/lzunit-lzutils.lzx
M WEB-INF/lps/lfc/services/LzUtils.lzs
M lps/components/base/style.lzx
Changeset: http://svn.openlaszlo.org/openlaszlo/patches/ptw-20101115-YPt.tar