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