Gaffer 0.60.0.0 #4264
johnhaddon
started this conversation in
General
Gaffer 0.60.0.0
#4264
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Features
Improvements
enabledplug may not be varied using thescene:pathcontext variable. Attempts to do so could result in the generation of invalid scenes. Filters are the appropriate way to enable or disable a node on a per-location basis, and should be used instead. This change yielded a 5-10% performance improvement for a moderately complex scene.hash()method, and reduced overhead inEditableScope.parallelProcessLocations(),parallelTraverse()andfilteredParallelTraverse(). This is particularly noticeable when visiting locations with many children.nameplug.dispatcher.batchSizetorender multiple frames at once. Previously Gaffer's cache was cleared after scene generation
on each frame, but this is now only done for single-frame batches.
Fixes
userProperties.PYTHONHOMEenvironment variable. This fixes problems running Gaffer in python-enabled versions ofgdb.API
EditableScope::set( name, const T * )overload. This should be used in preference to the oldset( name, const T & )method.EditableScope::setAllocated()method to replace the oldset()method in the rare circumstance where allocation is required.variableHash()method, which returns the hash for an individual variable.getIfExists()method, which returnsnullptrif a variable doesn't exist.getAsData()method, which returns a copy of a variable asIECore::Data.TypeDescriptionregistration class, which must be used to register any custom data types used in context variables.reorderChildren()andchildrenReorderedSignal()methods.addModule()method, for adding imports to the serialisation.setSnapIncrement()andgetSnapIncrement()methods.setHoverPositionVisible()andgetHoverPositionVisible()accessors to control an optional position indicator drawn under the pointer.Engine::executeCachePolicy()method which must be implemented by subclasses.channelNameRetc.rootargument tofilteredParallelTraverse( scene, pathMatcher ).userargument toaddAnnotationTemplate().userOnlyargument toannotationTemplates().setVisibleAnnotations()andgetVisibleAnnotations()methods to allow filtering of annotations.removePerformanceAnnotations()andremoveContextAnnotations()methods.affectsProcessedObjectBound(),hashProcessedObjectBound()andcomputeProcessedObjectBound()virtualmethods. These can optionally be overridden by derived classes to compute faster approximate bounds where possible.
Breaking Changes
*row.Ownershipenum. The copy constructor now always performs a full copy.changed()method._copyargument fromget()Python binding.valuetovalues.setPositions()/getPositions()andsetPosition()/getPosition()methods fromSlider. UsesetValues()/getValues()andsetValue()/getValue()instead.positionChangedSignal()fromSlider. UsevalueChangedSignal()instead.PositionChangedReasonfromSlider. UseValueChangedReasoninstead.setPositionIncrement()/getPositionIncrement()fromSlider. UsesetIncrement()/getIncrement()instead._drawPosition()method with_drawValue().cameraBlurplug. This never functioned as advertised, as the regulartransformBluranddeformationBlurblur settings were applied to cameras instead. As before, a StandardAttributes node may be used to customise blur for individual cameras.GafferScene::FilterPlug:matchingPaths,filteredParallelTraverse,Detail::ThreadableFilteredFunctor.filteredParallelTraverse()overload which accepted aFilter *. Passfilter->outPlug()instead.const object &where they used to takeobject &:modulePath()classPath()Serialisation &argument where they used to takeconst Serialisation &:constructor()postConstructor()postHierarchy()postScript()repr()now takes aSerialisation *where it used to take aconst Serialisation *.valueRepr()now has an optionalserialisationargument.NodeValueChangedSignal->LegacyNodeValueChangedSignalPlugValueChangedSignal->LegacyPlugValueChangedSignalNodeValueChangedSignal2->NodeValueChangedSignalPlugValueChangedSignal2->PlugValueChangedSignalserialisationrequired argument tometadataSerialisation().metadataModuleDependencies()method. Module dependencies are now declared automatically bymetadataSerialisation().SourceSet.Standard. This executes expressions behind a lock, and can cause hangs if buggy upstream nodes perform TBB tasks without an appropriateTaskIsolationorTaskCollaborationpolicy. In this case, theGAFFER_PYTHONEXPRESSION_CACHEPOLICYenvironment variable may be set toLegacyorTaskIsolationwhile the bugs are fixed.plugFlagsChangedSignal(). We aim to phase flags out completely in future, and none of the current flags are expected to be changed after construction.storageargument toprocessContext()method.[[deprecated]]. These were already documented as deprecated in Gaffer 0.59.0.0, but their use will now trigger compiler warnings. Please use the class-level typedefs instead, for examplePlug::Iteratorin place ofPlugIterator.applyCameraGlobals()are still available, but have been moved to SceneAlgo.annotate()overloads. Source compatibility is retained.filterinput, so that a filter must now be connected to specify the objects to modify.adjustBoundsplug.Build
This discussion was created from the release Gaffer 0.60.0.0.
Beta Was this translation helpful? Give feedback.
All reactions