Extra2D/include/assets/loaders/shader_loader.h

56 lines
1.5 KiB
C
Raw Normal View History

#pragma once
#include <assets/asset_loader.h>
#include <renderer/shader.h>
namespace extra2d {
/**
* @brief
*
*
*/
class ShaderLoader : public AssetLoader<Shader> {
public:
/**
* @brief
* @param path .vert/.frag
* @return nullptr
*/
Ptr<Shader> load(const std::string& path) override;
/**
* @brief
* @param vertPath
* @param fragPath
* @return nullptr
*/
Ptr<Shader> load(const std::string& vertPath, const std::string& fragPath);
/**
* @brief
* @param data
* @param size
* @return nullptr
*/
Ptr<Shader> loadFromMemory(const uint8_t* data, size_t size) override;
/**
* @brief
* @param vsSource
* @param fsSource
* @return nullptr
*/
Ptr<Shader> loadFromSource(const std::string& vsSource, const std::string& fsSource);
/**
* @brief
* @return
*/
std::vector<std::string> getExtensions() const override {
return {".glsl", ".vert", ".frag"};
}
};
} // namespace extra2d