forked from appleseedhq/gaffer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
4478 lines (3030 loc) · 209 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# 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 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).
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.
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.
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.
# 0.14.0.0
==========
UI
-----------------------------------------------------------------------
- NodeGraph
- Improved "Select Affected Objects" menu item. This is now available
on filters as well as on scene processors.
- Added support for dragging objects from the Viewer and SceneHierarchy
and dropping them onto scene processors and PathFilters, to specify
the affected objects.
- Dragging onto a node replaces the current paths.
- Shift+Drag adds to the current paths.
- Control+Drag removes from the current paths.
- Added plug context menu for moving promoted plugs on Boxes.
- NodeEditor
- Added "Select Affected Objects" menu item in the tool menu for
filters and scene processors.
- UIEditor
- Added + button for adding plugs, and - button for deleting them.
- Added the ability to create nested sections and drag+drop plugs
between them.
- Viewer
- Fixed grid and gnomon menus.
Core
-----------------------------------------------------------------------
- Expression
- Added support for setting multiple plugs from one
expression (#1315).
- Added support for vector, color and box outputs (#1315).
- Added support for assigning to plugs within conditional
branches (#1349).
Scene
-----------------------------------------------------------------------
- Improved ParentConstraint so it is acts more like the equivalent
parenting operation, and maintains the local transforms of the
objects being constrained. Note that this is a change of behaviour,
but one that we feel is much for the better.
- Fixed ShaderAssignment to allow referencing of promoted shader input
plugs.
API
-----------------------------------------------------------------------
- Added `parallelTraverse()` and `filteredParallelTraverse()` methods
to SceneAlgo. These make it trivial to traverse all locations in a
scene using multiple threads.
- Added inputTransform argument to `Constraint::computeConstraint()`.
- Removed TransformPlugValueWidget.
- Used Plug rather than CompoundPlug in several places. CompoundPlug
is being phased out because the Plug base class is now perfectly
capable of having child plugs.
- `ExecutableNode::dispatcherPlug()`
- LocalDispatcher dispatcher plug
- `Shader::parametersPlug()`
- Fixed support for boost python object methods as menu commands.
- Pointer
- Fixed `registerPointer()` method.
- Added binding for `registerPointer()`.
- Added `scoped` argument to `Signal.connect()` python bindings.
- Added `SignalClass` for binding signals, and deprecated the old
`SignalBinder`.
- Added support for binding signals with 4 arguments.
- Added `LazyMethod.flush()` method.
- Fixed update bug in `PathListingWidget.setSelectedPaths()`.
- Added support for "nodule:type" metadata to control the type
of nodule created for a plug. This should be used in preference
to `Nodule::registerNodule()`, which has been deprecated.
- Added support for modifying CompoundNodule orientation, spacing
and direction using plug metadata.
- Improved signalling of instance metadata changes.
- Added default arguments for ValuePlug constructor arguments.
Incompatibilities
-----------------------------------------------------------------------
- Changed Constraint::computeConstraint() function signature.
- Changed ParentConstraint behaviour to include the local transform of the constrained object.
- Removed TransformPlugValueWidget.
- Changed plug type returned by ExecutableNode::dispatcherPlug().
- Changed Dispatcher::SetupPlugsFn signature.
- Changed ExecutableNode::dispatcherPlug() signature.
- Changed Shader::parametersPlug() to Plug rather than CompoundPlug.
- Removed asUserPlug arguments from Box promotion methods. Plugs are
now always promoted directly under a box, and never as user plugs.
- Changed signature of `Nodule::registerNodule()` when registering a subclass.
- Changed signature of CompoundNodule constructor, which now accepts a Plug
rather than CompoundPlug.
- Replaced UIEditor setSelectedPlug()/getSelectedPlug() methods with
setSelection()/getSelection().
- Added arguments to Metadata signals.
# 0.13.1.0
==========
Apps
-----------------------------------------------------------------------
- Test app can now run multiple named test cases, specified via the
"testCases" command line argument.
- Fixed errors caused by special characters in .gfr filenames.
UI
-----------------------------------------------------------------------
- Fixed unwanted viewport scrolling when dragging from one NodeGraph
into another, or from the NodeEditor across a NodeGraph (#1321).
- Hid Viewer diagnostic modes for unavailable renderers.
- Fixed SceneInspector inheritance and history windows, which were broken
in 0.13.0.0.
- Fixed ObjectWriter UI, which was broken in 0.13.0.0.
OSL
-----------------------------------------------------------------------
- Added utility shaders for float maths and noise.
Image
-----------------------------------------------------------------------
- Fixed bug in DeleteChannels::hashChannelNames().
Houdini
-----------------------------------------------------------------------
- Added support for Houdini 14 (requires Cortex 9.0.0-b7).
API
-----------------------------------------------------------------------
- Added GafferUI._qtObject method.
- PlugLayout
- Added layoutSections() method.
- Added section argument to layoutOrder() method.
Build
-----------------------------------------------------------------------
- Added support for Boost >= 1.54.
- Fixed Appleseed packaging. We were omitting the directory containing
the Cortex display driver.
# 0.13.0.0
==========
Apps
-----------------------------------------------------------------------
- Improved error message for execute app.
Core
-----------------------------------------------------------------------
- Improved Dispatcher
- Stopped merging of identical tasks from different nodes.
We decided that this auto-merging caused more confusion than it
was worth, and it may actually have prevented useful executable
graphs which would have been intentionally running identical
tasks at different points in the graph.
- Added cycle detection.
UI
-----------------------------------------------------------------------
- Avoided unnecessary rebuilds of MenuBar menus. This can improve
performance for slow-to-build custom menus.
- Added font file browser to the Text node.
- Improved NodeGraph plug tooltips - they now contain the plug description.
- Plugs may now be promoted to Box level via the right click plug
menu in the NodeGraph.
- Fixed search box in file open dialogues.
- Improved dialogues for picking scene paths
- Opened in tree mode rather than list mode
- Removed unnecessary columns
- Added filtering to display only cameras where appropriate
- CustomAttributes/DeleteAttributes
- Added right click menu for quickly adding attributes from the
currently selected object.
- Viewer
- Added shading mode menu. This allows the default shading to be overridden
with another shader. Currently configured menu entries allow visualisation
of shader assignments and visibility for RenderMan, Arnold and Appleseed
(#1037).
- Improved error handling.
- SceneInspector
- Improved shader display in attributes section. The node colour of the
assigned shader is used as the background colour.
- Improved performance (#1050).
- Node UIs
- Added tool menu to NodeEditor
- Added support for metadata-driven activators.
- Added support for metadata-driven section summaries.
- Added support for metadata-driven custom widgets.
Scene
-----------------------------------------------------------------------
- InteractiveRender
- Fixed crash when deleting a running InteractiveRender.
- Fixed coordinate system update problem.
- Fixed bug preventing filter plugs from being promoted to Boxes.
- Improved set computation
- Separated the computation of sets from the computation of globals.
This should prevent delays caused when calculating large unneeded
sets along with the globals.
- Made sets compute individually on demand. This should reduce the
overhead of large unneeded sets.
- Added "sets" plug to source nodes, to allow set membership to
be defined at creation time.
- Optimised SetFilter hashing.
- Prevented wildcards from being used in the Set node (#1307).
- Made Parameters node compatible with subclasses of Light/Camera/ExternalProcedural,
such as those used internally at IE.
- Shader node now adds "gaffer:nodeColor" entry into the blind data
for the shader in the scene - this allows UI components to display
the colour as appropriate.
- Added AttributeVisualiser node. This applies an OpenGL shader to
visualise the values of attributes and shader assignments.
Appleseed
-----------------------------------------------------------------------
- Fixed typo in AppleseedOptions plug names.
Documentation
-----------------------------------------------------------------------
- Improved doxyen documentation configuration.
- Documented all GafferScene nodes.
- Documented all GafferOSL nodes.
- Documented all GafferRenderMan nodes.
- Documented all GafferArnold nodes.
- Added support for Arnold "desc" metadata items.
API
-----------------------------------------------------------------------
- Refactored Node UI to provide all features via the PlugLayout and
Metadata entries.
- Added support for a "fixedLineHeight" metadata entry in
MultiLineStringPlugValueWidget.
- Added support for "layout:section" metadata - this allows the
layout to be split into sections, and will provide the basis for
replacing the Sectioned* widgets, adding support for sections in
the UIEditor, and replacing the section management code in the
StandardNodeUI.
- Added support for Metadata activators - these allow the editability
of a plug to be driven by the values of other plugs.
- Added support for section summaries driven by Metadata.
- Deprecated SectionedCompoundDataPlugValueWidget.
- Deprecated SectionedCompoundPlugValueWidget.
- Improved layoutOrder() API. It now returns the ordered plugs
for a specific parent, rather than accepting a possibly unrelated
list of plugs.
- Added support for arbitrary custom widgets to be inserted into
layouts.
- Reimplemented StandardNodeUI using PlugLayout.
- Fixed ExecutableNode::requirements() binding.
- Added support for fixing the height (measured in number of lines)
of the MultiLineTextWidget.
- Fixed support for functools.partial( classMethod ) commands in
Menus.
- ScenePath : added setScene()/getScene() accessors.
- Added SceneFilterPathFilter class. This tongue twister uses any of
the GafferScene::Filter nodes to implement a Gaffer::PathFilter to
filter the children of a GafferScene::ScenePath.
- Added ScenePath::createStandardFilter() method.
- Fixed crash when a Path is deleted before its PathFilter.
- Added PathChooserDialogue.pathChooserWidget() method.
- Added ScenePathPlugValueWidget.
- Gave precedence to exact plug matches over wildcard matches in Metadata
queries.
- Added addition controls over Context substitution methods.
- Improved StringPlug with additional control over substitutions.
- Improved PlugType to support box and bool plugs.
- Added ValuePlugSerialiser::repr() method. This is intended to allow
derived class bindings to base their own `repr()` implementation on
the ValuePlug one.
- Made TypedObjectPlug compatible with instantiation for new types
outside of Gaffer. This is achieved by moving the implementation into a
.inl file which may be included as necessary. Added TypedObjectPlugClass
to simplify binding such instantiations.
- Implemented PathMatcherData::hash().
- Added GafferScene::PathMatcherDataPlug.
- Reimplemented SceneNode sets API.
- Added GafferUI.LazyMethod for deferring widget method calls until
visible/idle.
Incompatibilities
-----------------------------------------------------------------------
- StringPlug
- Reimplemented as a standalone class
- TypedPlug<string> is no longer instantiated (binary incompatibility).
- Must now include "Gaffer/StringPlug.h" rather than "Gaffer/TypedPlug.h"
(source incompatibility).
- GafferCortex
- Removed BoxParameterHandler and CompoundNumericParameterHandler. Their
functionality is now covered by TypedParameterHandler.
- GafferScene
- Reimplemented sets API.
- Removed SceneReader "sets" plug.
- GafferAppleseed
- Fixed typo in AppleseedOptions plug names.
- PlugLayout
- Changed layoutOrder() signature.
- StandardNodeUI
- Removed DisplayMode enum.
- Removed displayMode constructor argument.
- Removed _header() method.
- Removed _tabbedContainer() method.
Build
-----------------------------------------------------------------------
- Updated default dependency versions
- OIIO 1.5.13
- OSL 1.6.3dev
- LLVM 3.4
- Alembic 1.5.8
- Cortex 9.0.0-b6
- Added bundled Appleseed renderer
# 0.12.1.0
==========
Core
-----------------------------------------------------------------------
- Fixed hangs introduced in 0.12.0.0. These were seen when stopping
Appleseed renders and when ganging plugs in Caribou.
- Fixed thread-related crashes introduced in 0.12.0.0. These have not
been observed in the wild, but caused intermittent failures in the
unit tests.
UI
-----------------------------------------------------------------------
- Improved error messages output by OpDialogue.
- Fixed unwanted auto-expansion in SceneHierarchy panel.
Scene
-----------------------------------------------------------------------
- Added current scene location to error messages emitted by SceneProcedural.
- Reduced memory usage for sets by 10%.
- Optimised set computations. This reduces globals computation time for
a complex production scene by 60%.
- Fixed PathFilter wildcard matching bug.
OSL
-----------------------------------------------------------------------
- Added metadata presets support for color and point parameters.
API
-----------------------------------------------------------------------
- Added iterators to GafferScene::PathMatcher.
- Added GafferUI.EditMenu.selectionAvailable() method.
# 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
-----------------------------------------------------------------------
- Improved indicator for non-default plug values (#1216).
- Added copy/paste entries to plug menus (#601).
- SceneInspector now shows parameters for ExternalProcedural and
Light objects.
- Added available set names to Set node "sets" plug popup menu.
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).
- NodeAlgo
- Added `isSetToUserDefault( plug )` function.
- RendererAlgo
- Added `outputAttributes()` method.
- ImageNode
- `hash*()` and `compute*()` 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()`.
- Menu
- Added support for `functools.partial( WeakMethod )`
in menu commands.
- 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.
# 0.11.0.0
=========
Image
-----------------------------------------------------------------------
- Image nodes are now documented
- RemoveChannels renamed to DeleteChannels
Scene
-----------------------------------------------------------------------
- Fixed a bug in the InteractiveRender that was causing a crash when the scene child names changed.
# 0.10.1.0
=========
UI
-----------------------------------------------------------------------
- Fixed FilterPlugValueWidget filter menu
Scene
-----------------------------------------------------------------------
- Fixed dirty propagation for globals in the camera node
- IPR now blocks the UI while it's starting up, and is more selective
about sending scene edits.
Core
-----------------------------------------------------------------------
- Fixed dirty propagation bug in expressions
# 0.10.0.0
=========
Core
-----------------------------------------------------------------------
- Reimplemented paths framework in C++ (#1190). This gives much
improved performance - 10x or more speed improvements in the
SceneHierarchy panel.
- Fixed subprocess hangs seen when dispatching renders inside Maya.
- Restored compatibility with references from prior to version 0.8.0.0.
UI
-----------------------------------------------------------------------
- Added bookmarks system for NodeGraph (#849).
- Bookmark nodes using the right-click node context menu
- Connect plugs to bookmarked nodes using the right-click plug
context menu.
- Added NodeGraph Ctrl+Click to select all downstream nodes (#941).
- Added additional "Edit/Select Connected" menu items
- Fixed "Edit/SelectConnected" menu items to ignore invisible nodes.
- Fixed "Edit/SelectAll" menu item to ignore invisible nodes (#1207).
- Highlighted plugs at non-default values in the NodeEditor (#1216).
- SceneInspector
- Significant performance improvements.
- Added name based filtering for options and attributes (#1159).
- Added query caching.
- Fixed bug whereby Widget.setVisible( notABool ) could cause problems.
- Fixed clearing of StandardNodeGadget errors for non-DependencyNodes.
Scene
-----------------------------------------------------------------------
- Added "mode" plug to Set node. This allows paths to be added to or
removed from existing sets, in addition to the old behaviour of
creating a new set (or replacing an existing one of the same name).
- Added ClippingPlane node.
- Added "enabled" plug to Filter nodes (#1196).
- Added FilterSwitch node (#1197).
- Added "name" plug to Duplicate node, to provide control over the
names given to the duplicates (#1200).
Appleseed
-----------------------------------------------------------------------
- Added photon target attribute.
- Added sampler option.
- Synced default options with new Appleseed defaults.
Cortex
-----------------------------------------------------------------------
- Added UI hint to control the visibility of the header in the
ParameterisedHolder node UI.
API
-----------------------------------------------------------------------
- GraphGadget
- Added degreesOfSeparation argument to upstreamNodeGadgets() method.
- Added downstreamNodeGadgets() and connectedNodeGadgets() methods.
- EditMenu
- Added scope() method. This should be used by custom edit menu
commands to ensure they operate on the right portion of the
node graph.
- CompoundVectorParameterValueWidget
- Added support for "showIndices" parameter user data.
- PathMatcher
- Added addPaths() and removePaths() methods, each taking a second
PathMatcher to provide the paths.
- Serialisation
- Made classPath() and modulePath() methods compatible with passing
a class as well as an instance.
- PathListingWidget
- Added setSortable() and getSortable() methods.
- Added MatchPatternPathFilter
- Added bindings for SceneAlgo camera() and shutter() functions.
- Metadata
- Added control over persistence of instance values.
- Added preprocessor macros for gaffer version numbers.
Incompatibilities
-----------------------------------------------------------------------
- Path
- The info API has been replaced with a property API. Emulation
for the old API exists, but it has been deprecated.
- Properties must derive from RunTimeTyped, whereas info could
contain any python type.
- Subclasses now _must_ implement the copy() method.
- PathListingWidget
- Column python class has been replaced with several specialised
C++ subclasses. It is no longer possible to derive from Column
in python.
- GraphGadget
- Added argument to upstreamNodeGadgets() method.
- GafferScene::Filter
- Renamed "match" plug to "out". Backwards compatibility is
provided by a __getattr__ alias in Python.
Build
-----------------------------------------------------------------------
- Updated public build to use Cortex 9.0.0-b4.
- libGafferUI now links with Qt. This must be considered when building
Gaffer to be hosted inside other applications.
- Requires subprocess32 python module.
- Added subprocess32 to dependencies build process.
# 0.9.0.0
=========
This is primarily a bugfix release.
Core
-----------------------------------------------------------------------
- Documented all nodes and plugs.
- Improved Reference workflow
- Boxes exported for referencing contain new default values for all
promoted plugs to match their current values on the Box.
- When reloading a reference, only values the user has changed from
their defaults will be kept. Other values will be updated from the
new reference.
- Box metadata is included when exporting for referencing. This
means that colours and descriptions set via the UIEditor will
be transferred onto any Reference nodes which load the exported
reference (#1171).
- Added "-threads" command line argument to Gaffer.Application
- Fixed "gaffer execute" error handling
Cortex
-----------------------------------------------------------------------
- Documented all nodes and plugs.
Scene
-----------------------------------------------------------------------
- Added hack for controlling TBB concurrency from SceneProcedural
- Using the GAFFERSCENE_SCENEPROCEDURAL_THREADS environment variable
RenderMan
-----------------------------------------------------------------------
- Fixed hangs caused by deleting or reconnecting a paused
InteractiveRenderManRender node.
Appleseed
-----------------------------------------------------------------------
- Fixed render threads and texture memory options.
Image
-----------------------------------------------------------------------
- Fixed bug which prevented serialisation of read only FormatPlugs.
UI
-----------------------------------------------------------------------
- Fixed creation of expressions for BoolPlugs.
- Fixed context used by scene view camera chooser.
API
-----------------------------------------------------------------------
- Added Metadata::registerNode() method. This allows all the metadata
for a node and its plugs to be registered with a single function call
(#1160).
- Added GafferTest.TestCase.assertNodesAreDocumented().
- Serialisation
- Added serialisation argument to `Serialiser::constructor()`.
- Added Serialisation::parent() accessor.
- ValuePlug
- Simplified handling of default values.
- Added isSetToDefault() method.
- Made CompoundDataPlug::addMember() set default value for name plug
(#935).
- Added Python bindings for tbb::task_scheduler_init
Incompatibilities
-----------------------------------------------------------------------
- Added argument to virtual method `Serialiser::constructor()`.
- Changed layout of ValuePlug classes.
- Removed virtual overrides from some ValuePlug classes.
- Added virtual method to ValuePlug.
Build
-----------------------------------------------------------------------
- Updated public build to use Cortex 9.0.0-b3.
- Included Shiboken module in release packages.
# 0.8.2.0
=========
Core
-----------------------------------------------------------------------
- Prevented errors in Metadata slots from stopping other slots running.
Scene
-----------------------------------------------------------------------
- Fixed BranchCreator dirty propagation.
RenderMan
-----------------------------------------------------------------------
- Add trace bias in RenderManAttributes.
Image
-----------------------------------------------------------------------
- Stopped display transforms hardcoding OCIO "linear" colour space.
- Fixed dirty propagation for Merge node.
UI
-----------------------------------------------------------------------
- Fixed evaluation time of look-through cameras in the Viewer.
- Added camera name to resolution gate overlay.
- Removed redundant render requests from CompoundNodule.
- Simplified Gadget render requests when children are added/removed
- Prevented duplicate errors on StandardNodeGadget tooltips.
- Fixed CompoundEditor lifetime bug
- Setting DispatcherUI frameRange widget text in PlaybackRange mode.
- Made NameWidget replace " " with "_" automatically.
API
-----------------------------------------------------------------------
- Removed GafferBindings::CatchingSlotCaller.
- Added Gaffer::CatchingSignalCombiner class.
- Added Gadget::requestRender() method.
Build
-----------------------------------------------------------------------
- Fixed GafferRenderMan public build.
# 0.8.1.0
=========
Core
-----------------------------------------------------------------------
- Fixed ComputeNodeWrapper exception handling.
UI
-----------------------------------------------------------------------
- Fixed GafferUI crashes seen at Python shutdown.
- Added support for hiding some fields of CompoundNumericPlugValueWidgets.
- Update DispatcherUI; can dispatch box with promoted requirement.
- Fixed crashes when deleting a node immediately after it errored.
Scene
-----------------------------------------------------------------------
- Fixed light visibility bug.
- Fixed coordinate system visibility bug.
- Added visible() function to SceneAlgo.h.
- Added GL FacingRatio shader
RenderMan
-----------------------------------------------------------------------
- Added "vector2" widget annotation support for RenderMan shaders.
Build
-----------------------------------------------------------------------
- Stopped installing the python module by default
- Moved installDir to /tmp for local IE builds.
- Fixed release script to ignore GAFFER_OPTIONS_FILE environment variable.
- Updated IE publicDependenciesBuild script.
- Enabled testing of UI modules on Travis CI.
- Added debug output to installDependencies.py.
-----------------------------------------------------------------------
# 0.8.0.0
=========
Apps
-----------------------------------------------------------------------
- Python
- Added support for executing files with arbitrary extensions.
- Properly handled `sys.exit()` usage from within a script.
- Updated sys.argv so `gaffer python myScript.py` behaves like
`python myScript.py`.
Core
-----------------------------------------------------------------------
- Made small optimisations to the computation engine.
UI
-----------------------------------------------------------------------
- Added "layout:widgetType" metadata entry.
- Improved image rendering quality.
- Added error display in the node graph (#1115).
- Added menu item for applying Random node to IntPlugs.
- Fixed Box UI error when connecting external BoolPlug to internal IntPlug.
Scene
-----------------------------------------------------------------------
- Removed support for attribute caches.
- Optimised SceneReader hashes.
- Improved hash computation for many node types. This should improve
cache memory usage and speed.
- Fixed SceneReader for invalid files and paths. Previously it would
error on the first attempt, but either silently fail or crash on
subsequent attempts.
- Optimised PathMatcher construction.
- Multithreaded child procedural instantiation in SceneProcedural.
RenderMan
-----------------------------------------------------------------------
- Added support for a "nodeColor" annotation.
Image
-----------------------------------------------------------------------
- Optimised ImageReader. Reduced runtime of ImageReader->ImageTransform
benchmark by nearly 40%.
- Fixed thread-safety bug in ImageReader.
OSL
-----------------------------------------------------------------------
- Added UI support for OSL "help", "label", "divider", "widget" and
"options" metadata entries.
Appleseed
-----------------------------------------------------------------------
- Added visibility attributes to AppleseedAttributes node.
API
-----------------------------------------------------------------------
- Added outputsToIgnore argument to GafferTest.TestCase.assertHashesValid().
- Added NodeAlgo support for plug presets specified en masse via arrays.
- Added Node::errorSignal().
- Added tokenize() function to StringAlgo.h.
- Added support for array metadata in OSLShader.
- Simplified OSLShader::*Metadata() python return types.
- Added Python bindings exposing the OSL version.
- Removed Source node.
- Removed FileSource node.
- Detemplatized ObjectSource.
- Added GafferUI.LayoutPlugValueWidget. This is entirely metadata-driven,
and will be used to slowly replace legacy CompoundPlugValueWidget UIs.
- Deprecated CompoundPlugValueWidget.
- Fixed drawing of ImageGadget children.
- Added Gadget::executeOnUIThread() method.
Build
-----------------------------------------------------------------------
- Updated README with simplified build instructions.
- Added support for OSL 1.6.
- Requires Cortex 9.0.0-b2.
- Added Qt headers to Gaffer packages.
- Fixed TBB compilation on OS X.
Incompatibilities
-----------------------------------------------------------------------
- Simplified OSLShader::*Metadata() python return types.
- Removed support for attribute caches.
- Removed Source node.