summaryrefslogtreecommitdiff
path: root/shared-module/displayio/Bitmap.c
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2021-03-17 16:11:04 -0500
committerJeff Epler <jepler@gmail.com>2021-03-17 16:26:45 -0500
commitc157ada90c3dabbb005b431f98e5c81e57e8a4bc (patch)
tree9ebfe37403d6988980e8b3aa7893102d2cfaa705 /shared-module/displayio/Bitmap.c
parentbfc8c89536e12dba0cc9adc0065819d730bb0983 (diff)
displayio.Bitmap: Make memoryview()able
Diffstat (limited to 'shared-module/displayio/Bitmap.c')
-rw-r--r--shared-module/displayio/Bitmap.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/shared-module/displayio/Bitmap.c b/shared-module/displayio/Bitmap.c
index f03ade84b..5da196d9f 100644
--- a/shared-module/displayio/Bitmap.c
+++ b/shared-module/displayio/Bitmap.c
@@ -271,3 +271,23 @@ void common_hal_displayio_bitmap_fill(displayio_bitmap_t *self, uint32_t value)
self->data[i] = word;
}
}
+
+int common_hal_displayio_bitmap_get_buffer(displayio_bitmap_t *self, mp_buffer_info_t *bufinfo, mp_uint_t flags) {
+ if (flags & MP_BUFFER_WRITE) {
+ return 1;
+ }
+ bufinfo->len = self->stride * self->height * sizeof(size_t);
+ bufinfo->buf = self->data;
+ switch (self->bits_per_value) {
+ case 32:
+ bufinfo->typecode = 'I';
+ break;
+ case 16:
+ bufinfo->typecode = 'H';
+ break;
+ default:
+ bufinfo->typecode = 'B';
+ break;
+ }
+ return 0;
+}