glcxx: A Modern C++ Interface to OpenGL Object Management
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
glcxx::Shader Class Reference

C++ wrapper for an OpenGL shader object. More...

#include <Shader.hpp>

Public Member Functions

 Shader (GLenum shader_type)
 Create and allocate an OpenGL shader object. More...
 
 ~Shader ()
 Destroy the shader object.
 
void set_source (const char *source, int length=-1)
 Load shader source from memory. More...
 
void set_source_from_file (const char *filename)
 Load shader source from a file. More...
 
GLuint id () const
 Get the shader object's ID. More...
 

Static Public Member Functions

static std::shared_ptr< Shadercreate (GLenum shader_type, const char *source, int length=-1)
 Factory method to construct a Shader object. More...
 
static std::shared_ptr< Shadercreate_from_file (GLenum shader_type, const char *filename)
 Factory method to construct a Shader object. More...
 

Protected Member Functions

void allocate ()
 Allocate the OpenGL shader object.
 

Protected Attributes

GLuint m_id
 The shader object's ID.
 
GLenum m_shader_type
 The OpenGL shader type.
 

Detailed Description

C++ wrapper for an OpenGL shader object.

Constructor & Destructor Documentation

glcxx::Shader::Shader ( GLenum  shader_type)

Create and allocate an OpenGL shader object.

Parameters
shader_typeOpenGL shader type (e.g. GL_VERTEX_SHADER).

Member Function Documentation

static std::shared_ptr<Shader> glcxx::Shader::create ( GLenum  shader_type,
const char *  source,
int  length = -1 
)
inlinestatic

Factory method to construct a Shader object.

Parameters
shader_typeOpenGL shader type (e.g. GL_VERTEX_SHADER).
sourcePointer to the shader source.
lengthLength of the shader source. If unspecified, the shader source must be NULL-terminated.
static std::shared_ptr<Shader> glcxx::Shader::create_from_file ( GLenum  shader_type,
const char *  filename 
)
inlinestatic

Factory method to construct a Shader object.

Parameters
shader_typeOpenGL shader type (e.g. GL_VERTEX_SHADER).
filenameName of the file to load.
GLuint glcxx::Shader::id ( ) const
inline

Get the shader object's ID.

Returns
The shader object's ID.
void glcxx::Shader::set_source ( const char *  source,
int  length = -1 
)

Load shader source from memory.

Parameters
sourcePointer to the shader source.
lengthLength of the shader source. If unspecified, the shader source must be NULL-terminated.
void glcxx::Shader::set_source_from_file ( const char *  filename)

Load shader source from a file.

Parameters
filenameName of the file to load.

The documentation for this class was generated from the following files: