Tinman.Color

Description

Represents a 64-bit A16R16G16B16 linear sRGB color value.

The binary layout of a 64-bit color value is this:

            red     blue
            /``\    /``\
MSB - 0xAAAARRRRGGGGBBBB - LSB
        \__/    \__/
        alpha   green

alpha : [0..65535], bitmask 0xFFFF000000000000
red   : [0..65535], bitmask 0x0000FFFF00000000
green : [0..65535], bitmask 0x00000000FFFF0000
blue  : [0..65535], bitmask 0x000000000000FFFF

The 16-bit color channel values (red, green and blue) are expected to be specified in linear sRGB color space (e.g. without gamma compression), where 0 and 65535 are linearly mapped to the values 0 and 1, respectively. This assumption is necessary, since linear arithmetic is used on color channel values.

The 8-bit (or less) color channel values are expected to be specified in compressed sRGB color space (i.e. with gamma compression). Automatic decompression resp. compression will be performed where necessary.

Alpha channel values are always treated as linear, thus automatic gamma compression resp. decompression will never be performed. The 16-bit color channel values 0 and 65535 are simply mapped to the linear values 0 and 1, respectively.

The color constant defined by this class have an alpha channel value of 65535 by default (i.e. fully opaque), unless stated otherwise.

Use one of the derived types to specify a color value in the desired format.