For an RGBA color, each color component (which lies in [0,1])
is converted (by rounding to nearest) to a fixed-point value
with m bits.
We assume that the
fixed-point representation used represents each value
, where
, as
k (e.g. 1.0 is represented in binary as a string of all ones).
m must be at least as large as the number
of bits in the corresponding component of the framebuffer.
If the framebuffer does not contain an A component, then
m must be at least 2 for A. A color index is converted
(by rounding to nearest) to a fixed-point value with at least
as many bits as there are in the color index portion of the
framebuffer.
Because a number of the form may not be represented
exactly as a limited-precision floating-point quantity, we place
a further requirement on the fixed-point conversion of RGBA
components. Suppose that lighting is disabled, the color
associated with a vertex has not been clipped, and one of
Colorub , Colorus , or Colorui was used
to specify that color. When these conditions are satisfied,
an RGBA component must convert to a value that matches
the component as specified in the Color command:
if m is less than the number of bits b with which the
component was specified, then the converted value must
equal the most significant m bits of the specified value;
otherwise, the most significant b bits of the converted
value must equal the specified value.