Pyrogenesis  trunk
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CShaderProgramFFP Class Reference

CShaderProgramFFP allows rendering code to use the shader-based API even if the 'shader' is actually implemented with the fixed-function pipeline instead of anything programmable. More...

Inheritance diagram for CShaderProgramFFP:
Inheritance graph
[legend]
Collaboration diagram for CShaderProgramFFP:
Collaboration graph
[legend]

Public Member Functions

 CShaderProgramFFP (int streamflags)
 
 ~CShaderProgramFFP ()
 
virtual void Reload ()
 
int GetUniformIndex (CStrIntern id)
 
virtual Binding GetTextureBinding (uniform_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)
 
- Public Member Functions inherited from CShaderProgram
virtual ~CShaderProgram ()
 
bool IsValid () const
 Returns whether this shader was successfully loaded. More...
 
virtual void Bind ()=0
 Binds the shader into the GL context. More...
 
virtual void Unbind ()=0
 Unbinds the shader from the GL context. 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)
 
virtual void VertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer)
 
virtual void NormalPointer (GLenum type, GLsizei stride, const void *pointer)
 
virtual void ColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer)
 
virtual void TexCoordPointer (GLenum texture, GLint size, GLenum type, GLsizei stride, const void *pointer)
 
virtual void VertexAttribPointer (attrib_id_t id, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
 
virtual void VertexAttribIPointer (attrib_id_t id, GLint size, GLenum type, GLsizei stride, const void *pointer)
 
void AssertPointersBound ()
 Checks that all the required vertex attributes have been set. More...
 

Protected Member Functions

void SetUniformIndex (const char *id, int value)
 
- Protected Member Functions inherited from CShaderProgram
 CShaderProgram (int streamflags)
 
void BindClientStates ()
 
void UnbindClientStates ()
 

Protected Attributes

std::map< CStrIntern, int > m_UniformIndexes
 
- Protected Attributes inherited from CShaderProgram
bool m_IsValid
 
int m_StreamFlags
 
int m_ValidStreams
 

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...
 

Detailed Description

CShaderProgramFFP allows rendering code to use the shader-based API even if the 'shader' is actually implemented with the fixed-function pipeline instead of anything programmable.

Currently we just hard-code a number of FFP programs as subclasses of this. If we have lots, it might be nicer to abstract out the common functionality and load these from text files or something.

Constructor & Destructor Documentation

CShaderProgramFFP::CShaderProgramFFP ( int  streamflags)
inline
CShaderProgramFFP::~CShaderProgramFFP ( )
inline

Member Function Documentation

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

Implements CShaderProgram.

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

Implements CShaderProgram.

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

Implements CShaderProgram.

virtual Binding CShaderProgramFFP::GetTextureBinding ( uniform_id_t  id)
inlinevirtual

Implements CShaderProgram.

virtual Binding CShaderProgramFFP::GetUniformBinding ( uniform_id_t  id)
inlinevirtual

Implements CShaderProgram.

int CShaderProgramFFP::GetUniformIndex ( CStrIntern  id)
inline
virtual void CShaderProgramFFP::Reload ( )
inlinevirtual

Implements CShaderProgram.

void CShaderProgramFFP::SetUniformIndex ( const char *  id,
int  value 
)
inlineprotected
virtual void CShaderProgramFFP::Uniform ( Binding  id,
float  v0,
float  v1,
float  v2,
float  v3 
)
inlinevirtual
virtual void CShaderProgramFFP::Uniform ( Binding  id,
const CMatrix3D v 
)
inlinevirtual
virtual void CShaderProgramFFP::Uniform ( Binding  id,
size_t  count,
const CMatrix3D v 
)
inlinevirtual

Implements CShaderProgram.

Member Data Documentation

std::map<CStrIntern, int> CShaderProgramFFP::m_UniformIndexes
protected

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