reaper-oss / sws

The SWS extension is a collection of features that seamlessly integrate into REAPER, the Digital Audio Workstation (DAW) software by Cockos, Inc
https://www.sws-extension.org/
MIT License
455 stars 85 forks source link

Optimize application of auto-color track rules #1856

Closed cfillion closed 3 months ago

cfillion commented 8 months ago

A significant portion of the time was wasted in getting the project's applied rule list (g_pACTracks.Get()) over and over, plus each rule item (+ gradients) doing a linear-time lookup in that list.

Also when loading a project or Ctrl+A the auto-coloring was applied thrice. Twice when renaming a track. Before = 3*4s, after = 1*0.06s.

Screen Shot 2024-03-01 at 18 00 58

AppVeyorBot commented 8 months ago

:white_check_mark: Build sws 1089-master completed (commit https://github.com/reaper-oss/sws/commit/d5c4949fed by @cfillion)

Windows 64-bit - [build/BuildUtils/SWS_Template.ReaperLangPack](https://ci.appveyor.com/api/buildjobs/rurpkuers425pctv/artifacts/build/BuildUtils/SWS_Template.ReaperLangPack) - [build/BuildUtils/whatsnew.html](https://ci.appveyor.com/api/buildjobs/rurpkuers425pctv/artifacts/build/BuildUtils/whatsnew.html) - [build/reaper_sws-x64.dll](https://ci.appveyor.com/api/buildjobs/rurpkuers425pctv/artifacts/build/reaper_sws-x64.dll) - [build/reaper_sws-x64.pdb](https://ci.appveyor.com/api/buildjobs/rurpkuers425pctv/artifacts/build/reaper_sws-x64.pdb) - [build/sws-2.14.0.1-Windows-x64-autocolor-opti-d5c4949f.exe](https://ci.appveyor.com/api/buildjobs/rurpkuers425pctv/artifacts/build/sws-2.14.0.1-Windows-x64-autocolor-opti-d5c4949f.exe) - [build/sws_python64.py](https://ci.appveyor.com/api/buildjobs/rurpkuers425pctv/artifacts/build/sws_python64.py)
Windows 32-bit - [build/BuildUtils/SWS_Template.ReaperLangPack](https://ci.appveyor.com/api/buildjobs/ho4humgbgbcowivs/artifacts/build/BuildUtils/SWS_Template.ReaperLangPack) - [build/BuildUtils/whatsnew.html](https://ci.appveyor.com/api/buildjobs/ho4humgbgbcowivs/artifacts/build/BuildUtils/whatsnew.html) - [build/reaper_sws-x86.dll](https://ci.appveyor.com/api/buildjobs/ho4humgbgbcowivs/artifacts/build/reaper_sws-x86.dll) - [build/reaper_sws-x86.pdb](https://ci.appveyor.com/api/buildjobs/ho4humgbgbcowivs/artifacts/build/reaper_sws-x86.pdb) - [build/sws-2.14.0.1-Windows-x86-autocolor-opti-d5c4949f.exe](https://ci.appveyor.com/api/buildjobs/ho4humgbgbcowivs/artifacts/build/sws-2.14.0.1-Windows-x86-autocolor-opti-d5c4949f.exe) - [build/sws_python32.py](https://ci.appveyor.com/api/buildjobs/ho4humgbgbcowivs/artifacts/build/sws_python32.py)
macOS x86 64-bit - [build/reaper_sws-x86_64.dylib](https://ci.appveyor.com/api/buildjobs/p9tuygv14eu0re6h/artifacts/build/reaper_sws-x86_64.dylib) - [build/sws-2.14.0.1-Darwin-x86_64-autocolor-opti-d5c4949f.dmg](https://ci.appveyor.com/api/buildjobs/p9tuygv14eu0re6h/artifacts/build/sws-2.14.0.1-Darwin-x86_64-autocolor-opti-d5c4949f.dmg)
macOS x86 32-bit - [build/reaper_sws-i386.dylib](https://ci.appveyor.com/api/buildjobs/xse5hkymh7u1hnui/artifacts/build/reaper_sws-i386.dylib) - [build/sws-2.14.0.1-Darwin-i386-autocolor-opti-d5c4949f.dmg](https://ci.appveyor.com/api/buildjobs/xse5hkymh7u1hnui/artifacts/build/sws-2.14.0.1-Darwin-i386-autocolor-opti-d5c4949f.dmg)
macOS ARM 64-bit - [build/sws-2.14.0.1-Darwin-arm64-autocolor-opti-d5c4949f.dmg](https://ci.appveyor.com/api/buildjobs/v19qrk0ua6842l4a/artifacts/build/sws-2.14.0.1-Darwin-arm64-autocolor-opti-d5c4949f.dmg) - [build/reaper_sws-arm64.dylib](https://ci.appveyor.com/api/buildjobs/v19qrk0ua6842l4a/artifacts/build/reaper_sws-arm64.dylib)
Linux x86 64-bit - [build/reaper_sws-x86_64.so](https://ci.appveyor.com/api/buildjobs/vcmvmjk0qg4yvqu6/artifacts/build/reaper_sws-x86_64.so) - [build/sws-2.14.0.1-Linux-x86_64-autocolor-opti-d5c4949f.tar.xz](https://ci.appveyor.com/api/buildjobs/vcmvmjk0qg4yvqu6/artifacts/build/sws-2.14.0.1-Linux-x86_64-autocolor-opti-d5c4949f.tar.xz)
Linux x86 32-bit - [build/sws-2.14.0.1-Linux-i686-autocolor-opti-d5c4949f.tar.xz](https://ci.appveyor.com/api/buildjobs/t34pgxpcdrb2rbq7/artifacts/build/sws-2.14.0.1-Linux-i686-autocolor-opti-d5c4949f.tar.xz) - [build/reaper_sws-i686.so](https://ci.appveyor.com/api/buildjobs/t34pgxpcdrb2rbq7/artifacts/build/reaper_sws-i686.so)
Linux ARM 64-bit - [build/sws-2.14.0.1-Linux-aarch64-autocolor-opti-d5c4949f.tar.xz](https://ci.appveyor.com/api/buildjobs/7iy8a2vi8qh3xpaf/artifacts/build/sws-2.14.0.1-Linux-aarch64-autocolor-opti-d5c4949f.tar.xz) - [build/reaper_sws-aarch64.so](https://ci.appveyor.com/api/buildjobs/7iy8a2vi8qh3xpaf/artifacts/build/reaper_sws-aarch64.so)
Linux ARM 32-bit - [build/sws-2.14.0.1-Linux-armv7l-autocolor-opti-d5c4949f.tar.xz](https://ci.appveyor.com/api/buildjobs/o2pqneqwyk3cwops/artifacts/build/sws-2.14.0.1-Linux-armv7l-autocolor-opti-d5c4949f.tar.xz) - [build/reaper_sws-armv7l.so](https://ci.appveyor.com/api/buildjobs/o2pqneqwyk3cwops/artifacts/build/reaper_sws-armv7l.so)