# 0.59.8.0

## Features

• Viewer : Added multiple color inspectors. Ctrl+click on an image to create a pixel inspector, or Ctrl+drag to create an area inspector. The image footer now shows the results from all your inspectors, and allows you to add or delete them.

• FilterQuery : Added a new node for querying the results of a filter at a specific location.

• GraphEditor : Added “Annotate…” item to the node context menu. This can be configured with multiple annotation templates using the MetadataAlgo API.

## Improvements

• Set : Added setVariable plug to allow the input filter to be varied depending on the set name.

• TabbedContainer : Added menu button to allow selection of tabs that are not visible due to a lack of horizontal space.

## Fixes

• Arnold : Fixed rendering of encapsulated objects for which automatic instancing is not possible. Examples include curves with non-zero ai:curves:min_pixel_width and meshes with non-zero ai:polymesh:subdiv_adaptive_error.

• PlugValueWidget : Fixed bug that tried to update the widget before all graph edits were complete.

• GraphEditor : Fixed framing of nodes dropped into the editor. This was incorrect when the editor was not at the default zoom.

• OSL Constant : Fixed usage as a surface shader in Arnold.

## API

• Context :

• Added forwards compatibility for methods added to provide enhanced performance in Gaffer 0.60. This allows the same code to be compiled for both Gaffer 0.60 and Gaffer 0.59 (but with only the Gaffer 0.60 build benefiting from improved performance).

• Added support for IECore::InternedString variables in substitute().

• MetadataAlgo : Added functions for managing annotations on nodes.

• MonitorAlgo : Added persistent argument to annotate() functions.