#pragma once #include #include namespace ugly{ class ShaderProgramBuilder { public: class Error: public std::runtime_error{ public: using std::runtime_error::runtime_error; }; public: ShaderProgramBuilder(); ~ShaderProgramBuilder(); void reset(); ShaderProgramBuilder &attachFromMemory(GLenum type, const GLchar *string, GLint length = 0); ShaderProgramBuilder &attachFromFile(GLenum type, const char *filename); GLuint link(); private: GLuint mProgram; }; }