Add claude docs
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# Display -- Color
|
||||
|
||||
Source: `build/generated/display/color.h` (generated at build time)
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
`color.h` is a generated header. It is not hand-edited -- the source
|
||||
lives in the CMake generator that produces it from platform configuration.
|
||||
Include it via `"display/color.h"`.
|
||||
|
||||
---
|
||||
|
||||
## Types
|
||||
|
||||
```c
|
||||
typedef float_t colorchannelf_t; // float channel [0.0, 1.0]
|
||||
typedef uint8_t colorchannel8_t; // 8-bit channel [0, 255]
|
||||
|
||||
typedef struct { colorchannelf_t r, g, b; } color3f_t;
|
||||
typedef struct { colorchannelf_t r, g, b, a; } color4f_t;
|
||||
typedef struct { colorchannel8_t r, g, b; } color3b_t;
|
||||
typedef struct { colorchannel8_t r, g, b, a; } color4b_t;
|
||||
|
||||
typedef color4b_t color_t; // default: RGBA uint8
|
||||
```
|
||||
|
||||
`color_t` is always `color4b_t` -- four `uint8_t` channels.
|
||||
Most engine APIs (text rendering, UI, mesh vertices) take `color_t`.
|
||||
|
||||
---
|
||||
|
||||
## Constructors
|
||||
|
||||
```c
|
||||
color3f(r, g, b) // float RGB
|
||||
color4f(r, g, b, a) // float RGBA
|
||||
color3b(r, g, b) // uint8 RGB
|
||||
color4b(r, g, b, a) // uint8 RGBA
|
||||
color(r, g, b, a) // alias for color4b
|
||||
colorHex(0xRRGGBBAA) // unpack 32-bit hex into color4b
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Predefined constants
|
||||
|
||||
Each named colour comes in four variants: `_4B` (uint8 RGBA, default),
|
||||
`_3B` (uint8 RGB), `_4F` (float RGBA), `_3F` (float RGB). The bare
|
||||
name (e.g. `COLOR_BLACK`) always resolves to the `_4B` variant.
|
||||
|
||||
| Constant | RGBA (uint8) |
|
||||
|----------|-------------|
|
||||
| `COLOR_BLACK` | 0, 0, 0, 255 |
|
||||
| `COLOR_WHITE` | 255, 255, 255, 255 |
|
||||
| `COLOR_RED` | 255, 0, 0, 255 |
|
||||
| `COLOR_GREEN` | 0, 255, 0, 255 |
|
||||
| `COLOR_BLUE` | 0, 0, 255, 255 |
|
||||
| `COLOR_YELLOW` | 255, 255, 0, 255 |
|
||||
| `COLOR_CYAN` | 0, 255, 255, 255 |
|
||||
| `COLOR_MAGENTA` | 255, 0, 255, 255 |
|
||||
| `COLOR_ORANGE` | 255, 165, 0, 255 |
|
||||
| `COLOR_PURPLE` | 127, 0, 127, 255 |
|
||||
| `COLOR_GRAY` | 127, 127, 127, 255 |
|
||||
| `COLOR_LIGHT_GRAY` | 191, 191, 191, 255 |
|
||||
| `COLOR_DARK_GRAY` | 63, 63, 63, 255 |
|
||||
| `COLOR_BROWN` | 153, 102, 51, 255 |
|
||||
| `COLOR_PINK` | 255, 191, 204, 255 |
|
||||
| `COLOR_LIME` | 191, 255, 0, 255 |
|
||||
| `COLOR_NAVY` | 0, 0, 127, 255 |
|
||||
| `COLOR_TEAL` | 0, 127, 127, 255 |
|
||||
| `COLOR_CORNFLOWER_BLUE` | 99, 147, 237, 255 |
|
||||
| `COLOR_TRANSPARENT` | 0, 0, 0, 0 |
|
||||
| `COLOR_TRANSPARENT_WHITE` | 255, 255, 255, 0 |
|
||||
| `COLOR_TRANSPARENT_BLACK` | 0, 0, 0, 0 |
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- `color_t` uses premultiplied-friendly `uint8_t` channels for
|
||||
compatibility with both OpenGL texture uploads and GX on Dolphin.
|
||||
- For shader uniforms that expect float colours, convert manually:
|
||||
`(float_t)col.r / 255.0f` etc.
|
||||
- The `COLOR_SCRIPT` macro is a C string containing the JS Color class
|
||||
static methods. It is concatenated into the embedded JS runtime
|
||||
during module init (see `.claude/script.md`).
|
||||
Reference in New Issue
Block a user