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

Namespaces

namespace  ASTFactory
 
namespace  ConsoleManip
 
namespace  Reflection
 Shader code reflection namespace.
 

Classes

struct  AliasDeclaration
 
struct  AliasDeclarationStatement
 
struct  AliasTypeDenoter
 
class  Analyzer
 
struct  ArrayDimension
 
struct  ArrayExpression
 
struct  ArrayTypeDenoter
 
struct  AssignExpression
 
struct  AST
 
class  ASTPrinter
 
class  ASTRuntimeError
 
class  ASTSymbolOverload
 
struct  Attribute
 
struct  BaseTypeDenoter
 
struct  BasicDeclarationStatement
 
class  BasicTokenString
 Token string template class. More...
 
struct  BinaryExpression
 
struct  BracketExpression
 
struct  BufferDeclaration
 
struct  BufferDeclarationStatement
 
struct  BufferTypeDenoter
 Buffer type denoter with generic sub type and generic size. More...
 
struct  CallExpression
 
struct  CastExpression
 
struct  CodeBlock
 
struct  CodeBlockStatement
 
class  Compiler
 
class  ControlPathAnalyzer
 Control path analyzer (must implement visitors for all statements). More...
 
class  Converter
 GLSL AST converter. More...
 
struct  CtrlTransferStatement
 
struct  Declaration
 
struct  DefaultTokenOfInterestFunctor
 
class  Dictionary
 
struct  DoWhileLoopStatement
 
struct  ElseStatement
 
class  EndOfScopeAnalyzer
 End-of-scope analyzer. More...
 
struct  Expression
 
class  ExpressionConverter
 Common AST expression converter. More...
 
class  ExpressionEvaluator
 
struct  ExpressionStatement
 
struct  Extensions
 Language extension flags. More...
 
struct  ForLoopStatement
 
struct  Formatting
 Formatting descriptor structure for the output shader. More...
 
class  FuncNameConverter
 
struct  FunctionDeclaration
 
struct  FunctionTypeDenoter
 
class  Generator
 
struct  GenericDefaultValue
 
struct  GenericDefaultValue< bool >
 
class  GLSLConverter
 GLSL AST converter. More...
 
class  GLSLExtensionAgent
 
class  GLSLGenerator
 
class  GLSLParser
 
class  GLSLPreProcessor
 Pre-processor to substitute macros and include directives. More...
 
class  GLSLScanner
 
class  HLSLAnalyzer
 
class  HLSLIntrinsicAdept
 
struct  HLSLIntrinsicEntry
 
class  HLSLParser
 
class  HLSLScanner
 
class  Identifier
 Class to manage identifiers that can be renamed (maybe several times), to keep track of the original identifier (e.g. More...
 
struct  IfStatement
 
class  IncludeHandler
 Interface for handling new include streams. More...
 
class  IndexedSemantic
 
struct  InitializerExpression
 
class  IntrinsicAdept
 
struct  IntrinsicUsage
 
class  JoinableString
 
struct  LayoutStatement
 
struct  LiteralExpression
 
class  Log
 Log base class. More...
 
struct  MatrixSubscriptUsage
 
struct  NameMangling
 Name mangling descriptor structure for shader input/output variables (also referred to as "varyings"), temporary variables, and reserved keywords. More...
 
struct  NullExpression
 
struct  NullStatement
 
struct  NullTypeDenoter
 
struct  ObjectExpression
 
class  Optimizer
 
struct  Options
 Structure for additional translation options. More...
 
struct  PackOffset
 
class  Parser
 
struct  PostUnaryExpression
 
class  PreProcessor
 Pre-processor to substitute macros and include directives. More...
 
class  PreProcessorScanner
 
struct  Program
 
class  ReferenceAnalyzer
 Object reference analyzer. More...
 
class  ReflectionAnalyzer
 Code reflection analyzer. More...
 
class  ReflectionPrinter
 
struct  Register
 
class  Report
 Report exception class which contains a completely constructed message with optional line marker, hints, and context description. More...
 
class  ReportHandler
 
struct  ReturnStatement
 
struct  SamplerDeclaration
 
struct  SamplerDeclarationStatement
 
struct  SamplerTypeDenoter
 
struct  SamplerValue
 
class  Scanner
 
struct  SequenceExpression
 
struct  ShaderInput
 Shader input descriptor structure. More...
 
struct  ShaderOutput
 Shader output descriptor structure. More...
 
class  ShaderVersion
 
class  SLParser
 
class  SLScanner
 
class  SourceArea
 
class  SourceCode
 
struct  SourceOrigin
 Source code origin with filename and line offset. More...
 
class  SourcePosition
 
struct  Statement
 
class  StdLog
 Standard output log (uses std::cout to submit a report). More...
 
struct  StructDeclaration
 
class  StructParameterAnalyzer
 Structure parameter analyzer. More...
 
struct  StructTypeDenoter
 
struct  SwitchCase
 
struct  SwitchStatement
 
class  SymbolTable
 
struct  TernaryExpression
 
class  Token
 
class  TypeConverter
 
struct  TypedAST
 
struct  TypeDenoter
 
struct  TypeSpecifier
 
struct  TypeSpecifierExpression
 
struct  UnaryExpression
 
struct  UniformBufferDeclaration
 
class  UniformPacker
 Uniform packer is not a visitor in the conventional sense. More...
 
struct  UniformPacking
 Uniform packing parameter structure. More...
 
struct  VarDeclaration
 
struct  VarDeclarationStatement
 
class  Variant
 
struct  VectorSpace
 
struct  VertexSemantic
 Vertex shader semantic (or rather attribute) layout structure. More...
 
class  Visitor
 
class  VisitorTracker
 
struct  VoidTypeDenoter
 
struct  Warnings
 Compiler warning flags. More...
 
struct  WhileLoopStatement
 

Typedefs

using VarDeclarationIteratorFunctor = UniqueFunction< void(VarDeclarationPtr &varDeclaration) const >
 
using ExpressionIteratorFunctor = UniqueFunction< void(ExpressionPtr &expression, VarDeclaration *param) const >
 
using ArgumentParameterTypeFunctor = UniqueFunction< void(ExpressionPtr &argument, const TypeDenoter &paramTypeDen) const >
 
using FindPredicateConstFunctor = UniqueFunction< bool(const Expression &expression) const >
 
using MergeExpressionFunctor = UniqueFunction< ExpressionPtr(const ExpressionPtr &expression0, const ExpressionPtr &expression1) const >
 
using SourceOriginPtr = SPtr< SourceOrigin >
 
using TokenPtr = SPtr< Token >
 
using KeywordMapType = Map< String, Token::Types >
 
using TokenPtrString = BasicTokenString< TokenPtr, DefaultTokenOfInterestFunctor >
 
using TypeDenoterPtr = SPtr< TypeDenoter >
 
using VoidTypeDenoterPtr = SPtr< VoidTypeDenoter >
 
using NullTypeDenoterPtr = SPtr< NullTypeDenoter >
 
using BaseTypeDenoterPtr = SPtr< BaseTypeDenoter >
 
using BufferTypeDenoterPtr = SPtr< BufferTypeDenoter >
 
using SamplerTypeDenoterPtr = SPtr< SamplerTypeDenoter >
 
using StructTypeDenoterPtr = SPtr< StructTypeDenoter >
 
using AliasTypeDenoterPtr = SPtr< AliasTypeDenoter >
 
using ArrayTypeDenoterPtr = SPtr< ArrayTypeDenoter >
 
using FunctionTypeDenoterPtr = SPtr< FunctionTypeDenoter >
 
using ASTPtr = SPtr< AST >
 
using TypedASTPtr = SPtr< TypedAST >
 
using StatementPtr = SPtr< Statement >
 
using ExpressionPtr = SPtr< Expression >
 
using DeclarationPtr = SPtr< Declaration >
 
using ProgramPtr = SPtr< Program >
 
using CodeBlockPtr = SPtr< CodeBlock >
 
using AttributePtr = SPtr< Attribute >
 
using SwitchCasePtr = SPtr< SwitchCase >
 
using SamplerValuePtr = SPtr< SamplerValue >
 
using RegisterPtr = SPtr< Register >
 
using PackOffsetPtr = SPtr< PackOffset >
 
using ArrayDimensionPtr = SPtr< ArrayDimension >
 
using TypeSpecifierPtr = SPtr< TypeSpecifier >
 
using VarDeclarationPtr = SPtr< VarDeclaration >
 
using BufferDeclarationPtr = SPtr< BufferDeclaration >
 
using SamplerDeclarationPtr = SPtr< SamplerDeclaration >
 
using StructDeclarationPtr = SPtr< StructDeclaration >
 
using AliasDeclarationPtr = SPtr< AliasDeclaration >
 
using FunctionDeclarationPtr = SPtr< FunctionDeclaration >
 
using UniformBufferDeclarationPtr = SPtr< UniformBufferDeclaration >
 
using BufferDeclarationStatementPtr = SPtr< BufferDeclarationStatement >
 
using SamplerDeclarationStatementPtr = SPtr< SamplerDeclarationStatement >
 
using VarDeclarationStatementPtr = SPtr< VarDeclarationStatement >
 
using AliasDeclarationStatementPtr = SPtr< AliasDeclarationStatement >
 
using BasicDeclarationStatementPtr = SPtr< BasicDeclarationStatement >
 
using NullStatementPtr = SPtr< NullStatement >
 
using CodeBlockStatementPtr = SPtr< CodeBlockStatement >
 
using ForLoopStatementPtr = SPtr< ForLoopStatement >
 
using WhileLoopStatementPtr = SPtr< WhileLoopStatement >
 
using DoWhileLoopStatementPtr = SPtr< DoWhileLoopStatement >
 
using IfStatementPtr = SPtr< IfStatement >
 
using ElseStatementPtr = SPtr< ElseStatement >
 
using SwitchStatementPtr = SPtr< SwitchStatement >
 
using ExpressionStatementPtr = SPtr< ExpressionStatement >
 
using ReturnStatementPtr = SPtr< ReturnStatement >
 
using CtrlTransferStatementPtr = SPtr< CtrlTransferStatement >
 
using LayoutStatementPtr = SPtr< LayoutStatement >
 
using NullExpressionPtr = SPtr< NullExpression >
 
using SequenceExpressionPtr = SPtr< SequenceExpression >
 
using LiteralExpressionPtr = SPtr< LiteralExpression >
 
using TypeSpecifierExpressionPtr = SPtr< TypeSpecifierExpression >
 
using TernaryExpressionPtr = SPtr< TernaryExpression >
 
using BinaryExpressionPtr = SPtr< BinaryExpression >
 
using UnaryExpressionPtr = SPtr< UnaryExpression >
 
using PostUnaryExpressionPtr = SPtr< PostUnaryExpression >
 
using CallExpressionPtr = SPtr< CallExpression >
 
using BracketExpressionPtr = SPtr< BracketExpression >
 
using ObjectExpressionPtr = SPtr< ObjectExpression >
 
using AssignExpressionPtr = SPtr< AssignExpression >
 
using ArrayExpressionPtr = SPtr< ArrayExpression >
 
using CastExpressionPtr = SPtr< CastExpression >
 
using InitializerExpressionPtr = SPtr< InitializerExpression >
 
using HLSLIntrinsicsMap = Map< String, HLSLIntrinsicEntry >
 
using ScannerPtr = SPtr< Scanner >
 
using OnReportProc = Function< void(const String &msg, const AST *ast) const >
 
using SourceCodePtr = SPtr< SourceCode >
 
using ASTSymbolTable = SymbolTable< AST * >
 
using ASTSymbolOverloadPtr = SPtr< ASTSymbolOverload >
 
using ASTSymbolOverloadTable = SymbolTable< ASTSymbolOverloadPtr >
 

Enumerations

enum  SearchFlags : UInt32 { SearchLValue = (1 << 0) , SearchRValue = (1 << 1) , SearchAll = (~0u) }
 
enum class  AssignOp {
  Undefined , Set , Add , Sub ,
  Mul , Div , Mod , LShift ,
  RShift , Or , And , Xor
}
 
enum class  BinaryOp {
  Undefined , LogicalAnd , LogicalOr , Or ,
  Xor , And , LShift , RShift ,
  Add , Sub , Mul , Div ,
  Mod , Equal , NotEqual , Less ,
  Greater , LessEqual , GreaterEqual
}
 
enum class  UnaryOp {
  Undefined , LogicalNot , Not , Nop ,
  Negate , Inc , Dec
}
 
enum class  CtrlTransfer { Undefined , Break , Continue , Discard }
 
enum class  DataType {
  Undefined , String , Bool , Int ,
  UInt , Half , Float , Double ,
  Bool2 , Bool3 , Bool4 , Int2 ,
  Int3 , Int4 , UInt2 , UInt3 ,
  UInt4 , Half2 , Half3 , Half4 ,
  Float2 , Float3 , Float4 , Double2 ,
  Double3 , Double4 , Bool2x2 , Bool2x3 ,
  Bool2x4 , Bool3x2 , Bool3x3 , Bool3x4 ,
  Bool4x2 , Bool4x3 , Bool4x4 , Int2x2 ,
  Int2x3 , Int2x4 , Int3x2 , Int3x3 ,
  Int3x4 , Int4x2 , Int4x3 , Int4x4 ,
  UInt2x2 , UInt2x3 , UInt2x4 , UInt3x2 ,
  UInt3x3 , UInt3x4 , UInt4x2 , UInt4x3 ,
  UInt4x4 , Half2x2 , Half2x3 , Half2x4 ,
  Half3x2 , Half3x3 , Half3x4 , Half4x2 ,
  Half4x3 , Half4x4 , Float2x2 , Float2x3 ,
  Float2x4 , Float3x2 , Float3x3 , Float3x4 ,
  Float4x2 , Float4x3 , Float4x4 , Double2x2 ,
  Double2x3 , Double2x4 , Double3x2 , Double3x3 ,
  Double3x4 , Double4x2 , Double4x3 , Double4x4
}
 
enum class  PrimitiveType {
  Undefined , Point , Line , LineAdj ,
  Triangle , TriangleAdj
}
 
enum class  StorageClass {
  Undefined , Extern , Precise , Shared ,
  GroupShared , Static , Volatile
}
 
enum class  InterpModifier {
  Undefined , Centroid , Linear , NoInterpolation ,
  NoPerspective , Sample
}
 
enum class  TypeModifier {
  Undefined , Const , RowMajor , ColumnMajor ,
  SNorm , UNorm
}
 
enum class  UniformBufferType { Undefined , ConstantBuffer , TextureBuffer }
 
enum class  BufferType {
  Undefined , Buffer , StructuredBuffer , ByteAddressBuffer ,
  RWBuffer , RWStructuredBuffer , RWByteAddressBuffer , AppendStructuredBuffer ,
  ConsumeStructuredBuffer , RWTexture1D , RWTexture1DArray , RWTexture2D ,
  RWTexture2DArray , RWTexture3D , Texture1D , Texture1DArray ,
  Texture2D , Texture2DArray , Texture3D , TextureCube ,
  TextureCubeArray , Texture2DMS , Texture2DMSArray , GenericTexture ,
  InputPatch , OutputPatch , PointStream , LineStream ,
  TriangleStream , GenericBuffer
}
 
enum class  SamplerType {
  Undefined , Sampler1D , Sampler2D , Sampler3D ,
  SamplerCube , Sampler2DRect , Sampler1DArray , Sampler2DArray ,
  SamplerCubeArray , SamplerBuffer , Sampler2DMS , Sampler2DMSArray ,
  Sampler1DShadow , Sampler2DShadow , SamplerCubeShadow , Sampler2DRectShadow ,
  Sampler1DArrayShadow , Sampler2DArrayShadow , SamplerCubeArrayShadow , SamplerState ,
  SamplerComparisonState
}
 
enum class  ImageLayoutFormat {
  Undefined , F32X4 , F32X2 , F32X1 ,
  F16X4 , F16X2 , F16X1 , F11R11G10B ,
  UN32X4 , UN16X2 , UN16X1 , UN10R10G10B2A ,
  UN8X4 , UN8X2 , UN8X1 , SN16X4 ,
  SN16X2 , SN16X1 , SN8X4 , SN8X2 ,
  SN8X1 , I32X4 , I32X2 , I32X1 ,
  I16X4 , I16X2 , I16X1 , I8X4 ,
  I8X2 , I8X1 , UI32X4 , UI32X2 ,
  UI32X1 , UI16X4 , UI16X2 , UI16X1 ,
  UI10R10G10B2A , UI8X4 , UI8X2 , UI8X1
}
 
enum class  RegisterType {
  Undefined , ConstantBuffer , TextureBuffer , BufferOffset ,
  Sampler , UnorderedAccessView
}
 
enum class  AttributeType {
  Undefined , Branch , Call , Flatten ,
  IfAll , IfAny , Isolate , Loop ,
  MaxExports , MaxInstructionCount , MaxTempReg , NoExpressionOptimizations ,
  Predicate , PredicateBlock , ReduceTempRegUsage , RemoveUnusedInputs ,
  SampReg , Unroll , Unused , Xps ,
  Domain , EarlyDepthStencil , Instance , MaxTessFactor ,
  MaxVertexCount , NumThreads , OutputControlPoints , OutputTopology ,
  Partitioning , PatchSize , PatchConstantFunc , Align ,
  Binding , CW , CCW , ColumnMajor ,
  Component , DepthAny , DepthGreater , DepthLess ,
  DepthUnchanged , EarlyFragmentTests , EqualSpacing , FractionalEvenSpacing ,
  FractionalOddSpacing , Index , Invocations , Isolines ,
  Lines , LinesAdjacency , LineStrip , LocalSizeX ,
  LocalSizeY , LocalSizeZ , Location , MaxVertices ,
  OriginUpperLeft , Offset , Packed , PixelCenterInteger ,
  Points , PointMode , Quads , RowMajor ,
  Shared , Std140 , Std430 , Stream ,
  Triangles , TrianglesAdjacency , TriangleStrip , Vertices ,
  XfbBuffer , XfbOffset , XfbStride , Set ,
  Space , Layout
}
 
enum class  AttributeValue {
  Undefined , DomainTri , DomainQuad , DomainIsoline ,
  OutputTopologyPoint , OutputTopologyLine , OutputTopologyTriangleCW , OutputTopologyTriangleCCW ,
  PartitioningInteger , PartitioningPow2 , PartitioningFractionalEven , PartitioningFractionalOdd
}
 
enum class  Intrinsic {
  Undefined , Abort , Abs , ACos ,
  All , AllMemoryBarrier , AllMemoryBarrierWithGroupSync , Any ,
  AsDouble , AsFloat , ASin , AsInt ,
  AsUInt1 , AsUInt3 , ATan , ATan2 ,
  Ceil , CheckAccessFullyMapped , Clamp , Clip ,
  Cos , CosH , CountBits , Cross ,
  D3DCOLORtoUBYTE4 , DDX , DDXCoarse , DDXFine ,
  DDY , DDYCoarse , DDYFine , Degrees ,
  Determinant , DeviceMemoryBarrier , DeviceMemoryBarrierWithGroupSync , Distance ,
  Dot , Dst , Equal , ErrorF ,
  EvaluateAttributeAtCentroid , EvaluateAttributeAtSample , EvaluateAttributeSnapped , Exp ,
  Exp2 , F16toF32 , F32toF16 , FaceForward ,
  FirstBitHigh , FirstBitLow , Floor , FMA ,
  FMod , Frac , FrExp , FWidth ,
  GetRenderTargetSampleCount , GetRenderTargetSamplePosition , GreaterThan , GreaterThanEqual ,
  GroupMemoryBarrier , GroupMemoryBarrierWithGroupSync , InterlockedAdd , InterlockedAnd ,
  InterlockedCompareExchange , InterlockedCompareStore , InterlockedExchange , InterlockedMax ,
  InterlockedMin , InterlockedOr , InterlockedXor , IsFinite ,
  IsInf , IsNaN , LdExp , Length ,
  Lerp , LessThan , LessThanEqual , Lit ,
  Log , Log10 , Log2 , MAD ,
  Max , Min , ModF , MSAD4 ,
  Mul , Normalize , NotEqual , Not ,
  Pow , PrintF , Process2DQuadTessFactorsAvg , Process2DQuadTessFactorsMax ,
  Process2DQuadTessFactorsMin , ProcessIsolineTessFactors , ProcessQuadTessFactorsAvg , ProcessQuadTessFactorsMax ,
  ProcessQuadTessFactorsMin , ProcessTriTessFactorsAvg , ProcessTriTessFactorsMax , ProcessTriTessFactorsMin ,
  Radians , Rcp , Reflect , Refract ,
  ReverseBits , Round , RSqrt , Saturate ,
  Sign , Sin , SinCos , SinH ,
  SmoothStep , Sqrt , Step , Tan ,
  TanH , Transpose , Trunc , Tex1D2 ,
  Tex1D4 , Tex1DBias , Tex1DGrad , Tex1DLod ,
  Tex1DProj , Tex2D2 , Tex2D4 , Tex2DBias ,
  Tex2DGrad , Tex2DLod , Tex2DProj , Tex3D2 ,
  Tex3D4 , Tex3DBias , Tex3DGrad , Tex3DLod ,
  Tex3DProj , TexCube2 , TexCube4 , TexCubeBias ,
  TexCubeGrad , TexCubeLod , TexCubeProj , TextureGetDimensions ,
  TextureQueryLod , TextureQueryLodUnclamped , TextureLoad1 , TextureLoad2 ,
  TextureLoad3 , TextureSample2 , TextureSample3 , TextureSample4 ,
  TextureSample5 , TextureSampleBias3 , TextureSampleBias4 , TextureSampleBias5 ,
  TextureSampleBias6 , TextureSampleCmp3 , TextureSampleCmp4 , TextureSampleCmp5 ,
  TextureSampleCmp6 , TextureSampleCmpLevelZero3 , TextureSampleCmpLevelZero4 , TextureSampleCmpLevelZero5 ,
  TextureSampleGrad4 , TextureSampleGrad5 , TextureSampleGrad6 , TextureSampleGrad7 ,
  TextureSampleLevel3 , TextureSampleLevel4 , TextureSampleLevel5 , TextureGather2 ,
  TextureGatherRed2 , TextureGatherGreen2 , TextureGatherBlue2 , TextureGatherAlpha2 ,
  TextureGather3 , TextureGather4 , TextureGatherRed3 , TextureGatherRed4 ,
  TextureGatherGreen3 , TextureGatherGreen4 , TextureGatherBlue3 , TextureGatherBlue4 ,
  TextureGatherAlpha3 , TextureGatherAlpha4 , TextureGatherRed6 , TextureGatherRed7 ,
  TextureGatherGreen6 , TextureGatherGreen7 , TextureGatherBlue6 , TextureGatherBlue7 ,
  TextureGatherAlpha6 , TextureGatherAlpha7 , TextureGatherCmp3 , TextureGatherCmpRed3 ,
  TextureGatherCmpGreen3 , TextureGatherCmpBlue3 , TextureGatherCmpAlpha3 , TextureGatherCmp4 ,
  TextureGatherCmp5 , TextureGatherCmpRed4 , TextureGatherCmpRed5 , TextureGatherCmpGreen4 ,
  TextureGatherCmpGreen5 , TextureGatherCmpBlue4 , TextureGatherCmpBlue5 , TextureGatherCmpAlpha4 ,
  TextureGatherCmpAlpha5 , TextureGatherCmpRed7 , TextureGatherCmpRed8 , TextureGatherCmpGreen7 ,
  TextureGatherCmpGreen8 , TextureGatherCmpBlue7 , TextureGatherCmpBlue8 , TextureGatherCmpAlpha7 ,
  TextureGatherCmpAlpha8 , StreamOutputAppend , StreamOutputRestartStrip , ImageLoad ,
  ImageStore , ImageAtomicAdd , ImageAtomicAnd , ImageAtomicOr ,
  ImageAtomicXor , ImageAtomicMin , ImageAtomicMax , ImageAtomicCompSwap ,
  ImageAtomicExchange , PackHalf2x16
}
 Intrinsics function enumeration (currently only HLSL intrinsics). More...
 
enum class  Semantic {
  Undefined , UserDefined , ClipDistance , CullDistance ,
  Coverage , Depth , DepthGreaterEqual , DepthLessEqual ,
  DispatchThreadID , DomainLocation , FragCoord , GroupID ,
  GroupIndex , GroupThreadID , GSInstanceID , InnerCoverage ,
  InsideTessFactor , InstanceID , IsFrontFace , OutputControlPointID ,
  PointSize , PrimitiveID , RenderTargetArrayIndex , SampleIndex ,
  StencilRef , Target , TessFactor , VertexID ,
  VertexPosition , ViewportArrayIndex
}
 
enum class  ReportTypes { Info , Warning , Error }
 Report types enumeration. More...
 
enum class  ShaderTarget {
  Undefined , VertexShader , TessellationControlShader , TessellationEvaluationShader ,
  GeometryShader , FragmentShader , ComputeShader
}
 Shader target enumeration. More...
 
enum class  InputShaderVersion {
  Cg = 2 , HLSL3 = 3 , HLSL4 = 4 , HLSL5 = 5 ,
  HLSL6 = 6 , GLSL = 0x0000ffff , ESSL = 0x0001ffff , VKSL = 0x0002ffff
}
 Input shader version enumeration. More...
 
enum class  OutputShaderVersion {
  GLSL110 = 110 , GLSL120 = 120 , GLSL130 = 130 , GLSL140 = 140 ,
  GLSL150 = 150 , GLSL330 = 330 , GLSL400 = 400 , GLSL410 = 410 ,
  GLSL420 = 420 , GLSL430 = 430 , GLSL440 = 440 , GLSL450 = 450 ,
  GLSL460 = 460 , GLSL = 0x0000ffff , ESSL100 = (0x00010000 + 100) , ESSL300 = (0x00010000 + 300) ,
  ESSL310 = (0x00010000 + 310) , ESSL320 = (0x00010000 + 320) , ESSL = 0x0001ffff , VKSL450 = (0x00020000 + 450) ,
  VKSL = 0x0002ffff
}
 Output shader version enumeration. More...
 

Functions

bool isDeclarationAST (const AST::Types t)
 
bool isExpressionAST (const AST::Types t)
 
bool isStatementAST (const AST::Types t)
 
bool isDeclarationStatementAST (const AST::Types t)
 
String assignOpToString (const AssignOp o)
 
AssignOp stringToAssignOp (const String &s)
 
bool isBitwiseOp (const AssignOp o)
 
String binaryOpToString (const BinaryOp o)
 
BinaryOp stringToBinaryOp (const String &s)
 
BinaryOp assignOpToBinaryOp (const AssignOp op)
 
bool isLogicalOp (const BinaryOp o)
 
bool isBitwiseOp (const BinaryOp o)
 
bool isCompareOp (const BinaryOp o)
 
bool isBooleanOp (const BinaryOp o)
 
String unaryOpToString (const UnaryOp o)
 
UnaryOp stringToUnaryOp (const String &s)
 
bool isLogicalOp (const UnaryOp o)
 
bool isBitwiseOp (const UnaryOp o)
 
bool isLValueOp (const UnaryOp o)
 
String ctrlTransformToString (const CtrlTransfer ct)
 
CtrlTransfer stringToCtrlTransfer (const String &s)
 
String dataTypeToString (const DataType t, bool useTemplateSyntax=false)
 
UInt32 dataTypeSize (const DataType t)
 
bool isScalarType (const DataType t)
 
bool isVectorType (const DataType t)
 
bool isMatrixType (const DataType t)
 
bool isBooleanType (const DataType t)
 
bool isRealType (const DataType t)
 
bool isHalfRealType (const DataType t)
 
bool isSingleRealType (const DataType t)
 
bool isDoubleRealType (const DataType t)
 
bool isIntegralType (const DataType t)
 
bool isIntType (const DataType t)
 
bool isUIntType (const DataType t)
 
Int32 vectorTypeDim (const DataType t)
 Returns the dimension of the specified data type interpreted as vector type.
 
Pair< int, intmatrixTypeDim (const DataType t)
 Returns the dimensions MxN of the specified data type interpreted as matrix type.
 
DataType baseDataType (const DataType t)
 
DataType vectorDataType (const DataType baseDataType, Int32 vectorSize)
 
DataType matrixDataType (const DataType baseDataType, Int32 rows, Int32 columns)
 
DataType subscriptDataType (const DataType dataType, const String &subscript, Vector< Pair< int, int > > *indices=nullptr)
 
DataType tokenToDataType (const Token &token)
 
DataType doubleToFloatDataType (const DataType dataType)
 
UInt32 remainingVectorSize (UInt32 vectorSize, UInt32 alignment=16u)
 
bool accumulateAlignedVectorSize (const DataType dataType, UInt32 &size, UInt32 &padding, UInt32 *offset=nullptr)
 
String bufferTypeToString (const BufferType t)
 
bool isStorageBufferType (const BufferType t)
 
bool isRwBufferType (const BufferType t)
 
bool isTextureBufferType (const BufferType t)
 
bool isTextureMsBufferType (const BufferType t)
 
bool isImageBufferType (const BufferType t)
 
bool isRwImageBufferType (const BufferType t)
 
bool isPatchBufferType (const BufferType t)
 
bool isStreamBufferType (const BufferType t)
 
Int32 getBufferTypeTextureDim (const BufferType t)
 
bool isSamplerStateType (const SamplerType t)
 
bool isSamplerTypeShadow (const SamplerType t)
 
bool isSamplerTypeArray (const SamplerType t)
 
Int32 getSamplerTypeTextureDim (const SamplerType t)
 
SamplerType textureTypeToSamplerType (const BufferType t)
 
SamplerType samplerTypeToShadowSamplerType (const SamplerType t)
 
DataType getImageLayoutFormatBaseType (const ImageLayoutFormat format)
 
ImageLayoutFormat dataTypeToImageLayoutFormat (const DataType t)
 
RegisterType charToRegisterType (char c)
 
char registerTypeToChar (const RegisterType t)
 
String registerTypeToString (const RegisterType t)
 
bool isShaderModel3AttributeType (const AttributeType t)
 
bool isShaderModel5AttributeType (const AttributeType t)
 
bool isHLSLAttributeType (const AttributeType t)
 
bool isGLSLAttributeType (const AttributeType t)
 
bool isExtAttributeType (const AttributeType t)
 
bool isAttributeValueDomain (const AttributeValue t)
 
bool isAttributeValueOutputTopology (const AttributeValue t)
 
bool isAttributeValuePartitioning (const AttributeValue t)
 
bool isAttributeValueTrianglePartitioning (const AttributeValue t)
 
bool isGlobalIntrinsic (const Intrinsic t)
 
bool isTextureIntrinsic (const Intrinsic t)
 
bool isTextureGatherIntrisic (const Intrinsic t)
 
bool isTextureSampleIntrinsic (const Intrinsic t)
 
bool isTextureCompareIntrinsic (const Intrinsic t)
 
bool isTextureCompareLevelZeroIntrinsic (const Intrinsic t)
 
bool isTextureLoadIntrinsic (const Intrinsic t)
 
bool isStreamOutputIntrinsic (const Intrinsic t)
 
bool isImageIntrinsic (const Intrinsic t)
 
bool isInterlockedIntristic (const Intrinsic t)
 
Intrinsic compareOpToIntrinsic (const BinaryOp op)
 
Intrinsic interlockedToImageAtomicIntrinsic (const Intrinsic t)
 Returns the respecitve image atomic intrinsic for the specified interlocked intrinsic, or the input intrinsic, if is is not an interlocked intrinsic (e.g.
 
Int32 getGatherIntrinsicOffsetParamCount (const Intrinsic t)
 
Int32 getGatherIntrinsicComponentIndex (const Intrinsic t)
 
bool isSystemSemantic (const Semantic t)
 
bool isUserSemantic (const Semantic t)
 
String semanticToString (const Semantic t)
 
String filterToString (const Reflection::Filter t)
 
Reflection::Filter stringToFilter (const String &s)
 
String texAddressModeToString (const Reflection::TextureAddressMode t)
 
Reflection::TextureAddressMode stringToTexAddressMode (const String &s)
 
String compareFuncToString (const Reflection::ComparisonFunc t)
 
Reflection::ComparisonFunc stringToCompareFunc (const String &s)
 
String resourceTypeToString (const Reflection::ResourceType t)
 
Reflection::ResourceType uniformBufferTypeToResourceType (const UniformBufferType t)
 
Reflection::ResourceType bufferTypeToResourceType (const BufferType t)
 
Reflection::ResourceType samplerTypeToResourceType (const SamplerType t)
 
bool operator== (const Identifier &lhs, const Identifier &rhs)
 
bool operator== (const String &lhs, const Identifier &rhs)
 
bool operator== (const Identifier &lhs, const String &rhs)
 
bool operator!= (const Identifier &lhs, const Identifier &rhs)
 
bool operator!= (const String &lhs, const Identifier &rhs)
 
bool operator!= (const Identifier &lhs, const String &rhs)
 
bool operator< (const Identifier &lhs, const Identifier &rhs)
 
bool operator< (const String &lhs, const Identifier &rhs)
 
bool operator< (const Identifier &lhs, const String &rhs)
 
String operator+ (const Identifier &lhs, const Identifier &rhs)
 
String operator+ (const String &lhs, const Identifier &rhs)
 
String operator+ (const Identifier &lhs, const String &rhs)
 
String operator+ (const char lhs, const Identifier &rhs)
 
String operator+ (const Identifier &lhs, const char rhs)
 
void assertReachedEnd (bool reachedEnd)
 
void assertCurrentTokenType (const Token::Types type, const Token::Types expectedType)
 
template<typename TokenType , typename TokenOfInterestFunctor >
bool operator== (const BasicTokenString< TokenType, TokenOfInterestFunctor > &lhs, const BasicTokenString< TokenType, TokenOfInterestFunctor > &rhs)
 
template<typename TokenType , typename TokenOfInterestFunctor >
bool operator!= (const BasicTokenString< TokenType, TokenOfInterestFunctor > &lhs, const BasicTokenString< TokenType, TokenOfInterestFunctor > &rhs)
 
template<typename TokenType , typename TokenOfInterestFunctor >
std::ostream & operator<< (std::ostream &lhs, const BasicTokenString< TokenType, TokenOfInterestFunctor > &rhs)
 
bool operator== (const VectorSpace &lhs, const VectorSpace &rhs)
 
bool operator!= (const VectorSpace &lhs, const VectorSpace &rhs)
 
const StringintrinsicToGLSLKeyword (const Intrinsic intr, bool useGLSL120=false)
 
CiString toCiString (const String &s)
 
String toString (const CiString &s)
 
void runtimeErr (const char *msg)
 
void runtimeErr (const String &msg)
 
void runtimeErr (const char *msg, const AST *ast)
 
void runtimeErr (const String &msg, const AST *ast)
 
void runtimeErr (const String &msg, const AST *ast, const Vector< const AST * > &astAppendices)
 
void invalidArg (const char *msg)
 
void invalidArg (const String &msg)
 
const Map< String, int > & getGLSLExtensionVersionMap ()
 
Int32 getGLSLVersionNumber (const OutputShaderVersion version)
 
const KeywordMapTypeglslKeywords ()
 
const StringdataTypeToGLSLKeyword (const DataType t)
 
DataType glslKeywordToDataType (const String &keyword)
 
const StringstorageClassToGLSLKeyword (const StorageClass t)
 
StorageClass glslKeywordToStorageClass (const String &keyword)
 
const StringinterpModifierToGLSLKeyword (const InterpModifier t)
 
InterpModifier glslKeywordToInterpModifier (const String &keyword)
 
const StringbufferTypeToGLSLKeyword (const BufferType t, bool useVulkanGLSL=false, bool separateSamplers=true)
 
const StringsamplerTypeToGLSLKeyword (const SamplerType t)
 
SamplerType glslKeywordToSamplerType (const String &keyword)
 
const StringattributeTypeToGLSLKeyword (const AttributeType t)
 
AttributeType glslKeywordToAttributeType (const String &keyword)
 
const StringattributeValueToGLSLKeyword (const AttributeValue t)
 
AttributeValue glslKeywordToAttributeValue (const String &keyword)
 
const StringprimitiveTypeToGLSLKeyword (const PrimitiveType t)
 
PrimitiveType glslKeywordToPrimitiveType (const String &keyword)
 
const StringimageLayoutFormatToGLSLKeyword (const ImageLayoutFormat t)
 
UPtr< StringsemanticToGLSLKeyword (const IndexedSemantic &semantic, bool useVulkanGLSL=false)
 
DataType semanticToGLSLDataType (const Semantic t)
 
const Set< String > & reservedGLSLKeywords ()
 
const KeywordMapTypehlslKeywords ()
 
const KeywordMapTypehlslKeywordsExtCg ()
 
DataType hlslKeywordToDataType (const String &keyword)
 
DataType hlslKeywordExtCgToDataType (const String &keyword)
 
PrimitiveType hlslKeywordToPrimitiveType (const String &keyword)
 
StorageClass hlslKeywordToStorageClass (const String &keyword)
 
InterpModifier hlslKeywordToInterpModifier (const String &keyword)
 
TypeModifier hlslKeywordToTypeModifier (const String &keyword)
 
UniformBufferType hlslKeywordToUniformBufferType (const String &keyword)
 
BufferType hlslKeywordToBufferType (const String &keyword)
 
SamplerType hlslKeywordToSamplerType (const String &keyword)
 
const StringattributeTypeToHLSLKeyword (const AttributeType t)
 
AttributeType hlslKeywordToAttributeType (const String &keyword)
 
AttributeValue hlslKeywordToAttributeValue (const String &keyword)
 
IndexedSemantic hlslKeywordToSemantic (const String &ident, bool useD3D10Semantics=true)
 
ImageLayoutFormat extHLSLKeywordToImageLayoutFormat (const String &keyword)
 
String joinString (const String &s, const Vector< String > &values)
 Joins the specified string with its values.
 
template<typename T >
void toStringListPrimary (Vector< String > &list, const T &value)
 
template<>
void toStringListPrimary< int > (Vector< String > &list, const int &value)
 
template<typename... Args>
void toStringList (Vector< String > &list, Args &&... args)
 
template<typename Arg0 , typename... ArgsN>
void toStringListSecondary (Vector< String > &list, Arg0 &&arg0, ArgsN &&... argsN)
 
template<>
void toStringList (Vector< String > &list)
 
template<typename Arg0 >
void toStringListSecondary (Vector< String > &list, Arg0 &&arg0)
 
String operator+ (const JoinableString &lhs, const String &rhs)
 
String operator+ (const String &lhs, const JoinableString &rhs)
 
String toString (const Reflection::Filter t)
 Returns the string representation of the specified <Filter> type.
 
String toString (const Reflection::TextureAddressMode t)
 Returns the string representation of the specified <TextureAddressMode> type.
 
String toString (const Reflection::ComparisonFunc t)
 Returns the string representation of the specified <ComparisonFunc> type.
 
String toString (const Reflection::ResourceType t)
 Returns the string representation of the specified <Reflection::ResourceType> type.
 
void printReflection (std::ostream &stream, const Reflection::ReflectionData &reflectionData, bool referencedOnly=false)
 Prints the reflection data into the output stream in a human readable format.
 
bool compileShader (const ShaderInput &inputDesc, const ShaderOutput &outputDesc, Log *log=nullptr, Reflection::ReflectionData *reflectionData=nullptr)
 Cross compiles the shader code from the specified input stream into the specified output shader code.
 
bool operator== (const ShaderVersion &lhs, const ShaderVersion &rhs)
 
bool operator!= (const ShaderVersion &lhs, const ShaderVersion &rhs)
 
bool operator< (const ShaderVersion &lhs, const ShaderVersion &rhs)
 
bool operator<= (const ShaderVersion &lhs, const ShaderVersion &rhs)
 
bool operator> (const ShaderVersion &lhs, const ShaderVersion &rhs)
 
bool operator>= (const ShaderVersion &lhs, const ShaderVersion &rhs)
 
UInt32 stringDistance (const String &a, const String &b)
 
void runtimeErrNoActiveScope ()
 
void runtimeErrIdentAlreadyDeclared (const String &ident, const AST *prevDeclarationAST=nullptr)
 
template<typename SymbolType >
ASTfetchASTFromSymbol (const SymbolType &symbol)
 
template<>
ASTfetchASTFromSymbol< ASTSymbolOverloadPtr > (const ASTSymbolOverloadPtr &symbol)
 
String toString (const ShaderTarget target)
 Returns the specified shader target as string.
 
String toString (const InputShaderVersion shaderVersion)
 Returns the specified shader input version as string.
 
String toString (const OutputShaderVersion shaderVersion)
 Returns the specified shader output version as string.
 
bool isLanguageHLSL (const InputShaderVersion shaderVersion)
 Returns true if the shader input version specifies HLSL (for DirectX) or Cg (handled as dialect or HLSL).
 
bool isLanguageGLSL (const InputShaderVersion shaderVersion)
 Returns true if the shader input version specifies GLSL (for OpenGL, OpenGL ES, and Vulkan).
 
bool isLanguageGLSL (const OutputShaderVersion shaderVersion)
 Returns true if the shader output version specifies GLSL (for OpenGL 2+).
 
bool isLanguageESSL (const OutputShaderVersion shaderVersion)
 Returns true if the shader output version specifies ESSL (for OpenGL ES 2+).
 
bool isLanguageVKSL (const OutputShaderVersion shaderVersion)
 Returns true if the shader output version specifies VKSL (for Vulkan).
 
const Map< String, int > & getGLSLExtensionEnumeration ()
 Returns the enumeration of all supported GLSL extensions as a map of extension name and version number.
 
Variant operator== (const Variant &lhs, const Variant &rhs)
 
Variant operator!= (const Variant &lhs, const Variant &rhs)
 
Variant operator< (const Variant &lhs, const Variant &rhs)
 
Variant operator<= (const Variant &lhs, const Variant &rhs)
 
Variant operator> (const Variant &lhs, const Variant &rhs)
 
Variant operator>= (const Variant &lhs, const Variant &rhs)
 
Variant operator+ (const Variant &lhs, const Variant &rhs)
 
Variant operator- (const Variant &lhs, const Variant &rhs)
 
Variant operator* (const Variant &lhs, const Variant &rhs)
 
Variant operator/ (const Variant &lhs, const Variant &rhs)
 
Variant operator% (const Variant &lhs, const Variant &rhs)
 
Variant operator| (const Variant &lhs, const Variant &rhs)
 
Variant operator& (const Variant &lhs, const Variant &rhs)
 
Variant operator^ (const Variant &lhs, const Variant &rhs)
 
Variant operator<< (const Variant &lhs, const Variant &rhs)
 
Variant operator>> (const Variant &lhs, const Variant &rhs)
 

Typedef Documentation

◆ AliasDeclarationPtr

◆ AliasDeclarationStatementPtr

◆ AliasTypeDenoterPtr

◆ ArgumentParameterTypeFunctor

◆ ArrayDimensionPtr

◆ ArrayExpressionPtr

◆ ArrayTypeDenoterPtr

◆ AssignExpressionPtr

◆ ASTPtr

◆ ASTSymbolOverloadPtr

◆ ASTSymbolOverloadTable

◆ ASTSymbolTable

◆ AttributePtr

◆ BaseTypeDenoterPtr

◆ BasicDeclarationStatementPtr

◆ BinaryExpressionPtr

◆ BracketExpressionPtr

◆ BufferDeclarationPtr

◆ BufferDeclarationStatementPtr

◆ BufferTypeDenoterPtr

◆ CallExpressionPtr

◆ CastExpressionPtr

◆ CodeBlockPtr

◆ CodeBlockStatementPtr

◆ CtrlTransferStatementPtr

◆ DeclarationPtr

◆ DoWhileLoopStatementPtr

◆ ElseStatementPtr

◆ ExpressionIteratorFunctor

◆ ExpressionPtr

◆ ExpressionStatementPtr

◆ FindPredicateConstFunctor

◆ ForLoopStatementPtr

◆ FunctionDeclarationPtr

◆ FunctionTypeDenoterPtr

◆ HLSLIntrinsicsMap

◆ IfStatementPtr

◆ InitializerExpressionPtr

◆ KeywordMapType

◆ LayoutStatementPtr

◆ LiteralExpressionPtr

◆ MergeExpressionFunctor

◆ NullExpressionPtr

◆ NullStatementPtr

◆ NullTypeDenoterPtr

◆ ObjectExpressionPtr

◆ OnReportProc

◆ PackOffsetPtr

◆ PostUnaryExpressionPtr

◆ ProgramPtr

◆ RegisterPtr

◆ ReturnStatementPtr

◆ SamplerDeclarationPtr

◆ SamplerDeclarationStatementPtr

◆ SamplerTypeDenoterPtr

◆ SamplerValuePtr

◆ ScannerPtr

◆ SequenceExpressionPtr

◆ SourceCodePtr

◆ SourceOriginPtr

◆ StatementPtr

◆ StructDeclarationPtr

◆ StructTypeDenoterPtr

◆ SwitchCasePtr

◆ SwitchStatementPtr

◆ TernaryExpressionPtr

◆ TokenPtr

◆ TokenPtrString

◆ TypedASTPtr

◆ TypeDenoterPtr

◆ TypeSpecifierExpressionPtr

◆ TypeSpecifierPtr

◆ UnaryExpressionPtr

◆ UniformBufferDeclarationPtr

◆ VarDeclarationIteratorFunctor

◆ VarDeclarationPtr

◆ VarDeclarationStatementPtr

◆ VoidTypeDenoterPtr

◆ WhileLoopStatementPtr

Enumeration Type Documentation

◆ AssignOp

Enumerator
Undefined 
Set 
Add 
Sub 
Mul 
Div 
Mod 
LShift 
RShift 
Or 
And 
Xor 

◆ AttributeType

Enumerator
Undefined 
Branch 
Call 
Flatten 
IfAll 
IfAny 
Isolate 
Loop 
MaxExports 
MaxInstructionCount 
MaxTempReg 
NoExpressionOptimizations 
Predicate 
PredicateBlock 
ReduceTempRegUsage 
RemoveUnusedInputs 
SampReg 
Unroll 
Unused 
Xps 
Domain 
EarlyDepthStencil 
Instance 
MaxTessFactor 
MaxVertexCount 
NumThreads 
OutputControlPoints 
OutputTopology 
Partitioning 
PatchSize 
PatchConstantFunc 
Align 
Binding 
CW 
CCW 
ColumnMajor 
Component 
DepthAny 
DepthGreater 
DepthLess 
DepthUnchanged 
EarlyFragmentTests 
EqualSpacing 
FractionalEvenSpacing 
FractionalOddSpacing 
Index 
Invocations 
Isolines 
Lines 
LinesAdjacency 
LineStrip 
LocalSizeX 
LocalSizeY 
LocalSizeZ 
Location 
MaxVertices 
OriginUpperLeft 
Offset 
Packed 
PixelCenterInteger 
Points 
PointMode 
Quads 
RowMajor 
Shared 
Std140 
Std430 
Stream 
Triangles 
TrianglesAdjacency 
TriangleStrip 
Vertices 
XfbBuffer 
XfbOffset 
XfbStride 
Set 
Space 
Layout 

◆ AttributeValue

Enumerator
Undefined 
DomainTri 
DomainQuad 
DomainIsoline 
OutputTopologyPoint 
OutputTopologyLine 
OutputTopologyTriangleCW 
OutputTopologyTriangleCCW 
PartitioningInteger 
PartitioningPow2 
PartitioningFractionalEven 
PartitioningFractionalOdd 

◆ BinaryOp

Enumerator
Undefined 
LogicalAnd 
LogicalOr 
Or 
Xor 
And 
LShift 
RShift 
Add 
Sub 
Mul 
Div 
Mod 
Equal 
NotEqual 
Less 
Greater 
LessEqual 
GreaterEqual 

◆ BufferType

Enumerator
Undefined 
Buffer 
StructuredBuffer 
ByteAddressBuffer 
RWBuffer 
RWStructuredBuffer 
RWByteAddressBuffer 
AppendStructuredBuffer 
ConsumeStructuredBuffer 
RWTexture1D 
RWTexture1DArray 
RWTexture2D 
RWTexture2DArray 
RWTexture3D 
Texture1D 
Texture1DArray 
Texture2D 
Texture2DArray 
Texture3D 
TextureCube 
TextureCubeArray 
Texture2DMS 
Texture2DMSArray 
GenericTexture 
InputPatch 
OutputPatch 
PointStream 
LineStream 
TriangleStream 
GenericBuffer 

◆ CtrlTransfer

Enumerator
Undefined 
Break 
Continue 
Discard 

◆ DataType

Enumerator
Undefined 
String 
Bool 
Int 
UInt 
Half 
Float 
Double 
Bool2 
Bool3 
Bool4 
Int2 
Int3 
Int4 
UInt2 
UInt3 
UInt4 
Half2 
Half3 
Half4 
Float2 
Float3 
Float4 
Double2 
Double3 
Double4 
Bool2x2 
Bool2x3 
Bool2x4 
Bool3x2 
Bool3x3 
Bool3x4 
Bool4x2 
Bool4x3 
Bool4x4 
Int2x2 
Int2x3 
Int2x4 
Int3x2 
Int3x3 
Int3x4 
Int4x2 
Int4x3 
Int4x4 
UInt2x2 
UInt2x3 
UInt2x4 
UInt3x2 
UInt3x3 
UInt3x4 
UInt4x2 
UInt4x3 
UInt4x4 
Half2x2 
Half2x3 
Half2x4 
Half3x2 
Half3x3 
Half3x4 
Half4x2 
Half4x3 
Half4x4 
Float2x2 
Float2x3 
Float2x4 
Float3x2 
Float3x3 
Float3x4 
Float4x2 
Float4x3 
Float4x4 
Double2x2 
Double2x3 
Double2x4 
Double3x2 
Double3x3 
Double3x4 
Double4x2 
Double4x3 
Double4x4 

◆ ImageLayoutFormat

Enumerator
Undefined 
F32X4 
F32X2 
F32X1 
F16X4 
F16X2 
F16X1 
F11R11G10B 
UN32X4 
UN16X2 
UN16X1 
UN10R10G10B2A 
UN8X4 
UN8X2 
UN8X1 
SN16X4 
SN16X2 
SN16X1 
SN8X4 
SN8X2 
SN8X1 
I32X4 
I32X2 
I32X1 
I16X4 
I16X2 
I16X1 
I8X4 
I8X2 
I8X1 
UI32X4 
UI32X2 
UI32X1 
UI16X4 
UI16X2 
UI16X1 
UI10R10G10B2A 
UI8X4 
UI8X2 
UI8X1 

◆ InputShaderVersion

Input shader version enumeration.

Enumerator
Cg 

Cg (C for graphics) is a slightly extended HLSL3.

HLSL3 

HLSL Shader Model 3.0 (DirectX 9).

HLSL4 

HLSL Shader Model 4.0 (DirectX 10).

HLSL5 

HLSL Shader Model 5.0 (DirectX 11).

HLSL6 

HLSL Shader Model 6.0 (DirectX 12).

GLSL 

GLSL (OpenGL).

ESSL 

GLSL (OpenGL ES).

VKSL 

GLSL (Vulkan).

◆ InterpModifier

Enumerator
Undefined 
Centroid 
Linear 
NoInterpolation 
NoPerspective 
Sample 

◆ Intrinsic

Intrinsics function enumeration (currently only HLSL intrinsics).

see https://msdn.microsoft.com/en-us/library/windows/desktop/ff471376(v=vs.85).aspx

Enumerator
Undefined 
Abort 
Abs 
ACos 
All 
AllMemoryBarrier 
AllMemoryBarrierWithGroupSync 
Any 
AsDouble 
AsFloat 
ASin 
AsInt 
AsUInt1 
AsUInt3 
ATan 
ATan2 
Ceil 
CheckAccessFullyMapped 
Clamp 
Clip 
Cos 
CosH 
CountBits 
Cross 
D3DCOLORtoUBYTE4 
DDX 
DDXCoarse 
DDXFine 
DDY 
DDYCoarse 
DDYFine 
Degrees 
Determinant 
DeviceMemoryBarrier 
DeviceMemoryBarrierWithGroupSync 
Distance 
Dot 
Dst 
Equal 
ErrorF 
EvaluateAttributeAtCentroid 
EvaluateAttributeAtSample 
EvaluateAttributeSnapped 
Exp 
Exp2 
F16toF32 
F32toF16 
FaceForward 
FirstBitHigh 
FirstBitLow 
Floor 
FMA 
FMod 
Frac 
FrExp 
FWidth 
GetRenderTargetSampleCount 
GetRenderTargetSamplePosition 
GreaterThan 
GreaterThanEqual 
GroupMemoryBarrier 
GroupMemoryBarrierWithGroupSync 
InterlockedAdd 
InterlockedAnd 
InterlockedCompareExchange 
InterlockedCompareStore 
InterlockedExchange 
InterlockedMax 
InterlockedMin 
InterlockedOr 
InterlockedXor 
IsFinite 
IsInf 
IsNaN 
LdExp 
Length 
Lerp 
LessThan 
LessThanEqual 
Lit 
Log 
Log10 
Log2 
MAD 
Max 
Min 
ModF 
MSAD4 
Mul 
Normalize 
NotEqual 
Not 
Pow 
PrintF 
Process2DQuadTessFactorsAvg 
Process2DQuadTessFactorsMax 
Process2DQuadTessFactorsMin 
ProcessIsolineTessFactors 
ProcessQuadTessFactorsAvg 
ProcessQuadTessFactorsMax 
ProcessQuadTessFactorsMin 
ProcessTriTessFactorsAvg 
ProcessTriTessFactorsMax 
ProcessTriTessFactorsMin 
Radians 
Rcp 
Reflect 
Refract 
ReverseBits 
Round 
RSqrt 
Saturate 
Sign 
Sin 
SinCos 
SinH 
SmoothStep 
Sqrt 
Step 
Tan 
TanH 
Transpose 
Trunc 
Tex1D2 
Tex1D4 
Tex1DBias 
Tex1DGrad 
Tex1DLod 
Tex1DProj 
Tex2D2 
Tex2D4 
Tex2DBias 
Tex2DGrad 
Tex2DLod 
Tex2DProj 
Tex3D2 
Tex3D4 
Tex3DBias 
Tex3DGrad 
Tex3DLod 
Tex3DProj 
TexCube2 
TexCube4 
TexCubeBias 
TexCubeGrad 
TexCubeLod 
TexCubeProj 
TextureGetDimensions 
TextureQueryLod 
TextureQueryLodUnclamped 
TextureLoad1 
TextureLoad2 
TextureLoad3 
TextureSample2 
TextureSample3 
TextureSample4 
TextureSample5 
TextureSampleBias3 
TextureSampleBias4 
TextureSampleBias5 
TextureSampleBias6 
TextureSampleCmp3 
TextureSampleCmp4 
TextureSampleCmp5 
TextureSampleCmp6 
TextureSampleCmpLevelZero3 
TextureSampleCmpLevelZero4 
TextureSampleCmpLevelZero5 
TextureSampleGrad4 
TextureSampleGrad5 
TextureSampleGrad6 
TextureSampleGrad7 
TextureSampleLevel3 
TextureSampleLevel4 
TextureSampleLevel5 
TextureGather2 
TextureGatherRed2 
TextureGatherGreen2 
TextureGatherBlue2 
TextureGatherAlpha2 
TextureGather3 
TextureGather4 
TextureGatherRed3 
TextureGatherRed4 
TextureGatherGreen3 
TextureGatherGreen4 
TextureGatherBlue3 
TextureGatherBlue4 
TextureGatherAlpha3 
TextureGatherAlpha4 
TextureGatherRed6 
TextureGatherRed7 
TextureGatherGreen6 
TextureGatherGreen7 
TextureGatherBlue6 
TextureGatherBlue7 
TextureGatherAlpha6 
TextureGatherAlpha7 
TextureGatherCmp3 
TextureGatherCmpRed3 
TextureGatherCmpGreen3 
TextureGatherCmpBlue3 
TextureGatherCmpAlpha3 
TextureGatherCmp4 
TextureGatherCmp5 
TextureGatherCmpRed4 
TextureGatherCmpRed5 
TextureGatherCmpGreen4 
TextureGatherCmpGreen5 
TextureGatherCmpBlue4 
TextureGatherCmpBlue5 
TextureGatherCmpAlpha4 
TextureGatherCmpAlpha5 
TextureGatherCmpRed7 
TextureGatherCmpRed8 
TextureGatherCmpGreen7 
TextureGatherCmpGreen8 
TextureGatherCmpBlue7 
TextureGatherCmpBlue8 
TextureGatherCmpAlpha7 
TextureGatherCmpAlpha8 
StreamOutputAppend 
StreamOutputRestartStrip 
ImageLoad 
ImageStore 
ImageAtomicAdd 
ImageAtomicAnd 
ImageAtomicOr 
ImageAtomicXor 
ImageAtomicMin 
ImageAtomicMax 
ImageAtomicCompSwap 
ImageAtomicExchange 
PackHalf2x16 

◆ OutputShaderVersion

Output shader version enumeration.

Enumerator
GLSL110 

GLSL 1.10 (OpenGL 2.0).

GLSL120 

GLSL 1.20 (OpenGL 2.1).

GLSL130 

GLSL 1.30 (OpenGL 3.0).

GLSL140 

GLSL 1.40 (OpenGL 3.1).

GLSL150 

GLSL 1.50 (OpenGL 3.2).

GLSL330 

GLSL 3.30 (OpenGL 3.3).

GLSL400 

GLSL 4.00 (OpenGL 4.0).

GLSL410 

GLSL 4.10 (OpenGL 4.1).

GLSL420 

GLSL 4.20 (OpenGL 4.2).

GLSL430 

GLSL 4.30 (OpenGL 4.3).

GLSL440 

GLSL 4.40 (OpenGL 4.4).

GLSL450 

GLSL 4.50 (OpenGL 4.5).

GLSL460 

GLSL 4.60 (OpenGL 4.6).

GLSL 

Auto-detect minimal required GLSL version (for OpenGL 2+).

ESSL100 

ESSL 1.00 (OpenGL ES 2.0).

Note
Only partially supported!
ESSL300 

ESSL 3.00 (OpenGL ES 3.0).

Note
Only partially supported!
ESSL310 

ESSL 3.10 (OpenGL ES 3.1).

Note
Only partially supported!
ESSL320 

ESSL 3.20 (OpenGL ES 3.2).

Note
Only partially supported!
ESSL 

Auto-detect minimum required ESSL version (for OpenGL ES 2+).

Note
Currently not supported!
VKSL450 

VKSL 4.50 (Vulkan 1.0).

VKSL 

Auto-detect minimum required VKSL version (for Vulkan/SPIR-V).

◆ PrimitiveType

Enumerator
Undefined 
Point 
Line 
LineAdj 
Triangle 
TriangleAdj 

◆ RegisterType

Enumerator
Undefined 
ConstantBuffer 
TextureBuffer 
BufferOffset 
Sampler 
UnorderedAccessView 

◆ ReportTypes

Report types enumeration.

Enumerator
Info 

Standard information.

Warning 

Warning message.

Error 

Error message.

◆ SamplerType

Enumerator
Undefined 
Sampler1D 
Sampler2D 
Sampler3D 
SamplerCube 
Sampler2DRect 
Sampler1DArray 
Sampler2DArray 
SamplerCubeArray 
SamplerBuffer 
Sampler2DMS 
Sampler2DMSArray 
Sampler1DShadow 
Sampler2DShadow 
SamplerCubeShadow 
Sampler2DRectShadow 
Sampler1DArrayShadow 
Sampler2DArrayShadow 
SamplerCubeArrayShadow 
SamplerState 
SamplerComparisonState 

◆ SearchFlags

Enumerator
SearchLValue 
SearchRValue 
SearchAll 

◆ Semantic

Enumerator
Undefined 
UserDefined 
ClipDistance 
CullDistance 
Coverage 
Depth 
DepthGreaterEqual 
DepthLessEqual 
DispatchThreadID 
DomainLocation 
FragCoord 
GroupID 
GroupIndex 
GroupThreadID 
GSInstanceID 
InnerCoverage 
InsideTessFactor 
InstanceID 
IsFrontFace 
OutputControlPointID 
PointSize 
PrimitiveID 
RenderTargetArrayIndex 
SampleIndex 
StencilRef 
Target 
TessFactor 
VertexID 
VertexPosition 
ViewportArrayIndex 

◆ ShaderTarget

Shader target enumeration.

Enumerator
Undefined 

Undefined shader target.

VertexShader 

Vertex shader.

TessellationControlShader 

Tessellation-control (also Hull-) shader.

TessellationEvaluationShader 

Tessellation-evaluation (also Domain-) shader.

GeometryShader 

Geometry shader.

FragmentShader 

Fragment (also Pixel-) shader.

ComputeShader 

Compute shader.

◆ StorageClass

Enumerator
Undefined 
Extern 
Precise 
Shared 
GroupShared 
Static 
Volatile 

◆ TypeModifier

Enumerator
Undefined 
Const 
RowMajor 
ColumnMajor 
SNorm 
UNorm 

◆ UnaryOp

Enumerator
Undefined 
LogicalNot 
Not 
Nop 
Negate 
Inc 
Dec 

◆ UniformBufferType

Enumerator
Undefined 
ConstantBuffer 
TextureBuffer 

Function Documentation

◆ accumulateAlignedVectorSize()

bool CeresEngine::ShaderCompiler::accumulateAlignedVectorSize ( const DataType  dataType,
UInt32 size,
UInt32 padding,
UInt32 offset = nullptr 
)

◆ assertCurrentTokenType()

void CeresEngine::ShaderCompiler::assertCurrentTokenType ( const Token::Types  type,
const Token::Types  expectedType 
)

◆ assertReachedEnd()

void CeresEngine::ShaderCompiler::assertReachedEnd ( bool  reachedEnd)

◆ assignOpToBinaryOp()

BinaryOp CeresEngine::ShaderCompiler::assignOpToBinaryOp ( const AssignOp  op)

◆ assignOpToString()

String CeresEngine::ShaderCompiler::assignOpToString ( const AssignOp  o)

◆ attributeTypeToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::attributeTypeToGLSLKeyword ( const AttributeType  t)

◆ attributeTypeToHLSLKeyword()

const String * CeresEngine::ShaderCompiler::attributeTypeToHLSLKeyword ( const AttributeType  t)

◆ attributeValueToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::attributeValueToGLSLKeyword ( const AttributeValue  t)

◆ baseDataType()

DataType CeresEngine::ShaderCompiler::baseDataType ( const DataType  t)

◆ binaryOpToString()

String CeresEngine::ShaderCompiler::binaryOpToString ( const BinaryOp  o)

◆ bufferTypeToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::bufferTypeToGLSLKeyword ( const BufferType  t,
bool  useVulkanGLSL = false,
bool  separateSamplers = true 
)

◆ bufferTypeToResourceType()

Reflection::ResourceType CeresEngine::ShaderCompiler::bufferTypeToResourceType ( const BufferType  t)

◆ bufferTypeToString()

String CeresEngine::ShaderCompiler::bufferTypeToString ( const BufferType  t)

◆ charToRegisterType()

RegisterType CeresEngine::ShaderCompiler::charToRegisterType ( char  c)

◆ compareFuncToString()

String CeresEngine::ShaderCompiler::compareFuncToString ( const Reflection::ComparisonFunc  t)

◆ compareOpToIntrinsic()

Intrinsic CeresEngine::ShaderCompiler::compareOpToIntrinsic ( const BinaryOp  op)

◆ compileShader()

bool CeresEngine::ShaderCompiler::compileShader ( const ShaderInput inputDesc,
const ShaderOutput outputDesc,
Log log = nullptr,
Reflection::ReflectionData reflectionData = nullptr 
)

Cross compiles the shader code from the specified input stream into the specified output shader code.

Parameters
[in]inputDescInput shader code descriptor.
[in]outputDescOutput shader code descriptor.
[in]logOptional pointer to an output log. Inherit from the "Log" class interface. By default, null.
[out]reflectionDataOptional pointer to a code reflection data structure. By default, null.
Returns
True if the code has been translated successfully.
Exceptions
std::invalid_argumentIf either the input or output streams are null.
See also
ShaderInput
ShaderOutput
Log
ReflectionData

◆ ctrlTransformToString()

String CeresEngine::ShaderCompiler::ctrlTransformToString ( const CtrlTransfer  ct)

◆ dataTypeSize()

UInt32 CeresEngine::ShaderCompiler::dataTypeSize ( const DataType  t)

◆ dataTypeToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::dataTypeToGLSLKeyword ( const DataType  t)

◆ dataTypeToImageLayoutFormat()

ImageLayoutFormat CeresEngine::ShaderCompiler::dataTypeToImageLayoutFormat ( const DataType  t)

◆ dataTypeToString()

String CeresEngine::ShaderCompiler::dataTypeToString ( const DataType  t,
bool  useTemplateSyntax = false 
)

◆ doubleToFloatDataType()

DataType CeresEngine::ShaderCompiler::doubleToFloatDataType ( const DataType  dataType)

◆ extHLSLKeywordToImageLayoutFormat()

ImageLayoutFormat CeresEngine::ShaderCompiler::extHLSLKeywordToImageLayoutFormat ( const String keyword)

◆ fetchASTFromSymbol()

template<typename SymbolType >
AST * CeresEngine::ShaderCompiler::fetchASTFromSymbol ( const SymbolType symbol)

◆ fetchASTFromSymbol< ASTSymbolOverloadPtr >()

◆ filterToString()

String CeresEngine::ShaderCompiler::filterToString ( const Reflection::Filter  t)

◆ getBufferTypeTextureDim()

Int32 CeresEngine::ShaderCompiler::getBufferTypeTextureDim ( const BufferType  t)

◆ getGatherIntrinsicComponentIndex()

Int32 CeresEngine::ShaderCompiler::getGatherIntrinsicComponentIndex ( const Intrinsic  t)

◆ getGatherIntrinsicOffsetParamCount()

Int32 CeresEngine::ShaderCompiler::getGatherIntrinsicOffsetParamCount ( const Intrinsic  t)

◆ getGLSLExtensionEnumeration()

const Map< String, int > & CeresEngine::ShaderCompiler::getGLSLExtensionEnumeration ( )

Returns the enumeration of all supported GLSL extensions as a map of extension name and version number.

◆ getGLSLExtensionVersionMap()

const Map< String, int > & CeresEngine::ShaderCompiler::getGLSLExtensionVersionMap ( )

◆ getGLSLVersionNumber()

Int32 CeresEngine::ShaderCompiler::getGLSLVersionNumber ( const OutputShaderVersion  version)

◆ getImageLayoutFormatBaseType()

DataType CeresEngine::ShaderCompiler::getImageLayoutFormatBaseType ( const ImageLayoutFormat  format)

◆ getSamplerTypeTextureDim()

Int32 CeresEngine::ShaderCompiler::getSamplerTypeTextureDim ( const SamplerType  t)

◆ glslKeywords()

const KeywordMapType & CeresEngine::ShaderCompiler::glslKeywords ( )

◆ glslKeywordToAttributeType()

AttributeType CeresEngine::ShaderCompiler::glslKeywordToAttributeType ( const String keyword)

◆ glslKeywordToAttributeValue()

AttributeValue CeresEngine::ShaderCompiler::glslKeywordToAttributeValue ( const String keyword)

◆ glslKeywordToDataType()

DataType CeresEngine::ShaderCompiler::glslKeywordToDataType ( const String keyword)

◆ glslKeywordToInterpModifier()

InterpModifier CeresEngine::ShaderCompiler::glslKeywordToInterpModifier ( const String keyword)

◆ glslKeywordToPrimitiveType()

PrimitiveType CeresEngine::ShaderCompiler::glslKeywordToPrimitiveType ( const String keyword)

◆ glslKeywordToSamplerType()

SamplerType CeresEngine::ShaderCompiler::glslKeywordToSamplerType ( const String keyword)

◆ glslKeywordToStorageClass()

StorageClass CeresEngine::ShaderCompiler::glslKeywordToStorageClass ( const String keyword)

◆ hlslKeywordExtCgToDataType()

DataType CeresEngine::ShaderCompiler::hlslKeywordExtCgToDataType ( const String keyword)

◆ hlslKeywords()

const KeywordMapType & CeresEngine::ShaderCompiler::hlslKeywords ( )

◆ hlslKeywordsExtCg()

const KeywordMapType & CeresEngine::ShaderCompiler::hlslKeywordsExtCg ( )

◆ hlslKeywordToAttributeType()

AttributeType CeresEngine::ShaderCompiler::hlslKeywordToAttributeType ( const String keyword)

◆ hlslKeywordToAttributeValue()

AttributeValue CeresEngine::ShaderCompiler::hlslKeywordToAttributeValue ( const String keyword)

◆ hlslKeywordToBufferType()

BufferType CeresEngine::ShaderCompiler::hlslKeywordToBufferType ( const String keyword)

◆ hlslKeywordToDataType()

DataType CeresEngine::ShaderCompiler::hlslKeywordToDataType ( const String keyword)

◆ hlslKeywordToInterpModifier()

InterpModifier CeresEngine::ShaderCompiler::hlslKeywordToInterpModifier ( const String keyword)

◆ hlslKeywordToPrimitiveType()

PrimitiveType CeresEngine::ShaderCompiler::hlslKeywordToPrimitiveType ( const String keyword)

◆ hlslKeywordToSamplerType()

SamplerType CeresEngine::ShaderCompiler::hlslKeywordToSamplerType ( const String keyword)

◆ hlslKeywordToSemantic()

IndexedSemantic CeresEngine::ShaderCompiler::hlslKeywordToSemantic ( const String ident,
bool  useD3D10Semantics = true 
)

◆ hlslKeywordToStorageClass()

StorageClass CeresEngine::ShaderCompiler::hlslKeywordToStorageClass ( const String keyword)

◆ hlslKeywordToTypeModifier()

TypeModifier CeresEngine::ShaderCompiler::hlslKeywordToTypeModifier ( const String keyword)

◆ hlslKeywordToUniformBufferType()

UniformBufferType CeresEngine::ShaderCompiler::hlslKeywordToUniformBufferType ( const String keyword)

◆ imageLayoutFormatToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::imageLayoutFormatToGLSLKeyword ( const ImageLayoutFormat  t)

◆ interlockedToImageAtomicIntrinsic()

Intrinsic CeresEngine::ShaderCompiler::interlockedToImageAtomicIntrinsic ( const Intrinsic  t)

Returns the respecitve image atomic intrinsic for the specified interlocked intrinsic, or the input intrinsic, if is is not an interlocked intrinsic (e.g.

Intrinsic::InterlockedAdd to Intrinsic::Image_AtomicAdd).

◆ interpModifierToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::interpModifierToGLSLKeyword ( const InterpModifier  t)

◆ intrinsicToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::intrinsicToGLSLKeyword ( const Intrinsic  intr,
bool  useGLSL120 = false 
)

◆ invalidArg() [1/2]

void CeresEngine::ShaderCompiler::invalidArg ( const char msg)

◆ invalidArg() [2/2]

void CeresEngine::ShaderCompiler::invalidArg ( const String msg)

◆ isAttributeValueDomain()

bool CeresEngine::ShaderCompiler::isAttributeValueDomain ( const AttributeValue  t)

◆ isAttributeValueOutputTopology()

bool CeresEngine::ShaderCompiler::isAttributeValueOutputTopology ( const AttributeValue  t)

◆ isAttributeValuePartitioning()

bool CeresEngine::ShaderCompiler::isAttributeValuePartitioning ( const AttributeValue  t)

◆ isAttributeValueTrianglePartitioning()

bool CeresEngine::ShaderCompiler::isAttributeValueTrianglePartitioning ( const AttributeValue  t)

◆ isBitwiseOp() [1/3]

bool CeresEngine::ShaderCompiler::isBitwiseOp ( const AssignOp  o)

◆ isBitwiseOp() [2/3]

bool CeresEngine::ShaderCompiler::isBitwiseOp ( const BinaryOp  o)

◆ isBitwiseOp() [3/3]

bool CeresEngine::ShaderCompiler::isBitwiseOp ( const UnaryOp  o)

◆ isBooleanOp()

bool CeresEngine::ShaderCompiler::isBooleanOp ( const BinaryOp  o)

◆ isBooleanType()

bool CeresEngine::ShaderCompiler::isBooleanType ( const DataType  t)

◆ isCompareOp()

bool CeresEngine::ShaderCompiler::isCompareOp ( const BinaryOp  o)

◆ isDeclarationAST()

bool CeresEngine::ShaderCompiler::isDeclarationAST ( const AST::Types  t)

◆ isDeclarationStatementAST()

bool CeresEngine::ShaderCompiler::isDeclarationStatementAST ( const AST::Types  t)

◆ isDoubleRealType()

bool CeresEngine::ShaderCompiler::isDoubleRealType ( const DataType  t)

◆ isExpressionAST()

bool CeresEngine::ShaderCompiler::isExpressionAST ( const AST::Types  t)

◆ isExtAttributeType()

bool CeresEngine::ShaderCompiler::isExtAttributeType ( const AttributeType  t)

◆ isGlobalIntrinsic()

bool CeresEngine::ShaderCompiler::isGlobalIntrinsic ( const Intrinsic  t)

◆ isGLSLAttributeType()

bool CeresEngine::ShaderCompiler::isGLSLAttributeType ( const AttributeType  t)

◆ isHalfRealType()

bool CeresEngine::ShaderCompiler::isHalfRealType ( const DataType  t)

◆ isHLSLAttributeType()

bool CeresEngine::ShaderCompiler::isHLSLAttributeType ( const AttributeType  t)

◆ isImageBufferType()

bool CeresEngine::ShaderCompiler::isImageBufferType ( const BufferType  t)

◆ isImageIntrinsic()

bool CeresEngine::ShaderCompiler::isImageIntrinsic ( const Intrinsic  t)

◆ isIntegralType()

bool CeresEngine::ShaderCompiler::isIntegralType ( const DataType  t)

◆ isInterlockedIntristic()

bool CeresEngine::ShaderCompiler::isInterlockedIntristic ( const Intrinsic  t)

◆ isIntType()

bool CeresEngine::ShaderCompiler::isIntType ( const DataType  t)

◆ isLanguageESSL()

bool CeresEngine::ShaderCompiler::isLanguageESSL ( const OutputShaderVersion  shaderVersion)

Returns true if the shader output version specifies ESSL (for OpenGL ES 2+).

◆ isLanguageGLSL() [1/2]

bool CeresEngine::ShaderCompiler::isLanguageGLSL ( const InputShaderVersion  shaderVersion)

Returns true if the shader input version specifies GLSL (for OpenGL, OpenGL ES, and Vulkan).

◆ isLanguageGLSL() [2/2]

bool CeresEngine::ShaderCompiler::isLanguageGLSL ( const OutputShaderVersion  shaderVersion)

Returns true if the shader output version specifies GLSL (for OpenGL 2+).

◆ isLanguageHLSL()

bool CeresEngine::ShaderCompiler::isLanguageHLSL ( const InputShaderVersion  shaderVersion)

Returns true if the shader input version specifies HLSL (for DirectX) or Cg (handled as dialect or HLSL).

◆ isLanguageVKSL()

bool CeresEngine::ShaderCompiler::isLanguageVKSL ( const OutputShaderVersion  shaderVersion)

Returns true if the shader output version specifies VKSL (for Vulkan).

◆ isLogicalOp() [1/2]

bool CeresEngine::ShaderCompiler::isLogicalOp ( const BinaryOp  o)

◆ isLogicalOp() [2/2]

bool CeresEngine::ShaderCompiler::isLogicalOp ( const UnaryOp  o)

◆ isLValueOp()

bool CeresEngine::ShaderCompiler::isLValueOp ( const UnaryOp  o)

◆ isMatrixType()

bool CeresEngine::ShaderCompiler::isMatrixType ( const DataType  t)

◆ isPatchBufferType()

bool CeresEngine::ShaderCompiler::isPatchBufferType ( const BufferType  t)

◆ isRealType()

bool CeresEngine::ShaderCompiler::isRealType ( const DataType  t)

◆ isRwBufferType()

bool CeresEngine::ShaderCompiler::isRwBufferType ( const BufferType  t)

◆ isRwImageBufferType()

bool CeresEngine::ShaderCompiler::isRwImageBufferType ( const BufferType  t)

◆ isSamplerStateType()

bool CeresEngine::ShaderCompiler::isSamplerStateType ( const SamplerType  t)

◆ isSamplerTypeArray()

bool CeresEngine::ShaderCompiler::isSamplerTypeArray ( const SamplerType  t)

◆ isSamplerTypeShadow()

bool CeresEngine::ShaderCompiler::isSamplerTypeShadow ( const SamplerType  t)

◆ isScalarType()

bool CeresEngine::ShaderCompiler::isScalarType ( const DataType  t)

◆ isShaderModel3AttributeType()

bool CeresEngine::ShaderCompiler::isShaderModel3AttributeType ( const AttributeType  t)

◆ isShaderModel5AttributeType()

bool CeresEngine::ShaderCompiler::isShaderModel5AttributeType ( const AttributeType  t)

◆ isSingleRealType()

bool CeresEngine::ShaderCompiler::isSingleRealType ( const DataType  t)

◆ isStatementAST()

bool CeresEngine::ShaderCompiler::isStatementAST ( const AST::Types  t)

◆ isStorageBufferType()

bool CeresEngine::ShaderCompiler::isStorageBufferType ( const BufferType  t)

◆ isStreamBufferType()

bool CeresEngine::ShaderCompiler::isStreamBufferType ( const BufferType  t)

◆ isStreamOutputIntrinsic()

bool CeresEngine::ShaderCompiler::isStreamOutputIntrinsic ( const Intrinsic  t)

◆ isSystemSemantic()

bool CeresEngine::ShaderCompiler::isSystemSemantic ( const Semantic  t)

◆ isTextureBufferType()

bool CeresEngine::ShaderCompiler::isTextureBufferType ( const BufferType  t)

◆ isTextureCompareIntrinsic()

bool CeresEngine::ShaderCompiler::isTextureCompareIntrinsic ( const Intrinsic  t)

◆ isTextureCompareLevelZeroIntrinsic()

bool CeresEngine::ShaderCompiler::isTextureCompareLevelZeroIntrinsic ( const Intrinsic  t)

◆ isTextureGatherIntrisic()

bool CeresEngine::ShaderCompiler::isTextureGatherIntrisic ( const Intrinsic  t)

◆ isTextureIntrinsic()

bool CeresEngine::ShaderCompiler::isTextureIntrinsic ( const Intrinsic  t)

◆ isTextureLoadIntrinsic()

bool CeresEngine::ShaderCompiler::isTextureLoadIntrinsic ( const Intrinsic  t)

◆ isTextureMsBufferType()

bool CeresEngine::ShaderCompiler::isTextureMsBufferType ( const BufferType  t)

◆ isTextureSampleIntrinsic()

bool CeresEngine::ShaderCompiler::isTextureSampleIntrinsic ( const Intrinsic  t)

◆ isUIntType()

bool CeresEngine::ShaderCompiler::isUIntType ( const DataType  t)

◆ isUserSemantic()

bool CeresEngine::ShaderCompiler::isUserSemantic ( const Semantic  t)

◆ isVectorType()

bool CeresEngine::ShaderCompiler::isVectorType ( const DataType  t)

◆ joinString()

String CeresEngine::ShaderCompiler::joinString ( const String s,
const Vector< String > &  values 
)

Joins the specified string with its values.

Special characters for the string 's' are: '{', '}', '[', and ']'.

"{0}" will be replaced by the first value from the array 'values', "{1}" will be replaced by the second value and so forth. Everything inside squared brackets (e.g. "[optional {0}]") will only be joined to the output string, if all values inside these brackets are specified and non-empty.

These characters will only be treated as direct output, if the escape character '\' is written in front of it (e.g. "\\[...\\]"), to write the escape character itself use "\\\\". Examples: JoinString("undeclared identifier {0}", { "foo_bar" }) --> "undeclared identifier foo_bar" JoinString("always {0}[, sometimes {1}]", { "first", "second" }) --> "always first, sometimes second" JoinString("always {0}[, sometimes {1}]", { "first", "" }) --> "always first" JoinString("always {0}[, sometimes {1}]", { "first" }) --> "always first" JoinString("one {0}[, two {1}[, three {2}]]", { "1", "2", "3" }) --> "one 1, two 2, three 3" JoinString("one {0}[, two {1}[, three {2}]]", { "1", "", "3" }) --> "one 1" JoinString("one {0}[, two {1}][, three {2}]", { "1", "", "3" }) --> "one 1, three 3" Throw: std::out_of_range If a value index, that is not optional, is out of range std::invalid_argument If there is an incomplete escape character (e.g. "\") std::invalid_argument If there is an incomplete optional part, i.e. a missing closing ']' (e.g. "[")

◆ matrixDataType()

DataType CeresEngine::ShaderCompiler::matrixDataType ( const DataType  baseDataType,
Int32  rows,
Int32  columns 
)

◆ matrixTypeDim()

Pair< int, int > CeresEngine::ShaderCompiler::matrixTypeDim ( const DataType  t)

Returns the dimensions MxN of the specified data type interpreted as matrix type.

Values range from 1x1 to 4x4, but 1x1 to 4x1 for vector and scalar types).

