summaryrefslogtreecommitdiff
path: root/shared-module/displayio
diff options
context:
space:
mode:
authorJeff Epler <jeff@adafruit.com>2021-03-18 18:38:25 -0500
committerGitHub <noreply@github.com>2021-03-18 18:38:25 -0500
commit623ece2c73b1a7886695fc09bde82f79ae47b3d7 (patch)
tree0c8d1f252704c31c9c3a48471db707e81aafd17b /shared-module/displayio
parent25895153422da1bd3d05f50e4c35ea408f9e4d28 (diff)
parent720d242b4f522b4424ab6ac6df8385c5c23eaba0 (diff)
Merge pull request #4429 from jepler/displayio-bitmap-memoryview
displayio.Bitmap: Make memoryview()able
Diffstat (limited to 'shared-module/displayio')
-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;
+}