28 #ifndef __GLSLProgram_H__
29 #define __GLSLProgram_H__
63 String doGet(
const void* target)
const;
64 void doSet(
void* target,
const String& shaderNames);
71 String doGet(
const void* target)
const;
72 void doSet(
void* target,
const String& val);
78 String doGet(
const void* target)
const;
79 void doSet(
void* target,
const String& val);
85 String doGet(
const void* target)
const;
86 void doSet(
void* target,
const String& val);
92 String doGet(
const void* target)
const;
93 void doSet(
void* target,
const String& val);
99 String doGet(
const void* target)
const;
100 void doSet(
void* target,
const String& val);
106 {
return mInputOperationType; }
110 {
return mOutputOperationType; }
119 { mInputOperationType = operationType; }
123 { mOutputOperationType = operationType; }
128 { mMaxOutputVertices = maxOutputVertices; }
137 void attachToProgramObject(
const GLuint programObject );
138 void detachFromProgramObject(
const GLuint programObject );
142 bool getPassTransformStates(
void)
const;
143 bool getPassSurfaceAndLightStates(
void)
const;
144 bool getPassFogStates(
void)
const;
147 void attachChildShader(
const String& name);
155 const String& getLanguage(
void)
const;
165 bool compile(
const bool checkErrors =
false);
177 void loadFromSource(
void);
183 void createLowLevelImpl(
void);
185 void unloadHighLevelImpl(
void);
187 void unloadImpl(
void);
192 void buildConstantDefinitions()
const;
198 void checkAndFixInvalidDefaultPrecisionError(
String &message );
224 #endif // __GLSLProgram_H__
String mAttachedShaderNames
Attached Shader names.
virtual void setMaxOutputVertices(int maxOutputVertices)
Set the maximum number of vertices that a single run of this geometry program can emit...
virtual void setOutputOperationType(RenderOperation::OperationType operationType)
Set the operation type that this geometry program will emit.
static CmdOutputOperationType msOutputOperationTypeCmd
Command object for setting the output operation type (geometry shader only)
Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL)...
static CmdAttach msCmdAttach
virtual int getMaxOutputVertices(void) const
Returns the maximum number of vertices that this geometry program can output in a single run...
Interface describing a manual resource loader.
static CmdPreprocessorDefines msCmdPreprocessorDefines
virtual RenderOperation::OperationType getOutputOperationType(void) const
Returns the operation type that this geometry program will emit.
GLuint getGLShaderHandle() const
void setPreprocessorDefines(const String &defines)
Sets the preprocessor defines use to compile the program.
virtual RenderOperation::OperationType getInputOperationType(void) const
Returns the operation type that this geometry program expects to receive as input.
RenderOperation::OperationType mOutputOperationType
The output operation type for this (geometry) program.
Command object for setting the maximum output vertices (geometry shader only)
static CmdMaxOutputVertices msMaxOutputVerticesCmd
bool getColumnMajorMatrices(void) const
Gets whether matrix packed in column-major order.
String getAttachedShaderNames() const
GLint mCompiled
Flag indicating if shader object successfully compiled.
#define _OgreGL3PlusExport
unsigned long long int ResourceHandle
RenderOperation::OperationType mInputOperationType
The input operation type for this (geometry) program.
bool mColumnMajorMatrices
Matrix in column major pack format?
Command object for attaching another GLSL Program.
Command object for setting matrix packing in column-major order.
GLuint mGLShaderHandle
GL handle for shader object.
Defines a generic resource handler.
String mPreprocessorDefines
Preprocessor options.
Command object for setting macro defines.
GLSLProgramContainer::iterator GLSLProgramContainerIterator
vector< GLSLProgram * >::type GLSLProgramContainer
Container of attached programs.
Abstract base class representing a high-level program (a vertex or fragment program).
static CmdInputOperationType msInputOperationTypeCmd
void setColumnMajorMatrices(bool columnMajor)
Sets whether matrix packing in column-major order.
GLuint getGLProgramHandle() const
int mMaxOutputVertices
The maximum amount of vertices that this (geometry) program can output.
GLSLProgramContainer mAttachedGLSLPrograms
Abstract class which is command object which gets/sets parameters.
static CmdColumnMajorMatrices msCmdColumnMajorMatrices
OperationType
The rendering operation type to perform.
const String & getPreprocessorDefines(void) const
Sets the preprocessor defines use to compile the program.
virtual void setInputOperationType(RenderOperation::OperationType operationType)
Sets the operation type that this geometry program expects to receive.