summaryrefslogtreecommitdiff
path: root/shared-module/displayio/TileGrid.c
AgeCommit message (Collapse)Author
2019-06-13Minor tweaks based on Dan's feedbackScott Shawcroft
2019-06-12Add partial display update support.Scott Shawcroft
Different operations to the display tree have different costs. Be aware of these costs when optimizing your code. * Changing tiles indices in a TileGrid will update an area covering them all. * Changing a palette will refresh every object that references it. * Moving a TileGrid will update both where it was and where it moved to. * Adding something to a Group will refresh each individual area it covers. * Removing things from a Group will refresh one area that covers all previous locations. (Not separate areas like add.) * Setting a new top level Group will refresh the entire display. Only TileGrid moves are optimized for overlap. All other overlaps cause sending of duplicate pixels. This also adds flip_x, flip_y and transpose_xy to TileGrid. They change the direction of the pixels but not the location. Fixes #1169. Fixes #1705. Fixes #1923.
2019-05-31Fix off-by-one errorScott Shawcroft
It caused the bottom and right edges to be one pixel short.
2019-05-22Make point 2 in areas exclusive and simplify full_coverage.Scott Shawcroft
2019-05-21Rework the pixel computation to use areasScott Shawcroft
This changes the displayio pixel computation from per-pixel to per-area. This is precursor work to updating portions of the screen (#1169). It should provide mild speedups because bounds checks are done once per area rather than once per pixel. Filling by area also allows TileGrid to maintain a row-associative fill pattern even when the display's refresh is orthogonal to it.
2019-03-27TileGrid: pixel_shader is not always a paletteDan Halbert
2019-03-12Standardize TileGrid to x and y properties over positionScott Shawcroft
This brings it inline with Group. Also fixes #1613 This also includes a number of fixes for where a method is called through a subclass. We now correctly get the native object. Fixes #1567 Lastly, this adds subscript support to TileGrid for changing tile indices. Similar to Bitmap, it accepts ints or 2-tuples.
2019-02-13A safe mode fix and displayio fixesScott Shawcroft
* Fixes safe mode on the SAMD51. The "preserved" value was being clobbered by the bootloader. * Fixes auto-reload loop when in safe mode. * Fixes reading Group children with []. * Check that a TileGrid actually moves before queueing a refresh.
2019-02-11A variety of displayio improvementsScott Shawcroft
This changes a number of things in displayio: * Introduces BuiltinFont and Glyph so the built in font can be used by libraries. For boards with a font it is available as board.TERMINAL_FONT. Fixes #1172 * Remove _load_row from Bitmap in favor of bitmap[] access. Index can be x/y tuple or overall index. Fixes #1191 * Add width and height properties to Bitmap. * Add insert and [] access to Group. Fixes #1518 * Add index param to pop on Group. * Terminal no longer takes unicode character info. It takes a BuiltinFont instead. * Fix Terminal's handling of [###D vt100 commands used when up arrowing into repl history. * Add x and y positions to Group plus scale as well. * Add bitmap accessor for BuiltinFont
2019-01-31More improvements to Terminal:Scott Shawcroft
* Fix Hallowing. * Fix builds without displayio. * Fix y bounds that appears as untrollable row of pixels. * Add scrolling to TileGrid. * Remove Sprite to save space. TileGrid is a drop in replacement.
2019-01-31Hook up the terminal based on the first display.Scott Shawcroft
2019-01-31Add terminalioScott Shawcroft
2019-01-31Add TileGridScott Shawcroft