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

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Tue Apr 13 2021 08:53:15