3 #include "Mountain/core.hpp" 8 #include "Mountain/rendering/graphics.hpp" 9 #include "Mountain/resource/shader_base.hpp" 31 MOUNTAIN_API
static constexpr std::array VertexFileExtensions
39 MOUNTAIN_API
static constexpr std::array FragmentFileExtensions
51 static Graphics::ShaderType FileExtensionToType(
const std::string& extension);
53 using ShaderBase::ShaderBase;
55 using ShaderBase::SetSourceData;
60 MOUNTAIN_API bool_t SetSourceData(
const Pointer<File>& shader)
override;
66 MOUNTAIN_API bool_t Load(
const char_t* buffer, int64_t length, Graphics::ShaderType
type);
69 MOUNTAIN_API
void Load()
override;
72 MOUNTAIN_API
void Unload()
override;
75 MOUNTAIN_API
void ResetSourceData()
override;
77 MOUNTAIN_API bool_t Reload(bool_t reloadInBackend =
true)
override;
79 MOUNTAIN_API bool_t Reload(
const Pointer<File>& file, bool_t reloadInBackend =
true)
override;
82 MOUNTAIN_API std::array<Pointer<File>, magic_enum::enum_count<Graphics::ShaderType>()>& GetFiles();
85 MOUNTAIN_API
const std::array<Pointer<File>, magic_enum::enum_count<Graphics::ShaderType>()>& GetFiles()
const;
88 MOUNTAIN_API std::array<ShaderCode, magic_enum::enum_count<Graphics::ShaderType>()>& GetCode();
91 MOUNTAIN_API
const std::array<ShaderCode, magic_enum::enum_count<Graphics::ShaderType>()>& GetCode()
const;
94 MOUNTAIN_API
void Use()
const;
97 MOUNTAIN_API
void Unuse()
const;
100 std::array<Pointer<File>, magic_enum::enum_count<Graphics::ShaderType>()> m_Files;
101 std::array<ShaderCode, magic_enum::enum_count<Graphics::ShaderType>()> m_Code;
103 bool_t CheckCompileError(uint32_t
id, Graphics::ShaderType type)
const;
Defines the Mountain::File class.
std::string code
Pointer to raw code.
Graphics::ShaderType type
Shader type.
Encapsulates shader code information.
Custom Mountain smart pointer. Represents both a std::shared_ptr and a std::weak_ptr.
Defines the Mountain::Pointer class.
Encapsulates a GPU shader.
Contains all declarations of the Mountain Framework.