From 6951f0d06bf463f91dfc91e7c85a09ec439199fa Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Wed, 13 Dec 2023 15:15:27 -0500 Subject: [PATCH 1/2] LOOKDEVX-1625 - Use proper API to set color space in USD --- lib/mayaUsd/ufe/UsdAttributeHolder.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/mayaUsd/ufe/UsdAttributeHolder.cpp b/lib/mayaUsd/ufe/UsdAttributeHolder.cpp index 68ee60eecc..0a6e20ffb4 100644 --- a/lib/mayaUsd/ufe/UsdAttributeHolder.cpp +++ b/lib/mayaUsd/ufe/UsdAttributeHolder.cpp @@ -406,6 +406,9 @@ Ufe::Value UsdAttributeHolder::getMetadata(const std::string& key) const } #endif return Ufe::Value(niceName); + } else if (key == SdfFieldKeys->ColorSpace) { + auto csValue = _usdAttr.GetColorSpace(); + return !csValue.IsEmpty() ? Ufe::Value(csValue.GetString()) : Ufe::Value(); } PXR_NS::VtValue v; if (_usdAttr.GetMetadata(tok, &v)) { @@ -433,9 +436,17 @@ Ufe::Value UsdAttributeHolder::getMetadata(const std::string& key) const bool UsdAttributeHolder::setMetadata(const std::string& key, const Ufe::Value& value) { - if (isValid()) + if (isValid()) { + if (key == SdfFieldKeys->ColorSpace) { + if (!value.empty() && value.isType()) { + AttributeEditRouterContext ctx(_usdAttr.GetPrim(), _usdAttr.GetName()); + _usdAttr.SetColorSpace(TfToken(value.get())); + return true; + } + return false; + } return setUsdAttrMetadata(_usdAttr, key, value); - else { + } else { return false; } } @@ -463,6 +474,10 @@ bool UsdAttributeHolder::clearMetadata(const std::string& key) if (key == Ufe::Attribute::kLocked) { return _usdAttr.ClearMetadata(MayaUsdMetadata->Lock); } + + if (key == SdfFieldKeys->ColorSpace) { + return _usdAttr.ClearColorSpace(); + } return _usdAttr.ClearMetadata(tok); } else { return true; From 36b9ee4462d9464676fa24379d8910288d6d467a Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Thu, 14 Dec 2023 11:10:18 -0500 Subject: [PATCH 2/2] adding a few const. --- lib/mayaUsd/ufe/UsdAttributeHolder.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/mayaUsd/ufe/UsdAttributeHolder.cpp b/lib/mayaUsd/ufe/UsdAttributeHolder.cpp index 0a6e20ffb4..9c26a10706 100644 --- a/lib/mayaUsd/ufe/UsdAttributeHolder.cpp +++ b/lib/mayaUsd/ufe/UsdAttributeHolder.cpp @@ -407,7 +407,7 @@ Ufe::Value UsdAttributeHolder::getMetadata(const std::string& key) const #endif return Ufe::Value(niceName); } else if (key == SdfFieldKeys->ColorSpace) { - auto csValue = _usdAttr.GetColorSpace(); + const auto csValue = _usdAttr.GetColorSpace(); return !csValue.IsEmpty() ? Ufe::Value(csValue.GetString()) : Ufe::Value(); } PXR_NS::VtValue v; @@ -439,7 +439,7 @@ bool UsdAttributeHolder::setMetadata(const std::string& key, const Ufe::Value& v if (isValid()) { if (key == SdfFieldKeys->ColorSpace) { if (!value.empty() && value.isType()) { - AttributeEditRouterContext ctx(_usdAttr.GetPrim(), _usdAttr.GetName()); + const AttributeEditRouterContext ctx(_usdAttr.GetPrim(), _usdAttr.GetName()); _usdAttr.SetColorSpace(TfToken(value.get())); return true; }