summary refs log tree commit diff
path: root/docs
diff options
context:
space:
mode:
authorDavid Hoelscher <infinityis@users.noreply.github.com>2023-01-14 04:24:54 -0600
committerGitHub <noreply@github.com>2023-01-14 21:24:54 +1100
commit45851a10f66119ceff3baadde27f68e287eff481 (patch)
treefe482cc85723cbf6a626ddb2f346d916f60ce29b /docs
parent5873fbe5690a008548c258840b273d0712495ed4 (diff)
Add RGB565 and RGB888 color support to Quantum Painter (#19382)
Diffstat (limited to 'docs')
-rw-r--r--docs/quantum_painter.md59
1 files changed, 38 insertions, 21 deletions
diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md
index 781b467a45..ac37053c79 100644
--- a/docs/quantum_painter.md
+++ b/docs/quantum_painter.md
@@ -32,15 +32,16 @@ Supported devices:
 
 ## Quantum Painter Configuration :id=quantum-painter-config
 
-| Option                                  | Default | Purpose                                                                                                                                     |
-|-----------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------|
-| `QUANTUM_PAINTER_NUM_IMAGES`            | `8`     | The maximum number of images/animations that can be loaded at any one time.                                                                 |
-| `QUANTUM_PAINTER_NUM_FONTS`             | `4`     | The maximum number of fonts that can be loaded at any one time.                                                                             |
-| `QUANTUM_PAINTER_CONCURRENT_ANIMATIONS` | `4`     | The maximum number of animations that can be executed at the same time.                                                                     |
-| `QUANTUM_PAINTER_LOAD_FONTS_TO_RAM`     | `FALSE` | Whether or not fonts should be loaded to RAM. Relevant for fonts stored in off-chip persistent storage, such as external flash.             |
-| `QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE`   | `32`    | The limit of the amount of pixel data that can be transmitted in one transaction to the display. Higher values require more RAM on the MCU. |
-| `QUANTUM_PAINTER_SUPPORTS_256_PALETTE`  | `FALSE` | If 256-color palettes are supported. Requires significantly more RAM on the MCU.                                                            |
-| `QUANTUM_PAINTER_DEBUG`                 | _unset_ | Prints out significant amounts of debugging information to CONSOLE output. Significant performance degradation, use only for debugging.     |
+| Option                                   | Default | Purpose                                                                                                                                     |
+|------------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------|
+| `QUANTUM_PAINTER_NUM_IMAGES`             | `8`     | The maximum number of images/animations that can be loaded at any one time.                                                                 |
+| `QUANTUM_PAINTER_NUM_FONTS`              | `4`     | The maximum number of fonts that can be loaded at any one time.                                                                             |
+| `QUANTUM_PAINTER_CONCURRENT_ANIMATIONS`  | `4`     | The maximum number of animations that can be executed at the same time.                                                                     |
+| `QUANTUM_PAINTER_LOAD_FONTS_TO_RAM`      | `FALSE` | Whether or not fonts should be loaded to RAM. Relevant for fonts stored in off-chip persistent storage, such as external flash.             |
+| `QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE`    | `32`    | The limit of the amount of pixel data that can be transmitted in one transaction to the display. Higher values require more RAM on the MCU. |
+| `QUANTUM_PAINTER_SUPPORTS_256_PALETTE`   | `FALSE` | If 256-color palettes are supported. Requires significantly more RAM on the MCU.                                                            |
+| `QUANTUM_PAINTER_SUPPORTS_NATIVE_COLORS` | `FALSE` | If native color range is supported. Requires significantly more RAM on the MCU.                                                             |
+| `QUANTUM_PAINTER_DEBUG`                  | _unset_ | Prints out significant amounts of debugging information to CONSOLE output. Significant performance degradation, use only for debugging.     |
 
 Drivers have their own set of configurable options, and are described in their respective sections.
 
@@ -63,7 +64,7 @@ options:
   -d, --no-deltas       Disables the use of delta frames when encoding animations.
   -r, --no-rle          Disables the use of RLE when encoding images.
   -f FORMAT, --format FORMAT
-                        Output format, valid types: pal256, pal16, pal4, pal2, mono256, mono16, mono4, mono2
+                        Output format, valid types: rgb888, rgb565, pal256, pal16, pal4, pal2, mono256, mono16, mono4, mono2
   -o OUTPUT, --output OUTPUT
                         Specify output directory. Defaults to same directory as input.
   -i INPUT, --input INPUT
@@ -77,16 +78,18 @@ The `OUTPUT` argument needs to be a directory, and will default to the same dire
 
 The `FORMAT` argument can be any of the following:
 
-| Format    | Meaning                                                               |
-|-----------|-----------------------------------------------------------------------|
-| `pal256`  | 256-color palette (requires `QUANTUM_PAINTER_SUPPORTS_256_PALETTE`)   |
-| `pal16`   | 16-color palette                                                      |
-| `pal4`    | 4-color palette                                                       |
-| `pal2`    | 2-color palette                                                       |
-| `mono256` | 256-shade grayscale (requires `QUANTUM_PAINTER_SUPPORTS_256_PALETTE`) |
-| `mono16`  | 16-shade grayscale                                                    |
-| `mono4`   | 4-shade grayscale                                                     |
-| `mono2`   | 2-shade grayscale                                                     |
+| Format    | Meaning                                                                                   |
+|-----------|-------------------------------------------------------------------------------------------|
+| `rgb888`  | 16,777,216 colors in 8-8-8 RGB format (requires `QUANTUM_PAINTER_SUPPORTS_NATIVE_COLORS`) |
+| `rgb565`  | 65,536 colors in 5-6-5 RGB format (requires `QUANTUM_PAINTER_SUPPORTS_NATIVE_COLORS`)     |
+| `pal256`  | 256-color palette (requires `QUANTUM_PAINTER_SUPPORTS_256_PALETTE`)                       |
+| `pal16`   | 16-color palette                                                                          |
+| `pal4`    | 4-color palette                                                                           |
+| `pal2`    | 2-color palette                                                                           |
+| `mono256` | 256-shade grayscale (requires `QUANTUM_PAINTER_SUPPORTS_256_PALETTE`)                     |
+| `mono16`  | 16-shade grayscale                                                                        |
+| `mono4`   | 4-shade grayscale                                                                         |
+| `mono2`   | 2-shade grayscale                                                                         |
 
 **Examples**:
 
@@ -154,7 +157,7 @@ options:
   -w, --raw             Writes out the QFF file as raw data instead of c/h combo.
   -r, --no-rle          Disable the use of RLE to minimise converted image size.
   -f FORMAT, --format FORMAT
-                        Output format, valid types: pal256, pal16, pal4, pal2, mono256, mono16, mono4, mono2
+                        Output format, valid types: rgb565, pal256, pal16, pal4, pal2, mono256, mono16, mono4, mono2
   -u UNICODE_GLYPHS, --unicode-glyphs UNICODE_GLYPHS
                         Also generate the specified unicode glyphs.
   -n, --no-ascii        Disables output of the full ASCII character set (0x20..0x7E), exporting only the glyphs specified.
@@ -215,6 +218,8 @@ The maximum number of displays can be configured by changing the following in yo
 #define GC9A01_NUM_DEVICES 3
 ```
 
+Native color format rgb565 is compatible with GC9A01
+
 #### ** ILI9163 **
 
 Enabling support for the ILI9163 in Quantum Painter is done by adding the following to `rules.mk`:
@@ -239,6 +244,8 @@ The maximum number of displays can be configured by changing the following in yo
 #define ILI9163_NUM_DEVICES 3
 ```
 
+Native color format rgb565 is compatible with ILI9163
+
 #### ** ILI9341 **
 
 Enabling support for the ILI9341 in Quantum Painter is done by adding the following to `rules.mk`:
@@ -263,6 +270,8 @@ The maximum number of displays can be configured by changing the following in yo
 #define ILI9341_NUM_DEVICES 3
 ```
 
+Native color format rgb565 is compatible with ILI9341
+
 #### ** ILI9488 **
 
 Enabling support for the ILI9488 in Quantum Painter is done by adding the following to `rules.mk`:
@@ -287,6 +296,8 @@ The maximum number of displays can be configured by changing the following in yo
 #define ILI9488_NUM_DEVICES 3
 ```
 
+Native color format rgb888 is compatible with ILI9488
+
 #### ** SSD1351 **
 
 Enabling support for the SSD1351 in Quantum Painter is done by adding the following to `rules.mk`:
@@ -311,6 +322,8 @@ The maximum number of displays can be configured by changing the following in yo
 #define SSD1351_NUM_DEVICES 3
 ```
 
+Native color format rgb565 is compatible with SSD1351
+
 #### ** ST7735 **
 
 Enabling support for the ST7735 in Quantum Painter is done by adding the following to `rules.mk`:
@@ -335,6 +348,8 @@ The maximum number of displays can be configured by changing the following in yo
 #define ST7735_NUM_DEVICES 3
 ```
 
+Native color format rgb565 is compatible with ST7735
+
 !> Some ST7735 devices are known to have different drawing offsets -- despite being a 132x162 pixel display controller internally, some display panels are only 80x160, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.
 
 #### ** ST7789 **
@@ -361,6 +376,8 @@ The maximum number of displays can be configured by changing the following in yo
 #define ST7789_NUM_DEVICES 3
 ```
 
+Native color format rgb565 is compatible with ST7789
+
 !> Some ST7789 devices are known to have different drawing offsets -- despite being a 240x320 pixel display controller internally, some display panels are only 240x240, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered.
 
 <!-- tabs:end -->