From e7ed2c2a83f22c02886e2826ba9c733e87145f5a Mon Sep 17 00:00:00 2001 From: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com> Date: Wed, 27 Oct 2021 15:55:02 -0700 Subject: [PATCH] [profiler_capture_api] updated ProfilerRequests reflection to be as AZ::Interface Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com> --- .../AzCore/Debug/ProfilerReflection.cpp | 51 ++++++++++++------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/Code/Framework/AzCore/AzCore/Debug/ProfilerReflection.cpp b/Code/Framework/AzCore/AzCore/Debug/ProfilerReflection.cpp index 72ad4b735b..430e320c54 100644 --- a/Code/Framework/AzCore/AzCore/Debug/ProfilerReflection.cpp +++ b/Code/Framework/AzCore/AzCore/Debug/ProfilerReflection.cpp @@ -9,11 +9,16 @@ #include #include +#include #include #include namespace AZ::Debug { + static constexpr const char* ProfilerScriptCategory = "Profiler"; + static constexpr const char* ProfilerScriptModule = "debug"; + static constexpr AZ::Script::Attributes::ScopeFlags ProfilerScriptScope = AZ::Script::Attributes::ScopeFlags::Automation; + class ProfilerNotificationBusHandler final : public ProfilerNotificationBus::Handler , public AZ::BehaviorEBusHandler @@ -33,38 +38,46 @@ namespace AZ::Debug if (AZ::BehaviorContext* behaviorContext = azrtti_cast(context)) { behaviorContext->EBus("ProfilerNotificationBus") - ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Automation) - ->Attribute(AZ::Script::Attributes::Module, "debug") + ->Attribute(AZ::Script::Attributes::Category, ProfilerScriptCategory) + ->Attribute(AZ::Script::Attributes::Module, ProfilerScriptModule) + ->Attribute(AZ::Script::Attributes::Scope, ProfilerScriptScope) ->Handler(); } } }; + class ProfilerSystemScriptProxy + : public BehaviorInterfaceProxy + { + public: + AZ_RTTI(ProfilerSystemScriptProxy, "{D671FB70-8B09-4C3A-96CD-06A339F3138E}", BehaviorInterfaceProxy); + }; + void ProfilerReflect(AZ::ReflectContext* context) { - if (AZ::SerializeContext* serialize = azrtti_cast(context)) - { - if (AZ::EditContext* ec = serialize->GetEditContext()) - { - ProfilerNotificationBusHandler::Reflect(context); - } - } - if (AZ::BehaviorContext* behaviorContext = azrtti_cast(context)) { - behaviorContext->EBus("ProfilerRequestBus") - ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Automation) - ->Attribute(AZ::Script::Attributes::Module, "debug") + behaviorContext->ConstantProperty("g_ProfilerSystem", ProfilerSystemScriptProxy::GetInstance) + ->Attribute(AZ::Script::Attributes::Category, ProfilerScriptCategory) + ->Attribute(AZ::Script::Attributes::Module, ProfilerScriptModule) + ->Attribute(AZ::Script::Attributes::Scope, ProfilerScriptScope); - ->Event("IsActive", &ProfilerRequestBus::Events::IsActive) - ->Event("SetActive", &ProfilerRequestBus::Events::SetActive) + behaviorContext->Class("ProfilerSystemInterface") + ->Attribute(AZ::Script::Attributes::Category, ProfilerScriptCategory) + ->Attribute(AZ::Script::Attributes::Module, ProfilerScriptModule) + ->Attribute(AZ::Script::Attributes::Scope, ProfilerScriptScope) - ->Event("CaptureFrame", &ProfilerRequestBus::Events::CaptureFrame) + ->Method("IsValid", &ProfilerSystemScriptProxy::IsValid) - ->Event("StartCapture", &ProfilerRequestBus::Events::StartCapture) - ->Event("EndCapture", &ProfilerRequestBus::Events::EndCapture); + ->Method("IsActive", ProfilerSystemScriptProxy::WrapMethod<&ProfilerRequests::IsActive>()) + ->Method("SetActive", ProfilerSystemScriptProxy::WrapMethod<&ProfilerRequests::SetActive>()) - ProfilerNotificationBusHandler::Reflect(context); + ->Method("CaptureFrame", ProfilerSystemScriptProxy::WrapMethod<&ProfilerRequests::CaptureFrame>()) + + ->Method("StartCapture", ProfilerSystemScriptProxy::WrapMethod<&ProfilerRequests::StartCapture>()) + ->Method("EndCapture", ProfilerSystemScriptProxy::WrapMethod<&ProfilerRequests::EndCapture>()); } + + ProfilerNotificationBusHandler::Reflect(context); } } // namespace AZ::Debug