◆ operator!=() [1/7]

◆ operator!=() [2/7]

bool CeresEngine::ShaderCompiler::operator!= ( const Identifier lhs,
const Identifier rhs 
)
inline

◆ operator!=() [3/7]

bool CeresEngine::ShaderCompiler::operator!= ( const Identifier lhs,
const String rhs 
)
inline

◆ operator!=() [4/7]

bool CeresEngine::ShaderCompiler::operator!= ( const ShaderVersion lhs,
const ShaderVersion rhs 
)

◆ operator!=() [5/7]

bool CeresEngine::ShaderCompiler::operator!= ( const String lhs,
const Identifier rhs 
)
inline

◆ operator!=() [6/7]

Variant CeresEngine::ShaderCompiler::operator!= ( const Variant lhs,
const Variant rhs 
)

◆ operator!=() [7/7]

bool CeresEngine::ShaderCompiler::operator!= ( const VectorSpace lhs,
const VectorSpace rhs 
)

◆ operator%()

Variant CeresEngine::ShaderCompiler::operator% ( const Variant lhs,
const Variant rhs 
)

◆ operator&()

Variant CeresEngine::ShaderCompiler::operator& ( const Variant lhs,
const Variant rhs 
)

◆ operator*()

Variant CeresEngine::ShaderCompiler::operator* ( const Variant lhs,
const Variant rhs 
)

