Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL ES) for OpenGL ES 2.0. More...
#include <OgreGLSLESProgramPipeline.h>
Public Member Functions | |
GLSLESProgramPipeline (GLSLESGpuProgram *vertexProgram, GLSLESGpuProgram *fragmentProgram) | |
Constructor should only be used by GLSLESProgramPipelineManager. More... | |
virtual | ~GLSLESProgramPipeline () |
void | activate (void) |
Makes a program pipeline object active by making sure it is linked and then putting it in use. More... | |
virtual GLint | getAttributeIndex (VertexElementSemantic semantic, uint index) |
Get the index of a non-standard attribute bound in the linked code. More... | |
GLSLESGpuProgram * | getFragmentProgram (void) const |
GLuint | getGLProgramHandle (void) const |
Get the GL Handle for the program object. More... | |
GLuint | getGLProgramPipelineHandle () const |
GL Program Pipeline Handle. More... | |
GLES2UniformCache * | getUniformCache (void) |
GLSLESGpuProgram * | getVertexProgram (void) const |
bool | isAttributeValid (VertexElementSemantic semantic, uint index) |
Is a non-standard attribute bound in the linked code? More... | |
bool | isSkeletalAnimationIncluded (void) const |
Returns whether the linked program includes the required instructions to perform skeletal animation. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
void | setSkeletalAnimationIncluded (bool included) |
Sets whether the linked program includes the required instructions to perform skeletal animation. More... | |
virtual void | updatePassIterationUniforms (GpuProgramParametersSharedPtr params) |
Updates program pipeline object uniforms using data from pass iteration GpuProgramParameters. More... | |
virtual void | updateUniformBlocks (GpuProgramParametersSharedPtr params, uint16 mask, GpuProgramType fromProgType) |
Updates program object uniform blocks using data from GpuProgramParameters. More... | |
virtual void | updateUniforms (GpuProgramParametersSharedPtr params, uint16 mask, GpuProgramType fromProgType) |
Updates program pipeline object uniforms using data from GpuProgramParameters. More... | |
Protected Types | |
enum | { VERTEX_PROGRAM_LINKED = 1, FRAGMENT_PROGRAM_LINKED = 2, ALL_PROGRAMS_LINKED = 3 } |
typedef set< GLuint >::type | AttributeSet |
typedef map< String, VertexElementSemantic >::type | SemanticToStringMap |
Protected Member Functions | |
virtual void | _useProgram (void) |
Put a program pipeline in use. More... | |
virtual void | buildGLUniformReferences (void) |
Build uniform references from active named uniforms. More... | |
virtual void | compileAndLink (void) |
Compiles and links the separate vertex and fragment programs. More... | |
virtual void | extractLayoutQualifiers (void) |
Finds layout qualifiers in the shader source and sets attribute indices appropriately. More... | |
VertexElementSemantic | getAttributeSemanticEnum (String type) |
const char * | getAttributeSemanticString (VertexElementSemantic semantic) |
Ogre::String | getCombinedName (void) |
void | getMicrocodeFromCache (void) |
Get the the binary data of a program from the microcode cache. More... | |
Protected Attributes | |
GLint | mCustomAttributesIndexes [VES_COUNT][OGRE_MAX_TEXTURE_COORD_SETS] |
An array to hold the attributes indexes. More... | |
GLSLESGpuProgram * | mFragmentProgram |
Linked fragment program. More... | |
GLuint | mGLProgramHandle |
GL handle for the program object. More... | |
GLuint | mGLProgramPipelineHandle |
GL handle for pipeline object. More... | |
GLUniformBufferList | mGLUniformBufferReferences |
Container of uniform buffer references that are active in the program object. More... | |
GLUniformReferenceList | mGLUniformReferences |
Container of uniform references that are active in the program object. More... | |
GLint | mLinked |
Flag indicating that the program or pipeline object has been successfully linked. More... | |
SemanticToStringMap | mSemanticTypeMap |
bool | mSkeletalAnimation |
Flag indicating skeletal animation is being performed. More... | |
bool | mTriedToLinkAndFailed |
Flag indicating that the program or pipeline object has tried to link and failed. More... | |
GLES2UniformCache * | mUniformCache |
bool | mUniformRefsBuilt |
Flag to indicate that uniform references have already been built. More... | |
GLSLESGpuProgram * | mVertexProgram |
Linked vertex program. More... | |
Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL ES) for OpenGL ES 2.0.
Definition at line 56 of file OgreGLSLESProgramPipeline.h.
|
protectedinherited |
Definition at line 88 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Definition at line 105 of file OgreGLSLESProgramCommon.h.
|
protected |
Enumerator | |
---|---|
VERTEX_PROGRAM_LINKED | |
FRAGMENT_PROGRAM_LINKED | |
ALL_PROGRAMS_LINKED |
Definition at line 87 of file OgreGLSLESProgramPipeline.h.
Ogre::GLSLESProgramPipeline::GLSLESProgramPipeline | ( | GLSLESGpuProgram * | vertexProgram, |
GLSLESGpuProgram * | fragmentProgram | ||
) |
Constructor should only be used by GLSLESProgramPipelineManager.
|
virtual |
|
protectedvirtual |
Put a program pipeline in use.
Implements Ogre::GLSLESProgramCommon.
|
virtual |
Makes a program pipeline object active by making sure it is linked and then putting it in use.
Implements Ogre::GLSLESProgramCommon.
|
protectedvirtual |
Build uniform references from active named uniforms.
|
protectedvirtual |
Compiles and links the separate vertex and fragment programs.
Implements Ogre::GLSLESProgramCommon.
|
protectedvirtual |
Finds layout qualifiers in the shader source and sets attribute indices appropriately.
|
virtual |
Get the index of a non-standard attribute bound in the linked code.
Reimplemented from Ogre::GLSLESProgramCommon.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inlineinherited |
Definition at line 156 of file OgreGLSLESProgramCommon.h.
|
inlineinherited |
Get the GL Handle for the program object.
Definition at line 133 of file OgreGLSLESProgramCommon.h.
|
inline |
GL Program Pipeline Handle.
Definition at line 64 of file OgreGLSLESProgramPipeline.h.
|
protectedinherited |
Get the the binary data of a program from the microcode cache.
|
inlineinherited |
Definition at line 157 of file OgreGLSLESProgramCommon.h.
|
inlineinherited |
Definition at line 155 of file OgreGLSLESProgramCommon.h.
|
inherited |
Is a non-standard attribute bound in the linked code?
|
inlineinherited |
Returns whether the linked program includes the required instructions to perform skeletal animation.
Definition at line 148 of file OgreGLSLESProgramCommon.h.
|
inlineinherited |
Definition at line 96 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 102 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 108 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 113 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 119 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
operator new, with debug line info
Definition at line 68 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 73 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
placement operator new
Definition at line 79 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
array operator new, with debug line info
Definition at line 86 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 91 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Sets whether the linked program includes the required instructions to perform skeletal animation.
Definition at line 140 of file OgreGLSLESProgramCommon.h.
|
virtual |
Updates program pipeline object uniforms using data from pass iteration GpuProgramParameters.
normally called by GLSLESGpuProgram::bindMultiPassParameters() just before multi pass rendering occurs.
Implements Ogre::GLSLESProgramCommon.
|
virtual |
Updates program object uniform blocks using data from GpuProgramParameters.
normally called by GLSLGpuProgram::bindParameters() just before rendering occurs.
Implements Ogre::GLSLESProgramCommon.
|
virtual |
Updates program pipeline object uniforms using data from GpuProgramParameters.
normally called by GLSLESGpuProgram::bindParameters() just before rendering occurs.
Implements Ogre::GLSLESProgramCommon.
|
protectedinherited |
An array to hold the attributes indexes.
Definition at line 91 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Linked fragment program.
Definition at line 73 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
GL handle for the program object.
Definition at line 78 of file OgreGLSLESProgramCommon.h.
|
protected |
GL handle for pipeline object.
Definition at line 93 of file OgreGLSLESProgramPipeline.h.
|
protectedinherited |
Container of uniform buffer references that are active in the program object.
Definition at line 68 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Container of uniform references that are active in the program object.
Definition at line 66 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Flag indicating that the program or pipeline object has been successfully linked.
Definition at line 80 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Definition at line 106 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Flag indicating skeletal animation is being performed.
Definition at line 84 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Flag indicating that the program or pipeline object has tried to link and failed.
Definition at line 82 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Definition at line 74 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Flag to indicate that uniform references have already been built.
Definition at line 76 of file OgreGLSLESProgramCommon.h.
|
protectedinherited |
Linked vertex program.
Definition at line 71 of file OgreGLSLESProgramCommon.h.