Cutout Vis2012
TUWienVisualisierung2(SS2012)-AdaptiveCutaways
 All Classes Namespaces Functions Pages
Public Member Functions | List of all members
Shader Class Reference

#include <Shader.h>

Public Member Functions

 Shader (const std::string &name)
 
bool attachShaderSource (int type, const std::string &source)
 
bool attachShaderFile (int type, const std::string &path)
 
bool compileShaders ()
 
bool link (const std::string &out)
 
bool link (const std::string *out, int numAttachments)
 
void bind ()
 
void unbind ()
 
GLint getUniformLocation (const std::string &name) const
 
GLint getAttribLocation (const std::string &name) const
 
const std::string & getName () const
 

Detailed Description

Provides functionality to load GLSL source code from a file, compile it, link it and bind it to the context.

Constructor & Destructor Documentation

Shader::Shader ( const std::string &  name)

Creates a shader with an associated name. Name will be displayed to link error message to it.

Member Function Documentation

bool Shader::attachShaderFile ( int  type,
const std::string &  path 
)

Attaches source code from a file to this shader. Shader type is one of GL_VERTEX_SHADER, GL_GEOMETRY_SHADER, GL_FRAGMENT_SHADER.

Parameters
pathfile relative to the folder shaders/
bool Shader::attachShaderSource ( int  type,
const std::string &  source 
)

Attaches source code from a string to this shader. Shader type is one of GL_VERTEX_SHADER, GL_GEOMETRY_SHADER, GL_FRAGMENT_SHADER.

void Shader::bind ( )

Binds the shader to the context.

bool Shader::compileShaders ( )

Attempt to compile all source code attached to this object. Error messages are displayed at the standard output.

GLint Shader::getAttribLocation ( const std::string &  name) const

Returns the generic vertex attribute location name of this shader.

GLint Shader::getUniformLocation ( const std::string &  name) const

Returns the uniform location name of this shader.

bool Shader::link ( const std::string &  out)

Links all compiled shaders to form a shader program. out is the only frag data location.

bool Shader::link ( const std::string *  out,
int  numAttachments 
)

Links all compiled shaders to form a shader program. out is a pointer to the first element in an array of frag data locations. numAttachments is the number of frag data locations.

void Shader::unbind ( )

Unbinds the currently bound shader from the context.


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