Added some comments
This commit is contained in:
@@ -6,6 +6,13 @@
|
||||
|
||||
namespace ugly{
|
||||
|
||||
/**
|
||||
* \brief Builder class for OpenGL shader and programs.
|
||||
*
|
||||
* On initialization, creates a new OpenGL program. Attach and compile shader
|
||||
* sources using `attachFrom*`. Link and get the program with `link()`. User is
|
||||
* responsible of managing returned program's lifetime, including destroying it.
|
||||
*/
|
||||
class ShaderProgramBuilder {
|
||||
private:
|
||||
GLuint mProgram;
|
||||
@@ -13,10 +20,36 @@ private:
|
||||
public:
|
||||
ShaderProgramBuilder();
|
||||
~ShaderProgramBuilder();
|
||||
/**
|
||||
* \brief Deletes program and starts from scratch.
|
||||
*/
|
||||
void reset();
|
||||
/**
|
||||
* \brief Creates, compiles, and attaches a shader.
|
||||
* \param type Specifies the type of shader to be created. Must be one of
|
||||
* \c GL_VERTEX_SHADER, \c GL_GEOMETRY_SHADER or
|
||||
* \c GL_FRAGMENT_SHADER .
|
||||
* \param string Shader source code.
|
||||
* \param length Bytes to read from \p string, \c 0 reads until NUL byte.
|
||||
* \returns *this
|
||||
*/
|
||||
ShaderProgramBuilder &attachFromMemory(GLenum type, const GLchar *string, GLint length = 0);
|
||||
/**
|
||||
* \brief Creates, compiles, and attaches a shader. Reads source from file.
|
||||
* \param type Specifies the type of shader to be created. Must be one of
|
||||
* \c GL_VERTEX_SHADER, \c GL_GEOMETRY_SHADER or
|
||||
* \c GL_FRAGMENT_SHADER .
|
||||
* \param filename Shader source code file.
|
||||
* \returns \c *this
|
||||
*/
|
||||
ShaderProgramBuilder &attachFromFile(GLenum type, const char *filename);
|
||||
GLuint link();
|
||||
/**
|
||||
* \brief Links OpenGL program after attaching sources.
|
||||
*
|
||||
* After this function is called the builder object is reset.
|
||||
* \return OpenGL object name. User is reponsible for managing it.
|
||||
*/
|
||||
[[nodiscard]] GLuint link();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user