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.
Usage Example#
This example demonstrates how to use your custom shaders (UUSL, GLSL, HLSL) to render a post-effect.
Add the following code to the AppWorldLogic.cpp file.
//...
ShaderPtr shader;
int AppWorldLogic::init()
{
// String containing the source code of the vertex shader (GLSL, HLSL, UUSL)
const auto vertex_shader = R"foo(
float4 main(float2 pos : POSITION) : SV_POSITION
{
return float4(pos, 0.0f, 1.0f);
}
)foo";
// String containing the source code of the fragment shader (GLSL, HLSL, UUSL)
const auto fragment_shader = R"foo(
cbuffer vars : register(b0)
{
float4 color;
};
float4 main(float4 fragCoord : SV_POSITION) : SV_TARGET
{
return color;
}
)foo";
shader = Shader::create();
// Loading vertex and fragment shaders and compiling them
shader->loadVertex(vertex_shader, "");
shader->loadFragment(fragment_shader, "");
shader->compile();
// Adding a render END_SCREEN callback to render the result as a post-effect
Render::addCallback(Render::CALLBACK_END_SCREEN,
MakeCallback([&]()
{
// Getting a post RenderTarget to render to
const auto rt = Renderer::getPostRenderTarget();
rt->unbindAll();
rt->bindColorTexture(0, Renderer::getTextureColor());
rt->enable();
// Binding our shader and rendering the screen via FFP
shader->bind();
// setting the fill color to magenta
shader->setParameterFloat4("color", Math::vec4(1.0f, 0.0f, 1.0f, 1.0f));
shader->flushParameters();
Ffp::renderScreen();
// Unbinding the shader and disabling the target
shader->unbind();
rt->disable();
}));
return 1;
}
// ...
Shader Class
Enums
WARNING_MODE#
Warning mode for the shader compiler.Members
static ShaderPtr create ( ) #
Default shader constructor.static ShaderPtr create ( const char * name ) #
Shader constructor. Loads all existing shaders with given name.Arguments
- const char * name - Shader name.
static ShaderPtr create ( const char * name, const char * defines ) #
Shader constructor. Loads all existing shaders with given name.Arguments
- const char * name - Shader name.
- const char * defines - Shader defines.
static ShaderPtr 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.
void * getD3D11ComputeShader ( ) const#
Returns Direct3D11 compute shader.void * getD3D11ControlShader ( ) const#
Returns Direct3D11 control shader.void * getD3D11EvaluateShader ( ) const#
Returns Direct3D11 evaluate shader.void * getD3D11FragmentShader ( ) const#
Returns Direct3D11 fragment shader.void * getD3D11GeometryShader ( ) const#
Returns Direct3D11 geometry shader.void * getD3D11VertexShader ( ) const#
Returns Direct3D11 vertex shader.int getGLProgramID ( ) const#
Returns OpenGL program identifier.void bind ( ) const#
Binds shader.void clear ( ) const#
Clears shader.bool compile ( ) const#
Compiles shader.Return value
1 if the shader compiled successfully; otherwise, 0.void destroy ( ) const#
Destroys shader.int findParameter ( const char * name ) #
Finds shader parameter.Arguments
- const char * name - Fast identifier.
Return value
Parameter identifier, if found; otherwise, -1.void flushParameters ( ) const#
Flushes shader parameters.bool loadCompute ( const char * name, const char * defines ) const#
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.bool loadControl ( const char * name, const char * defines ) const#
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.bool loadEvaluate ( const char * name, const char * defines ) const#
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.bool loadFragment ( const char * name, const char * defines ) const#
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.bool loadGeometry ( const char * name, const char * defines ) const#
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.bool loadVertex ( const char * name, const char * defines ) const#
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 ( ) const#
Unbinds shader.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 setParameterFloat2 ( int id, const Math::vec2& value ) #
Sets a shader parameter value for the float2 variable.Arguments
- int id - Parameter identifier.
- const Math::vec2& value - Parameter value to be set.
void setParameterFloat2 ( const char * name, const Math::vec2& value ) #
Sets a shader parameter value for the float2 variable.Arguments
- const char * name - Parameter name.
- const Math::vec2& value - Parameter value to be set.
void setParameterFloat3 ( int id, const Math::vec3& value ) #
Sets a shader parameter value for the float3 variable.Arguments
- int id - Parameter identifier.
- const Math::vec3& value - Parameter value to be set.
void setParameterFloat3 ( const char * name, const Math::vec3& value ) #
Sets a shader parameter value for the float3 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::vec3& value - Parameter value to be set.
void setParameterFloat4 ( int id, const Math::vec4& value ) #
Sets a shader parameter value for the float4 variable.Arguments
- int id - Parameter identifier.
- const Math::vec4& value - Parameter value to be set.
void setParameterFloat4 ( const char * name, const Math::vec4& value ) #
Sets a shader parameter value for the float4 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::vec4& value - Parameter value to be set.
void setParameterFloat3x3 ( int id, const Math::mat3& value ) #
Sets a shader parameter value for the float3x3 variable.Arguments
- int id - Parameter identifier.
- const Math::mat3& value - Parameter value to be set.
void setParameterFloat3x3 ( const char * name, const Math::mat3& value ) #
Sets a shader parameter value for the float3x3 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::mat3& value - Parameter value to be set.
void setParameterFloat4x4 ( int id, const Math::mat4& value ) #
Sets a shader parameter value for the float4x4 variable.Arguments
- int id - Parameter identifier.
- const Math::mat4& value - Parameter value to be set.
void setParameterFloat4x4 ( const char * name, const Math::mat4& value ) #
Sets a shader parameter value for the float4x4 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::mat4& value - Parameter value to be set.
void setParameterInt ( int id, int value ) #
Sets a shader parameter value for the int variable.Arguments
- int id - Parameter identifier.
- int value - Parameter value to be set.
void setParameterInt ( const char * name, int value ) #
Sets a shader parameter value for the int variable using the parameter name.Arguments
- const char * name - Parameter name.
- int value - Parameter value to be set.
void setParameterInt2 ( int id, const Math::ivec2& value ) #
Sets a shader parameter value for the int2 variable.Arguments
- int id - Parameter identifier.
- const Math::ivec2& value - Parameter value to be set.
void setParameterInt2 ( const char * name, const Math::ivec2& value ) #
Sets a shader parameter value for the int2 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::ivec2& value - Parameter value to be set.
void setParameterInt3 ( int id, const Math::ivec3& value ) #
Sets a shader parameter value for the int3 variable.Arguments
- int id - Parameter identifier.
- const Math::ivec3& value - Parameter value to be set.
void setParameterInt3 ( const char * name, const Math::ivec3& value ) #
Sets a shader parameter value for the int3 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::ivec3& value - Parameter value to be set.
void setParameterInt4 ( int id, const Math::ivec4& value ) #
Sets a shader parameter value for the int4 variable.Arguments
- int id - Parameter identifier.
- const Math::ivec4& value - Parameter value to be set.
void setParameterInt4 ( const char * name, const Math::ivec4& value ) #
Sets a shader parameter value for the int4 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::ivec4& value - Parameter value to be set.
void setParameterDouble ( int id, double value ) #
Sets a shader parameter value for the double variable.Arguments
- int id - Parameter identifier.
- double value - Parameter value to be set.
void setParameterDouble ( const char * name, double value ) #
Sets a shader parameter value for the double variable using the parameter name.Arguments
- const char * name - Parameter name.
- double value - Parameter value to be set.
void setParameterDouble2 ( int id, const Math::dvec2& value ) #
Sets a shader parameter value for the double2 variable.Arguments
- int id - Parameter identifier.
- const Math::dvec2& value - Parameter value to be set.
void setParameterDouble2 ( const char * name, const Math::dvec2& value ) #
Sets a shader parameter value for the double2 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::dvec2& value - Parameter value to be set.
void setParameterDouble3 ( int id, const Math::dvec3& value ) #
Sets a shader parameter value for the double3 variable.Arguments
- int id - Parameter identifier.
- const Math::dvec3& value - Parameter value to be set.
void setParameterDouble3 ( const char * name, const Math::dvec3& value ) #
Sets a shader parameter value for the double3 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::dvec3& value - Parameter value to be set.
void setParameterDouble4 ( int id, const Math::dvec4& value ) #
Sets a shader parameter value for the double4 variable.Arguments
- int id - Parameter identifier.
- const Math::dvec4& value - Parameter value to be set.
void setParameterDouble4 ( const char * name, const Math::dvec4& value ) #
Sets a shader parameter value for the double4 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::dvec4& value - Parameter value to be set.
void setParameterDouble4x4 ( int id, const Math::dmat4& value ) #
Sets a shader parameter value for the double4x4 variable.Arguments
- int id - Parameter identifier.
- const Math::dmat4& value - Parameter value to be set.
void setParameterDouble4x4 ( const char * name, const Math::dmat4& value ) #
Sets a shader parameter value for the double4x4 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::dmat4& value - Parameter value to be set.
void setParameterScalar ( int id, Math::Scalar value ) #
Sets a shader parameter value for the scalar variable using the parameter id.Arguments
- int id - Parameter identifier.
- Math::Scalar value - Parameter value to be set.
void setParameterScalar ( const char * name, Math::Scalar value ) #
Sets a shader parameter value for the scalar variable using the parameter name.Arguments
- const char * name - Parameter name.
- Math::Scalar value - Parameter value to be set.
void setParameterScalar2 ( int id, const Math::Vec2& value ) #
Sets a shader parameter value for the scalar2 variable using the parameter id.Arguments
- int id - Parameter identifier.
- const Math::Vec2& value - Parameter value to be set.
void setParameterScalar2 ( const char * name, const Math::Vec2& value ) #
Sets a shader parameter value for the scalar2 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::Vec2& value - Parameter value to be set.
void setParameterScalar3 ( int id, const Math::Vec3& value ) #
Sets a shader parameter value for the scalar3 variable using the parameter id.Arguments
- int id - Parameter identifier.
- const Math::Vec3& value - Parameter value to be set.
void setParameterScalar3 ( const char * name, const Math::Vec3& value ) #
Sets a shader parameter value for the scalar3 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::Vec3& value - Parameter value to be set.
void setParameterScalar4 ( int id, const Math::Vec4& value ) #
Sets a shader parameter value for the scalar4 variable using the parameter id.Arguments
- int id - Parameter identifier.
- const Math::Vec4& value - Parameter value to be set.
void setParameterScalar4 ( const char * name, const Math::Vec4& value ) #
Sets a shader parameter value for the scalar4 variable using the parameter name.Arguments
- const char * name - Parameter name.
- const Math::Vec4& value - Parameter value to be set.
void setParameterArrayFloat ( int id, const float * value, int num_elements ) #
Sets shader float array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const float * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat ( const char * name, const float * value, int num_elements ) #
Sets shader float array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const float * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat ( int id, const Vector< float > & value ) #
Sets shader float array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const Vector< float > & value - Parameter value to be set.
void setParameterArrayFloat ( const char * name, const Vector< float > & value ) #
Sets shader float array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const Vector< float > & value - Parameter value to be set.
void setParameterArrayFloat2 ( int id, const Math::vec2 * value, int num_elements ) #
Sets shader float2 array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const Math::vec2 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat2 ( const char * name, const Math::vec2 * value, int num_elements ) #
Sets shader float2 array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const Math::vec2 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat2 ( int id, const Vector< Math::vec2 > & value ) #
Sets shader float2 array parameter values by using given parameter id.Arguments
void setParameterArrayFloat2 ( const char * name, const Vector< Math::vec2 > & value ) #
Sets shader float2 array parameter values by using given parameter name.Arguments
void setParameterArrayFloat4 ( int id, const Math::vec4 * value, int num_elements ) #
Sets shader float4 array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const Math::vec4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat4 ( const char * name, const Math::vec4 * value, int num_elements ) #
Sets shader float4 array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const Math::vec4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat4 ( int id, const Vector< Math::vec4 > & value ) #
Sets shader float4 array parameter values by using given parameter id.Arguments
void setParameterArrayFloat4 ( const char * name, const Vector< Math::vec4 > & value ) #
Sets shader float4 array parameter values by using given parameter name.Arguments
void setParameterArrayFloat4x4 ( int id, const Math::mat4 * value, int num_elements ) #
Sets shader float4x4 array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const Math::mat4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat4x4 ( const char * name, const Math::mat4 * value, int num_elements ) #
Sets shader float4x4 array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const Math::mat4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayFloat4x4 ( int id, const Vector< Math::mat4 > & value ) #
Sets shader float4x4 array parameter values by using given parameter id.Arguments
void setParameterArrayFloat4x4 ( const char * name, const Vector< Math::mat4 > & value ) #
Sets shader float4x4 array parameter values by using given parameter name.Arguments
void setParameterArrayInt ( int id, const int * value, int num_elements ) #
Sets shader integer array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const int * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayInt ( const char * name, const int * value, int num_elements ) #
Sets shader integer array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const int * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayInt ( int id, const Vector< int > & value ) #
Sets shader integer array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const Vector< int > & value - Parameter value to be set.
void setParameterArrayInt ( const char * name, const Vector< int > & value ) #
Sets shader integer array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const Vector< int > & value - Parameter value to be set.
void setParameterArrayInt2 ( int id, const Math::ivec2 * value, int num_elements ) #
Sets shader int2 array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const Math::ivec2 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayInt2 ( const char * name, const Math::ivec2 * value, int num_elements ) #
Sets shader int2 array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const Math::ivec2 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayInt2 ( int id, const Vector< Math::ivec2 > & value ) #
Sets shader int2 array parameter values by using given parameter id.Arguments
void setParameterArrayInt2 ( const char * name, const Vector< Math::ivec2 > & value ) #
Sets shader int2 array parameter values by using given parameter name.Arguments
void setParameterArrayInt4 ( int id, const Math::ivec4 * value, int num_elements ) #
Sets shader int4 array parameter values by using given parameter id.Arguments
- int id - Parameter identifier.
- const Math::ivec4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayInt4 ( const char * name, const Math::ivec4 * value, int num_elements ) #
Sets shader int4 array parameter values by using given parameter name.Arguments
- const char * name - Parameter name.
- const Math::ivec4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayInt4 ( int id, const Vector< Math::ivec4 > & value ) #
Sets shader int4 array parameter values by using given parameter id.Arguments
void setParameterArrayInt4 ( const char * name, const Vector< Math::ivec4 > & value ) #
Sets shader int4 array parameter values by using given parameter name.Arguments
void setParameterArrayDouble ( int id, const double * value, int num_elements ) #
Sets shader double parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- const double * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayDouble ( const char * name, const double * value, int num_elements ) #
Sets shader double parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- const double * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayDouble ( int id, const Vector< double > & value ) #
Sets shader double parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- const Vector< double > & value - Parameter value to be set.
void setParameterArrayDouble ( const char * name, const Vector< double > & value ) #
Sets shader double parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- const Vector< double > & value - Parameter value to be set.
void setParameterArrayDouble2 ( int id, const Math::dvec2 * value, int num_elements ) #
Sets shader double2 parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- const Math::dvec2 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayDouble2 ( const char * name, const Math::dvec2 * value, int num_elements ) #
Sets shader double2 parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- const Math::dvec2 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayDouble2 ( int id, const Vector< Math::dvec2 > & value ) #
Sets shader double2 parameter value by using given parameter id.Arguments
void setParameterArrayDouble2 ( const char * name, const Vector< Math::dvec2 > & value ) #
Sets shader double2 parameter value by using given parameter name.Arguments
void setParameterArrayDouble4 ( int id, const Math::dvec4 * value, int num_elements ) #
Sets shader double4 parameter value by using given parameter id.Arguments
- int id - Parameter identifier.
- const Math::dvec4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayDouble4 ( const char * name, const Math::dvec4 * value, int num_elements ) #
Sets shader double4 parameter value by using given parameter name.Arguments
- const char * name - Parameter name.
- const Math::dvec4 * value - Parameter value to be set.
- int num_elements - The number of array elements.
void setParameterArrayDouble4 ( int id, const Vector< Math::dvec4 > & value ) #
Sets shader double4 parameter value by using given parameter id.Arguments
void setParameterArrayDouble4 ( const char * name, const Vector< Math::dvec4 > & value ) #
Sets shader double4 parameter value by using given parameter name.Arguments
void setDisableCompileError ( bool error ) #
Enables or disables the shader compile error output.Arguments
- bool error - true to disable compile errors output; false - to enable.
bool isDisableCompileError ( ) const#
Returns a value indicating if the shader compile error output is disabled.Return value
true if the shader compile errors output is disabled; otherwise, false.void setOptimizationLevel ( int level ) #
Sets optimization level for the shader compiler.Available for DirectX only.
Arguments
- int level - Optimization level to be set. One of the following values:
- 0 - Directs the compiler to skip optimization steps during code generation.
- 1 - Directs the compiler to use the lowest optimization level. At this level the compiler might produce slower code but produces the code quicker.
- 2 - Directs the compiler to use the second lowest optimization level.
- 3 - Directs the compiler to use the second highest optimization level.
- 4 - Directs the compiler to use the highest optimization level. At this level the compiler produces the best possible code but might take significantly longer to do so.
int getOptimizationLevel ( ) const#
Returns the current optimization level of the shader compiler.Available for DirectX only.
Return value
Current optimization level of the shader compiler. One of the following values:- 0 - skip optimization steps during code generation.
- 1 - lowest optimization level. At this level the compiler might produce slower code but produces the code quicker.
- 2 - second lowest optimization level.
- 3 - second highest optimization level.
- 4 - highest optimization level. At this level the compiler produces the best possible code but might take significantly longer to do so.
void setWarningMode ( Shader::WARNING_MODE mode ) #
Sets warning mode for the shader compiler. You can choose modes from the lowest (all shader compilation warnings are ignored) up to the highest level, when warnings are treated as errors. By default the highest level is used, setting lower levels may result in driver and OS crashes, so you use them at your own risk. The soft level can be used if you have checked and you're absolutely sure that the warnings do not cause crashes.Available for DirectX only.
Arguments
- Shader::WARNING_MODE mode - Warning mode to be used.
Shader::WARNING_MODE getWarningMode ( ) const#
Returns the current warning mode for the shader compiler: from the lowest (all shader compilation warnings are ignored) up to the highest level, when warnings are treated as errors. By default the highest level is used, setting lower levels may result in driver and OS crashes, so you use them at your own risk. The soft level can be used if you have checked and you're absolutely sure that the warnings do not cause crashes.Available for DirectX only.
Return value
Current warning mode of the shader compiler.void setDisableCompileCache ( bool cache ) #
Sets a value indicating if compilation cache for the shader is disabled.Arguments
- bool cache - true to disable compilation cache for the shader; otherwise, false.
bool isDisableCompileCache ( ) const#
Returns a value indicating if compilation cache for the shader is disabled.Return value
true if compilation cache for the shader is disabled; otherwise, false.void setDisableExport ( bool val ) #
Sets a value indicating if shader export to a file is disabled. By default UNIGINE enables exporting a shader program to a file (e.g. for debug purposes). Shader files are created in native languages for both graphic APIs (Direct3D - .hlsl extension, OpenGL - .glsl extension).Arguments
- bool val - true to disable shader export to a file; otherwise, false.
bool isDisableExport ( ) const#
Returns a value indicating if shader export to a file is disabled. By default UNIGINE enables exporting a shader program to a file (e.g. for debug purposes). Shader files are created in native languages for both graphic APIs (Direct3D - .hlsl extension, OpenGL - .glsl extension).Return value
true if shader export to a file is disabled; otherwise, false.void setIEEEStrictness ( bool strictness ) #
Sets a value indicating if the shader compiler forces the IEEE strict compilation.Available for DirectX only.
Arguments
- bool strictness - true to force the IEEE strict compilation by the shader compiler; otherwise, false.
bool isIEEEStrictness ( ) const#
Returns a value indicating if the shader compiler forces the IEEE strict compilation.Available for DirectX only.
Return value
true if the shader compiler forces the IEEE strict compilation; otherwise, false.Last update:
2023-06-23
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)