Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

GLProgram Class Reference

#include <glshader.h>

List of all members.

Public Member Functions

int getID () const
GLShaderStatus link ()
void use () const
virtual ~GLProgram ()

Private Member Functions

void attach (const GLShader &)
 GLProgram (int _id)

Private Attributes

int id

Friends

class GLShaderLoader


Constructor & Destructor Documentation

GLProgram::GLProgram int  _id  )  [private]
 

Definition at line 141 of file glshader.cpp.

00141                             :
00142     id(_id)
00143 {
00144 }

GLProgram::~GLProgram  )  [virtual]
 

Definition at line 147 of file glshader.cpp.

References glx::glDeleteObjectARB.

00148 {
00149     glx::glDeleteObjectARB(id);
00150 }


Member Function Documentation

void GLProgram::attach const GLShader  )  [private]
 

Definition at line 161 of file glshader.cpp.

References glx::glAttachObjectARB.

Referenced by GLShaderLoader::CreateProgram().

00162 {
00163     glx::glAttachObjectARB(id, shader.getID());
00164 }

int GLProgram::getID  )  const [inline]
 

Definition at line 78 of file glshader.h.

References id.

Referenced by ShaderManager::buildProgram(), CelestiaGLProgram::floatParam(), CelestiaGLProgram::initSamplers(), link(), CelestiaGLProgram::vec3Param(), and CelestiaGLProgram::vec4Param().

00078 { return id; }

GLShaderStatus GLProgram::link  ) 
 

Definition at line 168 of file glshader.cpp.

References g_shaderLogFile, getID(), GetInfoLog(), GL_OBJECT_LINK_STATUS_ARB, glx::glGetObjectParameterivARB, glx::glLinkProgramARB, ShaderStatus_LinkError, and ShaderStatus_OK.

Referenced by ShaderManager::buildProgram().

00169 {
00170     glx::glLinkProgramARB(id);
00171 
00172     GLint linkSuccess;
00173     glx::glGetObjectParameterivARB(id, GL_OBJECT_LINK_STATUS_ARB,
00174                                    &linkSuccess);
00175     if (linkSuccess == GL_FALSE)
00176     {
00177         if (g_shaderLogFile != NULL)
00178         {
00179             *g_shaderLogFile << "Error linking shader program:\n";
00180             *g_shaderLogFile << GetInfoLog(getID());
00181         }
00182         return ShaderStatus_LinkError;
00183     }
00184 
00185     return ShaderStatus_OK;
00186 }

void GLProgram::use  )  const
 

Definition at line 154 of file glshader.cpp.

References glx::glUseProgramObjectARB.

Referenced by CelestiaGLProgram::initSamplers(), and CelestiaGLProgram::use().

00155 {
00156     glx::glUseProgramObjectARB(id);
00157 }


Friends And Related Function Documentation

friend class GLShaderLoader [friend]
 

Definition at line 83 of file glshader.h.


Member Data Documentation

int GLProgram::id [private]
 

Definition at line 81 of file glshader.h.

Referenced by getID().


The documentation for this class was generated from the following files:
Generated on Sat Jan 14 22:33:21 2006 for Celestia by  doxygen 1.4.1