<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/shared-module/displayio/TileGrid.c, branch 4.1.0-beta.1</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.1.0-beta.1</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.1.0-beta.1'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2019-06-17T23:23:38+00:00</updated>
<entry>
<title>Use width for x. Thanks @deshipu</title>
<updated>2019-06-17T23:23:38+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-06-17T23:09:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7490adf8e945b7c040ea5a22293675b8b29da8da'/>
<id>urn:sha1:7490adf8e945b7c040ea5a22293675b8b29da8da</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix TileGrid's dirty tracking when changing top left</title>
<updated>2019-06-17T23:23:37+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-06-16T21:43:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=da3d75f7b108279a05b99d18eca677f23fccac44'/>
<id>urn:sha1:da3d75f7b108279a05b99d18eca677f23fccac44</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Minor tweaks based on Dan's feedback</title>
<updated>2019-06-13T07:34:19+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-06-13T07:34:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6f6dcafd906b2ac49291f4220f3fcc7cea6112e1'/>
<id>urn:sha1:6f6dcafd906b2ac49291f4220f3fcc7cea6112e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add partial display update support.</title>
<updated>2019-06-12T18:32:39+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-06-06T22:11:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=eb21fc3e31790cee094d5c11811b55a57625340a'/>
<id>urn:sha1:eb21fc3e31790cee094d5c11811b55a57625340a</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Fix off-by-one error</title>
<updated>2019-05-31T22:50:55+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-05-31T22:50:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=5d0791cafbebf6df7692836b60e86bc1238b4d57'/>
<id>urn:sha1:5d0791cafbebf6df7692836b60e86bc1238b4d57</id>
<content type='text'>
It caused the bottom and right edges to be one pixel short.
</content>
</entry>
<entry>
<title>Make point 2 in areas exclusive and simplify full_coverage.</title>
<updated>2019-05-22T22:00:47+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-05-22T22:00:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7a117f52ed81999261fae3d43dfeb572c5e9887e'/>
<id>urn:sha1:7a117f52ed81999261fae3d43dfeb572c5e9887e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rework the pixel computation to use areas</title>
<updated>2019-05-22T00:41:06+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-05-16T23:45:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3fad7de8db7f1f317ab6d00a00a82e406ec6fb33'/>
<id>urn:sha1:3fad7de8db7f1f317ab6d00a00a82e406ec6fb33</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>TileGrid: pixel_shader is not always a palette</title>
<updated>2019-03-27T14:55:50+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-03-27T14:55:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=374f210771cf62a35ee3e5c8ffac807ce980fe97'/>
<id>urn:sha1:374f210771cf62a35ee3e5c8ffac807ce980fe97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Standardize TileGrid to x and y properties over position</title>
<updated>2019-03-13T00:18:33+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-03-12T22:56:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=224e9b10092c7142857cafb7df712843906401fd'/>
<id>urn:sha1:224e9b10092c7142857cafb7df712843906401fd</id>
<content type='text'>
This brings it inline with Group. Also fixes #1613

This also includes a number of fixes for where a method is called
through a subclass. We now correctly get the native object.
Fixes #1567

Lastly, this adds subscript support to TileGrid for changing tile
indices. Similar to Bitmap, it accepts ints or 2-tuples.
</content>
</entry>
<entry>
<title>A safe mode fix and displayio fixes</title>
<updated>2019-02-13T23:31:06+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-02-13T08:35:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=473bdf48f61998ee9c51aa16c159bbc4df1d15b6'/>
<id>urn:sha1:473bdf48f61998ee9c51aa16c159bbc4df1d15b6</id>
<content type='text'>
* Fixes safe mode on the SAMD51. The "preserved" value was being
clobbered by the bootloader.
* Fixes auto-reload loop when in safe mode.
* Fixes reading Group children with [].
* Check that a TileGrid actually moves before queueing a refresh.
</content>
</entry>
</feed>
