#pragma once #include #include #include "GL/glew.h" #include "opengl/handles/shader_handle.hpp" namespace zgl { struct shader_data { shader_data() = default; inline shader_data(GLuint id); shader_data(const shader_data& other) = delete; shader_data& operator=(const shader_data& other) = delete; inline shader_data(shader_data&& other) noexcept; inline shader_data& operator=(shader_data&& other) noexcept; inline ~shader_data(); shader_handle handle{}; }; } #define INCLUDE_SHADER_DATA_IMPLEMENTATION #include "opengl/data/shader_data.ipp" #undef INCLUDE_SHADER_DATA_IMPLEMENTATION