No subject

Mon Aug 15 11:10:41 PDT 2005

half numbers have 1 sign bit, 5 exponent bits, and 10 mantissa bits. The 
interpretation of the sign, exponent and mantissa is analogous to IEEE-754 
floating-point numbers. half supports normalized and denormalized numbers, 
infinities and NANs (Not A Number). The range of representable numbers is 
roughly 6.0e-8 - 6.5e4; numbers smaller than 6.1e-5are denormalized. 
Conversions from float to half round the mantissa to 10 bits; the 13 least 
significant bits are lost. Conversions from half to float are lossless; all 
half numbers are exactly representable as float values.  

The data type implemented by class half is identical to Nvidia's 16-bit 
floating-point format ("fp16 / half"). 16-bit data, including infinities and 
NANs, can be transferred between OpenEXR files and Nvidia 16-bit 
floating-point frame buffers without losing any bits. 

> Support both e-sRGB and sRGB.  The user specifies which when the
> surface is created.  Most folks (like toolkit authors) will specify
> sRGB, but users doing higher quality work can specify an e-sRGB
> buffer.

I would recommend that any such ideas be treated as totally different 
Xr implementations, much like the image-map version is considered different 
than the Xrender version. I don't think it is a good idea to require any 
implementation to support more than one form of math. If somebody wants 
"precise" they can use a precise version of Xr that renders into local memory.

                   ,~,~,~,~ ~ ~ ~ ~
     /\_       _|_========___         Bill Spitzak
 ~~~/\/\\~~~~~~\____________/~~~~~~~~ spitzak at

More information about the cairo mailing list