30 lines
1.2 KiB
C++
30 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "ProjectAssetTypes.h"
|
|
|
|
namespace XCEngine {
|
|
namespace Resources {
|
|
|
|
class IProjectAssetResolver {
|
|
public:
|
|
virtual ~IProjectAssetResolver() = default;
|
|
|
|
virtual Containers::String GetProjectRoot() const = 0;
|
|
virtual bool TryGetImportableResourceType(const Containers::String& requestPath,
|
|
ResourceType& outType) const = 0;
|
|
virtual bool EnsureArtifact(const Containers::String& requestPath,
|
|
ResourceType requestedType,
|
|
ProjectAssetImportedAsset& outAsset) = 0;
|
|
virtual bool TryGetAssetRef(const Containers::String& requestPath,
|
|
ResourceType resourceType,
|
|
AssetRef& outRef) const = 0;
|
|
virtual bool TryGetPrimaryAssetPath(const AssetGUID& guid,
|
|
Containers::String& outRelativePath) const = 0;
|
|
virtual bool TryResolveAssetPath(const AssetRef& assetRef,
|
|
Containers::String& outPath) const = 0;
|
|
virtual void BuildLookupSnapshot(ProjectAssetLookupSnapshot& outSnapshot) const = 0;
|
|
};
|
|
|
|
} // namespace Resources
|
|
} // namespace XCEngine
|