◆ operator+() [1/8]

String CeresEngine::ShaderCompiler::operator+ ( const char  lhs,
const Identifier rhs 
)
inline

◆ operator+() [2/8]

String CeresEngine::ShaderCompiler::operator+ ( const Identifier lhs,
const char  rhs 
)
inline

◆ operator+() [3/8]

String CeresEngine::ShaderCompiler::operator+ ( const Identifier lhs,
const Identifier rhs 
)
inline

◆ operator+() [4/8]

String CeresEngine::ShaderCompiler::operator+ ( const Identifier lhs,
const String rhs 
)
inline

◆ operator+() [5/8]

String CeresEngine::ShaderCompiler::operator+ ( const JoinableString lhs,
const String rhs 
)
inline

◆ operator+() [6/8]

String CeresEngine::ShaderCompiler::operator+ ( const String lhs,
const Identifier rhs 
)
inline

◆ operator+() [7/8]

String CeresEngine::ShaderCompiler::operator+ ( const String lhs,
const JoinableString rhs 
)
inline

◆ operator+() [8/8]

Variant CeresEngine::ShaderCompiler::operator+ ( const Variant lhs,
const Variant rhs 
)

◆ operator-()

Variant CeresEngine::ShaderCompiler::operator- ( const Variant lhs,
const Variant rhs 
)

