diff --git a/PolyEngine/API/Src/pe/api/res/IResource.hpp b/PolyEngine/API/Src/pe/api/res/IResource.hpp new file mode 100644 index 00000000..0782b768 --- /dev/null +++ b/PolyEngine/API/Src/pe/api/res/IResource.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include + +namespace pe::api::res { + +// Needs RTTI information +class API_DLLEXPORT IResource : public ::pe::core::BaseObject<> +{ +}; + +} \ No newline at end of file diff --git a/PolyEngine/API/Src/pe/api/res/IResourceManager.hpp b/PolyEngine/API/Src/pe/api/res/IResourceManager.hpp new file mode 100644 index 00000000..2cddaafe --- /dev/null +++ b/PolyEngine/API/Src/pe/api/res/IResourceManager.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include + +#include +#include + +#include +#include + + +namespace pe::api::res { + +class API_DLLEXPORT IResourceManager : public ::pe::core::BaseObject<> +{ +public: + virtual ~IResourceManager() = default; + + virtual bool registerRepository(const core::storage::String& name, + std::unique_ptr resourceRepository) = 0; + virtual bool unregisterRepository(const core::storage::String& name) = 0; + + virtual std::future> loadResourceAsync(const core::UniqueID& id) = 0; +}; + +} \ No newline at end of file diff --git a/PolyEngine/API/Src/pe/api/res/IResourceRepository.hpp b/PolyEngine/API/Src/pe/api/res/IResourceRepository.hpp new file mode 100644 index 00000000..a5f9fb9c --- /dev/null +++ b/PolyEngine/API/Src/pe/api/res/IResourceRepository.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include + +#include + +namespace pe::api::res { + +class API_DLLEXPORT IResourceRepository : public ::pe::core::BaseObject<> +{ +public: + virtual bool containsResource(const core::UniqueID& id) const = 0; + virtual std::future> loadResourceAsync(const core::UniqueID& id) = 0; +}; + +} \ No newline at end of file