Extra2D/include/assets/asset_loader.h

45 lines
1013 B
C
Raw Normal View History

#pragma once
#include <assets/handle.h>
#include <types/ptr/intrusive_ptr.h>
#include <vector>
#include <cstdint>
namespace extra2d {
/**
* @brief
*
*
*
* @tparam T
*/
template<typename T>
class AssetLoader {
public:
virtual ~AssetLoader() = default;
/**
* @brief
* @param path
* @return nullptr
*/
virtual Ptr<T> load(const std::string& path) = 0;
/**
* @brief
* @param data
* @param size
* @return nullptr
*/
virtual Ptr<T> loadFromMemory(const uint8_t* data, size_t size) = 0;
/**
* @brief
* @return ".png", ".jpg"
*/
virtual std::vector<std::string> getExtensions() const = 0;
};
} // namespace extra2d