Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update some GUI for Arnold #1

Open
wants to merge 262 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
262 commits
Select commit Hold shift + click to select a range
19099f6
Exported symbols for src/GafferImageUIBindings
boberfly May 10, 2017
af834ea
Exported symbols for src/GafferScene
boberfly May 10, 2017
4335e64
Exported symbols for src/GafferSceneBindings
boberfly May 10, 2017
83a8f9f
Exported symbols for src/GafferSceneUIBindings
boberfly May 10, 2017
74d5701
Exported symbols for src/GafferOSL
boberfly May 10, 2017
2005307
Exported symbols for src/GafferArnold
boberfly May 10, 2017
6776667
Exported symbols for src/GafferRenderMan
boberfly May 10, 2017
aa48413
Add missing exports
boberfly Jul 4, 2017
01678ac
GafferBindings exports
boberfly Dec 27, 2017
b816547
GafferImage exports
boberfly Dec 27, 2017
b9ed234
GafferScene exports
boberfly Dec 27, 2017
884eb57
GafferCortex exports
boberfly Dec 27, 2017
daee19d
Missing header
boberfly Dec 27, 2017
796a257
Added CMake files and batch file to build on windows
boberfly Dec 28, 2017
d0f951a
Using std::numeric_limits instead of Imath::limits due to MSVC linkag…
boberfly Dec 28, 2017
2189f24
'and' to '&&'
boberfly Dec 28, 2017
0dfe5e2
Various MSVC fixes
boberfly Dec 28, 2017
9d669e8
Public/private workaround for MSVC
boberfly Dec 28, 2017
7df2c13
add cross-platform path separators
ericmehl Apr 13, 2018
033b08a
Startup fixes for windows, added batch launcher and env setup
boberfly Dec 29, 2017
36bba38
Python fixes/workarounds for windows
boberfly Dec 29, 2017
4c9aed9
msvc can't compile with IMath
ericmehl May 18, 2018
89f9063
Windows doesn't support getpwuid and getgrgid
ericmehl May 18, 2018
7807a26
change readonly testing to be cross-platform
ericmehl Mar 25, 2018
e8f4d6a
make path separators cross platform
ericmehl Apr 11, 2018
93ac4b2
make machine name cross platform
ericmehl Apr 11, 2018
1b78236
add symbol exports and WIN32 specific includes
ericmehl Apr 11, 2018
67e3228
cross-platform environment path separators
ericmehl Apr 12, 2018
87b508e
restrict process naming to Linux and Mac
ericmehl Apr 12, 2018
e9e2e3b
MSVC needs boost namespace specified
ericmehl Apr 13, 2018
291d0e9
remove export so msvc can find calls directly in the header
ericmehl Apr 13, 2018
ffac534
On Windows filename().c_str() is a wchar_t so we need an extra conver…
ericmehl May 18, 2018
5a674bf
MSVC needs <algorithm> to find std::min and std::max
ericmehl May 22, 2018
f6f968a
all code lives in the header so remove the export. With the GAFFER_EX…
ericmehl May 23, 2018
7358104
export missing symbols
ericmehl Jul 8, 2018
68d0cee
build Windows cmake script directly from contrib instead of copying i…
ericmehl Jul 9, 2018
7e7e21f
setdlopenflags is not available on windows
ericmehl Jul 18, 2018
911d15e
convert OSL shader searching to cross platform
ericmehl Jul 18, 2018
d2b0154
revert to subprocess on Windows per recommended usage of subprocess32…
ericmehl Jul 18, 2018
b081569
Revert "change readonly testing to be cross-platform"
ericmehl Jul 26, 2018
c82988c
Revert "Revert "change readonly testing to be cross-platform""
ericmehl Jul 26, 2018
02288ef
fix readonly test
ericmehl Jul 26, 2018
e27b43b
add required environment variables to build script
ericmehl Jul 27, 2018
d9fe5c7
Windows subprocess.Popen doesn't support start_new_session
ericmehl Aug 3, 2018
0686c52
gcc and msvc define size_t slightly differently, use the standard lib…
ericmehl Aug 3, 2018
a48fa4f
Windows needs gaffer.bat to run background dispatch jobs
ericmehl Aug 6, 2018
af85159
temporarily don't load Appleseed while a crash is being sorted out
ericmehl Aug 6, 2018
db05a52
get test running (and failing) on Windows
ericmehl Aug 22, 2018
88032c5
pass tests that Windows does not support
ericmehl Aug 22, 2018
09d8692
add test to make sure the owner is not empty (this was causing a fals…
ericmehl Aug 22, 2018
85c35a8
Windows can't delete the temp folder (in the GafferTest.TestCase.tear…
ericmehl Aug 23, 2018
22a57dd
remove unnecessary test in favor of equivalent test in existing TestU…
ericmehl Aug 23, 2018
059511f
convert existing tests to work cross-platform
ericmehl Aug 23, 2018
4e76a91
fix typo
ericmehl Aug 23, 2018
72eca0e
add nativeString function to return path values conforming to OS requ…
ericmehl Aug 23, 2018
55c5f8d
convert back slashes to forward slashes when creating a path
ericmehl Aug 24, 2018
790b4e8
make sure call to ls uses filesystem native path
ericmehl Aug 24, 2018
7d82b7c
Leaving out symlink support on Windows (it's only available to admini…
ericmehl Aug 24, 2018
1945995
dump sanitizing string in favor of overriding the setFromString to al…
ericmehl Aug 24, 2018
33b99f4
add proper handling of drive letter paths for Windows
ericmehl Aug 26, 2018
2f4eea7
add Windows code to get file owner. Note that the file owner related …
ericmehl Aug 26, 2018
ab11be3
fix UNC paths - need to make sure nativePath starts with "\\" and tha…
ericmehl Aug 26, 2018
1235d1b
add tests for Windows paths and POSIX paths formatting
ericmehl Aug 26, 2018
a099a4f
use full path text to include the root, which on Windows may be the d…
ericmehl Aug 26, 2018
afe7070
Revert "use full path text to include the root, which on Windows may …
ericmehl Sep 24, 2018
4dfef49
filter for a drive letter pattern at the start of a path and make it …
ericmehl Sep 24, 2018
015191a
add the root to the start of a file path if it isn't already there
ericmehl Sep 24, 2018
2d53435
fix error with POSIX getting file owner
ericmehl Sep 28, 2018
6271744
fix typo from last commit
ericmehl Sep 28, 2018
c6d098c
okey dokey, fix that typo again
ericmehl Sep 28, 2018
a585120
test to make sure we arent' looking for a name outside the existing a…
ericmehl Sep 30, 2018
4b61bbc
add simple test to check truncating
ericmehl Sep 30, 2018
73bc22a
Revert "add simple test to check truncating"
ericmehl Sep 30, 2018
a9eeb71
adapt paths for cross-platform testing
ericmehl Sep 30, 2018
6c93ce4
GAFFEROSL_CODE_DIRECTORY must be a single directory
ericmehl Oct 6, 2018
1828317
fix OSL expressions not working because it wasn't splitting the OSL p…
ericmehl Oct 6, 2018
00a1388
REBASE: merge this with previous path.cpp change
ericmehl Nov 16, 2018
328f6c3
export for Windows linking
ericmehl Nov 16, 2018
1956d48
correct cmake syntax
ericmehl Nov 16, 2018
47ad421
split OSL paths from the environment based on OS native separators
ericmehl Nov 17, 2018
1a2df38
Revert "convert OSL shader searching to cross platform"
ericmehl Nov 17, 2018
b6b5b17
handle Windows paths properly for OSL shaders and conform to forward …
ericmehl Nov 17, 2018
9e557ea
conform OSLCode shader path to forward slash standard
ericmehl Nov 17, 2018
d51923b
make gaffer batch file more like Linux version
ericmehl Nov 17, 2018
5620ea3
remove out of date comment REBASE
ericmehl Nov 23, 2018
cc33364
gaffer.bat should return with non-zero value if there are errors
ericmehl Nov 28, 2018
561d253
Exported symbols for src/GafferCortex
boberfly May 10, 2017
b13f1ad
Exported symbols for src/GafferImage
boberfly May 10, 2017
0d8943c
Add missing exports
boberfly Jul 4, 2017
400ad40
GafferImage exports
boberfly Dec 27, 2017
d19ae19
GafferCortex exports
boberfly Dec 27, 2017
09d4808
Missing header
boberfly Dec 27, 2017
32fbf8d
Added CMake files and batch file to build on windows
boberfly Dec 28, 2017
4f202ea
Startup fixes for windows, added batch launcher and env setup
boberfly Dec 29, 2017
855aaff
make path separators cross platform
ericmehl Apr 11, 2018
eadaa4b
Revert "change readonly testing to be cross-platform"
ericmehl Jul 26, 2018
543f49b
Revert "Revert "change readonly testing to be cross-platform""
ericmehl Jul 26, 2018
b40abb5
temporarily don't load Appleseed while a crash is being sorted out
ericmehl Aug 6, 2018
70ac8ae
add test to make sure the owner is not empty (this was causing a fals…
ericmehl Aug 22, 2018
da5b20b
Windows can't delete the temp folder (in the GafferTest.TestCase.tear…
ericmehl Aug 23, 2018
4efaca1
remove unnecessary test in favor of equivalent test in existing TestU…
ericmehl Aug 23, 2018
06d383d
convert existing tests to work cross-platform
ericmehl Aug 23, 2018
be29a35
add proper handling of drive letter paths for Windows
ericmehl Aug 26, 2018
b4ea8a5
fix UNC paths - need to make sure nativePath starts with "\\" and tha…
ericmehl Aug 26, 2018
684961f
use full path text to include the root, which on Windows may be the d…
ericmehl Aug 26, 2018
4362291
Revert "use full path text to include the root, which on Windows may …
ericmehl Sep 24, 2018
1233cb1
add simple test to check truncating
ericmehl Sep 30, 2018
c006d24
Revert "add simple test to check truncating"
ericmehl Sep 30, 2018
d5b34af
GAFFEROSL_CODE_DIRECTORY must be a single directory
ericmehl Oct 6, 2018
926f37a
correct cmake syntax
ericmehl Nov 16, 2018
c2aba93
make gaffer batch file more like Linux version
ericmehl Nov 17, 2018
bbee0cd
FileSystemPathPlug : add new plug for cross-platform file paths
ericmehl Nov 23, 2018
00c1570
Tests : subprocess32 isn't supported on Windows
ericmehl Nov 26, 2018
a482eb7
don't display environment variable setting in batch file
ericmehl Nov 26, 2018
770700f
.gitignore : Ignore Windows intermediate files
ericmehl Nov 26, 2018
3f76ba9
FileSystemPathPlug : convert StringPlugs
ericmehl Nov 28, 2018
044a14c
remove incorrect library paths causing lots of warnings
ericmehl Nov 30, 2018
d664a72
GafferImageTest : compile module for running tests on Windows
ericmehl Dec 4, 2018
654e868
load test files cross-platform
ericmehl Dec 4, 2018
aeca1d1
on Windows the %GAFFER_ROOT% variable contains a parent directory (..…
ericmehl Dec 4, 2018
ab23fd9
ImageReaderTest : adapt for Windows
ericmehl Dec 7, 2018
33459de
UserPlugs : add FileSystemPathPlug and set default widget to FileSyst…
ericmehl Dec 15, 2018
ae9aa4b
ImageWriterTest : adapt for Windows
ericmehl Dec 15, 2018
86857cd
FileSystemPath : return correct owner for single files
ericmehl Dec 21, 2018
87051f1
buildWindows : add ability to build other types than release
ericmehl Dec 23, 2018
9fe7213
Backups : add Windows path compatibility
ericmehl Dec 28, 2018
3ec0306
Gaffer Windows : make sure the built-in Python is used and handle err…
ericmehl Jan 2, 2019
9083658
Windows Build : use JOM for faster builds
ericmehl Jan 2, 2019
421b869
Windows Build : add appveyor configuration
ericmehl Jan 6, 2019
c592736
change build batch file to be consistent with Cortex
ericmehl Jan 6, 2019
4ca7932
remove artifacts archive so it isn't packaged with release
ericmehl Jan 7, 2019
95f94e1
Arnold : correct symbol exports
ericmehl Jan 31, 2019
01bdea5
gaffer.bat : refactor to prepend / append environment variables
ericmehl Jan 31, 2019
1174986
gaffer.bat : add GAFFER_EXTENSION_PATHS to environment variables
ericmehl Feb 3, 2019
b63acc1
GafferArnoldUI : use AtStringStruct
ericmehl Feb 8, 2019
da63c7e
Windows Build : remove conditional Arnold building
ericmehl Feb 8, 2019
7d0d648
GafferArnold : include IECoreArnoldPreview in build
ericmehl Feb 10, 2019
8586053
Revert "Windows Build : remove conditional Arnold building"
ericmehl Feb 10, 2019
8cd76d1
Windows build : fix conditional Arnold inclusion
ericmehl Feb 10, 2019
df284c1
windows build : fix cmake typo
ericmehl Feb 10, 2019
fcd2017
Windows Build : format CORTEX_ARNOLD_FOUND properly
ericmehl Feb 11, 2019
2adb6f3
USD : dlopenflags is not supported on Windows
ericmehl Mar 16, 2019
39d5246
Help Documentation : convert to platform independent paths
ericmehl Mar 16, 2019
ba126b0
Gaffer.bat : split Appleseed shader setup into separate blocks
ericmehl Jun 23, 2019
a403e32
Monitor : rebase me to earlier "add exports" commit
ericmehl Aug 6, 2019
5cfa29d
Process : include declarations for Plug and Context
ericmehl Aug 6, 2019
2f86043
Windows : add symbol exports
ericmehl Aug 6, 2019
24ad4e0
FileSystemPathPlug : convert from filename plugs from StringPlug
ericmehl Aug 6, 2019
06030e5
IECoreArnoldPreview : MSVC can't compare IECore::InternedString to st…
ericmehl Aug 6, 2019
4b0de70
GafferArnoldUI : add symbol exports
ericmehl Aug 6, 2019
514b30e
DocumentationAlgo : adapt parameters for MSVC
ericmehl Aug 9, 2019
0ca6d18
Gaffer.bat : fix typo
ericmehl Aug 9, 2019
2b3b1ec
Scons : add Windows support for build options
ericmehl Aug 6, 2019
e7ebe1f
Scons : make system includes cross-platform
ericmehl Aug 6, 2019
4ef20d6
Scons : add Windows build flags
ericmehl Aug 6, 2019
1c784b0
Scons : add Windows compatibility to commandEnv
ericmehl Aug 7, 2019
6b29586
Scons : replace -isystem with cross-platform function
ericmehl Aug 7, 2019
274f7b0
Scons : add Windows support for string substitutions in files
ericmehl Aug 7, 2019
481e306
Scons : adapt Python naming convention to Windows scheme
ericmehl Aug 7, 2019
e27f436
Scons : Quote Inkscape command to allow spaces in the path
ericmehl Aug 7, 2019
17951a2
Scons : convert LOCATE_DEPENDENCY_PATH to a list if it is not already
ericmehl Aug 7, 2019
e69d6d9
ContextSanitiser : export symbols
ericmehl Aug 7, 2019
1fb5d52
Scons : include environment variables on Windows
ericmehl Aug 7, 2019
5f4aaab
Scons : Windows needs to access various DLLs in the lib directory
ericmehl Aug 7, 2019
3cf5e3f
Scons : MSVC needs Advapi32 library for file owner information
ericmehl Aug 7, 2019
3802dd8
Scons : Arnold on Windows stores ai.lib in the lib directory
ericmehl Aug 7, 2019
82c81c8
Scons : add Windows location for opengl
ericmehl Aug 7, 2019
f99b862
Scons : Windows Python libraries end in .pyd
ericmehl Aug 7, 2019
c3590ab
Scons : MSVC preprocessor variables are case-sensitive
ericmehl Aug 7, 2019
9616023
Documentation : convert from shell scripts to Python scripts for Wind…
ericmehl Aug 7, 2019
7f253da
Scons : install Gaffer batch file for Windows
ericmehl Aug 7, 2019
3483b88
Scons : build documentation on Windows
ericmehl Aug 7, 2019
19c9e1a
Scons : set optimizations in RelWithDebugInfo build
ericmehl Aug 8, 2019
c577edd
Appleseed : cross platform search path separator
ericmehl Aug 9, 2019
facfe73
Shaders : cross-platform search path separator
ericmehl Aug 9, 2019
6450b6a
Scons : fix Windows command environment PATH
ericmehl Aug 15, 2019
ebcf128
Scons : Windows needs the full path to oslc
ericmehl Aug 15, 2019
65f976b
Gaffer.bat : add "lib" to path for GAFFER_EXTENSION_PATHS
ericmehl Aug 28, 2019
697428d
NameSwitch : MSVC needs std::numeric_limits
ericmehl Nov 8, 2019
bf40612
Spreadsheet : add exports to internal classes
ericmehl Dec 25, 2019
7e26e78
Catalogue : force substitutions
ericmehl Jan 14, 2020
62c9e66
FileSystemPathPlug : convert Render super class
ericmehl Jan 14, 2020
6f5be51
gaffer.bat : reduce command line clutter
ericmehl Apr 18, 2020
53b1e4c
gaffer.bat : support spaces in path, update to new private gaffer.py …
ericmehl May 18, 2020
a9ffbb2
FileSystemPathPlug : update to new substitution scheme
ericmehl May 18, 2020
c3143f8
Use std::numeric_limits for size_t
ericmehl May 18, 2020
0f83737
Windows : add / update symbol exports
ericmehl May 18, 2020
43fc73d
String substitutions : rebase me onto Context fix
ericmehl May 18, 2020
7ab6d4c
limits : rebase me onto commit fixing limits
ericmehl May 18, 2020
f0945ba
GafferArnoldUI : fix broken rebase
ericmehl May 18, 2020
001d391
GafferArnoldUI : link to Arnold lib
ericmehl May 18, 2020
cb66542
gaffer.bat : allow spaces in Gaffer root directory
ericmehl May 20, 2020
f9b1cbf
SConstruct : add option for Boost Python library suffix
ericmehl May 20, 2020
d1e6228
SConstruct : use GafferHQ method for getting Python version and syste…
ericmehl Oct 16, 2020
14959a5
GoboVisualiser : fix rebase
ericmehl Oct 16, 2020
de17396
Appleseed : disable loading in startup batch file
ericmehl Oct 19, 2020
81233a6
Stats : add Windows Max resident size reporting
ericmehl Oct 29, 2020
b205686
gaffer.bat : add debug support
ericmehl Nov 3, 2020
6775ffb
SConstruct : fix bad exception handling flag
ericmehl Nov 17, 2020
a6fb058
Build : disable permissive mode on MSVC
ericmehl Dec 10, 2020
3d8d8c3
TypedObjectPlug : don't use "extern" on Windows
ericmehl Dec 10, 2020
4a6d91a
TypedObjectPlugBinding : fix error when compiling on MSVC with "/perm…
ericmehl Dec 10, 2020
fcb70b0
Gaffer.bat : disable Jemalloc.bat by default (Windows only)
ericmehl Dec 12, 2020
597f584
Sconstruct : use built-in Substfile instead of custom function
ericmehl Feb 19, 2021
91115bc
SConstruct : Ensure platform-specific paths throughout
ericmehl Feb 19, 2021
0be86db
SConstruct : Copy git symlinks' target to source on Windows during build
ericmehl Feb 19, 2021
dc468c5
Instancer : Add symbol export
ericmehl Mar 4, 2021
6ceffe5
SConstruct : update for running from Python 3
ericmehl Mar 24, 2021
757356e
GafferSceneUI : fix utf-8 errors on Windows
ericmehl Mar 24, 2021
15bd37d
ScriptNodeBinding : remove AST processing in tolerantExec
ericmehl Mar 24, 2021
d39b308
Spreadsheet : fix digression from HQ during rebase
ericmehl Mar 24, 2021
a158dfa
GafferUI : fix deprecated regex string
ericmehl Mar 25, 2021
90b43b6
Merge pull request #29 from ericmehl/gaffer_0.59.6.0
ericmehl Mar 30, 2021
d05c3ed
Revert "Gaffer Windows 0.59.6.0 and Python 3"
ericmehl Mar 30, 2021
3066fa3
Merge pull request #30 from hypothetical-inc/revert-29-gaffer_0.59.6.0
ericmehl Mar 30, 2021
720b46d
Merge tag '0.60.0.0' into hy-master
ericmehl Jun 24, 2021
7da6314
Merge branch '0.60_maintenance' of https://github.com/GafferHQ/gaffer…
ericmehl Sep 24, 2021
127aa8d
IE Configs : Limit builds to Arnold 6
andrewkaufman Nov 19, 2021
ea903de
IE Configs : Add DRYRUN arg to help with debugging
andrewkaufman Nov 19, 2021
2a5e176
Merge pull request #4482 from andrewkaufman/ieConfigs
andrewkaufman Nov 19, 2021
e42fe45
Merge branch '0.60_maintenance' into 0.61_maintenance
johnhaddon Nov 22, 2021
a8354ba
OSLCode : Check for empty `.oso` files
johnhaddon Nov 22, 2021
9543ac2
BranchCreator : Fix unnecessary input bounds evaluation
johnhaddon Nov 22, 2021
a704f7b
Merge pull request #4485 from johnhaddon/oslCodeChecks
johnhaddon Nov 22, 2021
199fbed
Merge pull request #4486 from johnhaddon/branchCreatorBoundsFix
johnhaddon Nov 22, 2021
4ae5832
Install : Allow updating an existing install tree
andrewkaufman Nov 23, 2021
694a9ed
IE Configs : Fix postInstall script logic
andrewkaufman Nov 23, 2021
12ab772
Merge pull request #4487 from andrewkaufman/installUpdates
johnhaddon Nov 24, 2021
53ab0eb
GadgetWidget : Don't steal wheel events from overlay widgets
johnhaddon Nov 24, 2021
f973ecc
Merge pull request #4489 from johnhaddon/overlayWheelFix
johnhaddon Nov 25, 2021
6ac4712
PathListingWidget : Add `columnAt()` method
johnhaddon Nov 24, 2021
e3bcd0a
Merge pull request #4488 from johnhaddon/columnAt
johnhaddon Nov 25, 2021
bc493bf
StandardNodeGadget : Add error handling for possible focus hover crash
danieldresser Nov 27, 2021
b002ed2
PathListingWidget : Fix unwanted expansion when clicking to select
johnhaddon Nov 29, 2021
92d0eb5
GraphGadget : Handle promoted array plugs while finding active nodes
danieldresser Nov 27, 2021
c7d8bca
Merge pull request #4494 from danieldresser-ie/focusFix
johnhaddon Nov 29, 2021
c297d00
Merge pull request #4495 from johnhaddon/pathListingWidgetFix
johnhaddon Nov 29, 2021
a4e005b
Bump version to 0.60.12.1
johnhaddon Nov 29, 2021
37d7f57
Merge branch '0.60_maintenance' into 0.61_maintenance
johnhaddon Nov 29, 2021
35491ad
Bump version to 0.61.1.0
johnhaddon Nov 29, 2021
562ba67
Fixed patch version
andrewkaufman Nov 30, 2021
baa41cc
CI : Check SConstruct version matches tag version
johnhaddon Dec 1, 2021
74b8f9c
Arnold Renderer : Destroy AOV shaders before universe
johnhaddon Dec 1, 2021
95d3bf2
Merge pull request #4498 from johnhaddon/versionCheck
johnhaddon Dec 3, 2021
49b6772
Doc : ControlsAndShortcuts : Add doc for Luminance hotkey
danieldresser Dec 4, 2021
877b574
Merge pull request #4499 from johnhaddon/arnold7Crash
johnhaddon Dec 7, 2021
13320d0
Merge pull request #4502 from danieldresser-ie/luminanceDoc
johnhaddon Dec 7, 2021
bf4d482
Merge branch '0.60_maintenance' into 0.61_maintenance
johnhaddon Dec 7, 2021
4c7596f
Bump version to 0.61.1.1
johnhaddon Dec 7, 2021
813762b
Merge tag '0.61.1.1' into hy-master
ericmehl Jan 3, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/main/setBuildVars.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,23 @@
releaseId = r.id
break

if releaseId :

# Check that the version specified by the SConstruct matches the
# version in the tag.
versions = {}
versionRe = re.compile( r"^gaffer(.*)Version = (\d+)")
with open( "SConstruct" ) as sconstruct :
for line in sconstruct.readlines() :
versionMatch = versionRe.match( line )
if versionMatch :
versions[versionMatch.group( 1 )] = versionMatch.group( 2 )

version = "{Milestone}.{Major}.{Minor}.{Patch}".format( **versions )
if version != tag :
sys.stderr.write( "Tag \"{}\" does not match SConstruct version \"{}\"\n".format( tag, version ) )
sys.exit( 1 )

## Build Name

# We have a couple of naming conventions for builds, depending on the nature of the trigger.
Expand Down
37 changes: 37 additions & 0 deletions Changes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,32 @@
0.61.1.1 (relative to 0.61.1.0)
========

Fixes
-----

- InteractiveArnoldRender : Fixed Arnold 7 crash when stopping a render with global AOV shaders.

0.61.1.0 (relative to 0.61.0.0)
========

Improvements
------------

- OSLCode : Improved error reporting for cases where empty `.oso` files are produced.

Fixes
-----

- HierarchyView : Fixed unwanted expansion when an item is selected.
- Viewer : Fixed scroll wheel handling for overlay widgets. In particular this means that the mouse wheel can now be used to scroll through the parameters of the scene inspector.
- GraphEditor : Fixed highlighting of input connections for promoted ArrayPlugs.
- BranchCreator : Fixed bug in bounding box computation which could cause excessive evaluation of the input scene.

API
---

- PathListingWidget : Added `columnAt()` method.

0.61.0.0
========

Expand Down Expand Up @@ -131,6 +160,14 @@ Build
- PySide : Updated to version 5.15.2.
- Cortex : Updated to version 10.3.0.0.

0.60.12.1 (relative to 0.60.12.0)
=========

Fixes
-----

- BranchCreator : Fixed bug in bounding box computation which could cause excessive evaluation of the input scene.

0.60.12.0 (relative to 0.60.11.0)
=========

Expand Down
11 changes: 4 additions & 7 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,18 @@ import os
import re
import sys
import glob
import shutil
import fnmatch
import functools
import platform
import py_compile
import subprocess
import distutils.dir_util

###############################################################################################
# Version
###############################################################################################

gafferMilestoneVersion = 0 # for announcing major milestones - may contain all of the below
gafferMajorVersion = 61 # backwards-incompatible changes
gafferMinorVersion = 0 # new backwards-compatible features
gafferPatchVersion = 0 # bug fixes
gafferMinorVersion = 1 # new backwards-compatible features
gafferPatchVersion = 1 # bug fixes

# All of the following must be considered when determining
# whether or not a change is backwards-compatible
Expand Down Expand Up @@ -1675,7 +1672,7 @@ for f in exampleFiles :

def installer( target, source, env ) :

shutil.copytree( str( source[0] ), str( target[0] ), symlinks=True )
distutils.dir_util.copy_tree( str( source[0] ), str( target[0] ), preserve_symlinks=True, update=True )

if env.subst( "$PACKAGE_FILE" ).endswith( ".dmg" ) :

Expand Down
3 changes: 3 additions & 0 deletions config/ie/installAll
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ def build( extraArgs = [] ) :
buildArgs.extend( sys.argv[1:] )

print( " ".join( buildArgs ) )
if "DRYRUN=1" in sys.argv :
return

if subprocess.call( buildArgs ) != 0 :
raise RuntimeError( "Error : " + " ".join( buildArgs ) )
print( "Build succeeded: " + " ".join( buildArgs ) + "\n" )
Expand Down
9 changes: 4 additions & 5 deletions config/ie/postInstall
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,10 @@ def __link( source, target ) :
if source == target :
return

if os.path.isdir( target ) :
if os.path.islink( target ) :
os.unlink( target )
else :
shutil.rmtree( target )
if os.path.islink( target ) :
os.unlink( target )
elif os.path.isdir( target ) :
shutil.rmtree( target )

os.symlink(
os.path.relpath( source, os.path.dirname( target ) ),
Expand Down
1 change: 1 addition & 0 deletions doc/source/Interface/ControlsAndShortcuts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,7 @@ Isolate red channel :kbd:`R`
Isolate green channel :kbd:`G`
Isolate blue channel :kbd:`B`
Isolate alpha channel :kbd:`A`
View luminance of RGB :kbd:`L`
Previous layer :kbd:`PgDn`
Next layer :kbd:`PgUp`
Center image at 1:1 scale :kbd:`Home`
Expand Down
40 changes: 40 additions & 0 deletions python/GafferSceneTest/ParentTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -876,5 +876,45 @@ def testMultipleNewDestinationsBelowOneParent( self ) :
IECore.InternedStringVectorData( [ "sphere", "cube", "childrenOfRoundThings", "childrenOfSquareThings" ] )
)

def testNoUnwantedBoundEvaluations( self ) :

reader = GafferScene.SceneReader()
reader["fileName"].setValue( "${GAFFER_ROOT}/resources/gafferBot/caches/gafferBot.scc" )

group = GafferScene.Group()

parent = GafferScene.Parent()
parent["in"].setInput( reader["out"] )
parent["children"][0].setInput( group["out"] )
parent["parent"].setValue( "/" )
parent["destination"].setValue( "/children" )

# Computing the root bound should not require more than the bounds
# of `/` and `/GAFFERBOT` to be queried from the input scene.

with Gaffer.ContextMonitor( reader["out"]["bound"] ) as contextMonitor :
parent["out"].bound( "/" )

self.assertEqual( contextMonitor.combinedStatistics().numUniqueContexts(), 2 )

# If we parent to `/GAFFERBOT/children` then computing the bound of `/GAFFERBOT`
# should only query `/GAFFERBOT` and `/GAFFERBOT/C_torso_GRP` from the input.

Gaffer.ValuePlug.clearCache()
Gaffer.ValuePlug.clearHashCache()

parent["destination"].setValue( "/GAFFERBOT/children" )
with Gaffer.ContextMonitor( reader["out"]["bound"] ) as contextMonitor :
parent["out"].bound( "/GAFFERBOT" )

self.assertEqual( contextMonitor.combinedStatistics().numUniqueContexts(), 2 )

# The bounds for children of `/GAFFERBOT` should be perfect pass throughs.

self.assertEqual(
parent["out"].boundHash( "/GAFFERBOT/C_torso_GRP" ),
parent["in"].boundHash( "/GAFFERBOT/C_torso_GRP" )
)

if __name__ == "__main__":
unittest.main()
5 changes: 5 additions & 0 deletions python/GafferUI/GadgetWidget.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,11 @@ def __wheel( self, widget, event ) :
if not self._makeCurrent() :
return False

# We get given wheel events before they're given to the overlay items,
# so we must ignore them so they can be used by the overlay.
if self._qtWidget().itemAt( event.line.p0.x, event.line.p0.y ) is not None :
return False

return self.__viewportGadget.wheelSignal()( self.__viewportGadget, event )

def __visibilityChanged( self, widget ) :
Expand Down
13 changes: 12 additions & 1 deletion python/GafferUI/PathListingWidget.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,17 @@ def pathAt( self, position ) :

return self.__pathForIndex( index )

## Returns the column being displayed at the specified
# position within the widget.
def columnAt( self, position ) :

point = self._qtWidget().viewport().mapFrom(
self._qtWidget(),
QtCore.QPoint( position.x, position.y )
)

return self.getColumns()[self._qtWidget().columnAt( point.x())]

## Sets which paths are currently expanded
# using an `IECore.PathMatcher` object.
def setExpansion( self, paths ) :
Expand Down Expand Up @@ -581,7 +592,7 @@ def __buttonPress( self, widget, event ) :

if not selected :
self._qtWidget().setCurrentIndex( index )
self.setSelection( IECore.PathMatcher( [ path ] ) )
self.setSelection( IECore.PathMatcher( [ path ] ), scrollToFirst=False, expandNonLeaf=False )
return True

# The item is selected, Return True so that we have the option of
Expand Down
12 changes: 12 additions & 0 deletions python/GafferUITest/GraphGadgetTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -1631,6 +1631,18 @@ def testActivePlugsAndNodes( self ) :
self.assertEqual( set( nodes ), set( [ box, s["add2"], box["BoxOut1"]["__switch"], box["BoxOut1"] ] ) )


# Test a box with promoted array plug
s["add7"] = GafferTest.AddNode()
s["add1"]["op1"].setInput( s["add7"]["sum"] )
box2 = Gaffer.Box.create( s, Gaffer.StandardSet( [ s["add7"] ] ) )
box2["add7"]["arrayInput"] = Gaffer.ArrayPlug( "arrayInput", Gaffer.Plug.Direction.In, Gaffer.FloatPlug() )
box2.promotePlug( box2["add7"]["arrayInput"] )
box2["arrayInput"][0].setInput( s["add5"]["sum"] )
box2["arrayInput"][1].setInput( s["add6"]["sum"] )
plugs, nodes = GafferUI.GraphGadget._activePlugsAndNodes( s["add1"]["sum"], c )
self.assertEqual( set( plugs ), set( [ s["add1"]["op1"], box2["sum"], box2["add7"]["arrayInput"], box2["arrayInput"][0], box2["arrayInput"][1] ] ) )
self.assertEqual( set( nodes ), set( [ s["add1"], box2, box2["add7"], s["add5"], s["add6"] ] ) )

# Test Loop

s["loopSwitch"] = Gaffer.Switch()
Expand Down
16 changes: 16 additions & 0 deletions src/GafferOSL/OSLCode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -306,10 +306,26 @@ boost::filesystem::path compile( const std::string &shaderName, const std::strin
}
}

if( !boost::filesystem::file_size( tempOSLFileName ) )
{
// Belt and braces. `compiler.compile()` should be reporting all errors,
// but on rare occasions we have still seen empty `.oso` files being
// produced. Detect this and warn so we can get to the bottom of it.
throw IECore::Exception( "Empty file after compilation : \"" + tempOSLFileName + "\"" );
}

// Move temp file where we really want it, and clean up.

boost::filesystem::rename( tempOSOFileName, osoFileName );

if( !boost::filesystem::file_size( osoFileName ) )
{
// Belt and braces. `rename()` should be reporting all errors,
// but on rare occasions we have still seen empty `.oso` files being
// produced. Detect this and warn so we can get to the bottom of it.
throw IECore::Exception( "Empty file after rename : \"" + osoFileName.string() + "\"" );
}

return osoFileName;
}

Expand Down
6 changes: 3 additions & 3 deletions src/GafferScene/BranchCreator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1218,13 +1218,13 @@ BranchCreator::LocationType BranchCreator::sourceAndBranchPaths( const ScenePath
}
}

if( location->children.empty() )
if( path.size() == location->depth && !location->children.empty() )
{
return PassThrough;
return location->exists ? Ancestor : NewAncestor;
}
else
{
return location->exists ? Ancestor : NewAncestor;
return PassThrough;
}
}

