docs: add plugin setup guide

This commit is contained in:
2026-05-30 18:33:24 +12:00
parent f3db41c402
commit b61043a3fe
1776 changed files with 122386 additions and 2 deletions
@@ -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);
}
}