#include <mitkGPGPU.h>
Public Member Functions | |
| Shader (char *source) | |
| ~Shader () | |
| void | Activate () |
| void | SetUniform (char *name, int i0) |
| void | SetUniform (char *name, int i0, int i1) |
| void | SetUniform (char *name, int i0, int i1, int i2) |
| void | SetUniform (char *name, int i0, int i1, int i2, int i3) |
| void | SetUniform (char *name, float i0) |
| void | SetUniform (char *name, float i0, float i1) |
| void | SetUniform (char *name, float i0, float i1, float i2) |
| void | SetUniform (char *name, float i0, float i1, float i2, float i3) |
Definition at line 92 of file mitkGPGPU.h.
| mitk::GPGPU::Shader::Shader | ( | char * | source ) |
Definition at line 235 of file mitkGPGPU.cpp.
References GL_COMPILE_STATUS, GL_FRAGMENT_SHADER, GL_INFO_LOG_LENGTH, GL_LINK_STATUS, GL_VERTEX_SHADER, glAttachShader, glCompileShader, glCreateProgram, glCreateShader, glGetProgramInfoLog, glGetProgramiv, glGetShaderiv, glLinkProgram, glShaderSource, GPGPU_CHECKGLERR, GPGPU_ERROR, and stubVertexShader.
{
//std::cout << "compiling shader:\n" << source << std::endl;
glHandleVertex = glCreateShader(GL_VERTEX_SHADER);
glHandleFragment = glCreateShader(GL_FRAGMENT_SHADER);
glHandleProgram = glCreateProgram();
GLchar *src[2];
src[0] = stubVertexShader;
src[1] = 0;
glShaderSource(glHandleVertex,1,(const GLchar **)src,0);
src[0] = source;
src[1] = 0;
glShaderSource(glHandleFragment,1,(const GLchar **)src,0);
bool failed=false;
GLint _sv,_sf,_sl;
glCompileShader( glHandleVertex );
GPGPU_CHECKGLERR << "compiling vertex shader";
glGetShaderiv( glHandleVertex, GL_COMPILE_STATUS, &_sv);
if( !_sv)
{
GPGPU_ERROR << "vertex shader compilation failed\n";
failed=true;
}
glCompileShader( glHandleFragment );
GPGPU_CHECKGLERR << "compiling fragment shader";
glGetShaderiv( glHandleFragment, GL_COMPILE_STATUS, &_sf);
if( !_sf)
{
GPGPU_ERROR << "fragment shader compilation failed\n";
failed=true;
}
glAttachShader( glHandleProgram,glHandleVertex );
glAttachShader( glHandleProgram,glHandleFragment );
glLinkProgram( glHandleProgram );
GPGPU_CHECKGLERR << "linking shader program";
glGetProgramiv( glHandleProgram, GL_LINK_STATUS, &_sl);
if( !_sl)
{
GPGPU_ERROR << "shader linkage failed\n";
failed=true;
}
if(failed)
{
int infologLength = 0;
int charsWritten = 0;
char *infoLog;
glGetProgramiv(glHandleProgram, GL_INFO_LOG_LENGTH,&infologLength);
if (infologLength > 0)
{
infoLog = (char *)malloc(infologLength);
glGetProgramInfoLog(glHandleProgram, infologLength, &charsWritten, infoLog);
GPGPU_ERROR << "SHADER CREATION FAILED INFOLOG:\n" << infoLog;
free(infoLog);
}
}
}
| mitk::GPGPU::Shader::~Shader | ( | ) |
Definition at line 307 of file mitkGPGPU.cpp.
References glDeleteProgram, and glDeleteShader.
{
glDeleteProgram( glHandleProgram);
glDeleteShader( glHandleVertex );
glDeleteShader( glHandleFragment );
}
| void mitk::GPGPU::Shader::Activate | ( | ) |
Definition at line 314 of file mitkGPGPU.cpp.
References glUseProgram, and GPGPU_CHECKGLERR.
{
glUseProgram( glHandleProgram );
GPGPU_CHECKGLERR << "activating shader";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| float | i0, | ||
| float | i1, | ||
| float | i2, | ||
| float | i3 | ||
| ) |
Definition at line 389 of file mitkGPGPU.cpp.
References glUniform4fv, and GPGPU_CHECKGLERR.
{
GLfloat i[4];
i[0]=i0;
i[1]=i1;
i[2]=i2;
i[3]=i3;
glUniform4fv(GetUniformLocation(name),1,i);
GPGPU_CHECKGLERR << "setting uniform";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| float | i0, | ||
| float | i1, | ||
| float | i2 | ||
| ) |
Definition at line 379 of file mitkGPGPU.cpp.
References glUniform3fv, and GPGPU_CHECKGLERR.
{
GLfloat i[3];
i[0]=i0;
i[1]=i1;
i[2]=i2;
glUniform3fv(GetUniformLocation(name),1,i);
GPGPU_CHECKGLERR << "setting uniform";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| float | i0, | ||
| float | i1 | ||
| ) |
Definition at line 370 of file mitkGPGPU.cpp.
References glUniform2fv, and GPGPU_CHECKGLERR.
{
GLfloat i[2];
i[0]=i0;
i[1]=i1;
glUniform2fv(GetUniformLocation(name),1,i);
GPGPU_CHECKGLERR << "setting uniform";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| float | i0 | ||
| ) |
Definition at line 363 of file mitkGPGPU.cpp.
References glUniform1f, and GPGPU_CHECKGLERR.
{
GLint location = GetUniformLocation(name);
glUniform1f(location,i0);
GPGPU_CHECKGLERR << "setting uniform";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| int | i0, | ||
| int | i1, | ||
| int | i2, | ||
| int | i3 | ||
| ) |
Definition at line 352 of file mitkGPGPU.cpp.
References glUniform4iv, and GPGPU_CHECKGLERR.
{
GLint i[4];
i[0]=i0;
i[1]=i1;
i[2]=i2;
i[3]=i3;
glUniform4iv( GetUniformLocation(name) , 1 , i );
GPGPU_CHECKGLERR << "setting uniform";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| int | i0, | ||
| int | i1, | ||
| int | i2 | ||
| ) |
Definition at line 342 of file mitkGPGPU.cpp.
References glUniform3iv, and GPGPU_CHECKGLERR.
{
GLint i[3];
i[0]=i0;
i[1]=i1;
i[2]=i2;
glUniform3iv( GetUniformLocation(name) , 1 , i );
GPGPU_CHECKGLERR << "setting uniform";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| int | i0, | ||
| int | i1 | ||
| ) |
Definition at line 333 of file mitkGPGPU.cpp.
References glUniform2iv, and GPGPU_CHECKGLERR.
{
GLint i[2];
i[0]=i0;
i[1]=i1;
glUniform2iv( GetUniformLocation(name) , 1 , i );
GPGPU_CHECKGLERR << "setting uniform";
}
| void mitk::GPGPU::Shader::SetUniform | ( | char * | name, |
| int | i0 | ||
| ) |
Definition at line 326 of file mitkGPGPU.cpp.
References glUniform1i, and GPGPU_CHECKGLERR.
{
glUniform1i( GetUniformLocation(name) , i0);
GPGPU_CHECKGLERR << "setting uniform";
}
1.7.2