Expand Down
4 changes: 3 additions & 1 deletion src/GafferUI/GraphGadget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,9 @@ void activeWalkOutput(
{
if( connectionStart->direction() != Gaffer::Plug::Direction::Out )
{
// An input plug with no input connections isn't affected by anything
// The only possible connections to an input plug with no input connections is if its
// children are connected
activeWalkInput( connectionStart, true, context, canceller, activePlugs, activeNodes, plugContextsVisited );
return;
}
}
Expand Down
5 changes: 5 additions & 0 deletions src/GafferUI/StandardNodeGadget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,11 @@ class FocusGadget : public Gadget
if( g_pendingHoveredFocus )
{
StandardNodeGadget* parentNodeGadget = static_cast<StandardNodeGadget*>( g_pendingHoveredFocus->parent() );
if( !parentNodeGadget )
{
IECore::msg( IECore::Msg::Error, "FocusGadget::nodeMouseEntered", "Focus gadget hover timer triggered on unparented FocusGadget" );
return;
}
g_hoveredFocus = g_pendingHoveredFocus;
g_hoveredFocusNodePosition = parentNodeGadget->getTransform();
g_pendingHoveredFocus->dirty( DirtyType::Render );
Expand Down
1 change: 1 addition & 0 deletions src/IECoreArnold/Renderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3106,6 +3106,7 @@ class ArnoldGlobals
// Delete nodes we own before universe is destroyed.
m_shaderCache.reset();
m_outputs.clear();
m_aovShaders.clear();
m_colorManager.reset();
m_atmosphere.reset();
m_background.reset();
Expand Down