<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/shared-module/displayio/__init__.c, branch 4.1.0-beta.0</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.0</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=4.1.0-beta.0'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2019-06-12T18:32:39+00:00</updated>
<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>Merge latest 4.0.x fixes into master</title>
<updated>2019-06-11T20:16:29+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-06-11T20:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=4fc189b60c800f097db55c16768fa8c73eb72ccf'/>
<id>urn:sha1:4fc189b60c800f097db55c16768fa8c73eb72ccf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Include display objects in gc.</title>
<updated>2019-06-06T21:49:32+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-06-06T21:49:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=62de2506e47c14a71c7a9fe04360697ccb966aeb'/>
<id>urn:sha1:62de2506e47c14a71c7a9fe04360697ccb966aeb</id>
<content type='text'>
</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>Fix boards with no shared busses.</title>
<updated>2019-04-09T18:36:10+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-04-09T18:36:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=72992070c5137ce44969555828673ba7ccd69f08'/>
<id>urn:sha1:72992070c5137ce44969555828673ba7ccd69f08</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reorganize board busses into shared-bindings and shared-module.</title>
<updated>2019-04-08T23:58:50+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-04-08T23:58:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=0f003ac5b8312fafb120e86e05eefd2431014d8c'/>
<id>urn:sha1:0f003ac5b8312fafb120e86e05eefd2431014d8c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix crash when getting board.SPI outside the VM</title>
<updated>2019-04-06T02:06:37+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-04-06T02:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=7686f93ef456aa46f538da3159d0e12cae9fa737'/>
<id>urn:sha1:7686f93ef456aa46f538da3159d0e12cae9fa737</id>
<content type='text'>
If one of the default pins was already in use it would crash.

The internal API has been refined to allow us to get the value
without causing an init of the singleton.

Fixes #1753
</content>
</entry>
<entry>
<title>after code.py runs, flush filesystem before resetting heap</title>
<updated>2019-03-16T20:49:32+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-03-16T20:49:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=43915133a1e7c682cdae313273060379f1f029b2'/>
<id>urn:sha1:43915133a1e7c682cdae313273060379f1f029b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rework background display task to allow reads from SPI SD card during display. Clarify code. Handle multiple displays better.</title>
<updated>2019-03-07T05:08:16+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2019-03-07T05:08:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1f31877d5519813f94feabf3aedfd21e9461ce17'/>
<id>urn:sha1:1f31877d5519813f94feabf3aedfd21e9461ce17</id>
<content type='text'>
</content>
</entry>
</feed>
