Merge pull request #7677 from aws-lumberyard-dev/Atom/guthadam/atom_tools_move_document_reflection_into_classes

Atom Tools: Moving behavior context reflection into respective classes
monroegm-disable-blank-issue-2
Guthrie Adams 4 years ago committed by GitHub
commit 7f16cd1643
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -13,18 +13,19 @@
namespace AtomToolsFramework namespace AtomToolsFramework
{ {
/** //! AtomToolsDocument provides an API for modifying and saving documents.
* AtomToolsDocument provides an API for modifying and saving documents.
*/
class AtomToolsDocument class AtomToolsDocument
: public AtomToolsDocumentRequestBus::Handler : public AtomToolsDocumentRequestBus::Handler
, private AzToolsFramework::AssetSystemBus::Handler , private AzToolsFramework::AssetSystemBus::Handler
{ {
public: 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_CLASS_ALLOCATOR(AtomToolsDocument, AZ::SystemAllocator, 0);
AZ_DISABLE_COPY_MOVE(AtomToolsDocument); AZ_DISABLE_COPY_MOVE(AtomToolsDocument);
static void Reflect(AZ::ReflectContext* context);
AtomToolsDocument() = default;
AtomToolsDocument(const AZ::Crc32& toolId); AtomToolsDocument(const AZ::Crc32& toolId);
virtual ~AtomToolsDocument(); virtual ~AtomToolsDocument();

@ -26,7 +26,6 @@ namespace AtomToolsFramework
protected: protected:
// AtomToolsApplication overrides... // AtomToolsApplication overrides...
void Reflect(AZ::ReflectContext* context) override;
void StartCommon(AZ::Entity* systemEntity) override; void StartCommon(AZ::Entity* systemEntity) override;
void Destroy() override; void Destroy() override;
void ProcessCommandLine(const AZ::CommandLine& commandLine) override; void ProcessCommandLine(const AZ::CommandLine& commandLine) override;

@ -7,28 +7,32 @@
*/ */
#include <AzCore/RTTI/BehaviorContext.h> #include <AzCore/RTTI/BehaviorContext.h>
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/Serialization/EditContext.h> #include <AzCore/Serialization/EditContext.h>
#include <AzCore/Serialization/SerializeContext.h>
#include <AtomToolsFrameworkSystemComponent.h> #include <AtomToolsFramework/Document/AtomToolsDocument.h>
#include <AtomToolsFramework/Document/AtomToolsDocumentSystem.h>
#include <AtomToolsFramework/DynamicProperty/DynamicPropertyGroup.h> #include <AtomToolsFramework/DynamicProperty/DynamicPropertyGroup.h>
#include <AtomToolsFrameworkSystemComponent.h>
namespace AtomToolsFramework namespace AtomToolsFramework
{ {
void AtomToolsFrameworkSystemComponent::Reflect(AZ::ReflectContext* context) void AtomToolsFrameworkSystemComponent::Reflect(AZ::ReflectContext* context)
{ {
AtomToolsFramework::DynamicProperty::Reflect(context); DynamicProperty::Reflect(context);
AtomToolsFramework::DynamicPropertyGroup::Reflect(context); DynamicPropertyGroup::Reflect(context);
AtomToolsDocument::Reflect(context);
AtomToolsDocumentSystem::Reflect(context);
if (AZ::SerializeContext* serialize = azrtti_cast<AZ::SerializeContext*>(context)) if (auto serialize = azrtti_cast<AZ::SerializeContext*>(context))
{ {
serialize->Class<AtomToolsFrameworkSystemComponent, AZ::Component>() serialize->Class<AtomToolsFrameworkSystemComponent, AZ::Component>()
->Version(0) ->Version(0)
; ;
if (AZ::EditContext* ec = serialize->GetEditContext()) if (auto editContext = serialize->GetEditContext())
{ {
ec->Class<AtomToolsFrameworkSystemComponent>("AtomToolsFrameworkSystemComponent", "") editContext->Class<AtomToolsFrameworkSystemComponent>("AtomToolsFrameworkSystemComponent", "")
->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC_CE("System")) ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC_CE("System"))
->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AutoExpand, true)

@ -9,10 +9,47 @@
#include <Atom/RPI.Edit/Common/AssetUtils.h> #include <Atom/RPI.Edit/Common/AssetUtils.h>
#include <AtomToolsFramework/Document/AtomToolsDocument.h> #include <AtomToolsFramework/Document/AtomToolsDocument.h>
#include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h> #include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h>
#include <AzCore/RTTI/BehaviorContext.h>
#include <AzCore/Serialization/EditContext.h>
#include <AzCore/Serialization/SerializeContext.h>
#include <AzToolsFramework/SourceControl/SourceControlAPI.h> #include <AzToolsFramework/SourceControl/SourceControlAPI.h>
namespace AtomToolsFramework namespace AtomToolsFramework
{ {
void AtomToolsDocument::Reflect(AZ::ReflectContext* context)
{
if (auto serialize = azrtti_cast<AZ::SerializeContext*>(context))
{
serialize->Class<AtomToolsDocument>()
->Version(0);
}
if (auto behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->EBus<AtomToolsDocumentRequestBus>("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) AtomToolsDocument::AtomToolsDocument(const AZ::Crc32& toolId)
: m_toolId(toolId) : m_toolId(toolId)
{ {

@ -16,12 +16,6 @@ namespace AtomToolsFramework
{ {
} }
void AtomToolsDocumentApplication::Reflect(AZ::ReflectContext* context)
{
Base::Reflect(context);
AtomToolsDocumentSystem::Reflect(context);
}
void AtomToolsDocumentApplication::StartCommon(AZ::Entity* systemEntity) void AtomToolsDocumentApplication::StartCommon(AZ::Entity* systemEntity)
{ {
Base::StartCommon(systemEntity); Base::StartCommon(systemEntity);

@ -64,28 +64,6 @@ namespace AtomToolsFramework
->Event("SaveAllDocuments", &AtomToolsDocumentSystemRequestBus::Events::SaveAllDocuments) ->Event("SaveAllDocuments", &AtomToolsDocumentSystemRequestBus::Events::SaveAllDocuments)
->Event("GetDocumentCount", &AtomToolsDocumentSystemRequestBus::Events::GetDocumentCount) ->Event("GetDocumentCount", &AtomToolsDocumentSystemRequestBus::Events::GetDocumentCount)
; ;
behaviorContext->EBus<AtomToolsDocumentRequestBus>("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)
;
} }
} }

@ -13,15 +13,37 @@
#include <Atom/RPI.Edit/Material/MaterialUtils.h> #include <Atom/RPI.Edit/Material/MaterialUtils.h>
#include <Atom/RPI.Public/Material/Material.h> #include <Atom/RPI.Public/Material/Material.h>
#include <Atom/RPI.Reflect/Material/MaterialFunctor.h> #include <Atom/RPI.Reflect/Material/MaterialFunctor.h>
#include <Atom/RPI.Reflect/Material/MaterialPropertiesLayout.h>
#include <Atom/RPI.Reflect/Material/MaterialNameContext.h> #include <Atom/RPI.Reflect/Material/MaterialNameContext.h>
#include <Atom/RPI.Reflect/Material/MaterialPropertiesLayout.h>
#include <AtomCore/Instance/Instance.h> #include <AtomCore/Instance/Instance.h>
#include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h> #include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h>
#include <AtomToolsFramework/Util/MaterialPropertyUtil.h> #include <AtomToolsFramework/Util/MaterialPropertyUtil.h>
#include <AzCore/RTTI/BehaviorContext.h>
#include <AzCore/Serialization/EditContext.h>
#include <AzCore/Serialization/SerializeContext.h>
#include <Document/MaterialDocument.h> #include <Document/MaterialDocument.h>
namespace MaterialEditor namespace MaterialEditor
{ {
void MaterialDocument::Reflect(AZ::ReflectContext* context)
{
if (auto serialize = azrtti_cast<AZ::SerializeContext*>(context))
{
serialize->Class<MaterialDocument, AtomToolsFramework::AtomToolsDocument>()
->Version(0);
}
if (auto behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->EBus<MaterialDocumentRequestBus>("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) MaterialDocument::MaterialDocument(const AZ::Crc32& toolId)
: AtomToolsFramework::AtomToolsDocument(toolId) : AtomToolsFramework::AtomToolsDocument(toolId)
{ {

@ -29,10 +29,13 @@ namespace MaterialEditor
, private AZ::TickBus::Handler , private AZ::TickBus::Handler
{ {
public: 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_CLASS_ALLOCATOR(MaterialDocument, AZ::SystemAllocator, 0);
AZ_DISABLE_COPY_MOVE(MaterialDocument); AZ_DISABLE_COPY_MOVE(MaterialDocument);
static void Reflect(AZ::ReflectContext* context);
MaterialDocument() = default;
MaterialDocument(const AZ::Crc32& toolId); MaterialDocument(const AZ::Crc32& toolId);
virtual ~MaterialDocument(); virtual ~MaterialDocument();

@ -69,17 +69,8 @@ namespace MaterialEditor
void MaterialEditorApplication::Reflect(AZ::ReflectContext* context) void MaterialEditorApplication::Reflect(AZ::ReflectContext* context)
{ {
Base::Reflect(context); Base::Reflect(context);
MaterialDocument::Reflect(context);
MaterialEditorWindowSettings::Reflect(context); MaterialEditorWindowSettings::Reflect(context);
if (AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->EBus<MaterialDocumentRequestBus>("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<AZ::Module*>& outModules) void MaterialEditorApplication::CreateStaticModules(AZStd::vector<AZ::Module*>& outModules)

@ -14,6 +14,9 @@
#include <Atom/RPI.Reflect/Asset/AssetUtils.h> #include <Atom/RPI.Reflect/Asset/AssetUtils.h>
#include <Atom/RPI.Reflect/Material/MaterialAsset.h> #include <Atom/RPI.Reflect/Material/MaterialAsset.h>
#include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h> #include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h>
#include <AzCore/RTTI/BehaviorContext.h>
#include <AzCore/Serialization/EditContext.h>
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/Utils/Utils.h> #include <AzCore/Utils/Utils.h>
#include <AzFramework/StringFunc/StringFunc.h> #include <AzFramework/StringFunc/StringFunc.h>
#include <AzToolsFramework/API/EditorAssetSystemAPI.h> #include <AzToolsFramework/API/EditorAssetSystemAPI.h>
@ -22,6 +25,30 @@
namespace ShaderManagementConsole namespace ShaderManagementConsole
{ {
void ShaderManagementConsoleDocument::Reflect(AZ::ReflectContext* context)
{
if (auto serialize = azrtti_cast<AZ::SerializeContext*>(context))
{
serialize->Class<ShaderManagementConsoleDocument, AtomToolsFramework::AtomToolsDocument>()
->Version(0);
}
if (auto behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->EBus<ShaderManagementConsoleDocumentRequestBus>("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) ShaderManagementConsoleDocument::ShaderManagementConsoleDocument(const AZ::Crc32& toolId)
: AtomToolsFramework::AtomToolsDocument(toolId) : AtomToolsFramework::AtomToolsDocument(toolId)
{ {

@ -25,10 +25,13 @@ namespace ShaderManagementConsole
, public ShaderManagementConsoleDocumentRequestBus::Handler , public ShaderManagementConsoleDocumentRequestBus::Handler
{ {
public: 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_CLASS_ALLOCATOR(ShaderManagementConsoleDocument, AZ::SystemAllocator, 0);
AZ_DISABLE_COPY_MOVE(ShaderManagementConsoleDocument); AZ_DISABLE_COPY_MOVE(ShaderManagementConsoleDocument);
static void Reflect(AZ::ReflectContext* context);
ShaderManagementConsoleDocument() = default;
ShaderManagementConsoleDocument(const AZ::Crc32& toolId); ShaderManagementConsoleDocument(const AZ::Crc32& toolId);
~ShaderManagementConsoleDocument(); ~ShaderManagementConsoleDocument();

@ -64,21 +64,7 @@ namespace ShaderManagementConsole
void ShaderManagementConsoleApplication::Reflect(AZ::ReflectContext* context) void ShaderManagementConsoleApplication::Reflect(AZ::ReflectContext* context)
{ {
Base::Reflect(context); Base::Reflect(context);
ShaderManagementConsoleDocument::Reflect(context);
if (AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
{
behaviorContext->EBus<ShaderManagementConsoleDocumentRequestBus>("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)
;
}
} }
const char* ShaderManagementConsoleApplication::GetCurrentConfigurationName() const const char* ShaderManagementConsoleApplication::GetCurrentConfigurationName() const

Loading…
Cancel
Save