docs: add plugin setup guide
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
#pragma once
|
||||
|
||||
#include "Scaleform/A/Array.h"
|
||||
#include "Scaleform/G/GFx_FocusMovedType.h"
|
||||
#include "Scaleform/G/GFx_Movie.h"
|
||||
#include "Scaleform/P/Ptr.h"
|
||||
#include "Scaleform/R/RefCountBase.h"
|
||||
#include "Scaleform/R/Render_Point.h"
|
||||
|
||||
namespace Scaleform
|
||||
{
|
||||
class MemoryHeap;
|
||||
class String;
|
||||
|
||||
namespace Render::Text
|
||||
{
|
||||
class Allocator;
|
||||
}
|
||||
|
||||
namespace GFx
|
||||
{
|
||||
class AccelerometerEvent;
|
||||
class AmpMovieObjectDesc;
|
||||
class AppLifecycleEvent;
|
||||
class ASString;
|
||||
class ASStringManager;
|
||||
class ASSupport;
|
||||
class DisplayObjContainer;
|
||||
class DisplayObject;
|
||||
class EventId;
|
||||
class FunctionHandler;
|
||||
class GeolocationEvent;
|
||||
class InputEventsQueueEntry;
|
||||
class InteractiveObject;
|
||||
class LoadQueueEntry;
|
||||
class LoadStates;
|
||||
class MemoryContext;
|
||||
class MouseState;
|
||||
class MovieDefImpl;
|
||||
class MovieDefRootNode;
|
||||
class MovieImpl;
|
||||
class OrientationEvent;
|
||||
class ProcessFocusKeyInfo;
|
||||
class Value;
|
||||
|
||||
class __declspec(novtable) ASMovieRootBase :
|
||||
public RefCountBase<ASMovieRootBase, 327> // 00
|
||||
{
|
||||
public:
|
||||
// add
|
||||
virtual void SetMovie(MovieImpl* a_movie) { movieImpl = a_movie; } // 01
|
||||
virtual void AdvanceFrame(bool a_nextFrame) = 0; // 02
|
||||
virtual void ChangeMouseCursorType(std::uint32_t a_mouseIdx, std::uint32_t a_newCursorType) = 0; // 03
|
||||
virtual bool CheckAvm() = 0; // 04
|
||||
virtual void ClearDisplayList() = 0; // 05
|
||||
virtual MovieDefRootNode* CreateMovieDefRootNode(MemoryHeap* a_heap, MovieDefImpl* a_defImpl, bool a_importFlag) = 0; // 06
|
||||
virtual void DoActions() = 0; // 07
|
||||
virtual InteractiveObject* FindTarget(const ASString& a_path) const = 0; // 08
|
||||
virtual void ForceCollect() = 0; // 09
|
||||
virtual void ForceEmergencyCollect() = 0; // 0A
|
||||
virtual void SuspendGC(bool a_suspend) = 0; // 0B
|
||||
virtual void ScheduleGC() = 0; // 0C
|
||||
virtual void GenerateMouseEvents(std::uint32_t mouseIndex) = 0; // 0D
|
||||
virtual void GenerateTouchEvents([[maybe_unused]] std::uint32_t a_mouseStateIndex) { return; } // 0E
|
||||
|
||||
virtual void GenerateGestureEvents( // 0F
|
||||
[[maybe_unused]] InteractiveObject* a_topmost,
|
||||
[[maybe_unused]] std::uint32_t a_phase,
|
||||
[[maybe_unused]] const Render::Point<float>& a_pos,
|
||||
[[maybe_unused]] const Render::Point<float>& a_offset,
|
||||
[[maybe_unused]] const Render::Point<float>& a_scale,
|
||||
[[maybe_unused]] float a_rotation,
|
||||
[[maybe_unused]] std::uint32_t a_gestureMask)
|
||||
{}
|
||||
|
||||
virtual DisplayObjContainer* GetRootMovie(DisplayObject* dobj = nullptr) const = 0; // 10
|
||||
virtual bool Init(MovieDefImpl* a_movieDef) = 0; // 11
|
||||
virtual void NotifyMouseEvent(const InputEventsQueueEntry* a_qe, const MouseState& a_ms, std::int32_t a_mi) = 0; // 12
|
||||
virtual void NotifyOnResize() = 0; // 13
|
||||
virtual void NotifyQueueSetFocus(InteractiveObject* a_ch, std::uint32_t a_controllerIdx, FocusMovedType a_fmt) = 0; // 14
|
||||
virtual void NotifyTransferFocus(InteractiveObject* a_curFocused, InteractiveObject* a_newFocus, std::uint32_t a_controllerIdx) = 0; // 15
|
||||
virtual bool NotifyOnFocusChange(InteractiveObject* a_curFocused, InteractiveObject* a_toBeFocused, std::uint32_t a_controllerIdx, FocusMovedType a_fmt, ProcessFocusKeyInfo* a_focusKeyInfo = nullptr) = 0; // 16
|
||||
virtual void NotifyGamePadAnalogEvent([[maybe_unused]] const EventId* a_id) { return; } // 17
|
||||
virtual void NotifyStatusEvent([[maybe_unused]] const EventId* a_id) { return; } // 18
|
||||
virtual void NotifyAccelerometerEvent([[maybe_unused]] const EventId* a_id, [[maybe_unused]] std::int32_t a_evtIDAcc) { return; } // 19
|
||||
virtual void NotifyGeolocationEvent([[maybe_unused]] const EventId* a_id, [[maybe_unused]] std::int32_t a_evtIDGeo) { return; } // 1A
|
||||
virtual void OnMovieFocus(bool a_set) = 0; // 1B
|
||||
virtual void OnNextFrame() = 0; // 1C
|
||||
virtual void OnDeviceOrientationChanged([[maybe_unused]] const OrientationEvent&) { return; } // 1D
|
||||
virtual void OnAppLifecycleEvent([[maybe_unused]] const AppLifecycleEvent&) { return; } // 1E
|
||||
virtual void OnAccelerometerEvent([[maybe_unused]] const AccelerometerEvent&) { return; } // 1F
|
||||
virtual void OnGeolocationEvent([[maybe_unused]] const GeolocationEvent&) { return; } // 20
|
||||
virtual void PrintObjectsReport([[maybe_unused]] std::uint32_t a_flags = 0, [[maybe_unused]] Log* a_log = nullptr, [[maybe_unused]] const char* a_swfName = nullptr) { return; } // 21
|
||||
virtual void GetObjectsTree([[maybe_unused]] Array<Ptr<AmpMovieObjectDesc>>* a_rootObjects, [[maybe_unused]] MemoryHeap* a_heap) { return; } // 22
|
||||
virtual AmpMovieObjectDesc* GetDisplayObjectsTree([[maybe_unused]] MemoryHeap* a_heap) { return nullptr; } // 23
|
||||
virtual void ProcessLoadQueueEntry(LoadQueueEntry* a_entry, LoadStates* a_ls) = 0; // 24
|
||||
virtual void ProcessLoadVarsMT(LoadQueueEntry* a_entry, LoadStates* a_ls, const String& a_data, std::size_t a_fileLen, bool a_succeeded) = 0; // 25
|
||||
|
||||
virtual void ProcessLoadBinaryMT( // 26
|
||||
[[maybe_unused]] LoadQueueEntry* a_entry,
|
||||
[[maybe_unused]] LoadStates* a_ls,
|
||||
[[maybe_unused]] const ArrayPOD<std::byte>& a_data,
|
||||
[[maybe_unused]] std::size_t a_fileLen,
|
||||
[[maybe_unused]] bool a_succeeded)
|
||||
{}
|
||||
|
||||
virtual void RegisterAuxASClasses() = 0; // 27
|
||||
virtual void ResolveStickyVariables(InteractiveObject* a_character) = 0; // 28
|
||||
virtual void SetExternalInterfaceRetVal(const Value&) = 0; // 29
|
||||
virtual void SetMemoryParams(std::uint32_t a_frameBetweenCollections, std::uint32_t a_maxRootCount) = 0; // 2A
|
||||
virtual void Shutdown() = 0; // 2B
|
||||
virtual void CreateString(Value* a_value, const char* a_string) = 0; // 2C
|
||||
virtual void CreateStringW(Value* a_value, const wchar_t* a_string) = 0; // 2D
|
||||
virtual void CreateObject(Value* a_value, const char* a_className = nullptr, const Value* a_args = nullptr, std::uint32_t a_numArgs = 0) = 0; // 2E
|
||||
virtual void CreateArray(Value* a_value) = 0; // 2F
|
||||
virtual void CreateFunction(Value* a_value, FunctionHandler* a_fc, void* a_userData = nullptr) = 0; // 30
|
||||
virtual bool SetVariable(const char* a_pathToVar, const Value& a_value, Movie::SetVarType a_setType = Movie::SetVarType::kSticky) = 0; // 31
|
||||
virtual bool GetVariable(Value* a_val, const char* a_pathToVar) const = 0; // 32
|
||||
virtual bool SetVariableArray(Movie::SetArrayType a_type, const char* a_pathToVar, std::uint32_t a_index, const void* a_data, std::uint32_t a_count, Movie::SetVarType a_setType = Movie::SetVarType::kSticky) = 0; // 33
|
||||
virtual bool SetVariableArraySize(const char* a_pathToVar, std::uint32_t a_count, Movie::SetVarType a_setType = Movie::SetVarType::kSticky) = 0; // 35
|
||||
virtual std::uint32_t GetVariableArraySize(const char* a_pathToVar) = 0; // 34
|
||||
virtual bool GetVariableArray(Movie::SetArrayType a_type, const char* a_pathToVar, std::uint32_t a_index, void* a_data, std::uint32_t a_count) = 0; // 36
|
||||
virtual bool IsAvailable(const char* ppathToVar) const = 0; // 37
|
||||
virtual bool Invoke(const char* a_pathToMethod, Value* a_result, const Value* a_args, std::uint32_t a_numArgs) = 0; // 39
|
||||
virtual bool Invoke(const char* a_pathToMethod, Value* a_result, const char* a_argFmt, ...) = 0; // 38
|
||||
virtual bool InvokeArgs(const char* a_pathToMethod, Value* a_result, const char* a_argFmt, std::va_list a_args) = 0; // 3A
|
||||
virtual MemoryContext* GetMemoryContext() const = 0; // 3B
|
||||
virtual ASStringManager* GetStringManager() const = 0; // 3C
|
||||
virtual Render::Text::Allocator* GetTextAllocator() = 0; // 3D
|
||||
virtual void BroadcastGeolocationStatusEvent(const EventId* a_id) = 0; // 3E
|
||||
|
||||
// members
|
||||
MovieImpl* movieImpl; // 10
|
||||
Ptr<ASSupport> asSupport; // 18
|
||||
std::uint8_t avmVersion; // 20
|
||||
};
|
||||
static_assert(sizeof(ASMovieRootBase) == 0x28);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user