summaryrefslogtreecommitdiff
path: root/shared-module
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2020-04-14 17:34:53 -0500
committerJeff Epler <jepler@gmail.com>2020-04-14 18:25:00 -0500
commitd8362ef654d86d29561db2cbcc2a20ab488316a8 (patch)
tree5ff3e0bc789685ae94c67e2f13af6ede355e20f5 /shared-module
parent0ce9c008c5d54f59224bda91af36c9c86aa64c09 (diff)
displayio: swap colors in palettes too
.. change the in-rom palette to be in RGB565 order
Diffstat (limited to 'shared-module')
-rw-r--r--shared-module/displayio/Palette.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/shared-module/displayio/Palette.c b/shared-module/displayio/Palette.c
index 3bce86f48..1ef03aab4 100644
--- a/shared-module/displayio/Palette.c
+++ b/shared-module/displayio/Palette.c
@@ -83,7 +83,12 @@ bool displayio_palette_get_color(displayio_palette_t *self, const _displayio_col
} else if (colorspace->grayscale) {
*color = self->colors[palette_index].luma >> (8 - colorspace->depth);
} else {
- *color = self->colors[palette_index].rgb565;
+ uint16_t packed = self->colors[palette_index].rgb565;
+ if (colorspace->reverse_bytes_in_word) {
+ // swap bytes
+ packed = __builtin_bswap16(packed);
+ }
+ *color = packed;
}
return true;