0.45.0.0¶
Features¶
Improvements¶
- Viewer :
- Improved performance significantly when selecting large numbers of objects (#2450, #2486).
 - Improved reporting of errors involving look-through cameras (#2490).
 - Improved camera selection UI (#2490).
 - Added default camera settings dialogue (#2490).
 - Added Ctrl+K shortcut to fit clipping planes to selection (#2490).
 - Added Ctrl+F shortcut to frame selection and fit clipping planes to match (#2490).
 - Added context menu (#2490).
 
 - SceneHierarchy (#2450, #2486) :
- Improved performance significantly when selecting or expanding large numbers of objects.
 - Multiple selections made in the Viewer are now highlighted properly in the SceneHierarchy (#76).
 
 - Significantly reduced file sizes and load times for scripts containing many shader and/or light nodes (#2455).
 - NodeGraph
 - ScriptNode :
 - ArnoldAttributes : Added attributes to control volume motion blur (#2433).
 - Arnold : Added support for OSL shaders with multiple outputs (#2494).
 - Stats/Execute apps : By default the current frame stored in the script is
executed, rather than frame 1 as before. Use the 
-framescommandline argument to specify a specific range of frames to execute (#2468). - CompoundDataPlugValueWidget : Added array types to plug creation menu (#2433).
 - Startup : Startup files are now executed in isolated scopes, so they cannot accidentally rely on other startup files (#2462).
 - Expression : Python expressions can now read from CompoundDataPlugs (#2484).
 
Fixes¶
- Appleseed : Fixed crashes when editing cameras during interactive renders (#2489).
 - Browser : Fixed bug caused by missing import (#2449).
 - OpenColorIO : Added workaround for OpenColorIO bug whereby config parsing would fail for non-English locales (#1654, #2460).
 - Python wrappers : Fixed exception translation (#2459).
 - BoxIn : Plug values are now preserved when promoting an input plug (#2461).
 - Tractor Dispatcher : Fixed accumulation of tractor plugs on TaskNodes (#2463).
 - GraphComponent : Fixed bug which could prevent multiple scripts from being loaded in parallel (#2464).
 - GraphComponentPath : Fixed bug whereby children did not inherit the filter from their parent (#2465).
 - OSLLight : Fixed metadata for child plugs of parameters (#2474).
 - Shader : Fixed serialisation bugs introduced in version 0.43 (#2454, #2455).
 - Spline UI : Prevented creation of multiple editing dialogues for the same plug (#2472).
 - Added backwards compatibility for scripts referencing the old
GafferScene.PathMatcher,GafferScene.PathMatcherDataandGafferScene.PathMatcherDataPlugtypes (#2457). - Layouts :
 - ScriptNode :
 - Viewer (#2490) : Fixed bug where centre of interest was lost when switching between the default and look-through cameras.
 - PlugValueWidget : Fixed bug that allowed drags to be received for read-only plugs (#2503).
 - GUI App : Errors are now reported correctly when loading files from the command line (#2499).
 - Serialiser : Fixed handling of exceptions in Python serialisers (#2475).
 - Expression : Fixed initial UI state so that the expression is not editable until a language has been chosen. This avoids problems where an expression was entered and then lost when the language was set (#2482).
 - PlugAlgo : Fixed problems with metadata promotion when using non-Box parents (#2488).
 - NodeAlgo : Fixed attempts to apply user defaults to plugs that are not settable (#2507).
 
API¶
- PathListingWidget : Added faster expansion and selection methods using
IECore.PathMatcher()to store sets of paths (#2450). - AuxiliaryNodeGadget : Added new class to represent nodes like Expression and Animation in the NodeGraph (#2458).
 - Style : Added 
stateargument torenderAuxiliaryConnection()(#2473). - Added GafferUI.Backups class (#2469).
 - ImageGadget : Added 
loadTexture()method (#2490). - ViewportGadget : Added 
fitClippingPlanes()method (#2490). - Viewer : Added 
viewContextMenuSignal(). This allows context menus for views to be customised using the same basic mechanism we use in the NodeGraph and elsewhere. (#2490). - FileMenu : Added 
addScript()function (#2499). - Serialisation : Improved support for Python serialisers (#2475).
 - ConnectionCreator : Added new class to improve drag & drop functionality in the NodeGraph (#2480).
 - ContextAlgo : Added 
affects*Paths()methods (#2486). 
Breaking Changes¶
- Stats app : Replaced 
-frameparameter with-frames(#2468). - Style : Changed signature for 
renderAuxiliaryConnection()method (#2473). - View : Removed 
framingBound()method (#2490). - RendererAlgo : Renamed 
createDisplayDirectories()tocreateOutputDirectories()(#2452). - PlugAdder (#2480) :
- Removed 
edgeconstructor argument. - Changed base class.
 
 - Removed 
 - Nodule : Changed base class (#2480).
 - ConnectionGadget : Changed base class (#2480).
 - NodeGadget : Renamed 
noduleTangent()toconnectionTangent()(#2480). - ContextAlgo : The scene selection is now stored as a PathMatcher and not StringVectorData (#2486).
 - SceneGadget : Changed signatures for methods for accessing selection and expansion (#2486).
 - Style : Added new 
renderAuxiliaryConnection()virtual method (#2497).