summaryrefslogtreecommitdiff
path: root/shared-module/displayio/__init__.c
AgeCommit message (Collapse)Author
2021-03-25move to displayio_area_union and away from _expandKevin Matocha
2021-03-19switch to > in displayio_area_canonKevin Matocha
2021-03-18displayio: area: add displayio_area_canonJeff Epler
This routine will be used to simplify code that deals with ranges of bitmap coordinates.
2021-03-18displayio: area: add displayo_area_copy_coords, displayio_area_emptyJeff Epler
.. and simplify the implmentation of displayio_area_union This _slightly_ changes the behavior of displayio_area_union: Formerly, if one of the areas was empty, its coordinates were still used in the min/max calculations. Now, if one of the areas is empty, the result gets the other area's coords In particular, taking the union of the empty area with coords (0,0,0,0) with the non-empty area (x1,y1,x2,y2) would give the area (0,0,x2,y2) before, and (x1,y1,x2,y2) after the change.
2021-03-15run code formatting scriptmicroDev
2021-03-04Be cognizant of null transform for .transpose_xyDan Halbert
2020-09-30remove remaining top level displayio background checkFoamyGuy
2020-09-30removing top level displayio background checkFoamyGuy
2020-08-21Merge pull request #3292 from jepler/allocate_display_bus_bugScott Shawcroft
allocate_display_bus: fix bug where in-use bus would be returned
2020-08-18Fix build error for !SHARPDISPLAYJeff Epler
2020-08-18displayio: Don't need to specialcase reset of sharpdisplay framebufferJeff Epler
.. for the case where the bus was not in use
2020-08-17Finish implementing scott's suggestionJeff Epler
2020-08-17Update shared-module/displayio/__init__.cJeff Epler
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2020-08-17allocate_display_bus: fix bug where in-use bus would be returnedJeff Epler
2020-08-12Fix build errors when SHARPDISPLAY && !RGBMATRIXJeff Epler
2020-08-12sharpmemory: Implement support for Sharp Memory Displays in framebufferioJeff Epler
2020-07-20framebufferio: Handle auto refresh flag at resetJeff Epler
if we don't set the flag via accessor fn the tick enable might become wrong
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