<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/shared-module/displayio/Group.h, branch main</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2021-03-15T13:57:36+00:00</updated>
<entry>
<title>run code formatting script</title>
<updated>2021-03-15T13:57:36+00:00</updated>
<author>
<name>microDev</name>
<email>70126934+microDev1@users.noreply.github.com</email>
</author>
<published>2021-03-15T13:57:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a52eb88031620a81521b937f2a0651dbac2bb350'/>
<id>urn:sha1:a52eb88031620a81521b937f2a0651dbac2bb350</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove unused typedef for group children</title>
<updated>2021-02-27T19:52:38+00:00</updated>
<author>
<name>Radomir Dopieralski</name>
<email>openstack@sheep.art.pl</email>
</author>
<published>2021-02-23T18:40:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9c41753e44b72f1728931ffb6688d9327da8a8ae'/>
<id>urn:sha1:9c41753e44b72f1728931ffb6688d9327da8a8ae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace displaio.Group.children with a python list</title>
<updated>2021-02-27T19:52:38+00:00</updated>
<author>
<name>Radomir Dopieralski</name>
<email>openstack@sheep.art.pl</email>
</author>
<published>2021-02-21T12:43:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=121c6bcc9b20d7419f2654680215fd8b4bd455c4'/>
<id>urn:sha1:121c6bcc9b20d7419f2654680215fd8b4bd455c4</id>
<content type='text'>
This is a first go at it, done by naive replacing of all array
operations with corresponding operations on the list. Note that
there is a lot of unnecessary type conversions, here. Also, list_pop
has been copied, because it's decalerd STATIC in py/objlist.h
</content>
</entry>
<entry>
<title>displaio: don't store group children native object</title>
<updated>2021-02-27T19:52:38+00:00</updated>
<author>
<name>Radomir Dopieralski</name>
<email>openstack@sheep.art.pl</email>
</author>
<published>2021-02-20T22:04:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6e0ce23f3e2ce341bcaefdd0a0d5c98ff43949f0'/>
<id>urn:sha1:6e0ce23f3e2ce341bcaefdd0a0d5c98ff43949f0</id>
<content type='text'>
Since we want to expose the list of group's children to the user,
we should only have the original objects in it, without any other
additional data, and compute the native object as needed.
</content>
</entry>
<entry>
<title>Bitpack bools in TileGrid and Group</title>
<updated>2019-09-04T17:27:21+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-09-04T17:27:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=70407e4d871ad7e42e707e2e0b53c50c32872cc5'/>
<id>urn:sha1:70407e4d871ad7e42e707e2e0b53c50c32872cc5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add .hidden to TileGrid and Group</title>
<updated>2019-09-03T23:15:27+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-08-27T23:03:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=949f8761b8c41ecbf8660bcd5a333890a37e426e'/>
<id>urn:sha1:949f8761b8c41ecbf8660bcd5a333890a37e426e</id>
<content type='text'>
This allows for one to preserve ordering within a Group while
hiding something temporarily.

Fixes #1688
</content>
</entry>
<entry>
<title>Add support for grayscale displays that are &lt; 8 bit depth.</title>
<updated>2019-07-19T23:06:11+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-07-06T02:01:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6797ec6ed396f65916fe816f8b2b49114253dd86'/>
<id>urn:sha1:6797ec6ed396f65916fe816f8b2b49114253dd86</id>
<content type='text'>
This also improves Palette so it stores the original RGB888 colors.

Lastly, it adds I2CDisplay as a display bus to talk over I2C. Particularly
useful for the SSD1306.

Fixes #1828. Fixes #1956
</content>
</entry>
<entry>
<title>Refactor deinit check to reduce code size.</title>
<updated>2019-06-12T18:36:43+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott@tannewt.org</email>
</author>
<published>2019-06-12T08:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=a35d9b469d4ed65fd992771aa98ac57241983794'/>
<id>urn:sha1:a35d9b469d4ed65fd992771aa98ac57241983794</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>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>
</feed>