◆ operator/()

Variant CeresEngine::ShaderCompiler::operator/ ( const Variant lhs,
const Variant rhs 
)

◆ operator<() [1/5]

bool CeresEngine::ShaderCompiler::operator< ( const Identifier lhs,
const Identifier rhs 
)
inline

◆ operator<() [2/5]

bool CeresEngine::ShaderCompiler::operator< ( const Identifier lhs,
const String rhs 
)
inline

◆ operator<() [3/5]

bool CeresEngine::ShaderCompiler::operator< ( const ShaderVersion lhs,
const ShaderVersion rhs 
)

◆ operator<() [4/5]

bool CeresEngine::ShaderCompiler::operator< ( const String lhs,
const Identifier rhs 
)
inline

◆ operator<() [5/5]

Variant CeresEngine::ShaderCompiler::operator< ( const Variant lhs,
const Variant rhs 
)

◆ operator<<() [1/2]

Variant CeresEngine::ShaderCompiler::operator<< ( const Variant lhs,
const Variant rhs 
)

◆ operator<<() [2/2]

std::ostream & CeresEngine::ShaderCompiler::operator<< ( std::ostream &  lhs,
const BasicTokenString< TokenType, TokenOfInterestFunctor > &  rhs 
)

◆ operator<=() [1/2]

