XII Release 0.1.0
Loading...
Searching...
No Matches
xiiMeshResource Class Referencefinal

Mesh resource class representing a renderable mesh in the engine, containing geometry, materials, LODs, and other properties for rendering and animation. More...

#include <MeshResource.h>

Inheritance diagram for xiiMeshResource:
[legend]

Public Member Functions

const xiiMeshResourceDescriptor & GetDescriptor () const
 Returns the descriptor used to create this mesh resource, containing all the data and properties for this mesh.
const xiiMeshBufferResourceHandle & GetMeshBuffer () const
 Returns a handle to the mesh buffer resource associated with this mesh, used to access the vertex/index/meshlet data for rendering.
const xiiMaterialResourceHandle & GetMaterial (xiiUInt32 uiMaterialIndex) const
xiiArrayPtr< const xiiMaterialResourceHandle > GetMaterials () const
 Returns a reference to the array of material resource handles for this mesh, used to access the materials for rendering.
xiiArrayPtr< const xiiMeshLOD > GetLODs () const
 Returns a reference to the array of LODs for this mesh, used for LOD selection and rendering.
xiiArrayPtr< const xiiMeshSection > GetSections () const
 Returns a reference to the array of sections for this mesh, used for rendering and culling.
xiiArrayPtr< const xiiMeshMorphTarget > GetMorphTargets () const
const xiiBoundingBoxSphere & GetBounds () const
 Returns the bounding volume for this mesh, used for culling and LOD selection.
xiiUInt32 GetLODCount () const
 Returns the number of LODs for this mesh.
xiiUInt32 GetMeshletCount () const
 Returns the number of sections for this mesh.
xiiBitflags< xiiMeshResourceUsageFlags > GetUsageFlags () const
 Returns the usage flags for this mesh, used to specify intended usage patterns and GPU feature support.
xiiEnum< xiiMeshLodSelectionMode > GetLodMode () const
 Returns the LOD selection mode for this mesh, used to determine how LODs are chosen at runtime.
Public Member Functions inherited from xiiResource
XII_ALWAYS_INLINE xiiStringView GetResourceID () const
XII_ALWAYS_INLINE xiiUInt64 GetResourceIDHash () const
 Returns the hash of the unique ID.
void SetResourceDescription (xiiStringView sDescription)
const xiiString & GetResourceDescription () const
const xiiString & GetResourceIdOrDescription () const
XII_ALWAYS_INLINE xiiResourceState GetLoadingState () const
 Returns the current state in which this resource is in.
XII_ALWAYS_INLINE xiiUInt8 GetNumQualityLevelsDiscardable () const
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
XII_ALWAYS_INLINE xiiInt32 GetReferenceCount () const
 Returns the reference count of this resource.
XII_ALWAYS_INLINE const xiiTimestamp & GetLoadedFileModificationTime () const
XII_ALWAYS_INLINE xiiUInt32 GetCurrentResourceChangeCounter () const
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 ()
void PrintHandleStackTraces ()
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.

Private Member Functions

virtual xiiResourceLoadDescription UnloadData (Unload whatToUnload) override
virtual xiiResourceLoadDescription UpdateContent (xiiStreamReader *pStream) override
virtual void UpdateMemoryUsage (MemoryUsage &out_NewMemoryUsage) override

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 }
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)
void SetHasLoadingFallback (bool bHasLoadingFallback)
 Used internally by the code injection macros.

Detailed Description

Mesh resource class representing a renderable mesh in the engine, containing geometry, materials, LODs, and other properties for rendering and animation.

Member Function Documentation

◆ GetMaterial()

const xiiMaterialResourceHandle & xiiMeshResource::GetMaterial ( xiiUInt32 uiMaterialIndex) const

Returns a reference to the material resource handle for the material slot at the given index, used to access the material for rendering.

Parameters
uiMaterialIndexIndex of the material slot to retrieve, must be less than the number of material slots in this mesh.

◆ UnloadData()

xiiResourceLoadDescription xiiMeshResource::UnloadData ( Unload WhatToUnload)
overrideprivatevirtual

Requests the resource to unload another quality level. If bFullUnload is true, the resource should unload all data, because it is going to be deleted afterwards.

Implements xiiResource.

◆ UpdateContent()

xiiResourceLoadDescription xiiMeshResource::UpdateContent ( xiiStreamReader * pStream)
overrideprivatevirtual

Called whenever more data for the resource is available. The resource must read the stream to update it's data.

pStream may be nullptr in case the resource data could not be found.

Implements xiiResource.

◆ UpdateMemoryUsage()

void xiiMeshResource::UpdateMemoryUsage ( MemoryUsage & out_NewMemoryUsage)
overrideprivatevirtual

This function must be overridden by all resource types.

It has to compute the memory used by this resource. It is called by the resource manager whenever the resource's data has been loaded or unloaded.

Implements xiiResource.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Meshes/MeshResource.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsCore/Meshes/Implementation/MeshResource.cpp