Unigine::Shader Class
Header: | #include <UnigineShader.h> |
Interface for shader manipulation. Shader is an interface for loading shaders, setting parameter values, binding graphic context.
To get loaded shader programs, use special methods for corresponding Direct3D11 shaders or use getGLProgramID() to get the OpenGL shaders.
Shader class provides a lot of methods to set parameters (or arrays of parameters) to shader programs.
Shader Class
Members
void * getD3D11ComputeShader()
Returns Direct3D11 compute shader.void * getD3D11ControlShader()
Returns Direct3D11 control shader.void * getD3D11EvaluateShader()
Returns Direct3D11 evaluate shader.void * getD3D11FragmentShader()
Returns Direct3D11 fragment shader.void * getD3D11GeometryShader()
Returns Direct3D11 geometry shader.void * getD3D11VertexShader()
Returns Direct3D11 vertex shader.int getGLProgramID()
Returns OpenGL program identifier.void setParameter(int id, const void * src, int size)
Sets shader parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- const void * src - Parameter pointer.
- int size - Parameter size in bytes.
void setParameter(const char * name, const void * src, int size)
Sets shader parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- const void * src - Parameter pointer.
- int size - Parameter size in bytes.
void setParameterBool(int id, int value)
Sets shader boolean parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- int value - Parameter value.
void setParameterBool(const char * name, int value)
Sets shader boolean parameter value by using given parameter name.Arguments
- const char * name - Parameter identifier.
- int value - Parameter value.
void setParameterDouble(int id, double[] value)
Sets shader double parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- double[] value - Parameter value to be set.
void setParameterDouble(const char * name, double[] value)
Sets shader double parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- double[] value - Parameter value to be set.
void setParameterDoubleArray(int id, double[] value, int num)
Sets shader double array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- double[] value - Parameter value to be set.
- int num - The size of float vector.
void setParameterDoubleArray(const char * name, double[] value, int num)
Sets shader double array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- double[] value - Parameter value to be set.
- int num - The size of float vector.
void setParameterFloat(int id, float[] value)
Sets shader float parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- float[] value - Parameter value to be set.
void setParameterFloat(const char * name, float[] value)
Sets shader float parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- float[] value - Parameter value to be set.
void setParameterFloatArray(int id, float[] value, int num)
Sets shader float array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- float[] value - Parameter value to be set.
- int num - The size of float vector.
void setParameterFloatArray(const char * name, float[] value, int num)
Sets shader float array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- float[] value - Parameter value to be set.
- int num - The size of float vector.
void setParameterInt(int id, int[] value)
Sets shader integer parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- int[] value - Parameter value to be set.
void setParameterInt(const char * name, int[] value)
Sets shader integer parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- int[] value - Parameter value to be set.
void setParameterUInt(int id, uint[] value)
Sets shader unsigned integer parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- uint[] value - Parameter value to be set.
void setParameterUInt(const char * name, uint[] value)
Sets shader unsigned integer parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- uint[] value - Parameter value to be set.
void bind()
Binds shader.void clear()
Clears shader.int compile()
Compiles shader.Return value
1 if the shader compiled successfully; otherwise, 0.Ptr<Shader> create()
Default shader constructor.Return value
Pointer to the created shader.Ptr<Shader> create(const char * name, const char * defines = 0)
Shader constructor. Loads all existing shaders with given name.Arguments
- const char * name - Shader name.
- const char * defines - Shader defines.
Return value
Pointer to the created shader.Ptr<Shader> create(const char * vertex, const char * fragment, const char * defines)
Shader constructor. Loads only vertex and fragment shaders with given names.Arguments
- const char * vertex - Vertex shader name or source.
- const char * fragment - Fragment shader name or source.
- const char * defines - Shader defines.
Return value
Pointer to the created shader.void destroy()
Destroys shader.int findParameter(int fast_id)
Finds shader parameter.Arguments
- int fast_id - Fast identifier.
Return value
Parameter identifier, if found; otherwise, -1.int findParameter(const char * name)
Finds shader parameter.Arguments
- const char * name - Fast identifier.
Return value
Parameter identifier, if found; otherwise, -1.int findParameter(const char * name, int fast_id)
Finds shader parameter.Arguments
- const char * name - Parameter name.
- int fast_id - Fast identifier (hash of name).
Return value
Parameter identifier, if found; otherwise, -1.void flushParameters()
Flushes shader parameters.int loadCompute(const char * name, const char * defines)
Loads compute shader.Arguments
- const char * name - Compute shader name or source.
- const char * defines - Shader defines.
Return value
1 if the compute shader was loaded successfully; otherwise, 0.int loadControl(const char * name, const char * defines)
Loads control shader.Arguments
- const char * name - Control shader name or source.
- const char * defines - Shader defines.
Return value
1 if the control shader was loaded successfully; otherwise, 0.int loadEvaluate(const char * name, const char * defines)
Loads evaluate shader.Arguments
- const char * name - Evaluate shader name or source.
- const char * defines - Shader defines.
Return value
1 if the evaluate shader was loaded successfully; otherwise, 0.int loadFragment(const char * name, const char * defines)
Loads fragment shader.Arguments
- const char * name - Fragment shader name or source.
- const char * defines - Shader defines.
Return value
1 if the fragment shader was loaded successfully; otherwise, 0.int loadGeometry(const char * name, const char * defines)
Loads geometry shader.Arguments
- const char * name - Geometry shader name or source.
- const char * defines - Shader defines.
Return value
1 if the geometry shader was loaded successfully; otherwise, 0.int loadVertex(const char * name, const char * defines)
Loads vertex shader.Arguments
- const char * name - Vertex shader name or source.
- const char * defines - Shader defines.
Return value
1 if the vertex shader was loaded successfully; otherwise, 0.void unbind()
Unbinds shader.Last update: 04.06.2018
Помогите сделать статью лучше
Была ли эта статья полезной?
(или выберите слово/фразу и нажмите Ctrl+Enter