28 #ifndef __GLSLProgramCommon_H__
29 #define __GLSLProgramCommon_H__
97 void buildGLUniformReferences(
void);
103 #define NULL_CUSTOM_ATTRIBUTES_INDEX -2
104 #define NOT_FOUND_CUSTOM_ATTRIBUTES_INDEX -1
109 void getMicrocodeFromCache(
void);
111 virtual void compileAndLink(
void) = 0;
113 virtual void _useProgram(
void) = 0;
128 virtual void activate(
void) = 0;
143 virtual void extractLayoutQualifiers(
void);
177 #endif // __GLSLProgramCommon_H__
GLSLGpuProgram * mVertexProgram
Linked vertex program.
GLint mLinked
Flag indicating that the program or pipeline object has been successfully linked. ...
GLSLGpuProgram * getFragmentProgram() const
GLSLGpuProgram * getDomainProgram() const
GpuProgramType
Enumerates the types of programs which can run on the GPU.
GLUniformReferenceList mGLUniformReferences
Container of uniform references that are active in the program object.
VertexElementSemantic
Vertex element semantics, used to identify the meaning of vertex buffer contents. ...
GLSLGpuProgram * mDomainProgram
Linked domain(evaluation) program.
GLSL low level compiled shader object - this class is used to get at the linked program object and pr...
GLSLGpuProgram * getComputeProgram() const
GLSLGpuProgram * getVertexProgram() const
void setSkeletalAnimationIncluded(bool included)
Sets whether the linked program includes the required instructions to perform skeletal animation...
set< GLuint >::type AttributeSet
GL3PlusVertexArrayObject * getVertexArrayObject()
Specialisation of VertexDeclaration for OpenGL Vertex Array Object usage.
#define OGRE_MAX_TEXTURE_COORD_SETS
Define number of texture coordinate sets allowed per vertex.
GLuint getGLProgramHandle(void) const
Get the GL Handle for the program object.
vector< HardwareUniformBufferSharedPtr >::type GLUniformBufferList
GL3PlusVertexArrayObject * mVertexArrayObject
GL handle for the vertex array object.
GLUniformBufferList::iterator GLUniformBufferIterator
GLUniformReferenceList::iterator GLUniformReferenceIterator
GLSLGpuProgram * mComputeProgram
Linked compute program.
SemanticToStringMap mSemanticTypeMap
GLSLGpuProgram * mHullProgram
Linked hull(control) program.
GLSLGpuProgram * mFragmentProgram
Linked fragment program.
#define _OgreGL3PlusExport
bool mUniformRefsBuilt
Flag to indicate that uniform references have already been built.
GLUniformBufferList mGLUniformBufferReferences
Container of uniform buffer references that are active in the program object.
GLSLGpuProgram * getGeometryProgram() const
GLSLGpuProgram * getHullProgram() const
vector< GLUniformReference >::type GLUniformReferenceList
bool mTriedToLinkAndFailed
Flag indicating that the program or pipeline object has tried to link and failed. ...
Information about predefined program constants.
C++ encapsulation of GLSL Program Object.
The number of VertexElementSemantic elements (note - the first value VES_POSITION is 1) ...
bool isSkeletalAnimationIncluded(void) const
Returns whether the linked program includes the required instructions to perform skeletal animation...
GLSLGpuProgram * mGeometryProgram
Linked geometry program.
GLuint mGLProgramHandle
GL handle for the program object.
bool mSkeletalAnimation
Flag indicating skeletal animation is being performed.
map< String, VertexElementSemantic >::type SemanticToStringMap