Releases: spdermn02/TouchPortal-Dynamic-Icons
v1.2.0-beta1 - Path Operations, Dynamic Colors, Enhanced Round Gauge, & More
New Features
- Added a new set of actions for working with drawing paths (unstyled drawing elements). Completely freeform paths can be created, including support for SVG path syntax, as well as basic shapes like rectangles and ellipses.
Paths can be combined and transformed in various ways to create complex shapes. They can then have a drawing style applied to them, or be used as a clipping region to constrain further drawing.
For more details see the notes on PR #27. - Added new "Animate - Update a Color" action to dynamically change a color of an existing layer element. (#28)
- Added plugin setting to control the number of CPU threads used for final image compression and output.
- Plugin now logs all messages to its own file on all platforms, independent of Touch Portal's own log. Log file is located in plugin's installation folder. Logging settings can be adjusted using a configuration file. By default log files are rotated at 5MB maximum size and up to 4 old log files are kept. (#23)
Fixes
- The "Finalize Only" and "Render Only" choices were ignored in the "Generate Layered Icon" action and icon was always finalized and rendered. (d5ec58c9)
- Image layer type was always being replaced with new instance of
DynamicImage()
instead of reusing existing instance. (e7a467b5) - Stroke line thickness could not be reset to zero after being changed to non-zero w/out deleting the whole icon instance. (14449c23)
Major Changes
- Removed/disabled GPU rendering feature including the plugin setting and "Generate Icon" action options. This feature proved ineffective and caused peripheral issues. May be re-introduced in a later version. See PR #25 for details.
Element Changes
Simple Round Gauge (#26)
- Added line width and radius settings.
- Add "auto" direction to toggle CCW drawing with negative values.
- Removed shadow toggle property (use transparent color to disable shadow, previous versions of the action still work);
- Fixed that could not set a starting degree of zero.
- The starting degrees action data field now allows negative values and inline evaluation.
- Moved shadow color to end of action's properties list.
Simple Bar Graph
- The new "Update a Color" action can be used to change the color of the next bar segment(s) to be drawn, allowing for multi-color graphs (see PR #28 for an example).
Image
- Added ability to use base64-encoded data as source input by using a "data:" prefix before the b64 data string. For example to use the result of another plugin's dynamic image as a layer, or encoded data from a web URL request. (#29)
Other Changes
- For Touch Portal v4 (#30):
- Plugin's actions are now sorted into sub-categories by function.
- Added help text for each of the plugin's options shown in TP's Settings dialog.
- Concurrent system thread usage changes: (ee62e201)
- The number of simultaneous image rendering threads is now set to use half the logical cores available on the host system. Previously this was always fixed to 4 threads.
- The default number of simultanous image compression threads has been reduced to using half the logical cores available (controllable via new Setting mentioned above). Previously this used as many threads as there were logical cores.
- Prevent layer updates while icon is actively rendering (warnings are logged to file). (ab60b03b)
- Optimized data transfer between the drawing canvas ('skia-canvas') and final compression step ('sharp') by ~400% using updated custom version of 'skia-canvas' to export raw pixel data. (cc4717e2, skia-canvas@8cbc8910)
- Slightly optimized image file loading (before cache) by creating canvas images using raw pixel data instead of encoded/decoded PNG format. (72b907d5, skia-canvas@1e7e09b7)
- Fixed upstream issue in 'skia-canvas' which sometimes caused full circles to not be drawn at all. (skia-canvas@bb99a3ad)
- Updated 'sharp' and underlying 'libvips' libraries to latest versions for improved image compression performance. (#24)
- Updated TP Node API ('touchportal-node-api') to latest version allowing log message redirection and graceful plugin shutdown on exit. (4b69a8d9, 0a65d4b2, tp-api#36, tp-api#38)
- Minor performance optimizations. (e830d054, caacff04, tp-api#40)
Full log: v1.2.0-alpha3...v1.2.0-beta1
v1.2.0-alpha3 - Rectangular Icons, Compression Options & Memory Fix
New Features:
- Both width and height dimensions can be specified for an icon in the New Layered Icon action, allowing non-square images. (#20)
(This also changes how tiling works for the new version of the action, see Changes below.) - The compression level of produced icon images can now be specified globally in plugin settings and/or per icon in the Generate Layered Icon action. Compression can also be disabled entirely. (#16)
- An Effect Filter layer's filter property can now be changed using the Update a Value action. (6a8774ec)
Fixes:
- Fixes a slow memory leak issue which can get significant if icons are generated continuously over a period of time (probably since v1.1.0-a1).
(#18) - Fixes that the Simple Bar Graph 'bar width' property was ignored and the width was always 10px (since v1.1.0-a1). (17869df)
- Fixes that a Canvas Filer wouldn't be properly applied to a Simple Round Gauge, nor any following layers. (1768f291)
- Fixes that Windows-style paths (with backslashes) in the Image action's 'file' property were mangled (since v1.1.0). (0c4f5b5)
- Fixed wording about relative file paths on Image action. (7b1c76e7)
- MacOS and Linux releases are now built on their native operating systems and should actually work.
Changes:
- Tiling feature in new version of New Layered Icon action will now split the specified icon size into the specified number of tiles, instead of each tile being of the specified size. (#20)
(Previous versions of the action (1.2-alpha1 & 2) are not affected, but support for them will be removed in the future.) - Default icon size plugin setting can now optionally include both width and height in the form of
<width> x <height>
, or with a comma. E.g.: "128 x 128" or "86, 64" (#20) - Plugin version number shown in TP Settings now has an extra set of digits at the end to distinguish between various pre- and final releases of a n.n.n version (eg. 1.2.3-alpha4 is
1020304
and final would increment the last digit, eg.1020305
). (#21) - Icon names in the Plugin Action action and List of created icons state are now sorted alphabetically. (00977f3a)
- Performance improvements and optimizations to plugin core and external modules. (4f6c9b5a, 07e4d3fe, tp-api#29,
tp-api#31, skia-canvas@f0e6d816, skia-canvas@c364fbdb)
Build Scripts:
- Individual platform release builds can now be
npm run
withbuild-win
,build-mac
,build-linux
orbuild -- -p (windows|linux|macos)
(#17)
Full log: v1.2.0-alpha2...v1.2.0-alpha3
v1.2.0-alpha2 Release
What's Changed
- Refactor how icon TP states are created/removed: by @mpaperno in #12
- Change stroke line width action data fields to text type by @mpaperno in #13
- Refactor StyledText to use
Alignment
enum type instead of string values for alignment properties by @mpaperno in #14
Full Changelog: v1.2.0-alpha1...v1.2.0-alpha2
v1.2.0-alpha1 Release
What's Changed
Full Changelog: v1.1.0...v1.2.0-alpha1
v1.1.0 - Layered Icons and Transformations
NOTE: A slow memory leak has been identified in this version of Dynamic Icons. The issue has been fixed in v1.2.0-alpha3. Using that or a later version is recommended.
What's Changed
- Layered Icons by @mpaperno in #4
- Minor modifications to what Max created by @spdermn02 in #5
- Allow dynamic/evaluated names for images files. by @mpaperno in #6
- Use 'file' type input fields for image source (for TP v3.1b8+) by @mpaperno in #7
- Add plugin setting to control default base image directory by @mpaperno in #8
- fix: 🐛 Fixing name of icon that is built with plugin by @spdermn02 in #9
New Contributors
- @mpaperno made their first contribution in #4
- @spdermn02 made their first contribution in #5
Full Changelog: v1.0.0...v1.1.0
v1.1.0 - ALPHA - Layered Icons and Transformations
Prior to Use
Remove previous versions of TouchPortal-Dynamic-Icons from Touch Portal and then import the .tpp for your architecture.
What's Changed
- Layered Icons by @mpaperno in #4
- Minor modifications to what Max created by @spdermn02 in #5
New Contributors
- @mpaperno made their first contribution in #4
- @spdermn02 made their first contribution in #5
Full Changelog: v1.0.0...v1.1.0-alpha3
v1.0.0 - Initial Release
Full Changelog: https://github.com/spdermn02/TouchPortal-Dynamic-Icons/commits/v1.0.0
Generate Simple Bar Graph or Simple Round Gauge with some configurable display options.
Windows use TPDynamicIcons-Windows.tpp
MacOS use TPDynamicIcons-MacOS.tpp