summaryrefslogtreecommitdiff
path: root/shared-module/displayio/Display.c
AgeCommit message (Collapse)Author
2021-03-19Fix PWMOut non-error handling and never resetDan Halbert
2021-03-15run code formatting scriptmicroDev
2020-10-15displayio: further ensure just one start_terminal callJeff Epler
@cwalther determined that for boards with 2 displays (monster m4sk), start_terminal would be called for each one, leaking supervisor heap entries. Determine, by comparing addresses, whether the display being acted on is the first display (number zero) and do (or do not) call start_terminal. stop_terminal can safely be called multiple times, so there's no need to guard against calling it more than once. Slight behavioral change: The terminal size would follow the displays[0] size, not the displays[1] size
2020-10-11displayio, framebufferio: Remove spurious call to supervisor_start_terminalJeff Epler
A call to supervisor_start_terminal remained in common_hal_displayio_display_construct and was copied to other display _construct functions, even though it was also being done in displayio_display_core_construct when that was factored out. Originally, this was harmless, except it created an extra allocation. When investigating #3482, I found that this bug became harmful, especially for displays that were created in Python code, because it caused a supervisor allocation to leak. I believe that it is safe to merge #3482 after this PR is merged.
2020-10-01Merge pull request #3449 from FoamyGuy/sdcard_odb_fixScott Shawcroft
Sdcard odb fix
2020-09-30Removed redundant subrectangle sizing codeMark Roberts
2020-09-30Ran pre-commit locallyMark Roberts
2020-09-25Requested changes take 1Mark Roberts
2020-09-24Mostly-working-version with commentsMark Roberts
2020-09-21Changes to compile cleanlyMark Roberts
2020-09-21Quirk coded up for ...set_region_to_updateMark Roberts
2020-09-21Initial commit bool column_and_page_addressingMark Roberts
2020-09-11fixes showing OnDiskBitmap with adafruit_sdcardFoamyGuy
2020-09-01Update refresh to force immediate redraw with display.refresh() or ↵Kevin Matocha
display.refresh(target_frames_per_second=None), even with auto_refresh=False
2020-08-18Split pulseio.PWMOut into pwmioScott Shawcroft
This gives us better granularity when implementing new ports because PWMOut is commonly implemented before PulseIn and PulseOut. Fixes #3211
2020-07-15displayio, framebufferio: Enable supervisor tick when a display is auto-refreshJeff Epler
This is a step towards restoring the efficiency of the background tasks
2020-06-03Fix up end of file and trailing whitespace.Diego Elio Pettenò
This can be enforced by pre-commit, but correct it separately to make it easier to review.
2020-05-05Merge pull request #2842 from hierophect/stm32-h7-displayiohierophect
STM32: Add displayio to F7/H7
2020-05-01Fix flag typoLucian Copeland
2020-04-30Make PulseIO optional within DisplayIOLucian Copeland
2020-04-14Merge remote-tracking branch 'adafruit/master' into lower_powerScott Shawcroft
2020-04-14Add Protomatter and FramebufferDisplayJeff Epler
2020-04-08Save backlight_on_high correctly.Scott Shawcroft
Fixes #2750
2020-03-31Merge remote-tracking branch 'adafruit/master' into lower_powerScott Shawcroft
2020-03-25adding a backlight polarity flag to Displaysiddacious
2020-03-13First try at lowering the power consumptionScott Shawcroft
2019-12-16displayio: make 'rotation' property settableJeff Epler
2019-11-18Supervisor: move most of systick to the supervisorJeff Epler
This code is shared by most parts, except where not all the #ifdefs inside the tick function were present in all ports. This mostly would have broken gamepad tick support on non-samd ports. The "ms32" and "ms64" variants of the tick functions are introduced because there is no 64-bit atomic read. Disabling interrupts avoids a low probability bug where milliseconds could be off by ~49.5 days once every ~49.5 days (2^32 ms). Avoiding disabling interrupts when only the low 32 bits are needed is a minor optimization. Testing performed: on metro m4 express, USB still works and time.monotonic_ns() still counts up
2019-11-15Add never_reset and reset to pin common hal, adjust filesHierophect
2019-09-03Add .hidden to TileGrid and GroupScott Shawcroft
This allows for one to preserve ordering within a Group while hiding something temporarily. Fixes #1688
2019-09-03Fix I2CDisplay bus_free to not grab lockScott Shawcroft
Fixes #2098
2019-08-26Minor renamesScott Shawcroft
2019-08-23Rework based on Dan's reviewScott Shawcroft
2019-08-22Regular display fixes including refresh tweaksScott 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-21Merge remote-tracking branch 'adafruit/master' into displayio_fill_areaDave Astels
2019-08-19Merge remote-tracking branch 'adafruit/master' into run-background-tasksDan Halbert
Restore dependencies indicated by indentation in circuitpy_mpconfig.h.
2019-08-14Fix I2CDisplay lifecycle and splash lifecycle.Scott Shawcroft
Fixes https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SSD1306/issues/2
2019-08-11shared-module: Use RUN_BACKGROUND_TASKSJeff Epler
2019-07-31Merge remote-tracking branch 'adafruit/master' into displayio_fill_areaDave Astels
2019-07-31Expose rotation with a propertyDave Astels
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-19Review feedback including NO_BRIGHTNESS_COMMAND macroScott Shawcroft
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-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-04-18add Display.__init__() args for brightness and auto_brightnessDan Halbert
2019-04-05Added comment regarding parameter loopMelissa LeBlanc-Williams