[cairo] _cairo_color_compute_shorts fails with FPU
set to single precision
Bill Spitzak
spitzak at d2.com
Wed Aug 30 10:20:11 PDT 2006
Why not put the clamping and conversion into the same code? This would
certainly be faster than clamping the floating point ahead of time.
Doing the comparison in floating point makes NaN work (in this case it
will turn NaN into 65535):
if (f <= 0) x = 0;
else if (f < 1) x = (int)(f*65535);
else x = 65535;
Generally I have found that if you have a floating point variable, you
should never clamp it. If there is any math done at all, you pretty much
have to clamp the result, so the initial clamp is a total waste of time.
Also it results in incompatability if you later try to switch to HDR.
As far as I can tell the only effect is that if you set a cairo color to
2 and then ask for it back, you will get 2 rather than 1. Some people
would consider this an improvement.
I also really want that 8-bit interface so that the most common use
avoids all this and we don't have a back-compatability nightmare because
programmers have used every value in the range that converts to a
certain 8-bit number and cannot have any change that will make any of
those values convert to a different one.
Carl Worth wrote:
> On Wed, 30 Aug 2006 16:22:23 +0000 (GMT), Fabien Costantini wrote:
>> De : Behdad Esfahbod <behdad at behdad.org>
>>>> i -= ((i >> 16) & 1)
>>> That doesn't really help, other than slowing it down.
>> well, it just make sure you will substract at max 1,
More information about the cairo
mailing list