cucul_attributes3caca
Detailed Description
These functions perform conversions between attribute values.
Function Documentation
__extern uint8_t cucul_attr_to_ansi (uint32_t attr)
Get the ANSI colour pair for a given attribute. The returned value is an 8-bit value whose higher 4 bits are the background colour and lower 4 bits are the foreground colour.
If the attribute has ARGB colours, the nearest colour is used. Special attributes such as CUCUL_DEFAULT and CUCUL_TRANSPARENT are not handled and are both replaced with CUCUL_LIGHTGRAY for the foreground colour and CUCUL_BLACK for the background colour.
This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.
Parameters:
attr The requested attribute value.
Returns:
The corresponding DOS ANSI value.
References CUCUL_BLACK, and CUCUL_LIGHTGRAY.
__extern uint8_t cucul_attr_to_ansi_fg (uint32_t attr)
Get the ANSI foreground colour value for a given attribute. The returned value is either one of the CUCUL_RED, CUCUL_BLACK etc. predefined colours, or the special value CUCUL_DEFAULT meaning the media's default foreground value, or the special value CUCUL_TRANSPARENT.
If the attribute has ARGB colours, the nearest colour is returned.
This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.
Parameters:
attr The requested attribute value.
Returns:
The corresponding ANSI foreground value.
__extern uint8_t cucul_attr_to_ansi_bg (uint32_t attr)
Get the ANSI background colour value for a given attribute. The returned value is either one of the CUCUL_RED, CUCUL_BLACK etc. predefined colours, or the special value CUCUL_DEFAULT meaning the media's default background value, or the special value CUCUL_TRANSPARENT.
If the attribute has ARGB colours, the nearest colour is returned.
This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.
Parameters:
attr The requested attribute value.
Returns:
The corresponding ANSI background value.
__extern uint16_t cucul_attr_to_rgb12_fg (uint32_t attr)
Get the 12-bit foreground colour value for a given attribute. The returned value is a native-endian encoded integer with each red, green and blue values encoded on 8 bits in the following order:
•
|
8-11 most significant bits: red |
|---|---|
•
|
4-7 most significant bits: green |
•
|
least significant bits: blue |
This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.
Parameters:
attr The requested attribute value.
Returns:
The corresponding 12-bit RGB foreground value.
References CUCUL_DEFAULT, CUCUL_LIGHTGRAY, and CUCUL_TRANSPARENT.
__extern uint16_t cucul_attr_to_rgb12_bg (uint32_t attr)
Get the 12-bit background colour value for a given attribute. The returned value is a native-endian encoded integer with each red, green and blue values encoded on 8 bits in the following order:
•
|
8-11 most significant bits: red |
|---|---|
•
|
4-7 most significant bits: green |
•
|
least significant bits: blue |
This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.
Parameters:
attr The requested attribute value.
Returns:
The corresponding 12-bit RGB background value.
References CUCUL_BLACK, CUCUL_DEFAULT, and CUCUL_TRANSPARENT.
__extern void cucul_attr_to_argb64 (uint32_t attr, uint8_t argb[8])
Get the 64-bit colour and alpha values for a given attribute. The values are written as 8-bit integers in the argb array in the following order:
•
|
argb[0]: background alpha value |
|---|---|
•
|
argb[1]: background red value |
•
|
argb[2]: background green value |
•
|
argb[3]: background blue value |
•
|
argb[4]: foreground alpha value |
•
|
argb[5]: foreground red value |
•
|
argb[6]: foreground green value |
•
|
argb[7]: foreground blue value |
This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.
Parameters:
attr The requested attribute value.
argb An array of 8-bit integers.
References CUCUL_BLACK, CUCUL_DEFAULT, CUCUL_LIGHTGRAY, and CUCUL_TRANSPARENT.
Referenced by cucul_render_canvas().