Merge pull request #2040 from tannewt/merge_in_410
Merge 4.1.0 into master
This commit is contained in:
commit
1e8800117a
12
locale/ID.po
12
locale/ID.po
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-31 16:30-0500\n"
|
||||
"POT-Creation-Date: 2019-08-05 17:52-0700\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -1176,7 +1176,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2453,10 +2457,6 @@ msgstr "sintaksis error pada pendeskripsi uctypes"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-31 16:30-0500\n"
|
||||
"POT-Creation-Date: 2019-08-05 17:52-0700\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -1153,7 +1153,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2417,10 +2421,6 @@ msgstr ""
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-31 16:30-0500\n"
|
||||
"POT-Creation-Date: 2019-08-05 17:52-0700\n"
|
||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||
"Last-Translator: Pascal Deneaux\n"
|
||||
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
|
||||
|
@ -1182,7 +1182,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2469,10 +2473,6 @@ msgstr "Syntaxfehler in uctypes Deskriptor"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "threshold muss im Intervall 0-65536 liegen"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-31 16:30-0500\n"
|
||||
"POT-Creation-Date: 2019-08-05 17:52-0700\n"
|
||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
|
@ -1153,7 +1153,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2417,10 +2421,6 @@ msgstr ""
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-31 16:30-0500\n"
|
||||
"POT-Creation-Date: 2019-08-05 17:52-0700\n"
|
||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: @sommersoft, @MrCertainly\n"
|
||||
|
@ -1157,7 +1157,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2421,10 +2425,6 @@ msgstr ""
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
|
18
locale/es.po
18
locale/es.po
|
@ -1193,8 +1193,12 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr "La altura del Tile debe dividir exacto la altura del bitmap"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgstr "Los índices de Tile deben ser 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile width must exactly divide bitmap width"
|
||||
|
@ -2484,10 +2488,6 @@ msgstr "error de sintaxis en el descriptor uctypes"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "limite debe ser en el rango 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr "el indice del tile fuera de limite"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr "time.struct_time() toma un sequencio 9"
|
||||
|
@ -2844,6 +2844,9 @@ msgstr "paso cero"
|
|||
#~ msgid "STA required"
|
||||
#~ msgstr "STA requerido"
|
||||
|
||||
#~ msgid "Tile indices must be 0 - 255"
|
||||
#~ msgstr "Los índices de Tile deben ser 0 - 255"
|
||||
|
||||
#~ msgid "UART(%d) does not exist"
|
||||
#~ msgstr "UART(%d) no existe"
|
||||
|
||||
|
@ -2945,6 +2948,9 @@ msgstr "paso cero"
|
|||
#~ msgid "services includes an object that is not a Service"
|
||||
#~ msgstr "services incluye un objeto que no es servicio"
|
||||
|
||||
#~ msgid "tile index out of bounds"
|
||||
#~ msgstr "el indice del tile fuera de limite"
|
||||
|
||||
#~ msgid "too many arguments"
|
||||
#~ msgstr "muchos argumentos"
|
||||
|
||||
|
|
|
@ -1196,7 +1196,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2494,10 +2498,6 @@ msgstr "may pagkakamali sa sintaks sa uctypes descriptor"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "ang threshold ay dapat sa range 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr "time.struct_time() kumukuha ng 9-sequence"
|
||||
|
|
18
locale/fr.po
18
locale/fr.po
|
@ -1217,8 +1217,12 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr "La hauteur de la tuile doit diviser exactement la hauteur de l'image"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgstr "Les indices des tuiles doivent être compris entre 0 et 255 "
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile width must exactly divide bitmap width"
|
||||
|
@ -2536,10 +2540,6 @@ msgstr "erreur de syntaxe dans le descripteur d'uctypes"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "le seuil doit être dans la gamme 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr "indice de tuile hors limites"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr "time.struct_time() prend une séquence de longueur 9"
|
||||
|
@ -2895,6 +2895,9 @@ msgstr "'step' nul"
|
|||
#~ msgid "STA required"
|
||||
#~ msgstr "'STA' requis"
|
||||
|
||||
#~ msgid "Tile indices must be 0 - 255"
|
||||
#~ msgstr "Les indices des tuiles doivent être compris entre 0 et 255 "
|
||||
|
||||
#~ msgid "UART(%d) does not exist"
|
||||
#~ msgstr "UART(%d) n'existe pas"
|
||||
|
||||
|
@ -2991,6 +2994,9 @@ msgstr "'step' nul"
|
|||
#~ msgid "services includes an object that is not a Service"
|
||||
#~ msgstr "'services' inclut un object qui n'est pas un 'Service'"
|
||||
|
||||
#~ msgid "tile index out of bounds"
|
||||
#~ msgstr "indice de tuile hors limites"
|
||||
|
||||
#~ msgid "too many arguments"
|
||||
#~ msgstr "trop d'arguments"
|
||||
|
||||
|
|
|
@ -1195,7 +1195,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2492,10 +2496,6 @@ msgstr "errore di sintassi nel descrittore uctypes"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "la soglia deve essere nell'intervallo 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
|
20
locale/pl.po
20
locale/pl.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-31 16:30-0500\n"
|
||||
"POT-Creation-Date: 2019-08-05 17:52-0700\n"
|
||||
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
||||
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
||||
"Language-Team: pl\n"
|
||||
|
@ -1173,8 +1173,12 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr "Wysokość bitmapy musi być wielokrotnością wysokości kafelka"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgstr "Indeks kafelka musi być pomiędzy 0 a 255 włącznie"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile width must exactly divide bitmap width"
|
||||
|
@ -2444,10 +2448,6 @@ msgstr "błąd składni w deskryptorze uctypes"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "threshold musi być w zakresie 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr "indeks kafelka poza zakresem"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
|
||||
|
@ -2702,6 +2702,9 @@ msgstr "zerowy krok"
|
|||
#~ msgid "Must be a Group subclass."
|
||||
#~ msgstr "Musi dziedziczyć z Group."
|
||||
|
||||
#~ msgid "Tile indices must be 0 - 255"
|
||||
#~ msgstr "Indeks kafelka musi być pomiędzy 0 a 255 włącznie"
|
||||
|
||||
#~ msgid "UUID integer value not in range 0 to 0xffff"
|
||||
#~ msgstr "Wartość UUID poza zakresem 0 do 0xffff"
|
||||
|
||||
|
@ -2710,3 +2713,6 @@ msgstr "zerowy krok"
|
|||
|
||||
#~ msgid "services includes an object that is not a Service"
|
||||
#~ msgstr "obiekt typu innego niż Service w services"
|
||||
|
||||
#~ msgid "tile index out of bounds"
|
||||
#~ msgstr "indeks kafelka poza zakresem"
|
||||
|
|
|
@ -1173,7 +1173,11 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
|
@ -2445,10 +2449,6 @@ msgstr ""
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "Limite deve estar no alcance de 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-31 16:30-0500\n"
|
||||
"POT-Creation-Date: 2019-08-05 17:52-0700\n"
|
||||
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
||||
"Last-Translator: hexthat\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
|
@ -1180,8 +1180,12 @@ msgid "Tile height must exactly divide bitmap height"
|
|||
msgstr "Píng pū gāodù bìxū huàfēn wèi tú gāodù"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile indices must be 0 - 255"
|
||||
msgstr "Píng pū zhǐshù bìxū wèi 0 - 255"
|
||||
msgid "Tile index out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
|
||||
msgid "Tile value out of bounds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "Tile width must exactly divide bitmap width"
|
||||
|
@ -2458,10 +2462,6 @@ msgstr "uctypes miáoshù fú zhōng de yǔfǎ cuòwù"
|
|||
msgid "threshold must be in the range 0-65536"
|
||||
msgstr "yùzhí bìxū zài fànwéi 0-65536"
|
||||
|
||||
#: shared-bindings/displayio/TileGrid.c
|
||||
msgid "tile index out of bounds"
|
||||
msgstr "kuài suǒyǐn chāochū fànwéi"
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr "time.struct_time() xūyào 9 xùliè"
|
||||
|
@ -2728,6 +2728,9 @@ msgstr "líng bù"
|
|||
#~ msgid "Only bit maps of 8 bit color or less are supported"
|
||||
#~ msgstr "Jǐn zhīchí 8 wèi yánsè huò xiǎoyú"
|
||||
|
||||
#~ msgid "Tile indices must be 0 - 255"
|
||||
#~ msgstr "Píng pū zhǐshù bìxū wèi 0 - 255"
|
||||
|
||||
#~ msgid "UUID integer value not in range 0 to 0xffff"
|
||||
#~ msgstr "UUID zhěngshù zhí bùzài fànwéi 0 zhì 0xffff"
|
||||
|
||||
|
@ -2743,6 +2746,9 @@ msgstr "líng bù"
|
|||
#~ msgid "services includes an object that is not a Service"
|
||||
#~ msgstr "fúwù bāokuò yīgè bùshì fúwù de wùjiàn"
|
||||
|
||||
#~ msgid "tile index out of bounds"
|
||||
#~ msgstr "kuài suǒyǐn chāochū fànwéi"
|
||||
|
||||
#~ msgid "too many arguments"
|
||||
#~ msgstr "tài duō cānshù"
|
||||
|
||||
|
|
|
@ -131,7 +131,8 @@ STATIC mp_obj_t displayio_tilegrid_make_new(const mp_obj_type_t *type, size_t n_
|
|||
|
||||
displayio_tilegrid_t *self = m_new_obj(displayio_tilegrid_t);
|
||||
self->base.type = &displayio_tilegrid_type;
|
||||
common_hal_displayio_tilegrid_construct(self, native, bitmap_width / tile_width,
|
||||
common_hal_displayio_tilegrid_construct(self, native,
|
||||
bitmap_width / tile_width, bitmap_height / tile_height,
|
||||
pixel_shader, args[ARG_width].u_int, args[ARG_height].u_int,
|
||||
tile_width, tile_height, x, y, args[ARG_default_tile].u_int);
|
||||
return MP_OBJ_FROM_PTR(self);
|
||||
|
@ -346,7 +347,7 @@ STATIC mp_obj_t tilegrid_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t v
|
|||
}
|
||||
if (x >= common_hal_displayio_tilegrid_get_width(self) ||
|
||||
y >= common_hal_displayio_tilegrid_get_height(self)) {
|
||||
mp_raise_IndexError(translate("tile index out of bounds"));
|
||||
mp_raise_IndexError(translate("Tile index out of bounds"));
|
||||
}
|
||||
|
||||
if (value_obj == MP_OBJ_SENTINEL) {
|
||||
|
@ -357,7 +358,7 @@ STATIC mp_obj_t tilegrid_subscr(mp_obj_t self_in, mp_obj_t index_obj, mp_obj_t v
|
|||
} else {
|
||||
mp_int_t value = mp_obj_get_int(value_obj);
|
||||
if (value < 0 || value > 255) {
|
||||
mp_raise_ValueError(translate("Tile indices must be 0 - 255"));
|
||||
mp_raise_ValueError(translate("Tile value out of bounds"));
|
||||
}
|
||||
common_hal_displayio_tilegrid_set_tile(self, x, y, value);
|
||||
}
|
||||
|
|
|
@ -32,7 +32,8 @@
|
|||
extern const mp_obj_type_t displayio_tilegrid_type;
|
||||
|
||||
void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_t bitmap,
|
||||
uint16_t bitmap_width_in_tiles, mp_obj_t pixel_shader, uint16_t width, uint16_t height,
|
||||
uint16_t bitmap_width_in_tiles, uint16_t bitmap_height_in_tiles,
|
||||
mp_obj_t pixel_shader, uint16_t width, uint16_t height,
|
||||
uint16_t tile_width, uint16_t tile_height, uint16_t x, uint16_t y, uint8_t default_tile);
|
||||
|
||||
mp_int_t common_hal_displayio_tilegrid_get_x(displayio_tilegrid_t *self);
|
||||
|
|
|
@ -63,6 +63,11 @@ void common_hal_displayio_bitmap_construct(displayio_bitmap_t *self, uint32_t wi
|
|||
}
|
||||
self->x_mask = (1 << self->x_shift) - 1; // Used as a modulus on the x value
|
||||
self->bitmask = (1 << bits_per_value) - 1;
|
||||
|
||||
self->dirty_area.x1 = 0;
|
||||
self->dirty_area.x2 = width;
|
||||
self->dirty_area.y1 = 0;
|
||||
self->dirty_area.y2 = height;
|
||||
}
|
||||
|
||||
uint16_t common_hal_displayio_bitmap_get_height(displayio_bitmap_t *self) {
|
||||
|
@ -104,6 +109,26 @@ void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x,
|
|||
if (self->read_only) {
|
||||
mp_raise_RuntimeError(translate("Read-only object"));
|
||||
}
|
||||
// Update the dirty area.
|
||||
if (self->dirty_area.x1 == self->dirty_area.x2) {
|
||||
self->dirty_area.x1 = x;
|
||||
self->dirty_area.x2 = x + 1;
|
||||
self->dirty_area.y1 = y;
|
||||
self->dirty_area.y2 = y + 1;
|
||||
} else {
|
||||
if (x < self->dirty_area.x1) {
|
||||
self->dirty_area.x1 = x;
|
||||
} else if (x >= self->dirty_area.x2) {
|
||||
self->dirty_area.x2 = x + 1;
|
||||
}
|
||||
if (y < self->dirty_area.y1) {
|
||||
self->dirty_area.y1 = y;
|
||||
} else if (y >= self->dirty_area.y2) {
|
||||
self->dirty_area.y2 = y + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Update our data
|
||||
int32_t row_start = y * self->stride;
|
||||
uint32_t bytes_per_value = self->bits_per_value / 8;
|
||||
if (bytes_per_value < 1) {
|
||||
|
@ -124,3 +149,16 @@ void common_hal_displayio_bitmap_set_pixel(displayio_bitmap_t *self, int16_t x,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
displayio_area_t* displayio_bitmap_get_refresh_areas(displayio_bitmap_t *self, displayio_area_t* tail) {
|
||||
if (self->dirty_area.x1 == self->dirty_area.x2) {
|
||||
return tail;
|
||||
}
|
||||
self->dirty_area.next = tail;
|
||||
return &self->dirty_area;
|
||||
}
|
||||
|
||||
void displayio_bitmap_finish_refresh(displayio_bitmap_t *self) {
|
||||
self->dirty_area.x1 = 0;
|
||||
self->dirty_area.x2 = 0;
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <stdint.h>
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "shared-module/displayio/area.h"
|
||||
|
||||
typedef struct {
|
||||
mp_obj_base_t base;
|
||||
|
@ -41,8 +42,12 @@ typedef struct {
|
|||
uint8_t bits_per_value;
|
||||
uint8_t x_shift;
|
||||
size_t x_mask;
|
||||
displayio_area_t dirty_area;
|
||||
uint16_t bitmask;
|
||||
bool read_only;
|
||||
} displayio_bitmap_t;
|
||||
|
||||
void displayio_bitmap_finish_refresh(displayio_bitmap_t *self);
|
||||
displayio_area_t* displayio_bitmap_get_refresh_areas(displayio_bitmap_t *self, displayio_area_t* tail);
|
||||
|
||||
#endif // MICROPY_INCLUDED_SHARED_MODULE_DISPLAYIO_BITMAP_H
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include "shared-bindings/displayio/TileGrid.h"
|
||||
|
||||
#include "py/runtime.h"
|
||||
#include "shared-bindings/displayio/Bitmap.h"
|
||||
#include "shared-bindings/displayio/ColorConverter.h"
|
||||
#include "shared-bindings/displayio/OnDiskBitmap.h"
|
||||
|
@ -33,7 +34,7 @@
|
|||
#include "shared-bindings/displayio/Shape.h"
|
||||
|
||||
void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_t bitmap,
|
||||
uint16_t bitmap_width_in_tiles,
|
||||
uint16_t bitmap_width_in_tiles, uint16_t bitmap_height_in_tiles,
|
||||
mp_obj_t pixel_shader, uint16_t width, uint16_t height,
|
||||
uint16_t tile_width, uint16_t tile_height, uint16_t x, uint16_t y, uint8_t default_tile) {
|
||||
uint32_t total_tiles = width * height;
|
||||
|
@ -54,6 +55,7 @@ void common_hal_displayio_tilegrid_construct(displayio_tilegrid_t *self, mp_obj_
|
|||
self->inline_tiles = false;
|
||||
}
|
||||
self->bitmap_width_in_tiles = bitmap_width_in_tiles;
|
||||
self->tiles_in_bitmap = bitmap_width_in_tiles * bitmap_height_in_tiles;
|
||||
self->width_in_tiles = width;
|
||||
self->height_in_tiles = height;
|
||||
self->x = x;
|
||||
|
@ -204,6 +206,9 @@ uint8_t common_hal_displayio_tilegrid_get_tile(displayio_tilegrid_t *self, uint1
|
|||
}
|
||||
|
||||
void common_hal_displayio_tilegrid_set_tile(displayio_tilegrid_t *self, uint16_t x, uint16_t y, uint8_t tile_index) {
|
||||
if (tile_index >= self->tiles_in_bitmap) {
|
||||
mp_raise_ValueError(translate("Tile value out of bounds"));
|
||||
}
|
||||
uint8_t* tiles = self->tiles;
|
||||
if (self->inline_tiles) {
|
||||
tiles = (uint8_t*) &self->tiles;
|
||||
|
@ -462,6 +467,14 @@ void displayio_tilegrid_finish_refresh(displayio_tilegrid_t *self) {
|
|||
} else if (MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_colorconverter_type)) {
|
||||
displayio_colorconverter_finish_refresh(self->pixel_shader);
|
||||
}
|
||||
if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_bitmap_type)) {
|
||||
displayio_bitmap_finish_refresh(self->bitmap);
|
||||
} else if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_shape_type)) {
|
||||
// TODO: Support shape changes.
|
||||
} else if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_ondiskbitmap_type)) {
|
||||
// OnDiskBitmap changes will trigger a complete reload so no need to
|
||||
// track changes.
|
||||
}
|
||||
// TODO(tannewt): We could double buffer changes to position and move them over here.
|
||||
// That way they won't change during a refresh and tear.
|
||||
}
|
||||
|
@ -478,8 +491,21 @@ displayio_area_t* displayio_tilegrid_get_refresh_areas(displayio_tilegrid_t *sel
|
|||
return &self->current_area;
|
||||
}
|
||||
|
||||
// We must recheck if our sources require a refresh because needs_refresh may or may not have
|
||||
// been called.
|
||||
// If we have an in-memory bitmap, then check it for modifications.
|
||||
if (MP_OBJ_IS_TYPE(self->bitmap, &displayio_bitmap_type)) {
|
||||
displayio_area_t* refresh_area = displayio_bitmap_get_refresh_areas(self->bitmap, tail);
|
||||
if (refresh_area != tail) {
|
||||
// Special case a TileGrid that shows a full bitmap and use its
|
||||
// dirty area. Copy it to ours so we can transform it.
|
||||
if (self->tiles_in_bitmap == 1) {
|
||||
displayio_area_copy(refresh_area, &self->dirty_area);
|
||||
self->partial_change = true;
|
||||
} else {
|
||||
self->full_change = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self->full_change = self->full_change ||
|
||||
(MP_OBJ_IS_TYPE(self->pixel_shader, &displayio_palette_type) &&
|
||||
displayio_palette_needs_refresh(self->pixel_shader)) ||
|
||||
|
|
|
@ -42,7 +42,8 @@ typedef struct {
|
|||
int16_t y;
|
||||
uint16_t pixel_width;
|
||||
uint16_t pixel_height;
|
||||
uint16_t bitmap_width_in_tiles;
|
||||
uint16_t bitmap_width_in_tiles;;
|
||||
uint8_t tiles_in_bitmap;
|
||||
uint16_t width_in_tiles;
|
||||
uint16_t height_in_tiles;
|
||||
uint16_t tile_width;
|
||||
|
|
|
@ -35,11 +35,10 @@
|
|||
// These are autogenerated resources.
|
||||
|
||||
// This is fixed so it doesn't need to be in RAM.
|
||||
extern const displayio_bitmap_t supervisor_terminal_font_bitmap;
|
||||
|
||||
extern const fontio_builtinfont_t supervisor_terminal_font;
|
||||
|
||||
// These will change so they must live in RAM.
|
||||
extern displayio_bitmap_t supervisor_terminal_font_bitmap;
|
||||
extern displayio_tilegrid_t supervisor_terminal_text_grid;
|
||||
extern terminalio_terminal_obj_t supervisor_terminal;
|
||||
|
||||
|
|
|
@ -129,6 +129,7 @@ displayio_tilegrid_t supervisor_terminal_text_grid = {{
|
|||
.pixel_width = {1},
|
||||
.pixel_height = {2},
|
||||
.bitmap_width_in_tiles = {0},
|
||||
.tiles_in_bitmap = {0},
|
||||
.width_in_tiles = 1,
|
||||
.height_in_tiles = 1,
|
||||
.tile_width = {1},
|
||||
|
@ -157,7 +158,7 @@ c_file.write("""\
|
|||
""")
|
||||
|
||||
c_file.write("""\
|
||||
const displayio_bitmap_t supervisor_terminal_font_bitmap = {{
|
||||
displayio_bitmap_t supervisor_terminal_font_bitmap = {{
|
||||
.base = {{.type = &displayio_bitmap_type }},
|
||||
.width = {},
|
||||
.height = {},
|
||||
|
|
Loading…
Reference in New Issue