![]() |
XII Release 0.1.0
|
Resource representing a script class with its type information and instantiation capabilities. More...
#include <ScriptClassResource.h>
Public Member Functions | |
| const xiiSharedPtr< xiiScriptRTTI > & | GetType () const |
| virtual xiiUniquePtr< xiiScriptInstance > | Instantiate (xiiReflectedClass &inout_owner, xiiWorld *pWorld) const =0 |
Public Member Functions inherited from xiiResource | |
| XII_ALWAYS_INLINE xiiStringView | GetResourceID () const |
| Returns the unique ID that identifies this resource. On a file resource this might be a path. Can also be a GUID or any other scheme that uniquely identifies the resource. | |
| XII_ALWAYS_INLINE xiiUInt64 | GetResourceIDHash () const |
| Returns the hash of the unique ID. | |
| void | SetResourceDescription (xiiStringView sDescription) |
| The resource description allows to store an additional string that might be more descriptive during debugging, than the unique ID. | |
| const xiiString & | GetResourceDescription () const |
| The resource description allows to store an additional string that might be more descriptive during debugging, than the unique ID. | |
| const xiiString & | GetResourceIdOrDescription () const |
| The returns the resource description, if available, otherwise the resource ID. | |
| XII_ALWAYS_INLINE xiiResourceState | GetLoadingState () const |
| Returns the current state in which this resource is in. | |
| XII_ALWAYS_INLINE xiiUInt8 | GetNumQualityLevelsDiscardable () const |
| Returns the current maximum quality level that the resource could have. | |
| XII_ALWAYS_INLINE xiiUInt8 | GetNumQualityLevelsLoadable () const |
| Returns how many quality levels the resource may additionally load. | |
| float | GetLoadingPriority (xiiTime now) const |
| Returns the priority that is used by the resource manager to determine which resource to load next. | |
| xiiResourcePriority | GetPriority () const |
| Returns the current resource priority. | |
| void | SetPriority (xiiResourcePriority priority) |
| Changes the current resource priority. | |
| XII_ALWAYS_INLINE const xiiBitflags< xiiResourceFlags > & | GetBaseResourceFlags () const |
| Returns the basic flags for the resource type. Mostly used the resource manager. | |
| XII_ALWAYS_INLINE const MemoryUsage & | GetMemoryUsage () const |
| Returns the information about the current memory usage of the resource. | |
| XII_ALWAYS_INLINE xiiTime | GetLastAcquireTime () const |
| Returns the time at which the resource was (tried to be) acquired last. If a resource is acquired using xiiResourceAcquireMode::PointerOnly, this does not update the last acquired time, since the resource is not acquired for full use. | |
| XII_ALWAYS_INLINE xiiInt32 | GetReferenceCount () const |
| Returns the reference count of this resource. | |
| XII_ALWAYS_INLINE const xiiTimestamp & | GetLoadedFileModificationTime () const |
| Returns the modification date of the file from which this resource was loaded. | |
| XII_ALWAYS_INLINE xiiUInt32 | GetCurrentResourceChangeCounter () const |
| Returns the current value of the resource change counter. Can be used to detect whether the resource has changed since using it last time. | |
| XII_ALWAYS_INLINE void | IncResourceChangeCounter () |
| Allows to manually increase the resource change counter to signal that dependent code might need to update. | |
| virtual void | ResetResource () |
| If the resource has modifications from the original state, it should reset itself to that state now (or force a reload on itself). | |
| void | PrintHandleStackTraces () |
| Prints the stack-traces for all handles that currently reference this resource. | |
Public Member Functions inherited from xiiReflectedClass | |
| virtual const xiiRTTI * | GetDynamicRTTI () const |
| bool | IsInstanceOf (const xiiRTTI *pType) const |
| Returns whether the type of this instance is of the given type or derived from it. | |
| template<typename T> | |
| XII_ALWAYS_INLINE bool | IsInstanceOf () const |
| Returns whether the type of this instance is of the given type or derived from it. | |
Protected Member Functions | |
| xiiSharedPtr< xiiScriptRTTI > | CreateScriptType (xiiStringView sName, const xiiRTTI *pBaseType, xiiScriptRTTI::FunctionList &&functions, xiiScriptRTTI::MessageHandlerList &&messageHandlers) |
| void | DeleteScriptType () |
| xiiSharedPtr< xiiScriptCoroutineRTTI > | CreateScriptCoroutineType (xiiStringView sScriptClassName, xiiStringView sFunctionName, xiiUniquePtr< xiiRTTIAllocator > &&pAllocator) |
| void | DeleteAllScriptCoroutineTypes () |
Protected Member Functions inherited from xiiResource | |
| xiiResource (DoUpdate resourceUpdateThread, xiiUInt8 uiQualityLevelsLoadable) | |
| Default constructor. | |
| virtual | ~xiiResource () |
| virtual destructor. | |
| MemoryUsage & | ModifyMemoryUsage () |
| Non-const version for resources that want to write this variable directly. | |
| void | SetIsReloadable (bool bIsReloadable) |
| Call this to specify whether a resource is reloadable. | |
| void | SetHasLoadingFallback (bool bHasLoadingFallback) |
| Used internally by the code injection macros. | |
Protected Attributes | |
| xiiSharedPtr< xiiScriptRTTI > | m_pType |
| xiiDynamicArray< xiiSharedPtr< xiiScriptCoroutineRTTI > > | m_CoroutineTypes |
Additional Inherited Members | |
Public Types inherited from xiiResource | |
| enum class | DoUpdate : xiiUInt8 { OnMainThread = 0U , OnAnyThread } |
| Specifies the thread type on which update operations should be performed. More... | |
Static Public Member Functions inherited from xiiNoBase | |
| static const xiiRTTI * | GetStaticRTTI () |
Public Attributes inherited from xiiResource | |
| xiiEvent< const xiiResourceEvent &, xiiMutex > | m_ResourceEvents |
Protected Types inherited from xiiResource | |
| enum class | Unload : xiiUInt8 { AllQualityLevels = 0U , OneQualityLevel } |
| Defines unloading behavior for quality levels. More... | |
Resource representing a script class with its type information and instantiation capabilities.
Base class for script resources that define class types for scripting languages. Manages script type creation, instantiation, and coroutine type handling. Derived classes implement language-specific instantiation logic.