Object handle for OpenGL Shaders Objects (both vertex and fragment shaders). More...
#include <HdlShader.hpp>
Public Member Functions | |
HdlShader (GLenum _type, const ShaderSource &src) | |
HdlShader constructor. More... | |
GLuint | getShaderID (void) const |
Returns the ID of the shader for OpenGL. More... | |
GLenum | getType (void) const |
Returns the type of the shader for OpenGL. More... | |
Public Member Functions inherited from Glip::CoreGL::ShaderSource | |
ShaderSource (const std::string &src, const std::string &_sourceName="", int startLine=1, const std::map< int, LineInfo > &_linesInfo=std::map< int, LineInfo >()) | |
Constructor of ShaderSource, load from a standard string or a file. More... | |
ShaderSource (const ShaderSource &ss) | |
ShaderSource Construtor. More... | |
ShaderSource & | operator= (const ShaderSource &c) |
Copy operator. More... | |
bool | empty (void) const |
Test if the source is empty. More... | |
const std::string & | getSource (void) const |
Returns the source as a standard string. More... | |
const std::string & | getSourceName (void) const |
Return the name of the source : the one given with the constructor if any, the filename if it was loaded from a file or a blank string otherwise. More... | |
const char * | getSourceCstr (void) const |
Returns the source as a characters table. More... | |
int | getNumLines (void) const |
Get the number of lines in this source. More... | |
std::string | getLine (int l, bool withNewLine=true) const |
Get a specific line from the source. More... | |
LineInfo | getLineInfo (int l) const |
Get information about the line at the given index. More... | |
Exception | errorLog (const std::string &log) const |
Add some source code information to the output shader compilation log. More... | |
bool | requiresCompatibility (void) const |
Returns true if this Shader is using gl_FragColor and no out vec4 variables (e.g. Mesa <9.0 compatibility for Intel Core I7 with HD Graphics (>2nd Generation)); no call to glBindFragDataLocation is needed). If true, the input vars are indexed on their order of appearance in the shader source. More... | |
int | getVersion (void) const |
Returns the shader version defined in the source (with #version) as an integer. More... | |
const std::vector< std::string > & | getInputVars (void) const |
Return a vector containing the name of all the input textures (uniform sampler*). More... | |
const std::vector< std::string > & | getOutputVars (void) const |
Return a vector containing the name of all the output textures (uniform {vec2, vec3, vec4, ...}). More... | |
const std::vector< std::string > & | getUniformVars (void) const |
Return a vector containing the name of all the uniform variables which are not 2D samplers. More... | |
const std::vector< GLenum > & | getUniformTypes (void) const |
Return a vector containing the type of the uniform variables which are not 2D samplers (see http://www.opengl.org/sdk/docs/man/xhtml/glGetActiveUniform.xml for a table of possible values). More... | |
Additional Inherited Members | |
Public Attributes inherited from Glip::CoreGL::ShaderSource | |
std::map< int, LineInfo > | linesInfo |
Map containing information about specific lines of this source. The key represent the line number starting at 1. | |
Static Public Attributes inherited from Glip::CoreGL::ShaderSource | |
static std::string | portNameForFragColor = "outputTexture" |
Name for the port mapping to gl_FragColor, if used. | |
Object handle for OpenGL Shaders Objects (both vertex and fragment shaders).
HdlShader::HdlShader | ( | GLenum | _type, |
const ShaderSource & | src | ||
) |
HdlShader constructor.
_type | The kind of shader it will be : GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, GL_COMPUTE_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER. |
src | The source code used. |
GLuint HdlShader::getShaderID | ( | void | ) | const |
Returns the ID of the shader for OpenGL.
GLenum HdlShader::getType | ( | void | ) | const |
Returns the type of the shader for OpenGL.
Return the type of the shader, among : GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, GL_COMPUTE_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER.