fix pixel_shader property name, add tilegrid property and set tilegrid to None before it is bound, disallow TPM from being bound multiple times.
This commit is contained in:
parent
4fb7d44714
commit
04b98ed71f
3 changed files with 9 additions and 4 deletions
|
|
@ -2070,8 +2070,8 @@ msgstr ""
|
||||||
msgid "Tile width must exactly divide bitmap width"
|
msgid "Tile width must exactly divide bitmap width"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-module/displayio/Group.c
|
#: shared-module/tilepalettemapper/TilePaletteMapper.c
|
||||||
msgid "TileGrid must have a pixel_shader"
|
msgid "TilePaletteMapper may only be bound to a TileGrid once"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/alarm/time/TimeAlarm.c
|
#: shared-bindings/alarm/time/TimeAlarm.c
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ static mp_obj_t tilepalettemapper_tilepalettemapper_obj_get_pixel_shader(mp_obj_
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_1(tilepalettemapper_tilepalettemapper_get_pixel_shader_obj, tilepalettemapper_tilepalettemapper_obj_get_pixel_shader);
|
MP_DEFINE_CONST_FUN_OBJ_1(tilepalettemapper_tilepalettemapper_get_pixel_shader_obj, tilepalettemapper_tilepalettemapper_obj_get_pixel_shader);
|
||||||
|
|
||||||
MP_PROPERTY_GETTER(tilepalettemapper_tilepalettemapper_palette_obj,
|
MP_PROPERTY_GETTER(tilepalettemapper_tilepalettemapper_pixel_shader_obj,
|
||||||
(mp_obj_t)&tilepalettemapper_tilepalettemapper_get_pixel_shader_obj);
|
(mp_obj_t)&tilepalettemapper_tilepalettemapper_get_pixel_shader_obj);
|
||||||
|
|
||||||
//| tilegrid: displayio.TileGrid
|
//| tilegrid: displayio.TileGrid
|
||||||
|
|
@ -165,7 +165,8 @@ static mp_obj_t tilepalettemapper_subscr(mp_obj_t self_in, mp_obj_t index_obj, m
|
||||||
static const mp_rom_map_elem_t tilepalettemapper_tilepalettemapper_locals_dict_table[] = {
|
static const mp_rom_map_elem_t tilepalettemapper_tilepalettemapper_locals_dict_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_width_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_width_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_height_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_height_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_palette), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_palette_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_pixel_shader), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_pixel_shader_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_tilegrid), MP_ROM_PTR(&tilepalettemapper_tilepalettemapper_tilegrid_obj) },
|
||||||
};
|
};
|
||||||
static MP_DEFINE_CONST_DICT(tilepalettemapper_tilepalettemapper_locals_dict, tilepalettemapper_tilepalettemapper_locals_dict_table);
|
static MP_DEFINE_CONST_DICT(tilepalettemapper_tilepalettemapper_locals_dict, tilepalettemapper_tilepalettemapper_locals_dict_table);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ void common_hal_tilepalettemapper_tilepalettemapper_construct(tilepalettemapper_
|
||||||
mp_obj_t pixel_shader, uint16_t input_color_count) {
|
mp_obj_t pixel_shader, uint16_t input_color_count) {
|
||||||
self->pixel_shader = pixel_shader;
|
self->pixel_shader = pixel_shader;
|
||||||
self->input_color_count = input_color_count;
|
self->input_color_count = input_color_count;
|
||||||
|
self->tilegrid = mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t common_hal_tilepalettemapper_tilepalettemapper_get_width(tilepalettemapper_tilepalettemapper_t *self) {
|
uint16_t common_hal_tilepalettemapper_tilepalettemapper_get_width(tilepalettemapper_tilepalettemapper_t *self) {
|
||||||
|
|
@ -79,6 +80,9 @@ void tilepalettemapper_tilepalettemapper_get_color(tilepalettemapper_tilepalette
|
||||||
}
|
}
|
||||||
|
|
||||||
void tilepalettemapper_tilepalettemapper_bind(tilepalettemapper_tilepalettemapper_t *self, displayio_tilegrid_t *tilegrid) {
|
void tilepalettemapper_tilepalettemapper_bind(tilepalettemapper_tilepalettemapper_t *self, displayio_tilegrid_t *tilegrid) {
|
||||||
|
if (self->tilegrid != mp_const_none) {
|
||||||
|
mp_raise_RuntimeError(MP_ERROR_TEXT("TilePaletteMapper may only be bound to a TileGrid once"));
|
||||||
|
}
|
||||||
self->tilegrid = tilegrid;
|
self->tilegrid = tilegrid;
|
||||||
self->width_in_tiles = common_hal_displayio_tilegrid_get_width(tilegrid);
|
self->width_in_tiles = common_hal_displayio_tilegrid_get_width(tilegrid);
|
||||||
self->height_in_tiles = common_hal_displayio_tilegrid_get_height(tilegrid);
|
self->height_in_tiles = common_hal_displayio_tilegrid_get_height(tilegrid);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue