#pragma once #ifdef _WIN32 #include #endif #include #include #include namespace scwx { namespace qt { class ShaderProgramImpl; class ShaderProgram { public: explicit ShaderProgram(); ~ShaderProgram(); ShaderProgram(const ShaderProgram&) = delete; ShaderProgram& operator=(const ShaderProgram&) = delete; ShaderProgram(ShaderProgram&&) noexcept; ShaderProgram& operator=(ShaderProgram&&) noexcept; GLuint id() const; bool Load(const std::string& vertexPath, const std::string& fragmentPath); void Use() const; private: std::unique_ptr p; }; } // namespace qt } // namespace scwx