summaryrefslogtreecommitdiff
path: root/shared-module/displayio/OnDiskBitmap.c
diff options
context:
space:
mode:
authorJeff Epler <jeff@adafruit.com>2020-10-27 11:47:44 -0500
committerSeon Rozenblum <seon@unexpectedmaker.com>2021-01-04 09:52:42 +1100
commit2a5f3de1cdec92d412148cabaf605a750d238234 (patch)
tree9c187db62ecbec0000b4533c95f4089901f3b5ae /shared-module/displayio/OnDiskBitmap.c
parentcaca0609bdbc8f5b1b406fad19878505bb5492a5 (diff)
parentd0e54993e9546249911c2c380c870e6a7f2b9917 (diff)
Merge pull request #3608 from adafruit/6.0.x
Update main with latest 6.0.x
Diffstat (limited to 'shared-module/displayio/OnDiskBitmap.c')
-rw-r--r--shared-module/displayio/OnDiskBitmap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/shared-module/displayio/OnDiskBitmap.c b/shared-module/displayio/OnDiskBitmap.c
index 993fc03de..c1a0ddeb7 100644
--- a/shared-module/displayio/OnDiskBitmap.c
+++ b/shared-module/displayio/OnDiskBitmap.c
@@ -57,7 +57,7 @@ void common_hal_displayio_ondiskbitmap_construct(displayio_ondiskbitmap_t *self,
uint32_t compression = read_word(bmp_header, 15);
uint32_t number_of_colors = read_word(bmp_header, 23);
- bool indexed = ((bits_per_pixel <= 8) && (number_of_colors != 0));
+ bool indexed = bits_per_pixel <= 8;
self->bitfield_compressed = (compression == 3);
self->bits_per_pixel = bits_per_pixel;
self->width = read_word(bmp_header, 9);
@@ -75,6 +75,9 @@ void common_hal_displayio_ondiskbitmap_construct(displayio_ondiskbitmap_t *self,
self->b_bitmask = 0x1f;
}
} else if (indexed && self->bits_per_pixel != 1) {
+ if (number_of_colors == 0) {
+ number_of_colors = 1 << bits_per_pixel;
+ }
uint16_t palette_size = number_of_colors * sizeof(uint32_t);
uint16_t palette_offset = 0xe + header_size;