summaryrefslogtreecommitdiff
path: root/shared-module/displayio/__init__.c
AgeCommit message (Collapse)Author
2020-04-17RGBMatrix: finish renaming from ProtomatterJeff Epler
This gets all the purely internal references. Some uses of protomatter/Protomatter/PROTOMATTER remain, as they are references to symbols in the Protomatter C library itself.
2020-04-14protomatter: release the protomatter object during release_displays()Jeff Epler
2020-04-14fix build for non-displayio & non-protomatter targetsJeff Epler
2020-04-14protomatter: more memory allocation fixesJeff Epler
- bump supervisor alloc count by 4 (we actually use 5) - move reconstruct to after gc heap is reset - destroy protomatter object entirely if not used by a FramebufferDisplay - ensure previous supervisor allocations are released - zero out pointers so GC can collect them
2020-04-14Add Protomatter and FramebufferDisplayJeff Epler
2020-04-14displayio: implement, use allocate_new_display_bus_or_raiseJeff Epler
2020-04-14displayio: implement, use allocate_display_or_raiseJeff Epler
2020-01-28Implement requested changesLucian Copeland
2020-01-24Simplify the flash-display conflict fixLucian Copeland
2020-01-24Fix flash-display conflict errorLucian Copeland
2019-08-22Regular display fixes including refresh tweaksScott Shawcroft
2019-08-22Refresh ePaper displays once code.py is done runningScott Shawcroft
2019-08-22Rework refresh API and factor common display stuff outScott Shawcroft
NOT TESTED! Just compiles Fixes #1691
2019-08-22Begin refresh rework.Scott Shawcroft
2019-08-22EPaper displays work mostly.Scott Shawcroft
2019-08-14Fix I2CDisplay lifecycle and splash lifecycle.Scott Shawcroft
Fixes https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/issues/2
2019-07-25Add knobs for SSD1322 and two fixes.Scott Shawcroft
* Fix terminal clear after first successful code.py run. * Fix transmitting too many bytes for column constraint with single byte bounds.
2019-07-19Add support for grayscale displays that are < 8 bit depth.Scott Shawcroft
This also improves Palette so it stores the original RGB888 colors. Lastly, it adds I2CDisplay as a display bus to talk over I2C. Particularly useful for the SSD1306. Fixes #1828. Fixes #1956
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-06-11Merge latest 4.0.x fixes into masterDan Halbert
2019-06-06Include display objects in gc.Dan Halbert
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-04-09Fix boards with no shared busses.Scott Shawcroft
2019-04-08Reorganize board busses into shared-bindings and shared-module.Scott Shawcroft
2019-04-05Fix crash when getting board.SPI outside the VMScott Shawcroft
If one of the default pins was already in use it would crash. The internal API has been refined to allow us to get the value without causing an init of the singleton. Fixes #1753
2019-03-16after code.py runs, flush filesystem before resetting heapDan Halbert
2019-03-07Rework background display task to allow reads from SPI SD card during ↵Dan Halbert
display. Clarify code. Handle multiple displays better.
2019-03-06check display-bus transaction status and act accordinglyDan Halbert
2019-02-28Don't wait for display frame if interrupt pendingDan Halbert
2019-02-19Fix reload while display is updating.Scott Shawcroft
2019-02-19Prevent infinite display update recursion and fix VFS mountingScott Shawcroft
Fixes #1529
2019-02-01Add support for display rotation and raw commandsScott Shawcroft
Display rotation is relative to the scan order of the display. The scan order can be found by scrolling the display with command 0x37 `display_bus.send(0x37, struct.pack(">H", i % 128))` Fixes #1504
2019-01-31Polish up commentsScott Shawcroft
2019-01-31Remove Sprite referencesScott Shawcroft
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-31Rudamentary backlight supportScott Shawcroft
2019-01-31Hook up the terminal based on the first display.Scott Shawcroft
2019-01-31Begin font parsing and packing for terminalScott Shawcroft
2019-01-23Make palette color ordering consistent with ColorConvertes and fix blinka.Scott Shawcroft
2019-01-18Cleanup display rework for PR.Scott Shawcroft
Fixes #1465. Fixes #1337. Fixes #1168
2019-01-17fix nonetype handling and nrf never resetScott Shawcroft
2019-01-17Fix up nrf and using board.SPI in FourWireScott Shawcroft
2019-01-17Fix other builds and hallowingScott Shawcroft
2019-01-17pyportal compiles and tweak blinka colorsScott Shawcroft
2019-01-17External fourwire works and blinka splash afterScott Shawcroft
2019-01-16Rework displays in prep for dynamic support and 8bit parallel.Scott Shawcroft
2019-01-14Add subclass support to displayio.Scott Shawcroft
Also, swap make_news to accept a kwarg map and refine param checking. Fixes #1237
2018-08-31Introduce displayio to render graphics to displays.Scott Shawcroft
It's designed to minimize RAM footprint by using Sprites to represent objects on the screen. The object model also facilitates partial screen updating which reduces the bandwidth needed to display. This is all handled in C. Python simply manipulates the objects with the ability to synchronize to frame timing.