0.15.0.0

UI

  • UI Editor
    • Added dropdown menu for choosing widget type (#739).
    • Added section for specifying additional widget settings (#739).
    • Added preset editor (#739).
    • Added section for editing section summaries.
    • Added NodeGraph section.
  • Added drag and drop of objects onto Set nodes in the NodeGraph.
  • Fixed crash which could occur when opening recent files.
  • Fixed crash which could occur when using OpenGL widgets within Maya.
  • Added support for summary tooltips on node UI tabs (#332).
  • Fixed bugs which could cause a blank NodeEditor if an expression referenced a script variable.
  • Fixed bugs in channel mask menus on image processing nodes.

Core

  • Added Wedge node. This allows tasks to be dispatched multiple times using a range of values (#1372).
  • Added TaskContextVariables node. This allows variables to be defined within the tree of tasks (renders etc) executed by a dispatcher.
  • Added Loop node. This takes an input and loops it N times through an external graph before outputting it again. This provides the user with the ability to do things with the graph which were previously only achievable with code.
  • Reference
    • Fixed serialisation of empty reference.
    • Fixed serialisation of user plug metadata.
    • Fixed referencing of promoted plugs
      • ExecutableNode requirements plug
      • UnionFilter filter inputs
      • OSLImage and OSLObject shader plugs.
      • RenderManShader coshader plugs (#1358).
  • Expression
    • Fixed support for setting GafferImage FormatPlugs.
  • ContextVariables
    • Fixed serialisation bug where additional plugs were added on save/load and copy/paste.
  • Improved Context and ValuePlug performance.

Image

  • Added ImageLoop node.
  • Performance
    • Improved Reformat performance.
    • Improved threading peformance for small images.
  • ImageWriter
    • Improved error messages.
    • Fixed bugs with empty filenames and filenames using substitutions.
  • ImageTransform
    • Fixed copy/paste.
    • Fixed dirty propagation bug which could prevent the viewer updating at the right time.
  • ImageReader
    • Added error reporting for missing files.

Scene

  • Added SceneLoop node.
  • Transform
    • Fixed bugs in World mode.
    • Added Parent, Local Reset and World Reset modes.
    • Renamed Object space to Local.
    • Changed default space to Local.
    • Note that these are backwards incompatible changes, necessary to fix an important bug and get the Transform node on a solid footing for the future. To get the same results as the old World mode, use the new Parent mode.
  • FreezeTransform
    • Fixed bug which prevented the UI updating when the input object was changed.
  • Fixed bugs which could cause incorrect bounds to be computed.

Appleseed

  • Removed options and attributes that are not useful in Gaffer.
  • Fixed default values for some options and attributes.
  • Documented all nodes.
  • Added support for shading overrides.

API

  • Pass-through connections may now be made for FormatPlug (#1250).
  • Added TaskContextProcessor base class. This enables the development of ExecutableNodes which request their input requirements in different contexts.
  • Added support for directly setting Color3f context values from Python.
  • UI Metadata additions. Many additions were made to the metadata supported by the Node UIs, and the existing UIs were ported to make use of it.
    • “layout:visibilityActivator”
    • “plugValueWidget:type”
    • “compoundDataPlugValueWidget:editable”
    • “boolPlugValueWidget:displayMode”
    • “vectorDataPlugValueWidget:dragPointer”
    • “pathPlugValueWidget:leaf”
    • “pathPlugValueWidget:valid”
    • “pathPlugValueWidget:bookmarks”
    • “fileSystemPathPlugValueWidget:extensions”
    • “fileSystemPathPlugValueWidget:extensionsLabel”
  • ScriptProcedural
    • Added context parameter.
  • BoolWidget
    • Added setDisplayMode()/getDisplayMode() accessors.
  • Added AcceptsDependencyCycles Plug flag. See the Loop node for an example of use.
  • Added FileSystemPathPlugValueWidget.
  • Metadata
    • Fixed inconsistent handling of NULL values.
    • Added methods for deregistering values.
  • Removed GafferUI.SectionedCompoundPlugValueWidget.
  • Activator expressions are now attached to the parent of the plug, rather than always being on the node.
  • Removed StringPlugValueWidget continuousUpdate constructor argument. Use metadata instead.
  • Removed MultiLineStringPlugValueWidget continuousUpdate constructor argument. Use metadata instead.
  • SceneNode
    • Added childNames argument to bounds union methods.
  • SceneAlgo
    • Added bound( const IECore::Object * ) function.

Build

  • Updated to Cortex 9.0.0.
  • Updated to OIIO 1.5.17.
  • Updated to OSL 1.6.8.
  • Updated to 1.2.0-beta.

Incompatibilies

  • Removed Reference::fileNamePlug() (#801). Use Reference::fileName() instead. Use continueOnError = True when loading old scripts.
  • Removed arguments from CompoundDataPlugValueWidget constructor. Use Metadata instead.
  • Removed SectionedCompoundDataPlugVlueWidget. Use LayoutPlugValueWidget and metadata instead.
  • Changed base class for ImagePlug.
  • Changed base class for ScenePlug.
  • Changed base class for SplinePlug.
  • Removed ImageMixinBase. Use ImageProcessor instead.
  • Removed SceneMixinBase. Use SceneProcessor instead.
  • Removed GafferUI.SectionedCompoundPlugValueWidget. Use LayoutPlugValueWidget instead.
  • Activator expressions are now attached to the parent of the plug, rather than always being on the node.
  • Changed ChannelMaskPlugValueWidget constructor arguments.
  • Changed Transform behaviour to fix bug in world space mode, add new modes and change the default mode to local. If you need the old world space behaviour, use the new parent space mode.