Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
CShaderProgramGLSL Class Reference
Inheritance diagram for CShaderProgramGLSL:
CShaderProgram

Public Member Functions

 CShaderProgramGLSL (const VfsPath &vertexFile, const VfsPath &fragmentFile, const CShaderDefines &defines, const std::map< CStrIntern, int > &vertexAttribs, int streamflags)
 
 ~CShaderProgramGLSL ()
 
bool Compile (GLhandleARB shader, const VfsPath &file, const CStr &code)
 
bool Link ()
 
virtual void Reload ()
 
void Unload ()
 
virtual void Bind ()
 Binds the shader into the GL context. More...
 
virtual void Unbind ()
 Unbinds the shader from the GL context. More...
 
virtual Binding GetTextureBinding (texture_id_t id)
 
virtual void BindTexture (texture_id_t id, Handle tex)
 
virtual void BindTexture (texture_id_t id, GLuint tex)
 
virtual void BindTexture (Binding id, Handle tex)
 
virtual Binding GetUniformBinding (uniform_id_t id)
 
virtual void Uniform (Binding id, float v0, float v1, float v2, float v3)
 
virtual void Uniform (Binding id, const CMatrix3D &v)
 
virtual void Uniform (Binding id, size_t count, const CMatrix3D *v)
 
virtual void VertexPointer (GLint size, GLenum type, GLsizei stride, void *pointer)
 
virtual void NormalPointer (GLenum type, GLsizei stride, void *pointer)
 
virtual void ColorPointer (GLint size, GLenum type, GLsizei stride, void *pointer)
 
virtual void TexCoordPointer (GLenum texture, GLint size, GLenum type, GLsizei stride, void *pointer)
 
virtual void VertexAttribPointer (attrib_id_t id, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void *pointer)
 
virtual void VertexAttribIPointer (attrib_id_t id, GLint size, GLenum type, GLsizei stride, void *pointer)
 
- Public Member Functions inherited from CShaderProgram
virtual ~CShaderProgram ()
 
bool IsValid () const
 Returns whether this shader was successfully loaded. More...
 
