![]() |
ezEngine
Release 25.03
|
Public Member Functions | |
const EZ_ALWAYS_INLINE ezDynamicMeshBufferResourceDescriptor & | GetDescriptor () const |
EZ_ALWAYS_INLINE ezGALBufferHandle | GetVertexBuffer () const |
EZ_ALWAYS_INLINE ezGALBufferHandle | GetIndexBuffer () const |
EZ_ALWAYS_INLINE ezGALBufferHandle | GetColorBuffer () const |
ezArrayPtr< ezDynamicMeshVertex > | AccessVertexData () |
Grants write access to the vertex data, and flags the data as 'dirty'. | |
ezArrayPtr< ezUInt16 > | AccessIndex16Data () |
Grants write access to the 16 bit index data, and flags the data as 'dirty'. More... | |
ezArrayPtr< ezUInt32 > | AccessIndex32Data () |
Grants write access to the 32 bit index data, and flags the data as 'dirty'. More... | |
ezArrayPtr< ezColorLinearUB > | AccessColorData () |
Grants write access to the color data, and flags the data as 'dirty'. More... | |
const ezVertexDeclarationInfo & | GetVertexDeclaration () const |
void | UpdateGpuBuffer (ezGALCommandEncoder *pGALCommandEncoder, ezUInt32 uiFirstVertex=0, ezUInt32 uiNumVertices=ezMath::MaxValue< ezUInt32 >(), ezUInt32 uiFirstIndex=0, ezUInt32 uiNumIndices=ezMath::MaxValue< ezUInt32 >(), bool bCreateNewBuffer=true) |
Uploads the current vertex and index data to the GPU. More... | |
![]() | |
EZ_ALWAYS_INLINE ezStringView | 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. | |
EZ_ALWAYS_INLINE ezUInt64 | GetResourceIDHash () const |
Returns the hash of the unique ID. | |
void | SetResourceDescription (ezStringView sDescription) |
The resource description allows to store an additional string that might be more descriptive during debugging, than the unique ID. | |
const ezString & | GetResourceDescription () const |
The resource description allows to store an additional string that might be more descriptive during debugging, than the unique ID. | |
const ezString & | GetResourceIdOrDescription () const |
The returns the resource description, if available, otherwise the resource ID. More... | |
EZ_ALWAYS_INLINE ezResourceState | GetLoadingState () const |
Returns the current state in which this resource is in. | |
EZ_ALWAYS_INLINE ezUInt8 | GetNumQualityLevelsDiscardable () const |
Returns the current maximum quality level that the resource could have. More... | |
EZ_ALWAYS_INLINE ezUInt8 | GetNumQualityLevelsLoadable () const |
Returns how many quality levels the resource may additionally load. | |
float | GetLoadingPriority (ezTime now) const |
Returns the priority that is used by the resource manager to determine which resource to load next. | |
ezResourcePriority | GetPriority () const |
Returns the current resource priority. | |
void | SetPriority (ezResourcePriority priority) |
Changes the current resource priority. | |
const EZ_ALWAYS_INLINE ezBitflags< ezResourceFlags > & | GetBaseResourceFlags () const |
Returns the basic flags for the resource type. Mostly used the resource manager. | |
const EZ_ALWAYS_INLINE MemoryUsage & | GetMemoryUsage () const |
Returns the information about the current memory usage of the resource. | |
EZ_ALWAYS_INLINE ezTime | GetLastAcquireTime () const |
Returns the time at which the resource was (tried to be) acquired last. If a resource is acquired using ezResourceAcquireMode::PointerOnly, this does not update the last acquired time, since the resource is not acquired for full use. | |
EZ_ALWAYS_INLINE ezInt32 | GetReferenceCount () const |
Returns the reference count of this resource. | |
const EZ_ALWAYS_INLINE ezTimestamp & | GetLoadedFileModificationTime () const |
Returns the modification date of the file from which this resource was loaded. More... | |
EZ_ALWAYS_INLINE ezUInt32 | 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. More... | |
EZ_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. More... | |
![]() | |
virtual const ezRTTI * | GetDynamicRTTI () const |
bool | IsInstanceOf (const ezRTTI *pType) const |
Returns whether the type of this instance is of the given type or derived from it. | |
template<typename T > | |
EZ_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 ezResourceLoadDesc | UnloadData (Unload WhatToUnload) override |
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. | |
virtual ezResourceLoadDesc | UpdateContent (ezStreamReader *Stream) override |
Called whenever more data for the resource is available. The resource must read the stream to update it's data. More... | |
virtual void | UpdateMemoryUsage (MemoryUsage &out_NewMemoryUsage) override |
This function must be overridden by all resource types. More... | |
Additional Inherited Members | |
![]() | |
enum | DoUpdate { OnMainThread, OnAnyThread, DoUpdate::OnGraphicsResourceThreads } |
![]() | |
static const ezRTTI * | GetStaticRTTI () |
![]() | |
ezEvent< const ezResourceEvent &, ezMutex > | m_ResourceEvents |
![]() | |
static DoUpdate | UpdateGraphicsResource = ezResource::DoUpdate::OnAnyThread |
![]() | |
enum | Unload { AllQualityLevels, OneQualityLevel } |
![]() | |
ezResource (DoUpdate ResourceUpdateThread, ezUInt8 uiQualityLevelsLoadable) | |
Default constructor. | |
virtual | ~ezResource () |
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. More... | |
void | SetHasLoadingFallback (bool bHasLoadingFallback) |
Used internally by the code injection macros. | |
|
inline |
Grants write access to the color data, and flags the data as 'dirty'.
Accessing this data is only valid, if creation of the color buffer was enabled.
|
inline |
Grants write access to the 16 bit index data, and flags the data as 'dirty'.
Accessing this data is only valid, if the buffer was created with 16 bit indices.
|
inline |
Grants write access to the 32 bit index data, and flags the data as 'dirty'.
Accessing this data is only valid, if the buffer was created with 32 bit indices.
|
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 ezResource.
void ezDynamicMeshBufferResource::UpdateGpuBuffer | ( | ezGALCommandEncoder * | pGALCommandEncoder, |
ezUInt32 | uiFirstVertex = 0 , |
||
ezUInt32 | uiNumVertices = ezMath::MaxValue<ezUInt32>() , |
||
ezUInt32 | uiFirstIndex = 0 , |
||
ezUInt32 | uiNumIndices = ezMath::MaxValue<ezUInt32>() , |
||
bool | bCreateNewBuffer = true |
||
) |
Uploads the current vertex and index data to the GPU.
If all values are set to default, the entire data is uploaded. If uiNumVertices or uiNumIndices is set to the max value, all vertices or indices (after their start offset) are uploaded.
In all other cases, the number of elements to upload must be within valid bounds.
This function can be used to only upload a subset of the modified data.
Note that this function doesn't do anything, if the vertex or index data wasn't recently accessed through AccessVertexData(), AccessIndex16Data() or AccessIndex32Data(). So if you want to upload multiple pieces of the data to the GPU, you have to call these functions in between to flag the uploaded data as out-of-date.
|
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 ezResource.