Once again I have decided to skip a release in order to finish up some half-done development. So, instead of giving you a new release I will give you some information on what I’ve been working on for the last three months.

Event Canceled (Work vector created by freepik - www.freepik.com)

By now you shouldn’t be too surprised to hear that I have been working on things very different from what I had planned. That seems to be a pattern in WonderGUI development, as soon as I think that the path forward is clear and I know what to work on next, some external, unforeseen event causes a reshuffle among my priorities.

Two major updates, earlier planned for a post-3.0 release, are now in full development. These are:

  • Animated Skins - The skin system now supports animated skins. Transitions from one state to another can be animated (like checkboxes having the checkmark drawn, buttons slowly fading out when disabled etc) as well can the skin as a whole (any surface can be animated). The system has been implemented but I needed a few attempts before I felt I got it right so it took quite some time. Some updates to various widgets and skins are still needed to properly support this feature throughout the system, but several widgets already supports this.

  • Layered Rendering - This is what I’m busy working on right now. From the next release WonderGUI will support layers (like in Photoshop or GIMP) that widgets can drawn on individually, which then are blended together for display. Currently CanvasStack offers this functionality in a more limited and complex way, but from alpha-9 we should have slick, full blown support for this throughout the system. The main use for this is to enable widgets to have shadows and light effects that spills over onto nearby widgets in a natural way. Once again I needed a few attempts before I got a solution that I’m happy with. Current status is that I got it working just two days ago, but bugs are present and more classes needs to support it before it becomes useful.

I will explain these features more in detail in the blog post for the next release.

Additionally I have almost completed support for the Metal graphics API. It just needs some modifications to support Layered Rendering and some more extensive testing.

So, for the next release, scheduled for January, you should expect at least three major updates. Maybe more if I get the time…