0.12.0.0¶
Core¶
- Optimised CompoundDataPlug::hash() to ignore disabled members. This reduces globals hashing time by 20% for a complex production scene.
 - Fixes Expression serialisation bugs (#1081, #1243).
 - Optimised ValuePlug hash caching. It now caches more aggressively, keeping cache entries alive across multiple computations. This reduces scene traversal time for a complex production scene by 70%.
 - Improved dirty propagation mechanism.
- Batched propagation for UndoContexts, so dirtiness is signalled only once for operations batched within a single undo action.
 - Fixed bugs which meant dirtiness was signalled when child/parent plug connections were in an inconsistent state.
 - Addition and removal of dynamic plugs now triggers dirty propagation.
 
 - The values of environment variables used for string plug substitutions are now frozen at startup.
 
UI¶
Scene¶
- Fixed PathMatcher wildcard matching bug (#1252).
 - Added Parameters node. This can be used for tweaking the parameters of lights, cameras and external procedurals (#1259).
 - Added PointsType node (#476).
 - Fixes Seeds node to take into account the bounding box of the generated points.
 - Fixed dirty propagation bugs in CoordinateSystem and ClippingPlane nodes.
 - Improved InteractiveRenderer pausing during edits.
 - Added DeleteSets node.
 - Fixed CustomOptions dirty propagation (#1039).
 - Fixed ContextVariables dirty propagation.
 - Optimised Filter mechanism, giving a 7-20% improvement in performance across a range of production scenes.
 
Appleseed¶
- Added support for interactive renderering with shader and light edits.
 
Image¶
- Added support for image metadata
- ImagePlug has a new metadata child plug.
 - ImageReader reads metadata from file.
 - ImageWriter writes metadata to file.
 - ImagePrimitiveSource loads metadata from 
ImagePrimitive::blindData(). - Merge copies metadata from the first input.
 - ImageMetadata node creates/sets metadata.
 - DeleteImageMetadata node removed metadata.
 - CopyImageMetadata transfers metadata from one image to another.
 
 - Optimised many nodes with direct internal pass-though connections.
 
API¶
- StringAlgo
- Added 
hasWildcards()function. - Removed flawed MatchPatternLess (#1252).
 
 - Added 
 - NodeAlgo
- Added 
isSetToUserDefault( plug )function. 
 - Added 
 - RendererAlgo
- Added 
outputAttributes()method. 
 - Added 
 - ImageNode
hash*()andcompute*()methods are no longer pure virtual. This allows subclasses to make direct internal connections to pass through input plugs unchanged.
 - PlugValueWidget
- Replaced 
_dropValue()method with_convertValue(). 
 - Replaced 
 - Menu
- Added support for 
functools.partial( WeakMethod )in menu commands. 
 - Added support for 
 - Simplified and improved Merge node implementation.
 - Added MetadataProcessor base class to GafferImage.
 - Added Plug::dirty() virtual method. This is used to inform a Plug that it has been dirtied by Plug::propagateDirtiness().
 - Fixed DependencyNodeWrapper to translate python exceptions to C++.
 
Build¶
- Fixed compilation without NDEBUG=1 with gcc 4.1.2.
 
Incompatibilities¶
- Removed MatchPatternLess from StringAlgo.h.
 - Replaced PlugValueWidget 
_dropValue()method with_convertValue(). - Removed GafferImage::FilterProcessor.
 - Added/removed virtual overrides in GafferImage.
 - Added virtual function to Plug.