Class ShaderCompiler
Base class for the objects that can compile shaders source code.
Inheritance
Inherited Members
Assembly: FlaxEngine.dll
File: Engine/ShadersCompilation/ShaderCompiler.h
Syntax
public class ShaderCompiler
Constructors
~ShaderCompiler()
Finalizes an instance of the ShaderCompiler class.
Declaration
public virtual ~ShaderCompiler() = default
ShaderCompiler(ShaderProfile profile)
Initializes a new instance of the ShaderCompiler class.
Declaration
public ShaderCompiler(ShaderProfile profile)
Parameters
ShaderProfile
profile
The profile. |
Fields
_constantBuffers
Declaration
protected Array<ShaderResourceBuffer> _constantBuffers
Field Value
Array<ShaderResourceBuffer>
|
_context
Declaration
protected ShaderCompilationContext* _context = nullptr
Field Value
ShaderCompilationContext
|
_globalMacros
Declaration
protected Array<ShaderMacro> _globalMacros
Field Value
Array<ShaderMacro>
|
_macros
Declaration
protected Array<ShaderMacro> _macros
Field Value
Array<ShaderMacro>
|
_profile
Methods
Compile(ShaderCompilationContext* context)
Performs the shader compilation.
Declaration
public bool Compile(ShaderCompilationContext* context)
Parameters
ShaderCompilationContext
context
The compilation context. |
Returns
bool
True if failed, otherwise false. |
CompileShader(ShaderFunctionMeta& meta, WritePermutationData customDataWrite=nullptr)
Declaration
protected virtual bool CompileShader(ShaderFunctionMeta& meta, WritePermutationData customDataWrite=nullptr) = 0
Parameters
ShaderFunctionMeta
meta
|
WritePermutationData
customDataWrite
|
Returns
bool
|
CompileShaders()
Declaration
protected bool CompileShaders()
Returns
bool
|
DisposeIncludedFilesCache()
Clears the cache used by the shader includes.
Declaration
public static void DisposeIncludedFilesCache()
GetDefineForFunction(ShaderFunctionMeta& meta, Array<ShaderMacro>& macros)
Declaration
protected void GetDefineForFunction(ShaderFunctionMeta& meta, Array<ShaderMacro>& macros)
Parameters
ShaderFunctionMeta
meta
|
Array<ShaderMacro>
macros
|
GetIncludedFileSource(ShaderCompilationContext* context, const char* sourceFile, const char* includedFile, const char*& source, int32& sourceLength)
Gets the included file source code. Handles system includes and absolute includes. Method is thread-safe.
Declaration
public static bool GetIncludedFileSource(ShaderCompilationContext* context, const char* sourceFile, const char* includedFile, const char*& source, int32& sourceLength)
Parameters
ShaderCompilationContext
context
The compilation context. |
char
sourceFile
The source file that is being compiled. |
char
includedFile
The included file name (absolute or relative). |
char
source
The output source code of the file (null-terminated), null if failed to load. |
int32
sourceLength
The output source code length of the file (characters count), 0 if failed to load. |
Returns
bool
True if failed, otherwise false. |
GetProfile()
Gets shader profile supported by this compiler.
Declaration
public ShaderProfile GetProfile() const
Returns
ShaderProfile
The shader profile. |
OnCompileBegin()
Declaration
protected virtual bool OnCompileBegin()
Returns
bool
|
OnCompileEnd()
Declaration
protected virtual bool OnCompileEnd()
Returns
bool
|
ParseVertexElementType(StringAnsiView semantic, uint32 index = 0)
Declaration
protected static VertexElement::Types ParseVertexElementType(StringAnsiView semantic, uint32 index = 0)
Parameters
StringAnsiView
semantic
|
uint32
index
|
Returns
VertexElement::Types
|
WriteCustomDataHS(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const Array<ShaderMacro>& macros, void* additionalData)
Declaration
protected static bool WriteCustomDataHS(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const Array<ShaderMacro>& macros, void* additionalData)
Parameters
ShaderCompilationContext
context
|
ShaderFunctionMeta
meta
|
int32
permutationIndex
|
Array<ShaderMacro>
macros
|
void
additionalData
|
Returns
bool
|
WriteCustomDataVS(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const Array<ShaderMacro>& macros, void* additionalData)
Declaration
protected static bool WriteCustomDataVS(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const Array<ShaderMacro>& macros, void* additionalData)
Parameters
ShaderCompilationContext
context
|
ShaderFunctionMeta
meta
|
int32
permutationIndex
|
Array<ShaderMacro>
macros
|
void
additionalData
|
Returns
bool
|
WriteShaderFunctionBegin(ShaderCompilationContext* context, ShaderFunctionMeta& meta)
Declaration
protected static bool WriteShaderFunctionBegin(ShaderCompilationContext* context, ShaderFunctionMeta& meta)
Parameters
ShaderCompilationContext
context
|
ShaderFunctionMeta
meta
|
Returns
bool
|
WriteShaderFunctionEnd(ShaderCompilationContext* context, ShaderFunctionMeta& meta)
Declaration
protected static bool WriteShaderFunctionEnd(ShaderCompilationContext* context, ShaderFunctionMeta& meta)
Parameters
ShaderCompilationContext
context
|
ShaderFunctionMeta
meta
|
Returns
bool
|
WriteShaderFunctionPermutation(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const ShaderBindings& bindings, const void* cache, int32 cacheSize)
Declaration
protected static bool WriteShaderFunctionPermutation(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const ShaderBindings& bindings, const void* cache, int32 cacheSize)
Parameters
ShaderCompilationContext
context
|
ShaderFunctionMeta
meta
|
int32
permutationIndex
|
ShaderBindings
bindings
|
void
cache
|
int32
cacheSize
|
Returns
bool
|
WriteShaderFunctionPermutation(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const ShaderBindings& bindings, const void* header, int32 headerSize, const void* cache, int32 cacheSize)
Declaration
protected static bool WriteShaderFunctionPermutation(ShaderCompilationContext* context, ShaderFunctionMeta& meta, int32 permutationIndex, const ShaderBindings& bindings, const void* header, int32 headerSize, const void* cache, int32 cacheSize)
Parameters
ShaderCompilationContext
context
|
ShaderFunctionMeta
meta
|
int32
permutationIndex
|
ShaderBindings
bindings
|
void
header
|
int32
headerSize
|
void
cache
|
int32
cacheSize
|
Returns
bool
|