Another quick update, lest anyone thinks I’m slacking it.
Porting to the new GuiKit is taking much longer than expected. Mostly because I’m trying to get things as clean as I can but also since this is going to be a biggish update (albeit light on new features) I’ve decided to tackle a bunch of other significant changes all at once:
- Properly fixing a couple of issues UI interaction issues that have been patched over in the past.
- A week or so on getting all the touch interactions working correctly.
- Added support for custom themes inheriting from a base theme - so you can inherit from Dark theme and just patch/override the bits you want to change. And you won’t need to update your theme if I add new resources to the default themes.
- Project configuration - moved everything to Visual Studio 2017 and switched to their new “SDK” style project files which are awesome for multi-targeted projects (although a little slow to build). This means all the Cantabile project files now also work macOS - I don’t need separate project files for each platform.
- New build scripts (the old .bat files were becoming tedious)
- Updated the builds for dependencies (like mp3, flac, rubberband) to VS2017
- Reconfigured Cantabile’s project structure a little bit. The bulk of Cantabile’s code is now in an “Any CPU” CantabileApp.dll which is shared between x86 and x64 editions with a small stub program for each platform that launches it (to help prevent download bloat).
- Updated setup programs to install new Cantabile components, new .NET requirements, SkiaSharp etc…
The download has grown a little - up from 7.5Mb to about 10Mb (compressed). Pretty happy with that considering there’s an additional 10Mb+ of Skia binaries. (Skia is the new drawing library I’ve switched to - it’s bigger than I would have hoped for, but worth it cause it solves the whole cross platform drawing problem).
This next build will require Windows 7 (or later) and .NET 4.6.1 (or later). I’ve dropped support for WinXP/Vista but will continue to make older version of Cantabile available for those platforms although they won’t be getting new features.
There’s one more biggish change I’m considering: Windows 10 now supports different DPI scaling for different windows in the same process. This means I can make Cantabile’s main UI run at high-dpi and the plugin editors at standard resolution (ie: crisp Cantabile and no more tiny plugin editors). I had a quick crack at it this morning and the concept works, but it means everything needs to handle dynamically changing scaling. eg: dragging a window from a high-res monitor to a low res one.
And, I’ve still got more testing to do because there’s been a ton of changes.
Bear with me - it’s getting there.