int GetStreamFlags () const
 Returns bitset of STREAM_* value, indicating what vertex data streams the vertex shader needs (e.g. More...
 
void BindTexture (texture_id_t id, CTexturePtr tex)
 
void Uniform (Binding id, int v)
 
void Uniform (Binding id, float v)
 
void Uniform (Binding id, float v0, float v1)
 
void Uniform (Binding id, const CVector3D &v)
 
void Uniform (Binding id, const CColor &v)
 
void Uniform (uniform_id_t id, int v)
 
void Uniform (uniform_id_t id, float v)
 
void Uniform (uniform_id_t id, float v0, float v1)
 
void Uniform (uniform_id_t id, const CVector3D &v)
 
void Uniform (uniform_id_t id, const CColor &v)
 
void Uniform (uniform_id_t id, float v0, float v1, float v2, float v3)
 
void Uniform (uniform_id_t id, const CMatrix3D &v)
 
void Uniform (uniform_id_t id, size_t count, const CMatrix3D *v)
 
void AssertPointersBound ()
 Checks that all the required vertex attributes have been set. More...
 

Private Attributes

VfsPath m_VertexFile
 
VfsPath m_FragmentFile
 
CShaderDefines m_Defines
 
std::map< CStrIntern, int > m_VertexAttribs
 
GLhandleARB m_Program
 
GLhandleARB m_VertexShader
 
GLhandleARB m_FragmentShader
 
std::map< CStrIntern,
std::pair< int, GLenum > > 
m_Uniforms
 
std::map< CStrIntern,
std::pair< GLenum, int > > 
m_Samplers
 

Additional Inherited Members

- Public Types inherited from CShaderProgram
typedef CStrIntern attrib_id_t
 
typedef CStrIntern texture_id_t
 
typedef CStrIntern uniform_id_t
 
typedef std::pair< int, GLenum > frag_index_pair_t
 
- Static Public Member Functions inherited from CShaderProgram
static CShaderProgramConstructARB (const VfsPath &vertexFile, const VfsPath &fragmentFile, const CShaderDefines &defines, const std::map< CStrIntern, int > &vertexIndexes, const std::map< CStrIntern, frag_index_pair_t > &fragmentIndexes, int streamflags)
 Construct based on ARB vertex/fragment program files. More...
 
static CShaderProgramConstructGLSL (const VfsPath &vertexFile, const VfsPath &fragmentFile, const CShaderDefines &defines, const std::map< CStrIntern, int > &vertexAttribs, int streamflags)
 Construct based on GLSL vertex/fragment shader files. More...
 
static CShaderProgramConstructFFP (const std::string &id, const CShaderDefines &defines)
 Construct an instance of a pre-defined fixed-function pipeline setup. More...
 
- Protected Member Functions inherited from CShaderProgram
 CShaderProgram (int streamflags)
 
void BindClientStates ()
 
void UnbindClientStates ()
 
- Protected Attributes inherited from CShaderProgram
bool m_IsValid
 
int m_StreamFlags
 
int m_ValidStreams
 

Detailed Description

Definition at line 259 of file ShaderProgram.cpp.

Constructor & Destructor Documentation

CShaderProgramGLSL::CShaderProgramGLSL ( const VfsPath vertexFile,
const VfsPath fragmentFile,
const CShaderDefines defines,
const std::map< CStrIntern, int > &  vertexAttribs,
int  streamflags 
)
inline

Definition at line 262 of file ShaderProgram.cpp.

CShaderProgramGLSL::~CShaderProgramGLSL ( )
inline

Definition at line 276 of file ShaderProgram.cpp.

Member Function Documentation

virtual void CShaderProgramGLSL::Bind ( )
inlinevirtual

Binds the shader into the GL context.

Call this before calling Uniform() or trying to render with it.

Implements CShaderProgram.

Definition at line 482 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::BindTexture ( texture_id_t  id,
Handle  tex 
)
inlinevirtual

Implements CShaderProgram.

Definition at line 509 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::BindTexture ( texture_id_t  id,
GLuint  tex 
)
inlinevirtual

Implements CShaderProgram.

Definition at line 521 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::BindTexture ( Binding  id,
Handle  tex 
)
inlinevirtual

Implements CShaderProgram.

Definition at line 531 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::ColorPointer ( GLint  size,
GLenum  type,
GLsizei  stride,
void *  pointer 
)
inlinevirtual

Reimplemented from CShaderProgram.

Definition at line 605 of file ShaderProgram.cpp.

bool CShaderProgramGLSL::Compile ( GLhandleARB  shader,
const VfsPath file,
const CStr &  code 
)
inline

Definition at line 284 of file ShaderProgram.cpp.

virtual Binding CShaderProgramGLSL::GetTextureBinding ( texture_id_t  id)
inlinevirtual

Implements CShaderProgram.

Definition at line 500 of file ShaderProgram.cpp.

virtual Binding CShaderProgramGLSL::GetUniformBinding ( uniform_id_t  id)
inlinevirtual

Implements CShaderProgram.

Definition at line 542 of file ShaderProgram.cpp.

bool CShaderProgramGLSL::Link ( )
inline

Definition at line 325 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::NormalPointer ( GLenum  type,
GLsizei  stride,
void *  pointer 
)
inlinevirtual

Reimplemented from CShaderProgram.

Definition at line 599 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::Reload ( )
inlinevirtual

Implements CShaderProgram.

Definition at line 421 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::TexCoordPointer ( GLenum  texture,
GLint  size,
GLenum  type,
GLsizei  stride,
void *  pointer 
)
inlinevirtual

Reimplemented from CShaderProgram.

Definition at line 611 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::Unbind ( )
inlinevirtual

Unbinds the shader from the GL context.

Call this after rendering with it.

Implements CShaderProgram.

Definition at line 490 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::Uniform ( Binding  id,
float  v0,
float  v1,
float  v2,
float  v3 
)
inlinevirtual

Implements CShaderProgram.

Definition at line 551 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::Uniform ( Binding  id,
const CMatrix3D v 
)
inlinevirtual

Implements CShaderProgram.

Definition at line 568 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::Uniform ( Binding  id,
size_t  count,
const CMatrix3D v 
)
inlinevirtual

Implements CShaderProgram.

Definition at line 579 of file ShaderProgram.cpp.

void CShaderProgramGLSL::Unload ( )
inline

Definition at line 471 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::VertexAttribIPointer ( attrib_id_t  id,
GLint  size,
GLenum  type,
GLsizei  stride,
void *  pointer 
)
inlinevirtual

Reimplemented from CShaderProgram.

Definition at line 626 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::VertexAttribPointer ( attrib_id_t  id,
GLint  size,
GLenum  type,
GLboolean  normalized,
GLsizei  stride,
void *  pointer 
)
inlinevirtual

Reimplemented from CShaderProgram.

Definition at line 617 of file ShaderProgram.cpp.

virtual void CShaderProgramGLSL::VertexPointer ( GLint  size,
GLenum  type,
GLsizei  stride,
void *  pointer 
)
inlinevirtual

Reimplemented from CShaderProgram.

Definition at line 593 of file ShaderProgram.cpp.

Member Data Documentation

CShaderDefines CShaderProgramGLSL::m_Defines
private

Definition at line 642 of file ShaderProgram.cpp.

VfsPath CShaderProgramGLSL::m_FragmentFile
private

Definition at line 641 of file ShaderProgram.cpp.

GLhandleARB CShaderProgramGLSL::m_FragmentShader
private

Definition at line 647 of file ShaderProgram.cpp.

GLhandleARB CShaderProgramGLSL::m_Program
private

Definition at line 645 of file ShaderProgram.cpp.

std::map<CStrIntern, std::pair<GLenum, int> > CShaderProgramGLSL::m_Samplers
private

Definition at line 650 of file ShaderProgram.cpp.

std::map<CStrIntern, std::pair<int, GLenum> > CShaderProgramGLSL::m_Uniforms
private

Definition at line 649 of file ShaderProgram.cpp.

std::map<CStrIntern, int> CShaderProgramGLSL::m_VertexAttribs
private

Definition at line 643 of file ShaderProgram.cpp.

VfsPath CShaderProgramGLSL::m_VertexFile
private

Definition at line 640 of file ShaderProgram.cpp.

GLhandleARB CShaderProgramGLSL::m_VertexShader
private

Definition at line 646 of file ShaderProgram.cpp.


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