CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::ShaderCompiler::ShaderInput Struct Reference

Shader input descriptor structure. More...

#include <CeresEngine/Material/ShaderCompiler/ShaderCompiler.hpp>

Public Attributes

String filename
 Specifies the filename of the input shader code.
 
SPtr< std::istream > sourceCode
 Specifies the input source code stream.
 
InputShaderVersion shaderVersion = InputShaderVersion::HLSL5
 Specifies the input shader version (e.g.
 
ShaderTarget shaderTarget = ShaderTarget::Undefined
 Specifies the target shader (Vertex, Fragment etc.). By default, ShaderTarget::Undefined.
 
String entryPoint = "main"
 Specifies the HLSL shader entry point. By default, "main".
 
String secondaryEntryPoint
 Specifies the secondary HLSL shader entry point.
 
UInt32 warnings = 0
 Compiler warning flags.
 
UInt32 extensions = 0
 Language extension flags.
 
IncludeHandlerincludeHandler = nullptr
 Optional pointer to the implementation of the "IncludeHandler" interface.
 

Detailed Description

Shader input descriptor structure.

See also
compileShader

Member Data Documentation

◆ entryPoint

String CeresEngine::ShaderCompiler::ShaderInput::entryPoint = "main"

Specifies the HLSL shader entry point. By default, "main".

◆ extensions

UInt32 CeresEngine::ShaderCompiler::ShaderInput::extensions = 0

Language extension flags.

This can be a bitwise OR combination of the "Extensions" enumeration entries. By default, 0.

See also
Extensions

◆ filename

String CeresEngine::ShaderCompiler::ShaderInput::filename

Specifies the filename of the input shader code.

This is an optional attribute, and only a hint to the compiler.

◆ includeHandler

IncludeHandler* CeresEngine::ShaderCompiler::ShaderInput::includeHandler = nullptr

Optional pointer to the implementation of the "IncludeHandler" interface.

By default, null.

Remarks
If this is null, the default include handler will be used, which will include files with the STL input file streams.

◆ secondaryEntryPoint

String CeresEngine::ShaderCompiler::ShaderInput::secondaryEntryPoint

Specifies the secondary HLSL shader entry point.

Remarks
This is only used for a Tessellation-Control Shader (alias Hull Shader) entry point, when a Tessellation-Control Shader (alias Domain Shader) is the output target. This is required to translate all Tessellation-Control attributes (i.e. "partitioning" and "outputtopology") to the Tessellation-Evaluation output shader. If this is empty, the default values for these attributes are used.

◆ shaderTarget

ShaderTarget CeresEngine::ShaderCompiler::ShaderInput::shaderTarget = ShaderTarget::Undefined

Specifies the target shader (Vertex, Fragment etc.). By default, ShaderTarget::Undefined.

◆ shaderVersion

InputShaderVersion CeresEngine::ShaderCompiler::ShaderInput::shaderVersion = InputShaderVersion::HLSL5

Specifies the input shader version (e.g.

InputShaderVersion::HLSL5 for "HLSL 5"). By default, InputShaderVersion::HLSL5.

◆ sourceCode

SPtr<std::istream> CeresEngine::ShaderCompiler::ShaderInput::sourceCode

Specifies the input source code stream.

◆ warnings

UInt32 CeresEngine::ShaderCompiler::ShaderInput::warnings = 0

Compiler warning flags.

This can be a bitwise OR combination of the "Warnings" enumeration entries. By default, 0.

See also
Warnings

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