summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2019-04-17 10:37:32 -0700
committerGitHub <noreply@github.com>2019-04-17 10:37:32 -0700
commitbfbe9323ee9aa014e6af3e3fe349d37843a3a5c9 (patch)
treef18993444952f5770b2217041db27e620f0407f5
parent713a38d1a21e11d94e5ce56008f072dc4ea6978c (diff)
parent3a65ff970aa6628ab6f5eb05523777d298bdee0c (diff)
Merge pull request #1807 from pewpew-game/stage-cast-native
Allow use of displayio.Display subclasses in _stage
-rw-r--r--shared-bindings/_stage/__init__.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/shared-bindings/_stage/__init__.c b/shared-bindings/_stage/__init__.c
index dc9dbef65..03775b1de 100644
--- a/shared-bindings/_stage/__init__.c
+++ b/shared-bindings/_stage/__init__.c
@@ -83,10 +83,12 @@ STATIC mp_obj_t stage_render(size_t n_args, const mp_obj_t *args) {
uint16_t *buffer = bufinfo.buf;
size_t buffer_size = bufinfo.len / 2; // 16-bit indexing
- if (!MP_OBJ_IS_TYPE(args[6], &displayio_display_type)) {
+ mp_obj_t native_display = mp_instance_cast_to_native_base(args[6],
+ &displayio_display_type);
+ if (!MP_OBJ_IS_TYPE(native_display, &displayio_display_type)) {
mp_raise_TypeError(translate("argument num/types mismatch"));
}
- displayio_display_obj_t *display = MP_OBJ_TO_PTR(args[6]);
+ displayio_display_obj_t *display = MP_OBJ_TO_PTR(native_display);
while (!displayio_display_begin_transaction(display)) {
#ifdef MICROPY_VM_HOOK_LOOP