28 #ifndef __GLSLProgram_H__ 29 #define __GLSLProgram_H__ 64 String doGet(
const void* target)
const;
65 void doSet(
void* target,
const String& shaderNames);
71 String doGet(
const void* target)
const;
72 void doSet(
void* target,
const String& val);
81 void attachToProgramObject(
const GLhandleARB programObject );
82 void detachFromProgramObject(
const GLhandleARB programObject );
86 bool getPassTransformStates(
void)
const;
87 bool getPassSurfaceAndLightStates(
void)
const;
90 void attachChildShader(
const String& name);
98 const String& getLanguage(
void)
const;
109 {
return mInputOperationType; }
113 {
return mOutputOperationType; }
122 { mInputOperationType = operationType; }
126 { mOutputOperationType = operationType; }
131 { mMaxOutputVertices = maxOutputVertices; }
134 bool compile(
const bool checkErrors =
true);
140 String doGet(
const void* target)
const;
141 void doSet(
void* target,
const String& val);
147 String doGet(
const void* target)
const;
148 void doSet(
void* target,
const String& val);
154 String doGet(
const void* target)
const;
155 void doSet(
void* target,
const String& val);
161 String doGet(
const void* target)
const;
162 void doSet(
void* target,
const String& val);
174 void loadFromSource(
void);
180 void createLowLevelImpl(
void);
182 void unloadHighLevelImpl(
void);
184 void unloadImpl(
void);
189 void buildConstantDefinitions()
const;
217 #endif // __GLSLProgram_H__ GLSLProgramContainer mAttachedGLSLPrograms
String mAttachedShaderNames
Attached Shader names.
static CmdAttach msCmdAttach
Command object for setting the maximum output vertices (geometry shader only)
RenderOperation::OperationType mInputOperationType
The input operation type for this (geometry) program.
String getAttachedShaderNames() const
Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL)...
static CmdOutputOperationType msOutputOperationTypeCmd
Abstract base class representing a high-level program (a vertex or fragment program).
Interface describing a manual resource loader.
unsigned long long int ResourceHandle
const String & getPreprocessorDefines(void) const
Sets the preprocessor defines use to compile the program.
Command object for setting the output operation type (geometry shader only)
void setPreprocessorDefines(const String &defines)
Sets the preprocessor defines use to compile the program.
bool mColumnMajorMatrices
Matrix in column major pack format?
virtual void setMaxOutputVertices(int maxOutputVertices)
Set the maximum number of vertices that a single run of this geometry program can emit...
GLSLProgramContainer::iterator GLSLProgramContainerIterator
OperationType
The rendering operation type to perform.
virtual int getMaxOutputVertices(void) const
Returns the maximum number of vertices that this geometry program can output in a single run...
RenderOperation::OperationType mOutputOperationType
The output operation type for this (geometry) program.
virtual RenderOperation::OperationType getInputOperationType(void) const
Returns the operation type that this geometry program expects to receive as input.
static CmdInputOperationType msInputOperationTypeCmd
Command object for setting macro defines.
virtual void setOutputOperationType(RenderOperation::OperationType operationType)
Set the operation type that this geometry program will emit.
Defines a generic resource handler.
Command object for setting matrix packing in column-major order.
virtual RenderOperation::OperationType getOutputOperationType(void) const
Returns the operation type that this geometry program will emit.
GLhandleARB mGLHandle
GL handle for shader object.
This source file is part of OGRE (Object-oriented Graphics Rendering Engine) For the latest info...
vector< GLSLProgram *>::type GLSLProgramContainer
Container of attached programs.
int mMaxOutputVertices
The maximum amount of vertices that this (geometry) program can output.
GLhandleARB getGLHandle() const
static CmdPreprocessorDefines msCmdPreprocessorDefines
GLint mCompiled
Flag indicating if shader object successfully compiled.
bool getColumnMajorMatrices(void) const
Gets whether matrix packed in column-major order.
Command object for attaching another GLSL Program.
static CmdMaxOutputVertices msMaxOutputVerticesCmd
void setColumnMajorMatrices(bool columnMajor)
Sets whether matrix packing in column-major order.
Abstract class which is command object which gets/sets parameters.
String mPreprocessorDefines
Preprocessor options.
virtual void setInputOperationType(RenderOperation::OperationType operationType)
Sets the operation type that this geometry program expects to receive.
static CmdColumnMajorMatrices msCmdColumnMajorMatrices