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__
virtual int getMaxOutputVertices(void) const
Returns the maximum number of vertices that this geometry program can output in a single run...
void setColumnMajorMatrices(bool columnMajor)
Sets whether matrix packing in column-major order.
GLSLProgramContainer mAttachedGLSLPrograms
Command object for setting matrix packing in column-major order.
static CmdAttach msCmdAttach
GLhandleARB mGLHandle
GL handle for shader object.
void setPreprocessorDefines(const String &defines)
Sets the preprocessor defines use to compile the program.
bool mColumnMajorMatrices
Matrix in column major pack format?
Interface describing a manual resource loader.
virtual void setInputOperationType(RenderOperation::OperationType operationType)
Sets the operation type that this geometry program expects to receive.
static CmdPreprocessorDefines msCmdPreprocessorDefines
RenderOperation::OperationType mOutputOperationType
The output operation type for this (geometry) program.
vector< GLSLProgram * >::type GLSLProgramContainer
Container of attached programs.
Command object for setting the output operation type (geometry shader only)
static CmdInputOperationType msInputOperationTypeCmd
virtual RenderOperation::OperationType getInputOperationType(void) const
Returns the operation type that this geometry program expects to receive as input.
Command object for attaching another GLSL Program.
virtual RenderOperation::OperationType getOutputOperationType(void) const
Returns the operation type that this geometry program will emit.
static CmdMaxOutputVertices msMaxOutputVerticesCmd
virtual void setMaxOutputVertices(int maxOutputVertices)
Set the maximum number of vertices that a single run of this geometry program can emit...
static CmdColumnMajorMatrices msCmdColumnMajorMatrices
String mAttachedShaderNames
Attached Shader names.
Command object for setting the maximum output vertices (geometry shader only)
bool getColumnMajorMatrices(void) const
Gets whether matrix packed in column-major order.
unsigned long long int ResourceHandle
Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL)...
int mMaxOutputVertices
The maximum amount of vertices that this (geometry) program can output.
RenderOperation::OperationType mInputOperationType
The input operation type for this (geometry) program.
GLhandleARB getGLHandle() const
static CmdOutputOperationType msOutputOperationTypeCmd
Defines a generic resource handler.
String getAttachedShaderNames() const
GLint mCompiled
Flag indicating if shader object successfully compiled.
Abstract base class representing a high-level program (a vertex or fragment program).
const String & getPreprocessorDefines(void) const
Sets the preprocessor defines use to compile the program.
GLSLProgramContainer::iterator GLSLProgramContainerIterator
String mPreprocessorDefines
Preprocessor options.
Command object for setting macro defines.
Abstract class which is command object which gets/sets parameters.
OperationType
The rendering operation type to perform.
virtual void setOutputOperationType(RenderOperation::OperationType operationType)
Set the operation type that this geometry program will emit.