diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocument.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocument.h index 7f51dc3c57..f81d3a2a03 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocument.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocument.h @@ -13,18 +13,19 @@ namespace AtomToolsFramework { - /** - * AtomToolsDocument provides an API for modifying and saving documents. - */ + //! AtomToolsDocument provides an API for modifying and saving documents. class AtomToolsDocument : public AtomToolsDocumentRequestBus::Handler , private AzToolsFramework::AssetSystemBus::Handler { public: - AZ_RTTI(AtomToolsDocument, "{8992DF74-88EC-438C-B280-6E71D4C0880B}"); + AZ_RTTI(AtomToolsDocument, "{7E6CA0C4-077C-4849-B24C-6796AF3B640B}"); AZ_CLASS_ALLOCATOR(AtomToolsDocument, AZ::SystemAllocator, 0); AZ_DISABLE_COPY_MOVE(AtomToolsDocument); + static void Reflect(AZ::ReflectContext* context); + + AtomToolsDocument() = default; AtomToolsDocument(const AZ::Crc32& toolId); virtual ~AtomToolsDocument(); diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocumentApplication.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocumentApplication.h index 095b62dfc9..f29f7d0d78 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocumentApplication.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Document/AtomToolsDocumentApplication.h @@ -26,7 +26,6 @@ namespace AtomToolsFramework protected: // AtomToolsApplication overrides... - void Reflect(AZ::ReflectContext* context) override; void StartCommon(AZ::Entity* systemEntity) override; void Destroy() override; void ProcessCommandLine(const AZ::CommandLine& commandLine) override; diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/AtomToolsFrameworkSystemComponent.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/AtomToolsFrameworkSystemComponent.cpp index adba947092..840d00aa6c 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/AtomToolsFrameworkSystemComponent.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/AtomToolsFrameworkSystemComponent.cpp @@ -7,28 +7,32 @@ */ #include -#include #include +#include -#include +#include +#include #include +#include namespace AtomToolsFramework { void AtomToolsFrameworkSystemComponent::Reflect(AZ::ReflectContext* context) { - AtomToolsFramework::DynamicProperty::Reflect(context); - AtomToolsFramework::DynamicPropertyGroup::Reflect(context); + DynamicProperty::Reflect(context); + DynamicPropertyGroup::Reflect(context); + AtomToolsDocument::Reflect(context); + AtomToolsDocumentSystem::Reflect(context); - if (AZ::SerializeContext* serialize = azrtti_cast(context)) + if (auto serialize = azrtti_cast(context)) { serialize->Class() ->Version(0) ; - if (AZ::EditContext* ec = serialize->GetEditContext()) + if (auto editContext = serialize->GetEditContext()) { - ec->Class("AtomToolsFrameworkSystemComponent", "") + editContext->Class("AtomToolsFrameworkSystemComponent", "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC_CE("System")) ->Attribute(AZ::Edit::Attributes::AutoExpand, true) diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocument.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocument.cpp index d99369958c..ac94a0b399 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocument.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocument.cpp @@ -9,10 +9,47 @@ #include #include #include +#include +#include +#include #include namespace AtomToolsFramework { + void AtomToolsDocument::Reflect(AZ::ReflectContext* context) + { + if (auto serialize = azrtti_cast(context)) + { + serialize->Class() + ->Version(0); + } + + if (auto behaviorContext = azrtti_cast(context)) + { + behaviorContext->EBus("AtomToolsDocumentRequestBus") + ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common) + ->Attribute(AZ::Script::Attributes::Category, "Editor") + ->Attribute(AZ::Script::Attributes::Module, "atomtools") + ->Event("GetAbsolutePath", &AtomToolsDocumentRequestBus::Events::GetAbsolutePath) + ->Event("Open", &AtomToolsDocumentRequestBus::Events::Open) + ->Event("Reopen", &AtomToolsDocumentRequestBus::Events::Reopen) + ->Event("Close", &AtomToolsDocumentRequestBus::Events::Close) + ->Event("Save", &AtomToolsDocumentRequestBus::Events::Save) + ->Event("SaveAsChild", &AtomToolsDocumentRequestBus::Events::SaveAsChild) + ->Event("SaveAsCopy", &AtomToolsDocumentRequestBus::Events::SaveAsCopy) + ->Event("IsOpen", &AtomToolsDocumentRequestBus::Events::IsOpen) + ->Event("IsModified", &AtomToolsDocumentRequestBus::Events::IsModified) + ->Event("IsSavable", &AtomToolsDocumentRequestBus::Events::IsSavable) + ->Event("CanUndo", &AtomToolsDocumentRequestBus::Events::CanUndo) + ->Event("CanRedo", &AtomToolsDocumentRequestBus::Events::CanRedo) + ->Event("Undo", &AtomToolsDocumentRequestBus::Events::Undo) + ->Event("Redo", &AtomToolsDocumentRequestBus::Events::Redo) + ->Event("BeginEdit", &AtomToolsDocumentRequestBus::Events::BeginEdit) + ->Event("EndEdit", &AtomToolsDocumentRequestBus::Events::EndEdit) + ; + } + } + AtomToolsDocument::AtomToolsDocument(const AZ::Crc32& toolId) : m_toolId(toolId) { diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentApplication.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentApplication.cpp index f0dea20402..cea418d28a 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentApplication.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentApplication.cpp @@ -16,12 +16,6 @@ namespace AtomToolsFramework { } - void AtomToolsDocumentApplication::Reflect(AZ::ReflectContext* context) - { - Base::Reflect(context); - AtomToolsDocumentSystem::Reflect(context); - } - void AtomToolsDocumentApplication::StartCommon(AZ::Entity* systemEntity) { Base::StartCommon(systemEntity); diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentSystem.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentSystem.cpp index 2254e92490..674c9c80a0 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentSystem.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Document/AtomToolsDocumentSystem.cpp @@ -64,28 +64,6 @@ namespace AtomToolsFramework ->Event("SaveAllDocuments", &AtomToolsDocumentSystemRequestBus::Events::SaveAllDocuments) ->Event("GetDocumentCount", &AtomToolsDocumentSystemRequestBus::Events::GetDocumentCount) ; - - behaviorContext->EBus("AtomToolsDocumentRequestBus") - ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common) - ->Attribute(AZ::Script::Attributes::Category, "Editor") - ->Attribute(AZ::Script::Attributes::Module, "atomtools") - ->Event("GetAbsolutePath", &AtomToolsDocumentRequestBus::Events::GetAbsolutePath) - ->Event("Open", &AtomToolsDocumentRequestBus::Events::Open) - ->Event("Reopen", &AtomToolsDocumentRequestBus::Events::Reopen) - ->Event("Close", &AtomToolsDocumentRequestBus::Events::Close) - ->Event("Save", &AtomToolsDocumentRequestBus::Events::Save) - ->Event("SaveAsChild", &AtomToolsDocumentRequestBus::Events::SaveAsChild) - ->Event("SaveAsCopy", &AtomToolsDocumentRequestBus::Events::SaveAsCopy) - ->Event("IsOpen", &AtomToolsDocumentRequestBus::Events::IsOpen) - ->Event("IsModified", &AtomToolsDocumentRequestBus::Events::IsModified) - ->Event("IsSavable", &AtomToolsDocumentRequestBus::Events::IsSavable) - ->Event("CanUndo", &AtomToolsDocumentRequestBus::Events::CanUndo) - ->Event("CanRedo", &AtomToolsDocumentRequestBus::Events::CanRedo) - ->Event("Undo", &AtomToolsDocumentRequestBus::Events::Undo) - ->Event("Redo", &AtomToolsDocumentRequestBus::Events::Redo) - ->Event("BeginEdit", &AtomToolsDocumentRequestBus::Events::BeginEdit) - ->Event("EndEdit", &AtomToolsDocumentRequestBus::Events::EndEdit) - ; } } diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp index 496e527e0d..0f750ba647 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp @@ -13,15 +13,37 @@ #include #include #include -#include #include +#include #include #include #include +#include +#include +#include #include namespace MaterialEditor { + void MaterialDocument::Reflect(AZ::ReflectContext* context) + { + if (auto serialize = azrtti_cast(context)) + { + serialize->Class() + ->Version(0); + } + + if (auto behaviorContext = azrtti_cast(context)) + { + behaviorContext->EBus("MaterialDocumentRequestBus") + ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common) + ->Attribute(AZ::Script::Attributes::Category, "Editor") + ->Attribute(AZ::Script::Attributes::Module, "materialeditor") + ->Event("SetPropertyValue", &MaterialDocumentRequestBus::Events::SetPropertyValue) + ->Event("GetPropertyValue", &MaterialDocumentRequestBus::Events::GetPropertyValue); + } + } + MaterialDocument::MaterialDocument(const AZ::Crc32& toolId) : AtomToolsFramework::AtomToolsDocument(toolId) { diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.h b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.h index ee78045e51..ef67fb811b 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.h +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.h @@ -29,10 +29,13 @@ namespace MaterialEditor , private AZ::TickBus::Handler { public: - AZ_RTTI(MaterialDocument, "{DBA269AE-892B-415C-8FA1-166B94B0E045}"); + AZ_RTTI(MaterialDocument, "{90299628-AD02-4FEB-9527-7278FA2817AD}", AtomToolsFramework::AtomToolsDocument); AZ_CLASS_ALLOCATOR(MaterialDocument, AZ::SystemAllocator, 0); AZ_DISABLE_COPY_MOVE(MaterialDocument); + static void Reflect(AZ::ReflectContext* context); + + MaterialDocument() = default; MaterialDocument(const AZ::Crc32& toolId); virtual ~MaterialDocument(); diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp index 8e3376adff..b4137f2d02 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp @@ -69,17 +69,8 @@ namespace MaterialEditor void MaterialEditorApplication::Reflect(AZ::ReflectContext* context) { Base::Reflect(context); + MaterialDocument::Reflect(context); MaterialEditorWindowSettings::Reflect(context); - - if (AZ::BehaviorContext* behaviorContext = azrtti_cast(context)) - { - behaviorContext->EBus("MaterialDocumentRequestBus") - ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common) - ->Attribute(AZ::Script::Attributes::Category, "Editor") - ->Attribute(AZ::Script::Attributes::Module, "materialeditor") - ->Event("SetPropertyValue", &MaterialDocumentRequestBus::Events::SetPropertyValue) - ->Event("GetPropertyValue", &MaterialDocumentRequestBus::Events::GetPropertyValue); - } } void MaterialEditorApplication::CreateStaticModules(AZStd::vector& outModules) diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.cpp b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.cpp index 241ebb2433..94e203be26 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.cpp +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.cpp @@ -14,6 +14,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -22,6 +25,30 @@ namespace ShaderManagementConsole { + void ShaderManagementConsoleDocument::Reflect(AZ::ReflectContext* context) + { + if (auto serialize = azrtti_cast(context)) + { + serialize->Class() + ->Version(0); + } + + if (auto behaviorContext = azrtti_cast(context)) + { + behaviorContext->EBus("ShaderManagementConsoleDocumentRequestBus") + ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common) + ->Attribute(AZ::Script::Attributes::Category, "Editor") + ->Attribute(AZ::Script::Attributes::Module, "shadermanagementconsole") + ->Event("SetShaderVariantListSourceData", &ShaderManagementConsoleDocumentRequestBus::Events::SetShaderVariantListSourceData) + ->Event("GetShaderVariantListSourceData", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderVariantListSourceData) + ->Event("GetShaderOptionCount", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderOptionCount) + ->Event("GetShaderOptionDescriptor", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderOptionDescriptor) + ->Event("GetShaderVariantCount", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderVariantCount) + ->Event("GetShaderVariantInfo", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderVariantInfo) + ; + } + } + ShaderManagementConsoleDocument::ShaderManagementConsoleDocument(const AZ::Crc32& toolId) : AtomToolsFramework::AtomToolsDocument(toolId) { diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.h b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.h index 232910d9d1..3a1e6b8ddd 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.h +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Document/ShaderManagementConsoleDocument.h @@ -25,10 +25,13 @@ namespace ShaderManagementConsole , public ShaderManagementConsoleDocumentRequestBus::Handler { public: - AZ_RTTI(ShaderManagementConsoleDocument, "{504A74BA-F5DD-49E0-BA5E-A381F61DD524}"); + AZ_RTTI(ShaderManagementConsoleDocument, "{C8FAF1C7-8665-423C-B1DD-82016231B17B}", AtomToolsFramework::AtomToolsDocument); AZ_CLASS_ALLOCATOR(ShaderManagementConsoleDocument, AZ::SystemAllocator, 0); AZ_DISABLE_COPY_MOVE(ShaderManagementConsoleDocument); + static void Reflect(AZ::ReflectContext* context); + + ShaderManagementConsoleDocument() = default; ShaderManagementConsoleDocument(const AZ::Crc32& toolId); ~ShaderManagementConsoleDocument(); diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp index dff162b0cb..ce3a390a22 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp @@ -64,21 +64,7 @@ namespace ShaderManagementConsole void ShaderManagementConsoleApplication::Reflect(AZ::ReflectContext* context) { Base::Reflect(context); - - if (AZ::BehaviorContext* behaviorContext = azrtti_cast(context)) - { - behaviorContext->EBus("ShaderManagementConsoleDocumentRequestBus") - ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common) - ->Attribute(AZ::Script::Attributes::Category, "Editor") - ->Attribute(AZ::Script::Attributes::Module, "shadermanagementconsole") - ->Event("SetShaderVariantListSourceData", &ShaderManagementConsoleDocumentRequestBus::Events::SetShaderVariantListSourceData) - ->Event("GetShaderVariantListSourceData", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderVariantListSourceData) - ->Event("GetShaderOptionCount", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderOptionCount) - ->Event("GetShaderOptionDescriptor", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderOptionDescriptor) - ->Event("GetShaderVariantCount", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderVariantCount) - ->Event("GetShaderVariantInfo", &ShaderManagementConsoleDocumentRequestBus::Events::GetShaderVariantInfo) - ; - } + ShaderManagementConsoleDocument::Reflect(context); } const char* ShaderManagementConsoleApplication::GetCurrentConfigurationName() const