Skip to content

Version 0.99.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@johnhaddon johnhaddon released this 23 Jul 08:07
· 17244 commits to main since this release

This release contains several IPR improvements and bug fixes and the beginnings of an improved SceneInspector, along with the usual set of additions, optimisations and fixes.

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
    • Reimplemented as a hierarchy with a registration mechanism for custom sections (#36, #821).
    • Improved diff formatting (#894).
    • Improved numeric formatting and alignment.
    • Added options section (#197).
  • 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.