0.99.0
Apps
- Fixed potential startup error in gui viewer.py configuration file. 
Core
- Added background execution mode to the LocalDispatcher. 
UI
- Added a gnomon to the 3d viewer (#41). 
- Improved SceneInspector 
- Implemented error tolerant loading for file menu operations. Errors are reported via a dialogue, and will no longer prevent loading of a script (#746). 
- Fixed ScriptEditor to execute code in the right context. Prior to this, any queries performed in the script editor were always evaluated at frame 1. 
- Dispatcher UI no longer forces background execution - this is now controlled by per-dispatcher settings. 
Scene
- Improved IPR - Fixed hang during shutdown with active IPR render (#855). 
- Implemented camera edits for IPR rendering (#190). 
- Prevented errors in other nodes from causing incomplete edits. 
- Fixed UI errors caused by deleting camera during IPR (#898). 
- Optimised updates by pruning invisible hierarchies. 
- Fixed bug in shader edits at non-leaf locations. 
 
- Optimised Instancer, especially the computation of the bounding box for all the instances. This particular operation is now 18x faster on a 6 core machine, 7x faster on a 2 core machine. 
- Added an automatically created set for tracking all cameras in the scene. 
- Improved reporting of invalid cameras (#371). 
- Fixed FilteredSceneProcessor::acceptsInput() crash when inputPlug is null. 
API
- Registered automatic from-python conversions for ScenePlug::ScenePath. This replaces the need to manually wrap any functions taking a ScenePath, making the bindings simpler. 
- Added exists() method to SceneAlgo. This can be used to query whether or not a particular location exists within a scene. 
- Replaced boost_intrusive_ptr with raw pointer where appropriate, to follow the convention laid out in Cortex. 
- Removed deprecated Box metadata methods. The standard Metadata API should be used instead. 
- Added missing wrapper for NodeGadget::nodule() overload. 
- Added OpDialogue preExecuteSignal() and postExecuteSignal(). 
- Added OpDialogue parameterisedHolder() method. 
- Added a flags argument to ParameterHandler::setupPlug(). This allows clients to choose the default flags for their plugs, rather than being forced to have (Default | Dynamic) plugs. 
- Added ViewDescription constructor for 3 argument registerView. 
- Added Style::renderTranslateHandle() method. 
- Added GafferUI::Handle gadget. 
- Moved translatePythonException() to a new ExceptionAlgo.h header. 
- Added formatPythonException() function to ExceptionAlgo.h. 
- Added continueOnError argument to ScriptNode execution methods. 
- Added error return value to ScriptNode execution methods. 
- Improved EventLoop.executeOnUIThread() to execute immediately when used on main thread. 
Build
- Requires Cortex-9.0.0a2 
- Updated default build to use PySide 1.2.2. 
- Stopped using python-config for build configuration. It was unreliable on Mac, and the hardcoded paths it returns prevented us from building with prebuilt binary dependencies.