<https://github.com/adafruit/Adafruit_blinka_CircuitPython_displayio/blob/master/CODE_OF_CONDUCT.md>`_
before contributing to help this project stay welcoming.
+To make sure your pull request will pass the commit checks, use pre-commit to check your code formatting. Please see the guide page here for more details: https://learn.adafruit.com/contribute-to-circuitpython-with-git-and-github/check-your-code
+
Documentation
=============
def union(self, other, union):
"""Combine this area along with another into union"""
if self.empty():
- self.copy_into(union)
+ other.copy_into(union)
return
if other.empty():
- other.copy_into(union)
+ self.copy_into(union)
return
union.x1 = min(self.x1, other.x1)
def radius(self, value: int) -> None:
if value < 1:
raise ValueError("radius must be >= 1")
- self._radius = abs(value)
+ self._radius = int(value) # other code assumes radius is an integer
self._shape_set_dirty()
@property
"""
-from typing import Union, Tuple
+from typing import Union, Tuple, List
from displayio._colorconverter import ColorConverter
from displayio._palette import Palette
from displayio._area import Area
self,
*,
pixel_shader: Union[ColorConverter, Palette],
- points: list | Tuple[int, int],
+ points: List[Tuple[int, int]],
x: int,
y: int,
):
self.points = points
@property
- def points(self) -> list | Tuple[int, int]:
+ def points(self) -> List[Tuple[int, int]]:
"""The points of the polygon in pixels"""
return self._points
@points.setter
- def points(self, value: list | Tuple[int, int]) -> None:
+ def points(self, value: List[Tuple[int, int]]) -> None:
if len(value) < 3:
raise ValueError("Polygon needs at least 3 points")
self._points = value
height: int,
x: int,
y: int,
+ color_index: int = 0,
):
"""Represents a rectangle by defining its bounds
"""
self._width = 1
self._height = 1
- self._color_index = 1
+ self._color_index = color_index + 1
super().__init__(pixel_shader, x, y)
self.width = width
self._get_screen_area(current_area)
moved = current_area != self._current_area
if moved:
+ # This will add _current_area (the old position) to dirty area
self._current_area.union(
self._ephemeral_dirty_area, self._ephemeral_dirty_area
)
+ # This will add the new position to the dirty area
+ current_area.union(self._ephemeral_dirty_area, self._ephemeral_dirty_area)
# Dirty area tracks the shape's footprint between draws. It's reset on refresh finish.
current_area.copy_into(self._current_area)
self._current_area_dirty = True