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