Program Listing for File Shader.hpp
↰ Return to documentation for file (engine/include/Cacao/Shader.hpp)
#pragma once
#include "DllHelper.hpp"
#include "Asset.hpp"
#include "libcacaoasset.hpp"
namespace Cacao {
class CACAO_API Shader : public Asset {
public:
static std::shared_ptr<Shader> Create(std::vector<unsigned char>&& shaderIR, libcacaoasset::Shader::Descriptor desc, const std::string& addr);
Shader(const Shader&) = delete;
Shader(Shader&&);
Shader& operator=(const Shader&) = delete;
Shader& operator=(Shader&&);
libcacaoasset::Shader::Descriptor GetDescriptor();
void Bake() override;
void Discard() override;
class Impl;
~Shader();
private:
Shader(std::vector<unsigned char>&& shaderIR, libcacaoasset::Shader::Descriptor desc, const std::string& addr);
friend class ResourceManager;
friend class PAL;
std::unique_ptr<Impl> impl;
friend class ImplAccessor;
};
}