diff --git a/docs/source/changes.rst b/docs/source/changes.rst index 328b022..20f7964 100644 --- a/docs/source/changes.rst +++ b/docs/source/changes.rst @@ -5,9 +5,46 @@ Tempe Releases Version 0.x =========== +Version 0.3 +----------- + +November 12th, 2024 + +This is a release which focuses on performance. Most shape classes now check +to see whether each sub-shape intersects with the current drawing region in +the raster, and skip rendering if this is the case. Text objects perform this +check at the level of individual character. This gives a significant +improvement in rendering time, particularly when working with smaller buffers, +for large Text objects, and when performing updates. + +Additionally, profiling indicated that character lookup in bitmap font objects +was a major bottleneck for text rendering. Fonts now cache those lookups in a +dictionary. This can be turned off with an initialization option, and there is +a method to clear the cache if the memory is needed. + +These changes add up to an order of magnitude speed improvement in some cases. + +Additional improvements include: +- Text objects can now be vertically and horizontally aligned relative to the + geometry. +- a new Window Shape that holds a subsurface that makes scrolling groups of + Shapes easier. +- support for Waveshare Pico-ResTouch-LCD 2.8 displays, thanks to @JoGeDuBo. +- replace Roboto fonts with Ubuntu fonts, which render better at small sizes. +- additional examples and various small fixes. + +Thanks +~~~~~~ + +The following people contributed to this release: + + JoGeDuBo, Corran Webster + Version 0.2 ----------- +November 5th, 2024 + This is a small release which fixes a number of bugs, provides formal support for Pimoroni SPI-based ST7789 displays, and adds information about writing displays to the documentation. diff --git a/docs/source/conf.py b/docs/source/conf.py index 0b48ac6..18c81cc 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -13,7 +13,7 @@ project = "Tempe" copyright = "2024, Unital Software" author = "Unital Software" -release = "0.3.dev" +release = "0.3" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/source/user_guide/installation.rst b/docs/source/user_guide/installation.rst index ebc439d..a0ffc13 100644 --- a/docs/source/user_guide/installation.rst +++ b/docs/source/user_guide/installation.rst @@ -24,15 +24,15 @@ Released versions are found at ``github:unital/tempe/releases//``: .. code-block:: python-console - >>> mip.install("github:unital/tempe/releases/0.2/src/tempe/package.json") - >>> mip.install("github:unital/tempe/releases/0.2/src/tempe_displays/package.json") + >>> mip.install("github:unital/tempe/releases/0.3/src/tempe/package.json") + >>> mip.install("github:unital/tempe/releases/0.3/src/tempe_displays/package.json") or using :py:mod:`mpremote`: .. code-block:: console - mpremote mip install github:unital/tempe/releases/0.2/src/tempe/package.json - mpremote mip install github:unital/tempe/releases/0.2/src/tempe_displays/package.json + mpremote mip install github:unital/tempe/releases/0.3/src/tempe/package.json + mpremote mip install github:unital/tempe/releases/0.3/src/tempe_displays/package.json Unstable ~~~~~~~~ diff --git a/src/tempe/package.json b/src/tempe/package.json index b4ac05a..d2680b2 100644 --- a/src/tempe/package.json +++ b/src/tempe/package.json @@ -1,35 +1,35 @@ { "urls": [ - ["tempe/__init__.py", "github:unital/tempe/src/tempe/__init__.py"], - ["tempe/_speedups.py", "github:unital/tempe/src/tempe/_speedups.py"], - ["tempe/_data_view_math.py", "github:unital/tempe/src/tempe/_data_view_math.py"], - ["tempe/bitmaps.py", "github:unital/tempe/src/tempe/bitmaps.py"], - ["tempe/data_view.py", "github:unital/tempe/src/tempe/data_view.py"], - ["tempe/display.py", "github:unital/tempe/src/tempe/display.py"], - ["tempe/font.py", "github:unital/tempe/src/tempe/font.py"], - ["tempe/geometry.py", "github:unital/tempe/src/tempe/geometry.py"], - ["tempe/lines.py", "github:unital/tempe/src/tempe/lines.py"], - ["tempe/markers.py", "github:unital/tempe/src/tempe/markers.py"], - ["tempe/polar_geometry.py", "github:unital/tempe/src/tempe/polar_geometry.py"], - ["tempe/raster.py", "github:unital/tempe/src/tempe/raster.py"], - ["tempe/shapes.py", "github:unital/tempe/src/tempe/shapes.py"], - ["tempe/surface.py", "github:unital/tempe/src/tempe/surface.py"], - ["tempe/text.py", "github:unital/tempe/src/tempe/text.py"], - ["tempe/window.py", "github:unital/tempe/src/tempe/window.py"], - ["tempe/util.py", "github:unital/tempe/src/tempe/util.py"], - ["tempe/colormaps/__init__.py", "github:unital/tempe/src/tempe/colormaps/__init__.py"], - ["tempe/colormaps/inferno.py", "github:unital/tempe/src/tempe/colormaps/inferno.py"], - ["tempe/colormaps/magma.py", "github:unital/tempe/src/tempe/colormaps/magma.py"], - ["tempe/colormaps/plasma.py", "github:unital/tempe/src/tempe/colormaps/plasma.py"], - ["tempe/colormaps/twilight.py", "github:unital/tempe/src/tempe/colormaps/twilight.py"], - ["tempe/colormaps/viridis.py", "github:unital/tempe/src/tempe/colormaps/viridis.py"], - ["tempe/colors/__init__.py", "github:unital/tempe/src/tempe/colors/__init__.py"], - ["tempe/colors/basic.py", "github:unital/tempe/src/tempe/colors/basic.py"], - ["tempe/colors/convert.py", "github:unital/tempe/src/tempe/colors/convert.py"], - ["tempe/colors/web.py", "github:unital/tempe/src/tempe/colors/web.py"], - ["tempe/fonts/__init__.py", "github:unital/tempe/src/tempe/fonts/__init__.py"], - ["tempe/fonts/ubuntu16.py", "github:unital/tempe/src/tempe/fonts/ubuntu16.py"], - ["tempe/fonts/ubuntu16bold.py", "github:unital/tempe/src/tempe/fonts/ubuntu16bold.py"] + ["tempe/__init__.py", "github:unital/tempe/releases/0.3/src/tempe/__init__.py"], + ["tempe/_speedups.py", "github:unital/tempe/releases/0.3/src/tempe/_speedups.py"], + ["tempe/_data_view_math.py", "github:unital/tempe/releases/0.3/src/tempe/_data_view_math.py"], + ["tempe/bitmaps.py", "github:unital/tempe/releases/0.3/src/tempe/bitmaps.py"], + ["tempe/data_view.py", "github:unital/tempe/releases/0.3/src/tempe/data_view.py"], + ["tempe/display.py", "github:unital/tempe/releases/0.3/src/tempe/display.py"], + ["tempe/font.py", "github:unital/tempe/releases/0.3/src/tempe/font.py"], + ["tempe/geometry.py", "github:unital/tempe/releases/0.3/src/tempe/geometry.py"], + ["tempe/lines.py", "github:unital/tempe/releases/0.3/src/tempe/lines.py"], + ["tempe/markers.py", "github:unital/tempe/releases/0.3/src/tempe/markers.py"], + ["tempe/polar_geometry.py", "github:unital/tempe/releases/0.3/src/tempe/polar_geometry.py"], + ["tempe/raster.py", "github:unital/tempe/releases/0.3/src/tempe/raster.py"], + ["tempe/shapes.py", "github:unital/tempe/releases/0.3/src/tempe/shapes.py"], + ["tempe/surface.py", "github:unital/tempe/releases/0.3/src/tempe/surface.py"], + ["tempe/text.py", "github:unital/tempe/releases/0.3/src/tempe/text.py"], + ["tempe/window.py", "github:unital/tempe/releases/0.3/src/tempe/window.py"], + ["tempe/util.py", "github:unital/tempe/releases/0.3/src/tempe/util.py"], + ["tempe/colormaps/__init__.py", "github:unital/tempe/releases/0.3/src/tempe/colormaps/__init__.py"], + ["tempe/colormaps/inferno.py", "github:unital/tempe/releases/0.3/src/tempe/colormaps/inferno.py"], + ["tempe/colormaps/magma.py", "github:unital/tempe/releases/0.3/src/tempe/colormaps/magma.py"], + ["tempe/colormaps/plasma.py", "github:unital/tempe/releases/0.3/src/tempe/colormaps/plasma.py"], + ["tempe/colormaps/twilight.py", "github:unital/tempe/releases/0.3/src/tempe/colormaps/twilight.py"], + ["tempe/colormaps/viridis.py", "github:unital/tempe/releases/0.3/src/tempe/colormaps/viridis.py"], + ["tempe/colors/__init__.py", "github:unital/tempe/releases/0.3/src/tempe/colors/__init__.py"], + ["tempe/colors/basic.py", "github:unital/tempe/releases/0.3/src/tempe/colors/basic.py"], + ["tempe/colors/convert.py", "github:unital/tempe/releases/0.3/src/tempe/colors/convert.py"], + ["tempe/colors/web.py", "github:unital/tempe/releases/0.3/src/tempe/colors/web.py"], + ["tempe/fonts/__init__.py", "github:unital/tempe/releases/0.3/src/tempe/fonts/__init__.py"], + ["tempe/fonts/ubuntu16.py", "github:unital/tempe/releases/0.3/src/tempe/fonts/ubuntu16.py"], + ["tempe/fonts/ubuntu16bold.py", "github:unital/tempe/releases/0.3/src/tempe/fonts/ubuntu16bold.py"] ], - "version": "0.3.dev" + "version": "0.3" } \ No newline at end of file diff --git a/src/tempe_displays/package.json b/src/tempe_displays/package.json index c2fc37b..2089867 100644 --- a/src/tempe_displays/package.json +++ b/src/tempe_displays/package.json @@ -1,11 +1,11 @@ { "urls": [ - ["tempe_displays/__init__.py", "github:unital/tempe/src/tempe_displays/__init__.py"], - ["tempe_displays/st7789/__init__.py", "github:unital/tempe/src/tempe_displays/st7789/__init__.py"], - ["tempe_displays/st7789/base.py", "github:unital/tempe/src/tempe_displays/st7789/base.py"], - ["tempe_displays/st7789/pimoroni.py", "github:unital/tempe/src/tempe_displays/st7789/pimoroni.py"], - ["tempe_displays/st7789/spi.py", "github:unital/tempe/src/tempe_displays/st7789/spi.py"] - ["tempe_displays/st7789/waveshare.py", "github:unital/tempe/src/tempe_displays/st7789/waveshare.py"], + ["tempe_displays/__init__.py", "github:unital/tempe/releases/0.3/src/tempe_displays/__init__.py"], + ["tempe_displays/st7789/__init__.py", "github:unital/tempe/releases/0.3/src/tempe_displays/st7789/__init__.py"], + ["tempe_displays/st7789/base.py", "github:unital/tempe/releases/0.3/src/tempe_displays/st7789/base.py"], + ["tempe_displays/st7789/pimoroni.py", "github:unital/tempe/releases/0.3/src/tempe_displays/st7789/pimoroni.py"], + ["tempe_displays/st7789/spi.py", "github:unital/tempe/releases/0.3/src/tempe_displays/st7789/spi.py"], + ["tempe_displays/st7789/waveshare.py", "github:unital/tempe/releases/0.3/src/tempe_displays/st7789/waveshare.py"] ], - "version": "0.3.dev" + "version": "0.3" } \ No newline at end of file