#pragma once #include #include "glad/glad.h" namespace cbt::opengl { class shader { GLuint m_id = 0; public: shader(); ~shader(); shader(shader const&) = delete; shader& operator=(shader const&) = delete; shader(shader&& other) noexcept; shader& operator=(shader&& other) noexcept; auto compile_vertex(char const* source) -> bool; auto compile_fragment(char const* source) -> bool; auto link() -> bool; auto use() const -> void; auto unuse() const -> void; auto id() const -> GLuint; auto valid() const -> bool; }; }