diff options
| author | Jeff Epler <jepler@gmail.com> | 2021-03-17 16:11:04 -0500 |
|---|---|---|
| committer | Jeff Epler <jepler@gmail.com> | 2021-03-17 16:26:45 -0500 |
| commit | c157ada90c3dabbb005b431f98e5c81e57e8a4bc (patch) | |
| tree | 9ebfe37403d6988980e8b3aa7893102d2cfaa705 /shared-module/displayio/Bitmap.c | |
| parent | bfc8c89536e12dba0cc9adc0065819d730bb0983 (diff) | |
displayio.Bitmap: Make memoryview()able
Diffstat (limited to 'shared-module/displayio/Bitmap.c')
| -rw-r--r-- | shared-module/displayio/Bitmap.c | 20 |
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; +} |
