From ec2857d4ecd1d5258fb00c6d8931d0267c190eee Mon Sep 17 00:00:00 2001 From: foamyguy Date: Wed, 7 Dec 2022 20:40:45 -0600 Subject: [PATCH] starting set root group. show none also --- displayio/_display.py | 13 +++++++++++++ displayio/_displaycore.py | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/displayio/_display.py b/displayio/_display.py index da94fb2..1e42995 100644 --- a/displayio/_display.py +++ b/displayio/_display.py @@ -272,6 +272,11 @@ class Display: ) # pylint: disable=protected-access # save image to buffer (or probably refresh buffer so we can compare) self._buffer.paste(buffer) + else: + # show nothing + print("show nothing") + buffer = Image.new("RGBA", (self._core._width, self._core._height)) + self._buffer.paste(buffer) self._subrectangles = self._core.get_refresh_areas() @@ -452,3 +457,11 @@ class Display: def bus(self) -> _DisplayBus: """Current Display Bus""" return self._core.get_bus() + + @property + def root_group(self) -> Group: + return self._current_group + + @root_group.setter + def root_group(self, new_group): + self._current_group = new_group \ No newline at end of file diff --git a/displayio/_displaycore.py b/displayio/_displaycore.py index a50d094..3753b3c 100644 --- a/displayio/_displaycore.py +++ b/displayio/_displaycore.py @@ -187,6 +187,45 @@ class _DisplayCore: self._current_group = root_group self._full_refresh = True + print(f"end of show: {root_group}") + return True + + def set_root_group(self, root_group: Group) -> bool: + # pylint: disable=protected-access + + """ + Switches to displaying the given group of layers. When group is `None`, the + default CircuitPython terminal will be shown. + + :param Optional[displayio.Group] root_group: The group to show. + """ + + """ + # TODO: Implement Supervisor + if root_group is None: + circuitpython_splash = _Supervisor().circuitpython_splash + if not circuitpython_splash._in_group: + root_group = circuitpython_splash + elif self._current_group == circuitpython_splash: + return True + """ + + if root_group == self._current_group: + return True + + if root_group is not None and root_group._in_group: + return False + + if self._current_group is not None: + self._current_group._in_group = False + + if root_group is not None: + root_group._update_transform(self._transform) + root_group._in_group = True + + self._current_group = root_group + self._full_refresh = True + return True def start_refresh(self) -> bool: -- 2.49.0