GLShader Class Reference

#include <GLShader.h>

Collaboration diagram for GLShader:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 GLShader ()
void activateLighting ()
void setShaderValue (const char *varId, unsigned int value)
void setShaderValue (const char *varId, XYZ &value)
void setShaderValue (const char *varId, float *value)
void setShaderValue (const char *varId, float value)
void setShaderAttrib (const char *varId, unsigned int value)
void setupShader ()
void setupShader (GLShader &extShader)
void clearShader ()
GLenum LinkProgram (GLhandleARB program)
GLenum CompileProgram (GLenum target, GLcharARB *sourcecode, GLhandleARB *shader)
bool setup (const char *vp, const char *fp, const char *fp2=0)
bool load (const char *vf, const char *ff, const char *ff2=0)
void use ()
bool isLoaded ()
GLhandleARB getProgramId ()

Static Public Member Functions

static bool loadDefaultShader (const char *vf, const char *ff, const char *ff2=0)
static bool loadLightShader (int lightType, const char *vf, const char *ff, const char *ff2=0, bool multiLight=false)
static bool loadShaderStrings (std::string &vs, std::string &fs, std::string &fs2, const char *vf, const char *ff, const char *ff2=0)
static bool activateLight (int lightType, int lightNum, unsigned long lightVariant, bool compile)
static bool isMultiLight (int lightType)
static bool buildLightShaderVariant (int lightType, int variantFlag)
static bool queueLightShaderVariant (int lightType, int variantFlag)
static bool processShaderQueue ()
static void searchAndReplace (std::string &haystack, const char *needle, const char *replacement)
static void findLoops (std::string &shaderStr, const char *loopStart, const char *loopEnd, std::vector< unsigned int > &loopStarts, std::vector< unsigned int > &loopEnds)
static void printLog (GLuint obj)
static GLboolean HasGLSL (void)
static void clear ()

Public Attributes

GLint light_binding
GLint light_type_binding
bool loaded

Static Public Attributes

static bool defaultShaderLoaded = false
static GLShader defaultShader
static std::map< unsigned long,
std::map< unsigned long,
std::vector< GLShader * >
, ltulong >, ltulong
lightShader

Protected Attributes

std::map< std::string,
shaderValPair, string_less
shaderVals

Static Protected Attributes

static GLhandleARB activeProgram = NULL
static GLint binding_inc = 0

Private Attributes

GLhandleARB fragShader
GLhandleARB fragShader2
GLhandleARB vertShader
GLhandleARB program
std::string frag_str
std::string frag_str2
std::string vert_str

Static Private Attributes

static std::map< unsigned long,
std::string, ltulong
light_frag_str
static std::map< unsigned long,
std::string, ltulong
light_frag_str2
static std::map< unsigned long,
std::string, ltulong
light_vert_str
static std::map< unsigned long,
bool, ltulong
light_multi
static std::vector
< shaderQueueEntry
shader_queue
static unsigned long shaderQueuePtr = 0


Constructor & Destructor Documentation

GLShader::GLShader (  ) 


Member Function Documentation

bool GLShader::loadDefaultShader ( const char *  vf,
const char *  ff,
const char *  ff2 = 0 
) [static]

Here is the call graph for this function:

bool GLShader::loadLightShader ( int  lightType,
const char *  vf,
const char *  ff,
const char *  ff2 = 0,
bool  multiLight = false 
) [static]

Here is the call graph for this function:

bool GLShader::loadShaderStrings ( std::string &  vs,
std::string &  fs,
std::string &  fs2,
const char *  vf,
const char *  ff,
const char *  ff2 = 0 
) [static]

bool GLShader::activateLight ( int  lightType,
int  lightNum,
unsigned long  lightVariant,
bool  compile 
) [static]

Here is the call graph for this function:

bool GLShader::isMultiLight ( int  lightType  )  [static]

bool GLShader::buildLightShaderVariant ( int  lightType,
int  variantFlag 
) [static]

Here is the call graph for this function:

bool GLShader::queueLightShaderVariant ( int  lightType,
int  variantFlag 
) [static]

bool GLShader::processShaderQueue (  )  [static]

Here is the call graph for this function:

void GLShader::searchAndReplace ( std::string &  haystack,
const char *  needle,
const char *  replacement 
) [static]

void GLShader::findLoops ( std::string &  shaderStr,
const char *  loopStart,
const char *  loopEnd,
std::vector< unsigned int > &  loopStarts,
std::vector< unsigned int > &  loopEnds 
) [static]

void GLShader::printLog ( GLuint  obj  )  [static]

GLboolean GLShader::HasGLSL ( void   )  [static]

void GLShader::clear (  )  [static]

void GLShader::activateLighting (  ) 

void GLShader::setShaderValue ( const char *  varId,
unsigned int  value 
)

void GLShader::setShaderValue ( const char *  varId,
XYZ value 
)

void GLShader::setShaderValue ( const char *  varId,
float *  value 
)

void GLShader::setShaderValue ( const char *  varId,
float  value 
)

void GLShader::setShaderAttrib ( const char *  varId,
unsigned int  value 
)

void GLShader::setupShader (  ) 

Here is the call graph for this function:

void GLShader::setupShader ( GLShader extShader  ) 

Here is the call graph for this function:

void GLShader::clearShader (  ) 

GLenum GLShader::LinkProgram ( GLhandleARB  program  ) 

GLenum GLShader::CompileProgram ( GLenum  target,
GLcharARB *  sourcecode,
GLhandleARB *  shader 
)

bool GLShader::setup ( const char *  vp,
const char *  fp,
const char *  fp2 = 0 
)

Here is the call graph for this function:

bool GLShader::load ( const char *  vf,
const char *  ff,
const char *  ff2 = 0 
)

Here is the call graph for this function:

void GLShader::use (  ) 

bool GLShader::isLoaded (  ) 

GLhandleARB GLShader::getProgramId (  ) 


Member Data Documentation

std::map<std::string, shaderValPair, string_less> GLShader::shaderVals [protected]

GLhandleARB GLShader::activeProgram = NULL [static, protected]

GLint GLShader::binding_inc = 0 [static, protected]

GLhandleARB GLShader::fragShader [private]

GLhandleARB GLShader::fragShader2 [private]

GLhandleARB GLShader::vertShader [private]

GLhandleARB GLShader::program [private]

std::string GLShader::frag_str [private]

std::string GLShader::frag_str2 [private]

std::string GLShader::vert_str [private]

std::map< unsigned long, std::string, ltulong > GLShader::light_frag_str [static, private]

std::map< unsigned long, std::string, ltulong > GLShader::light_frag_str2 [static, private]

std::map< unsigned long, std::string, ltulong > GLShader::light_vert_str [static, private]

std::map< unsigned long, bool, ltulong > GLShader::light_multi [static, private]

std::vector< shaderQueueEntry > GLShader::shader_queue [static, private]

unsigned long GLShader::shaderQueuePtr = 0 [static, private]

bool GLShader::defaultShaderLoaded = false [static]

std::map< unsigned long, std::map< unsigned long, std::vector< GLShader * >, ltulong >, ltulong > GLShader::lightShader [static]


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

Generated on Thu Mar 19 19:35:20 2009 for CubicVR by  doxygen 1.5.6