Search Results for

    Show / Hide Table of Contents

    Class ShaderCompiler

    Base class for the objects that can compile shaders source code.

    Inheritance
    ShaderCompiler
    Inherited Members
    ShaderCompiler
    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

    Declaration
    protected ShaderProfile _profile
    Field Value
    ShaderProfile

    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

    • Improve this Doc
    • View Source
    In This Article
    Back to top Copyright © 2012-2024 Wojciech Figat