- Added new “clone to all scenes” menu action which will clone an Icon / Label to all scenes
- Added new “delete from all scenes” menu action which will remove all Icons / Labels from all scenes that share the same name as the selected item
- Added new “copy to scene” which clones the selected actor into a new scene
- Added support for filled / unfilled ellipses and rects / rounded rects
- Added new Filled, CornerRadius and Thickness properties to actors
- Updated actors to support bitmap animation frames, actor properties now support frames property which can be use to change default frame order
- ImageActor XOML tag has new Filled (bool) property which specifies the filled / unfilled status of an actor, unfilled will be drawn with a border
- ImageActor XOML tag has new CornerRadius (float) property which can be used to specify the corner size of a rounded rect (note that RenderAs must be set to 2) to force actor to be rendered as a rect
- ImageActor XOML tag has new Thickness (float) property which specifies the border thickness for actors that are rendered unfilled
- ImageActor XOML tag has new RenderAs (int) property which specifies how the actor should be rendered, 0 – normal, 1 – render as an arc and 2 – render as a rect / rounded rect
- ImageActor XOML tag has new PlaybackSpeed property which specifies how quickly any attached bitmap animation will play back
- ImageActor XOML tag has new AnimFrames (array of its) property which specifies the order in which bitmap frames are played back
- Brush XOML tag has new RectFrames property which is a list of x,y,w,h rect frames that can be used to assign bitmap animations to actors
The most exciting changes (for me at least) are the addition of support for rendering arcs, rectangles and rounded rectangles, these can be filled with solid colour / bitmaps or rendered with an edge stroke that can also be solid colour or bitmapped. I found that these objects come in very useful when it comes to UI. If you look in the actors property panel in Goji you will notice a new “RenderAs” property. Changing this enables you to tell the engine to override the default rendering to render the actor as an arc or rect. Additional properties have been added to allow you to specify properties such as corner radius for rounded rects and thickness. If you are interested in seeing the code that generates these shapes then take a look in CzGeometry.cpp.
Another addition that I decided to port across was bitmap brush animations. Its awkward having to set up bitmap animations in XOML so I made it easier. You can now add individual rectangular frames to a brush to create an animation (Goji shows a preview of the animation). Once the brush is attached to an actor an as long as the Playback speed is set to something other than 0 then the animation will play. You can also override the order in which animation frames are played by setting your own animation frame indices in the Anim Frames properties box.