class TScriptResourceWrapper

template<typename NativeType, typename SelfType, typename BaseType = ScriptResourceWrapper>

Extends TScriptObjectWrapper by providing functionality required for types that may be passed along as a Resource handle.

Public

Constructors

TScriptResourceWrapper<NativeType, SelfType, BaseType>

TScriptResourceWrapper<NativeType, SelfType, BaseType>(const TResourceHandle<NativeType> &nativeObject)

Methods

GetNativeObjectAsShared

SPtr<NativeType> GetNativeObjectAsShared() const

Returns the wrapped native object as a shared pointer.

GetNativeObjectAsHandle

TResourceHandle<NativeType> GetNativeObjectAsHandle() const

Returns the wrapped native object as a handle.

GetNativeObjectReferenceCount

u32 GetNativeObjectReferenceCount() const override

GetOrCreateResourceReference

MonoObject *GetOrCreateResourceReference() const

Returns a resource reference script object, that is wrapping the provided resource.

ShouldPersistScriptReload

bool ShouldPersistScriptReload() const override

GetLifetimeTrackingMode

ScriptObjectLifetimeTrackingMode GetLifetimeTrackingMode() const override

staticCreateScriptObjectAndWrapper

static MonoObject *CreateScriptObjectAndWrapper(const HResource &nativeObject)

Creates a new script object and a script object wrapper of , and associates them with the provided native object.

Should not be called if already has an associated script object.

staticGetScriptExportable

static IScriptExportable *GetScriptExportable(IReflectable *nativeObject)

Casts the reflectable object to script exportable.

staticGetOrCreateScriptObject

static MonoObject *GetOrCreateScriptObject(const TResourceHandle<NativeType> &nativeObject)

Attempts to retrieve an existing associated script object from the provided native object.

If one doesn't exist, a new script object and the associated script wrapper will be created.

~TScriptObjectWrapper<SelfType, BaseType>

virtual ~TScriptObjectWrapper<SelfType, BaseType>() = default

RecreateScriptObjectAfterScriptReload

void RecreateScriptObjectAfterScriptReload() override

staticGetScriptObjectWrapper

static SelfType *GetScriptObjectWrapper(MonoObject *scriptObject)

Returns the script object wrapper associated with the provided script object.

staticGetMetaData

static const ScriptTypeMetaData *GetMetaData()

Returns the meta-data storing information about the script type.

staticInitializeMetaDataAtLoadTime

static void InitializeMetaDataAtLoadTime()

Takes care of initializing the meta-data when the application first load.

The meta-data will be registered with a global manager that will ensure it is kept up-to-date after operations such as assembly (re)load.

Protected

Methods

staticInitializeAdditionalMetaData

static void InitializeAdditionalMetaData(ScriptTypeMetaData &metaData)

Initialize RTTI type ID and callback used to create the script object/script object wrapper.

BindToScriptObject

void BindToScriptObject(MonoObject *scriptObject) override

Stores a pointer to itself in the script object.

This ensures that calls to GetScriptObjectWrapper() can return the script object wrapper associated with the script object.