From 26c23d9ec05da4097c5f1bcb23078b12807cc886 Mon Sep 17 00:00:00 2001 From: Guthrie Adams Date: Fri, 18 Feb 2022 10:28:41 -0600 Subject: [PATCH] Fixed non unity compiler issues and reverted a couple of changes Signed-off-by: Guthrie Adams --- .../Util/MaterialPropertyUtil.h | 3 + .../Include/AtomToolsFramework/Util/Util.h | 3 - .../Code/Source/Util/MaterialPropertyUtil.cpp | 39 +++++++ .../Code/Source/Util/Util.cpp | 101 ++++++------------ .../Source/Window/MaterialEditorWindow.cpp | 1 + 5 files changed, 76 insertions(+), 71 deletions(-) diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/MaterialPropertyUtil.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/MaterialPropertyUtil.h index ec7f73c890..45e9ed6530 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/MaterialPropertyUtil.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/MaterialPropertyUtil.h @@ -33,6 +33,9 @@ namespace AtomToolsFramework //! Convert and assign editor dynamic property configuration fields to material property meta data void ConvertToPropertyMetaData(AZ::RPI::MaterialPropertyDynamicMetadata& propertyMetaData, const AtomToolsFramework::DynamicPropertyConfig& propertyConfig); + //! Compare equality of data types and values of editor property stored in AZStd::any + bool ArePropertyValuesEqual(const AZStd::any& valueA, const AZStd::any& valueB); + //! Convert the property value into the format that will be stored in the source data //! This is primarily needed to support conversions of special types like enums and images //! @param exportPath absolute path of the file being saved diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/Util.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/Util.h index 243abaf19a..e6f5c6710d 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/Util.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Util/Util.h @@ -42,9 +42,6 @@ namespace AtomToolsFramework AZStd::string GetExteralReferencePath( const AZStd::string& exportPath, const AZStd::string& referencePath, const bool relativeToExportPath = false); - //! Compare equality of data types and values of editor property stored in AZStd::any - bool ArePropertyValuesEqual(const AZStd::any& valueA, const AZStd::any& valueB); - //! Traverse up the instance data hierarchy to find a node containing the corresponding type template const T* FindAncestorInstanceDataNodeByType(const AzToolsFramework::InstanceDataNode* pNode) diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/MaterialPropertyUtil.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/MaterialPropertyUtil.cpp index cb1227fb1a..2ba99327b3 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/MaterialPropertyUtil.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/MaterialPropertyUtil.cpp @@ -14,6 +14,10 @@ #include #include #include +#include +#include +#include +#include namespace AtomToolsFramework { @@ -125,6 +129,41 @@ namespace AtomToolsFramework } } + template + bool ComparePropertyValues(const AZStd::any& valueA, const AZStd::any& valueB) + { + return valueA.is() && valueB.is() && *AZStd::any_cast(&valueA) == *AZStd::any_cast(&valueB); + } + + bool ArePropertyValuesEqual(const AZStd::any& valueA, const AZStd::any& valueB) + { + if (valueA.type() != valueB.type()) + { + return false; + } + + if (ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues(valueA, valueB) || + ComparePropertyValues>(valueA, valueB) || + ComparePropertyValues>(valueA, valueB) || + ComparePropertyValues>(valueA, valueB) || + ComparePropertyValues>(valueA, valueB) || + ComparePropertyValues>(valueA, valueB) || + ComparePropertyValues(valueA, valueB)) + { + return true; + } + + return false; + } + bool ConvertToExportFormat( const AZStd::string& exportPath, [[maybe_unused]] const AZ::Name& propertyId, diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/Util.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/Util.cpp index f51f37910d..e3e0f1ffd8 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/Util.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Util/Util.cpp @@ -8,14 +8,11 @@ #include #include +#include #include #include #include #include -#include -#include -#include -#include #include #include #include @@ -35,49 +32,6 @@ AZ_POP_DISABLE_WARNING namespace AtomToolsFramework { - bool SaveSettingsToFile(const AZ::IO::FixedMaxPath& savePath, const AZStd::vector& filters) - { - auto registry = AZ::SettingsRegistry::Get(); - if (registry == nullptr) - { - AZ_Warning("AtomToolsFramework", false, "Unable to access global settings registry."); - return false; - } - - AZ::SettingsRegistryMergeUtils::DumperSettings dumperSettings; - dumperSettings.m_prettifyOutput = true; - dumperSettings.m_includeFilter = [filters](AZStd::string_view path) - { - for (const auto& filter : filters) - { - if (filter.starts_with(path.substr(0, filter.size()))) - { - return true; - } - } - return false; - }; - - AZStd::string stringBuffer; - AZ::IO::ByteContainerStream stringStream(&stringBuffer); - if (!AZ::SettingsRegistryMergeUtils::DumpSettingsRegistryToStream(*registry, "", stringStream, dumperSettings)) - { - AZ_Warning("AtomToolsFramework", false, R"(Unable to save changes to the registry file at "%s"\n)", savePath.c_str()); - return false; - } - - bool saved = false; - constexpr auto configurationMode = - AZ::IO::SystemFile::SF_OPEN_CREATE | AZ::IO::SystemFile::SF_OPEN_CREATE_PATH | AZ::IO::SystemFile::SF_OPEN_WRITE_ONLY; - if (AZ::IO::SystemFile outputFile; outputFile.Open(savePath.c_str(), configurationMode)) - { - saved = outputFile.Write(stringBuffer.data(), stringBuffer.size()) == stringBuffer.size(); - } - - AZ_Warning("AtomToolsFramework", saved, R"(Unable to save registry file to path "%s"\n)", savePath.c_str()); - return saved; - } - void LoadImageAsync(const AZStd::string& path, LoadImageAsyncCallback callback) { AZ::Job* job = AZ::CreateJobFunction( @@ -257,35 +211,46 @@ namespace AtomToolsFramework return AZ::IO::PathView(referencePath).LexicallyRelative(exportFolder).StringAsPosix(); } - template - bool ComparePropertyValues(const AZStd::any& valueA, const AZStd::any& valueB) + bool SaveSettingsToFile(const AZ::IO::FixedMaxPath& savePath, const AZStd::vector& filters) { - return valueA.is() && valueB.is() && *AZStd::any_cast(&valueA) == *AZStd::any_cast(&valueB); - } + auto registry = AZ::SettingsRegistry::Get(); + if (registry == nullptr) + { + AZ_Warning("AtomToolsFramework", false, "Unable to access global settings registry."); + return false; + } - bool ArePropertyValuesEqual(const AZStd::any& valueA, const AZStd::any& valueB) - { - if (valueA.type() != valueB.type()) + AZ::SettingsRegistryMergeUtils::DumperSettings dumperSettings; + dumperSettings.m_prettifyOutput = true; + dumperSettings.m_includeFilter = [filters](AZStd::string_view path) { + for (const auto& filter : filters) + { + if (filter.starts_with(path.substr(0, filter.size()))) + { + return true; + } + } + return false; + }; + + AZStd::string stringBuffer; + AZ::IO::ByteContainerStream stringStream(&stringBuffer); + if (!AZ::SettingsRegistryMergeUtils::DumpSettingsRegistryToStream(*registry, "", stringStream, dumperSettings)) + { + AZ_Warning("AtomToolsFramework", false, R"(Unable to save changes to the registry file at "%s"\n)", savePath.c_str()); return false; } - if (ComparePropertyValues(valueA, valueB) || ComparePropertyValues(valueA, valueB) || - ComparePropertyValues(valueA, valueB) || ComparePropertyValues(valueA, valueB) || - ComparePropertyValues(valueA, valueB) || ComparePropertyValues(valueA, valueB) || - ComparePropertyValues(valueA, valueB) || ComparePropertyValues(valueA, valueB) || - ComparePropertyValues(valueA, valueB) || - ComparePropertyValues>(valueA, valueB) || - ComparePropertyValues>(valueA, valueB) || - ComparePropertyValues>(valueA, valueB) || - ComparePropertyValues>(valueA, valueB) || - ComparePropertyValues>(valueA, valueB) || - ComparePropertyValues(valueA, valueB)) + bool saved = false; + constexpr auto configurationMode = + AZ::IO::SystemFile::SF_OPEN_CREATE | AZ::IO::SystemFile::SF_OPEN_CREATE_PATH | AZ::IO::SystemFile::SF_OPEN_WRITE_ONLY; + if (AZ::IO::SystemFile outputFile; outputFile.Open(savePath.c_str(), configurationMode)) { - return true; + saved = outputFile.Write(stringBuffer.data(), stringBuffer.size()) == stringBuffer.size(); } - return false; + AZ_Warning("AtomToolsFramework", saved, R"(Unable to save registry file to path "%s"\n)", savePath.c_str()); + return saved; } - } // namespace AtomToolsFramework diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditorWindow.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditorWindow.cpp index ff6ea6be74..7da29b9fdf 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditorWindow.cpp +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditorWindow.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include