Skip to content

Commit 04b98ed

Browse files
committed
fix pixel_shader property name, add tilegrid property and set tilegrid to None before it is bound, disallow TPM from being bound multiple times.
1 parent 4fb7d44 commit 04b98ed

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

locale/circuitpython.pot

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2070,8 +2070,8 @@ msgstr ""
20702070
msgid "Tile width must exactly divide bitmap width"
20712071
msgstr ""
20722072

2073-
#: shared-module/displayio/Group.c
2074-
msgid "TileGrid must have a pixel_shader"
2073+
#: shared-module/tilepalettemapper/TilePaletteMapper.c
2074+
msgid "TilePaletteMapper may only be bound to a TileGrid once"
20752075
msgstr ""
20762076

20772077
#: shared-bindings/alarm/time/TimeAlarm.c

shared-bindings/tilepalettemapper/TilePaletteMapper.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ static mp_obj_t tilepalettemapper_tilepalettemapper_obj_get_pixel_shader(mp_obj_
8484
}
8585
MP_DEFINE_CONST_FUN_OBJ_1(tilepalettemapper_tilepalettemapper_get_pixel_shader_obj, tilepalettemapper_tilepalettemapper_obj_get_pixel_shader);
8686

87-
MP_PROPERTY_GETTER(tilepalettemapper_tilepalettemapper_palette_obj,
87+
MP_PROPERTY_GETTER(tilepalettemapper_tilepalettemapper_pixel_shader_obj,
8888
(mp_obj_t)&tilepalettemapper_tilepalettemapper_get_pixel_shader_obj);
8989

9090
//| tilegrid: displayio.TileGrid
@@ -165,7 +165,8 @@ static mp_obj_t tilepalettemapper_subscr(mp_obj_t self_in, mp_obj_t index_obj, m
165165
static const mp_rom_map_elem_t tilepalettemapper_tilepalettemapper_locals_dict_table[] = {
166166
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_width_obj) },
167167
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_height_obj) },
168-
{ MP_ROM_QSTR(MP_QSTR_palette), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_palette_obj) },
168+
{ MP_ROM_QSTR(MP_QSTR_pixel_shader), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_pixel_shader_obj) },
169+
{ MP_ROM_QSTR(MP_QSTR_tilegrid), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_tilegrid_obj) },
169170
};
170171
static MP_DEFINE_CONST_DICT(tilepalettemapper_tilepalettemapper_locals_dict, tilepalettemapper_tilepalettemapper_locals_dict_table);
171172

shared-module/tilepalettemapper/TilePaletteMapper.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ void common_hal_tilepalettemapper_tilepalettemapper_construct(tilepalettemapper_
1414
mp_obj_t pixel_shader, uint16_t input_color_count) {
1515
self->pixel_shader = pixel_shader;
1616
self->input_color_count = input_color_count;
17+
self->tilegrid = mp_const_none;
1718
}
1819

1920
uint16_t common_hal_tilepalettemapper_tilepalettemapper_get_width(tilepalettemapper_tilepalettemapper_t *self) {
@@ -79,6 +80,9 @@ void tilepalettemapper_tilepalettemapper_get_color(tilepalettemapper_tilepalette
7980
}
8081

8182
void tilepalettemapper_tilepalettemapper_bind(tilepalettemapper_tilepalettemapper_t *self, displayio_tilegrid_t *tilegrid) {
83+
if (self->tilegrid != mp_const_none) {
84+
mp_raise_RuntimeError(MP_ERROR_TEXT("TilePaletteMapper may only be bound to a TileGrid once"));
85+
}
8286
self->tilegrid = tilegrid;
8387
self->width_in_tiles = common_hal_displayio_tilegrid_get_width(tilegrid);
8488
self->height_in_tiles = common_hal_displayio_tilegrid_get_height(tilegrid);

0 commit comments

Comments
 (0)