0.33.0.0¶
Breaking Changes¶
- Image :
- ImageWriter : Defaults to writing all channels instead of just RGB (#2021).
 - DeleteChannels : Changed channels plug default to “” (#2021).
 - ImageStats : (#2018)
- Defaulted to sampling A in addition to RGB.
 - Changed interpretation of ImageStats channels to simply be a list of 4 channels that correspond directly to the output RGBA plugs. Behaviour is unchanged apart from situations where an incomplete or ambiguous channel mask was in use.
 
 - Warp : New API (#1980).
- Engine no longer depends on channelName.
 - Derived classes no longer responsible for computing inputWindow.
 
 
 - API :
- Renamed UndoContext to UndoScope (#2049).
 - Removed 
Nodule::registerNodule()overload which took a plug name regex. Use “plugValueWidget:type” metadata instead (#2045). - Added private data member to PerformanceMonitor (#2016).
 - Added 
createUStringsargument to OpenImageIOAlgo::DataView constructor (#2040). - Removed ChannelMaskPlug.  Use a StringPlug and 
StringAlgo::matchMultiple()instead (#2021). - Renamed renderer backends to “Arnold” and “Appleseed” (#1994).
 - Added virtual method to Style class (#2051).
 
 
Features¶
- Scene :
- Added light linking (#1985)
- Light links are specified as set expressions using the StandardAttributes node.
 - Currently only supported in the Arnold renderer backend.
 
 - Added “scene:renderer” context variable which can be used to query which renderer a scene is being generated for (#1994).
 - SetFilter : Added support for using arbitrary set expressions instead of just a single set (#2052).
 - Added RotateTool for interactively rotating objects in the viewport (#2051).
 - Added MeshTangents node to compute Tangent & Binormal primitive variables on a mesh (#2028).
 
 - Added light linking (#1985)
 - Image
- Added Median node (#2022)
 - Added Mix node (#2026)
 - Added CopyChannels node (#2006)
 - Improved support for images with multiple layers : (#2018, #2021)
- Added layer selector to image viewer
 - Added improved layer/channel selection to many nodes
 - Added ability to use wildcards to select channels to process
 
 - Added colorSpace plugs to ImageReader and ImageWriter (#2004).
 
 - Box : Added BoxIn and BoxOut nodes to improve the visualisation of promoted plugs within the NodeGraph (#2011).
 
Improvements¶
- TaskList : Added “sequence plug” (#2044).
 - Improved GafferImage performance (#2016, #2031).
 - OSLShader : Added support for vector->color connections (#2042).
 - Expression : Added context menu for inserting common functions and node bookmarks (#2039).
 - Stats app : Added performance monitor summary (#2016).
 - Merge : Added min and max modes (#2027).
 - Grade : Added support for grading alpha channel (#2023).
 - Warp : Improved filtering (#1980).
 - Added more string matching features #2015 :
[A-Z]style character classes?to match any character- ‘‘ to escape a subsequent wildcard
 
 - Added mode and units settings to the UVWarp node, and renamed it to VectorWarp (#2014).
 - StandardNodeGadget : Added more metadata support (#2011)
- “icon” to add an icon.
 - “nodeGadget:shape” to choose a rectangular or oval shape
 
 
Fixes¶
- Shader : Fixed bug when assigning a disabled shader with pass-through defined (#2025).
 - OSLCode : Fixed string length menu item (#2039).
 - Expression :
 - ErrorDialogue : Fixed bug in message handling code (#2030).
 - StringAlgo : Fixed bug in 
matchMultiple()(#2015). - Switch/Dot : Fixed plug colours in NodeGraph (#2008).
 - Transform/Resize : Fixed sinc filter (#1980).
 - Fixed export of color/vector plugs from Boxes (#2012).
 - Resize : Stopped resampling when only pixel aspect ratio is changed (#2007).
 - Fixed crash in viewport mouse handling (#2005).
 - Fixed Node Reference link in help menu (#2002).
 - Fixed framing of lights in the Viewer, by giving them a default bounding box (#2054).
 
API¶
- MetadataAlgo :
- Added “childNodesAreReadOnly” metadata. This makes it possible to make the internal nodes of a node read-only, while still allowing the external plugs of the node to be edited (#2048).
 - Added functions for bookmarking nodes (#2039).
 - Added 
childAffectedByChange()overload for Node changes (#2029). - Added 
copy()function (#2003). - Added 
copyColors()function (#2008). 
 - NoduleLayout : Added support for custom Gadgets to be specified via metadata (#2043).
 - ImagePlug :
 - Context management (#2041, #2016) :
- Added Context::EditableScope utility class. Use this instead of the now-deprecated Context::Borrowed copy contructor.
 - Added PathScope/SetScope/GlobalScope utility classes to ScenePlug
 - Added GlobalScope/ChannelDataScope utility classes to ImagePlug.
 - Added FilterPlug::SceneScope utility class.
 
 - Added V2iVectorDataPlug (#2031).
 - NodeGadget :
- Added support for “nodeGadget:type” metadata to control the type of gadget created by a node (#2029).
 
 - GraphGadget : Added support for dynamically changing “nodeGadget:type” metadata (#2029).
 - Added ChannelPlugValueWidget (#2026).
 - Added RGBAPlugValueWidget (#2018).
 - ImageGadget : Added methods for selecting which channels to view (#2021).
 - ImageAlgo : Added 
channelNames()andlayerNames()functions (#2019). - Added SetAlgo namespace with methods for evaluating set expressions (#1985).
 - PathMatcher : Added 
intersection()method (#1985). - Added FilterAlgo namespace with methods for doing filtered image sampling (#1980).
 - SceneAlgo : Added render adaptor API. This provides a simple registry of SceneProcessors which will be used internally within Render nodes to perform just-in-time adaptations of the scene for rendering (#1994).
 - PlugAlgo : Added plug promotion methods (#2003).
 - Added RotateHandle class (#2051).