bool CeresEngine::ShaderCompiler::operator<= ( const ShaderVersion lhs,
const ShaderVersion rhs 
)

◆ operator<=() [2/2]

Variant CeresEngine::ShaderCompiler::operator<= ( const Variant lhs,
const Variant rhs 
)

◆ operator==() [1/7]

Get first tokens

Check if all tokens of interest are equal in both strings

Compare types

Compare values

Check if both strings reached the end

◆ operator==() [2/7]

bool CeresEngine::ShaderCompiler::operator== ( const Identifier lhs,
const Identifier rhs 
)
inline

◆ operator==() [3/7]

bool CeresEngine::ShaderCompiler::operator== ( const Identifier lhs,
const String rhs 
)
inline

◆ operator==() [4/7]

bool CeresEngine::ShaderCompiler::operator== ( const ShaderVersion lhs,
const ShaderVersion rhs 
)

◆ operator==() [5/7]

bool CeresEngine::ShaderCompiler::operator== ( const String lhs,
const Identifier rhs 
)
inline

◆ operator==() [6/7]

Variant CeresEngine::ShaderCompiler::operator== ( const Variant lhs,
const Variant rhs 
)

◆ operator==() [7/7]

bool CeresEngine::ShaderCompiler::operator== ( const VectorSpace lhs,
const VectorSpace rhs 
)

◆ operator>() [1/2]

bool CeresEngine::ShaderCompiler::operator> ( const ShaderVersion lhs,
const ShaderVersion rhs 
)

◆ operator>() [2/2]

Variant CeresEngine::ShaderCompiler::operator> ( const Variant lhs,
const Variant rhs 
)

◆ operator>=() [1/2]

bool CeresEngine::ShaderCompiler::operator>= ( const ShaderVersion lhs,
const ShaderVersion rhs 
)

◆ operator>=() [2/2]

Variant CeresEngine::ShaderCompiler::operator>= ( const Variant lhs,
const Variant rhs 
)

◆ operator>>()

Variant CeresEngine::ShaderCompiler::operator>> ( const Variant lhs,
const Variant rhs 
)

◆ operator^()

Variant CeresEngine::ShaderCompiler::operator^ ( const Variant lhs,
const Variant rhs 
)

◆ operator|()

Variant CeresEngine::ShaderCompiler::operator| ( const Variant lhs,
const Variant rhs 
)

◆ primitiveTypeToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::primitiveTypeToGLSLKeyword ( const PrimitiveType  t)

◆ printReflection()

void CeresEngine::ShaderCompiler::printReflection ( std::ostream &  stream,
const Reflection::ReflectionData reflectionData,
bool  referencedOnly = false 
)

Prints the reflection data into the output stream in a human readable format.

Parameters
[out]streamSpecifies the output stream to which the reflection will be printed. This can be std::cout to print to the standard output for instance, or an instance of StringStream to convert the result into a string.
[in]reflectionDataSpecifies the input reflection data that can be obtained by the CompileShader function.
[in]referencedOnlySpecifies whether or not to print only resources that are referenced in the output shader unit. By default false.
See also
CompileShader

◆ registerTypeToChar()

char CeresEngine::ShaderCompiler::registerTypeToChar ( const RegisterType  t)

◆ registerTypeToString()

String CeresEngine::ShaderCompiler::registerTypeToString ( const RegisterType  t)

◆ remainingVectorSize()

UInt32 CeresEngine::ShaderCompiler::remainingVectorSize ( UInt32  vectorSize,
UInt32  alignment = 16u 
)

◆ reservedGLSLKeywords()

const Set< String > & CeresEngine::ShaderCompiler::reservedGLSLKeywords ( )

◆ resourceTypeToString()

String CeresEngine::ShaderCompiler::resourceTypeToString ( const Reflection::ResourceType  t)

◆ runtimeErr() [1/5]

void CeresEngine::ShaderCompiler::runtimeErr ( const char msg)

◆ runtimeErr() [2/5]

void CeresEngine::ShaderCompiler::runtimeErr ( const char msg,
const AST ast 
)

◆ runtimeErr() [3/5]

void CeresEngine::ShaderCompiler::runtimeErr ( const String msg)

◆ runtimeErr() [4/5]

void CeresEngine::ShaderCompiler::runtimeErr ( const String msg,
const AST ast 
)

◆ runtimeErr() [5/5]

void CeresEngine::ShaderCompiler::runtimeErr ( const String msg,
const AST ast,
const Vector< const AST * > &  astAppendices 
)

◆ runtimeErrIdentAlreadyDeclared()

void CeresEngine::ShaderCompiler::runtimeErrIdentAlreadyDeclared ( const String ident,
const AST prevDeclarationAST = nullptr 
)

◆ runtimeErrNoActiveScope()

void CeresEngine::ShaderCompiler::runtimeErrNoActiveScope ( )

◆ samplerTypeToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::samplerTypeToGLSLKeyword ( const SamplerType  t)

◆ samplerTypeToResourceType()

Reflection::ResourceType CeresEngine::ShaderCompiler::samplerTypeToResourceType ( const SamplerType  t)

◆ samplerTypeToShadowSamplerType()

SamplerType CeresEngine::ShaderCompiler::samplerTypeToShadowSamplerType ( const SamplerType  t)

◆ semanticToGLSLDataType()

DataType CeresEngine::ShaderCompiler::semanticToGLSLDataType ( const Semantic  t)

◆ semanticToGLSLKeyword()

UPtr< String > CeresEngine::ShaderCompiler::semanticToGLSLKeyword ( const IndexedSemantic semantic,
bool  useVulkanGLSL = false 
)

◆ semanticToString()

String CeresEngine::ShaderCompiler::semanticToString ( const Semantic  t)

◆ storageClassToGLSLKeyword()

const String * CeresEngine::ShaderCompiler::storageClassToGLSLKeyword ( const StorageClass  t)

◆ stringDistance()

UInt32 CeresEngine::ShaderCompiler::stringDistance ( const String a,
const String b 
)

◆ stringToAssignOp()

AssignOp CeresEngine::ShaderCompiler::stringToAssignOp ( const String s)

◆ stringToBinaryOp()

BinaryOp CeresEngine::ShaderCompiler::stringToBinaryOp ( const String s)

◆ stringToCompareFunc()

Reflection::ComparisonFunc CeresEngine::ShaderCompiler::stringToCompareFunc ( const String s)

◆ stringToCtrlTransfer()

CtrlTransfer CeresEngine::ShaderCompiler::stringToCtrlTransfer ( const String s)

◆ stringToFilter()

Reflection::Filter CeresEngine::ShaderCompiler::stringToFilter ( const String s)

◆ stringToTexAddressMode()

Reflection::TextureAddressMode CeresEngine::ShaderCompiler::stringToTexAddressMode ( const String s)

◆ stringToUnaryOp()

UnaryOp CeresEngine::ShaderCompiler::stringToUnaryOp ( const String s)

◆ subscriptDataType()

DataType CeresEngine::ShaderCompiler::subscriptDataType ( const DataType  dataType,
const String subscript,
Vector< Pair< int, int > > *  indices = nullptr 
)

◆ texAddressModeToString()

String CeresEngine::ShaderCompiler::texAddressModeToString ( const Reflection::TextureAddressMode  t)

◆ textureTypeToSamplerType()

SamplerType CeresEngine::ShaderCompiler::textureTypeToSamplerType ( const BufferType  t)

◆ toCiString()

CiString CeresEngine::ShaderCompiler::toCiString ( const String s)
inline

◆ tokenToDataType()

DataType CeresEngine::ShaderCompiler::tokenToDataType ( const Token token)

◆ toString() [1/8]

String CeresEngine::ShaderCompiler::toString ( const CiString s)
inline

◆ toString() [2/8]

String CeresEngine::ShaderCompiler::toString ( const InputShaderVersion  shaderVersion)

Returns the specified shader input version as string.

◆ toString() [3/8]

String CeresEngine::ShaderCompiler::toString ( const OutputShaderVersion  shaderVersion)

Returns the specified shader output version as string.

◆ toString() [4/8]

String CeresEngine::ShaderCompiler::toString ( const Reflection::ComparisonFunc  t)

Returns the string representation of the specified <ComparisonFunc> type.

◆ toString() [5/8]

String CeresEngine::ShaderCompiler::toString ( const Reflection::Filter  t)

Returns the string representation of the specified <Filter> type.

◆ toString() [6/8]

String CeresEngine::ShaderCompiler::toString ( const Reflection::ResourceType  t)

Returns the string representation of the specified <Reflection::ResourceType> type.

◆ toString() [7/8]

String CeresEngine::ShaderCompiler::toString ( const Reflection::TextureAddressMode  t)

Returns the string representation of the specified <TextureAddressMode> type.

◆ toString() [8/8]

String CeresEngine::ShaderCompiler::toString ( const ShaderTarget  target)

Returns the specified shader target as string.

◆ toStringList() [1/2]

template<>
void CeresEngine::ShaderCompiler::toStringList ( Vector< String > &  list)

◆ toStringList() [2/2]

template<typename... Args>
void CeresEngine::ShaderCompiler::toStringList ( Vector< String > &  list,
Args &&...  args 
)

◆ toStringListPrimary()

template<typename T >
void CeresEngine::ShaderCompiler::toStringListPrimary ( Vector< String > &  list,
const T value 
)

◆ toStringListPrimary< int >()

template<>
void CeresEngine::ShaderCompiler::toStringListPrimary< int > ( Vector< String > &  list,
const int value 
)

◆ toStringListSecondary() [1/2]

template<typename Arg0 >
void CeresEngine::ShaderCompiler::toStringListSecondary ( Vector< String > &  list,
Arg0 &&  arg0 
)

◆ toStringListSecondary() [2/2]

template<typename Arg0 , typename... ArgsN>
void CeresEngine::ShaderCompiler::toStringListSecondary ( Vector< String > &  list,
Arg0 &&  arg0,
ArgsN &&...  argsN 
)

◆ unaryOpToString()

String CeresEngine::ShaderCompiler::unaryOpToString ( const UnaryOp  o)

◆ uniformBufferTypeToResourceType()

Reflection::ResourceType CeresEngine::ShaderCompiler::uniformBufferTypeToResourceType ( const UniformBufferType  t)

◆ vectorDataType()

DataType CeresEngine::ShaderCompiler::vectorDataType ( const DataType  baseDataType,
Int32  vectorSize 
)

◆ vectorTypeDim()

Int32 CeresEngine::ShaderCompiler::vectorTypeDim ( const DataType  t)

Returns the dimension of the specified data type interpreted as vector type.

Values range from 1 to 4, but 0 for matrix types).