Diligent Engine
Loading...
Searching...
No Matches
Diligent::IRadientAssetResolver Struct Referenceabstract

#include <RadientAssetResolver.h>

Inheritance diagram for Diligent::IRadientAssetResolver:
Diligent.IObject

Public Member Functions

virtual RADIENT_STATUS DILIGENT_CALL_TYPE CheckAsset (IRadientAssetLocation *pLocation)=0
virtual RADIENT_STATUS DILIGENT_CALL_TYPE ResolveAssetLocation (const RadientAssetResolveInfo &ResolveInfo, IRadientAssetLocation **ppLocation)=0
virtual RADIENT_STATUS DILIGENT_CALL_TYPE OpenAsset (IRadientAssetLocation *pLocation, IRadientAssetData **ppData)=0
Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
template<typename DerivedType, typename = typename std::enable_if<std::is_base_of<IObject, DerivedType>::value>::type>
void QueryInterface (const INTERFACE_ID &IID, DerivedType **ppInterface)
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0

Detailed Description

Resolves asset identities and opens their byte data. All methods may be called concurrently from multiple threads, including simultaneous calls on the same resolver instance. Implementations must be thread-safe.

Member Function Documentation

◆ CheckAsset()

virtual RADIENT_STATUS DILIGENT_CALL_TYPE Diligent::IRadientAssetResolver::CheckAsset ( IRadientAssetLocation * pLocation)
pure virtual

Checks whether an asset location can be opened without loading its contents. Returns RADIENT_STATUS_OK when the asset exists, RADIENT_STATUS_NOT_FOUND when it does not exist, or another failure status when the check fails. This operation is synchronous and never returns RADIENT_STATUS_PENDING.

◆ OpenAsset()

virtual RADIENT_STATUS DILIGENT_CALL_TYPE Diligent::IRadientAssetResolver::OpenAsset ( IRadientAssetLocation * pLocation,
IRadientAssetData ** ppData )
pure virtual

Opens an asset location returned by this resolver. ppData must not be null. On success, the resolved URI reported by ppData matches pLocation.

◆ ResolveAssetLocation()

virtual RADIENT_STATUS DILIGENT_CALL_TYPE Diligent::IRadientAssetResolver::ResolveAssetLocation ( const RadientAssetResolveInfo & ResolveInfo,
IRadientAssetLocation ** ppLocation )
pure virtual

Resolves an asset request to its canonical location without loading asset contents. ppLocation must not be null. A successful resolution does not necessarily guarantee that the asset can subsequently be opened.