Skip to content

Commit 6072016

Browse files
authored
Merge pull request #5749 from FoamyGuy/tilegrid_size_props
Tilegrid size properties
2 parents bd207e4 + d08ba86 commit 6072016

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

shared-bindings/displayio/TileGrid.c

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,66 @@ const mp_obj_property_t displayio_tilegrid_y_obj = {
215215
MP_ROM_NONE},
216216
};
217217

218+
//| width: int
219+
//| """Width of the tilegrid in tiles."""
220+
//|
221+
STATIC mp_obj_t displayio_tilegrid_obj_get_width(mp_obj_t self_in) {
222+
displayio_tilegrid_t *self = native_tilegrid(self_in);
223+
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_tilegrid_get_width(self));
224+
}
225+
MP_DEFINE_CONST_FUN_OBJ_1(displayio_tilegrid_get_width_obj, displayio_tilegrid_obj_get_width);
226+
227+
const mp_obj_property_t displayio_tilegrid_width_obj = {
228+
.base.type = &mp_type_property,
229+
.proxy = {(mp_obj_t)&displayio_tilegrid_get_width_obj,
230+
MP_ROM_NONE},
231+
};
232+
233+
//| height: int
234+
//| """Height of the tilegrid in tiles."""
235+
//|
236+
STATIC mp_obj_t displayio_tilegrid_obj_get_height(mp_obj_t self_in) {
237+
displayio_tilegrid_t *self = native_tilegrid(self_in);
238+
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_tilegrid_get_height(self));
239+
}
240+
MP_DEFINE_CONST_FUN_OBJ_1(displayio_tilegrid_get_height_obj, displayio_tilegrid_obj_get_height);
241+
242+
const mp_obj_property_t displayio_tilegrid_height_obj = {
243+
.base.type = &mp_type_property,
244+
.proxy = {(mp_obj_t)&displayio_tilegrid_get_height_obj,
245+
MP_ROM_NONE},
246+
};
247+
248+
//| tile_width: int
249+
//| """Width of a single tile in pixels."""
250+
//|
251+
STATIC mp_obj_t displayio_tilegrid_obj_get_tile_width(mp_obj_t self_in) {
252+
displayio_tilegrid_t *self = native_tilegrid(self_in);
253+
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_tilegrid_get_tile_width(self));
254+
}
255+
MP_DEFINE_CONST_FUN_OBJ_1(displayio_tilegrid_get_tile_width_obj, displayio_tilegrid_obj_get_tile_width);
256+
257+
const mp_obj_property_t displayio_tilegrid_tile_width_obj = {
258+
.base.type = &mp_type_property,
259+
.proxy = {(mp_obj_t)&displayio_tilegrid_get_tile_width_obj,
260+
MP_ROM_NONE},
261+
};
262+
263+
//| tile_height: int
264+
//| """Height of a single tile in pixels."""
265+
//|
266+
STATIC mp_obj_t displayio_tilegrid_obj_get_tile_height(mp_obj_t self_in) {
267+
displayio_tilegrid_t *self = native_tilegrid(self_in);
268+
return MP_OBJ_NEW_SMALL_INT(common_hal_displayio_tilegrid_get_tile_height(self));
269+
}
270+
MP_DEFINE_CONST_FUN_OBJ_1(displayio_tilegrid_get_tile_height_obj, displayio_tilegrid_obj_get_tile_height);
271+
272+
const mp_obj_property_t displayio_tilegrid_tile_height_obj = {
273+
.base.type = &mp_type_property,
274+
.proxy = {(mp_obj_t)&displayio_tilegrid_get_tile_height_obj,
275+
MP_ROM_NONE},
276+
};
277+
218278
//| flip_x: bool
219279
//| """If true, the left edge rendered will be the right edge of the right-most tile."""
220280
//|
@@ -385,6 +445,10 @@ STATIC const mp_rom_map_elem_t displayio_tilegrid_locals_dict_table[] = {
385445
{ MP_ROM_QSTR(MP_QSTR_hidden), MP_ROM_PTR(&displayio_tilegrid_hidden_obj) },
386446
{ MP_ROM_QSTR(MP_QSTR_x), MP_ROM_PTR(&displayio_tilegrid_x_obj) },
387447
{ MP_ROM_QSTR(MP_QSTR_y), MP_ROM_PTR(&displayio_tilegrid_y_obj) },
448+
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&displayio_tilegrid_width_obj) },
449+
{ MP_ROM_QSTR(MP_QSTR_height), MP_ROM_PTR(&displayio_tilegrid_height_obj) },
450+
{ MP_ROM_QSTR(MP_QSTR_tile_width), MP_ROM_PTR(&displayio_tilegrid_tile_width_obj) },
451+
{ MP_ROM_QSTR(MP_QSTR_tile_height), MP_ROM_PTR(&displayio_tilegrid_tile_height_obj) },
388452
{ MP_ROM_QSTR(MP_QSTR_flip_x), MP_ROM_PTR(&displayio_tilegrid_flip_x_obj) },
389453
{ MP_ROM_QSTR(MP_QSTR_flip_y), MP_ROM_PTR(&displayio_tilegrid_flip_y_obj) },
390454
{ MP_ROM_QSTR(MP_QSTR_transpose_xy), MP_ROM_PTR(&displayio_tilegrid_transpose_xy_obj) },

shared-bindings/displayio/TileGrid.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ void common_hal_displayio_tilegrid_set_transpose_xy(displayio_tilegrid_t *self,
5656
uint16_t common_hal_displayio_tilegrid_get_width(displayio_tilegrid_t *self);
5757
uint16_t common_hal_displayio_tilegrid_get_height(displayio_tilegrid_t *self);
5858

59+
uint16_t common_hal_displayio_tilegrid_get_tile_width(displayio_tilegrid_t *self);
60+
uint16_t common_hal_displayio_tilegrid_get_tile_height(displayio_tilegrid_t *self);
61+
5962
uint8_t common_hal_displayio_tilegrid_get_tile(displayio_tilegrid_t *self, uint16_t x, uint16_t y);
6063
void common_hal_displayio_tilegrid_set_tile(displayio_tilegrid_t *self, uint16_t x, uint16_t y, uint8_t tile_index);
6164

shared-module/displayio/TileGrid.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,14 @@ uint16_t common_hal_displayio_tilegrid_get_height(displayio_tilegrid_t *self) {
229229
return self->height_in_tiles;
230230
}
231231

232+
uint16_t common_hal_displayio_tilegrid_get_tile_width(displayio_tilegrid_t *self) {
233+
return self->tile_width;
234+
}
235+
236+
uint16_t common_hal_displayio_tilegrid_get_tile_height(displayio_tilegrid_t *self) {
237+
return self->tile_height;
238+
}
239+
232240
uint8_t common_hal_displayio_tilegrid_get_tile(displayio_tilegrid_t *self, uint16_t x, uint16_t y) {
233241
uint8_t *tiles = self->tiles;
234242
if (self->inline_tiles) {

0 commit comments

Comments
 (0)