X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka_Displayio.git/blobdiff_plain/3640a5c3207d39d72eae23e9e0a5401eefc5b85c..HEAD:/displayio/_group.py diff --git a/displayio/_group.py b/displayio/_group.py index a0d8f9d..2d858e6 100644 --- a/displayio/_group.py +++ b/displayio/_group.py @@ -69,8 +69,12 @@ class Group: y = self._group_y if parent_transform.transpose_xy: x, y = y, x - self._absolute_transform.x = parent_transform.x + parent_transform.dx * x - self._absolute_transform.y = parent_transform.y + parent_transform.dy * y + self._absolute_transform.x = int( + parent_transform.x + parent_transform.dx * x + ) + self._absolute_transform.y = int( + parent_transform.y + parent_transform.dy * y + ) self._absolute_transform.dx = parent_transform.dx * self._scale self._absolute_transform.dy = parent_transform.dy * self._scale self._absolute_transform.transpose_xy = parent_transform.transpose_xy @@ -241,12 +245,12 @@ class Group: if not isinstance(value, int) or value < 1: raise ValueError("Scale must be >= 1") if self._scale != value: - parent_scale = self._absolute_transform.scale / self._scale + parent_scale = self._absolute_transform.scale // self._scale self._absolute_transform.dx = ( - self._absolute_transform.dx / self._scale * value + self._absolute_transform.dx // self._scale * value ) self._absolute_transform.dy = ( - self._absolute_transform.dy / self._scale * value + self._absolute_transform.dy // self._scale * value ) self._absolute_transform.scale = parent_scale * value @@ -264,10 +268,10 @@ class Group: raise ValueError("x must be an integer") if self._group_x != value: if self._absolute_transform.transpose_xy: - dy_value = self._absolute_transform.dy / self._scale + dy_value = self._absolute_transform.dy // self._scale self._absolute_transform.y += dy_value * (value - self._group_x) else: - dx_value = self._absolute_transform.dx / self._scale + dx_value = self._absolute_transform.dx // self._scale self._absolute_transform.x += dx_value * (value - self._group_x) self._group_x = value self._update_child_transforms() @@ -283,10 +287,10 @@ class Group: raise ValueError("y must be an integer") if self._group_y != value: if self._absolute_transform.transpose_xy: - dx_value = self._absolute_transform.dx / self._scale + dx_value = self._absolute_transform.dx // self._scale self._absolute_transform.x += dx_value * (value - self._group_y) else: - dy_value = self._absolute_transform.dy / self._scale + dy_value = self._absolute_transform.dy // self._scale self._absolute_transform.y += dy_value * (value - self._group_y) self._group_y = value self._update_child_transforms()