Kanzi Framework  3.9.0
Kanzi Engine API
kanzi::ShaderProgram::CreateInfoShaderBinary Struct Reference

ShaderProgram creation parameters for initialized from vendor specific GL shader binary. More...

#include <kanzi/core.ui/platform/graphics_backend/gl/shader_create_info.hpp>

Inheritance diagram for kanzi::ShaderProgram::CreateInfoShaderBinary:
[legend]

Public Member Functions

 CreateInfoShaderBinary (unsigned int shaderBinaryFormat, unsigned int dataSize, void *data)
 Construct a create info structure for shader program creation from precompiled shader binary. More...
 
 CreateInfoShaderBinary (unsigned int shaderBinaryFormat, unsigned int vertexShaderBinaryByteCount, void *vertexShaderBinary, unsigned int fragmentShaderBinaryByteCount, void *fragmentShaderBinary)
 Construct a create info structure for shader program creation from precompiled shader binary data. More...
 
- Public Member Functions inherited from kanzi::ShaderProgram::CreateInfo
void addUniform (string_view name, PropertyDataType dataType, unsigned int elementCount, optional< AbstractPropertyType > propertyType, UniformBindingType bindingType, optional< FixedUniform > fixedOperation, FixedUniformFunction func, UniformTransformation transform)
 Adds an uniform to shader. More...
 
void addUniform (AbstractPropertyType propertyType, PropertyDataType dataType, unsigned int elementCount, ShaderProgram::UniformTransformation transformation)
 Adds a property type uniform to shader. More...
 
void addUniform (AbstractPropertyType propertyType, PropertyDataType dataType, unsigned int elementCount)
 Adds a property type uniform to shader. More...
 
void addUniform (AbstractPropertyType propertyType, ShaderProgram::UniformTransformation transformation)
 Adds a property type uniform to shader. More...
 
void addUniform (AbstractPropertyType propertyType)
 Adds a property type uniform to shader. More...
 
 CreateInfo ()
 Constructs empty create info structure for shader program creation. More...
 
Status validate (const Renderer &renderer) const
 Perform validation of shader creation parameters. More...
 

Additional Inherited Members

- Public Types inherited from kanzi::ShaderProgram::CreateInfo
using BindingContainer = ShaderProgram::BindingContainer
 Binding container type. More...
 
using BindingInfo = ShaderProgram::BindingInfo
 Binding info. More...
 
enum  Status {
  StatusUnsupportedFormat, StatusCompileError, StatusLinkError, StatusInvalidAttributeLocation,
  StatusValid
}
 Status tells if shader creation parameters can be used to create a shader. More...
 
- Public Attributes inherited from kanzi::ShaderProgram::CreateInfo
BindingContainer bindings
 Bindings. More...
 
bool blendingControl
 Indicates whether ShaderProgram created from this createInfo should be able to change blending mode. More...
 
string combinedShaderBinaryData
 Combined shader binary data. More...
 
unsigned int combinedShaderBinaryFormat
 Format for combined shader binary. More...
 
string fragmentShaderSource
 Fragment shader source code. More...
 
string programBinaryData
 Program binary data. More...
 
unsigned int programBinaryFormat
 Format for program binary. More...
 
unsigned int separateShaderBinaryFormat
 Format for separate shader binaries. More...
 
string separateShaderBinaryFragmentData
 Fragment shader binary data when using separate shader binaries. More...
 
string separateShaderBinaryVertexData
 Vertex shader binary data when using separate shader binaries. More...
 
UniformContainer uniforms
 Uniforms. More...
 
ShaderAttributeCollection vertexFormat
 Shader vertex attributes. More...
 
string vertexShaderSource
 Vertex shader source code. More...
 

Detailed Description

ShaderProgram creation parameters for initialized from vendor specific GL shader binary.

Constructor & Destructor Documentation

◆ CreateInfoShaderBinary() [1/2]

kanzi::ShaderProgram::CreateInfoShaderBinary::CreateInfoShaderBinary ( unsigned int  shaderBinaryFormat,
unsigned int  dataSize,
void *  data 
)
explicit

Construct a create info structure for shader program creation from precompiled shader binary.

Note
Supported shader binary formats are vendor specific. Each vendor uses their own shader binary formats. Use Renderer::isGlShaderBinaryFormatSupported() to verify that shaderBinaryFormat is supported.
After constructing the create info, you must insert used attributes to createInfo.vertexFormat.
Parameters
shaderBinaryFormatGL shader binary format.
dataSizeSize of shader binary data in bytes.
dataPointer to shader binary data.

◆ CreateInfoShaderBinary() [2/2]

kanzi::ShaderProgram::CreateInfoShaderBinary::CreateInfoShaderBinary ( unsigned int  shaderBinaryFormat,
unsigned int  vertexShaderBinaryByteCount,
void *  vertexShaderBinary,
unsigned int  fragmentShaderBinaryByteCount,
void *  fragmentShaderBinary 
)
explicit

Construct a create info structure for shader program creation from precompiled shader binary data.

This version takes in two data blobs, one for vertex shader and another one for fragment shader.

Note
Supported shader binary formats are vendor specific. Each vendor uses their own shader binary formats. Use Renderer::isGlShaderBinaryFormatSupported() to verify that shaderBinaryFormat is supported.
After constructing the create info, you must insert used attributes to createInfo.vertexFormat.
Parameters
shaderBinaryFormatGL shader binary format.
vertexShaderBinaryByteCountSize of vertex shader binary data in bytes.
vertexShaderBinaryPointer to vertex shader binary data.
fragmentShaderBinaryByteCountSize of fragment shader binary data in bytes.
fragmentShaderBinaryPointer to fragment shader binary data.

The documentation for this struct was generated from the following file: