#define DECLARATION_VISIT_PROC(CLASS_NAME)
Definition Visitor.hpp:88
Common AST expression converter.
Definition ExpressionConverter.hpp:31
void convertExpressionCompatibleStruct(const ExpressionPtr &expression)
static String getMatrixSubscriptWrapperIdent(const NameMangling &nameMangling, const MatrixSubscriptUsage &subscriptUsage)
void convertExpressionSamplerBufferAccess(ExpressionPtr &expression)
void convert(Program &program, const RawFlags &conversionFlags, const NameMangling &nameMangling)
void convertExpressionTargetType(ExpressionPtr &expression, const TypeDenoter &targetTypeDen, bool matchTypeSize=true)
NameMangling mNameMangling
Definition ExpressionConverter.hpp:34
void convertExpressionVectorSubscript(ExpressionPtr &expression)
void convertExpressionTargetTypeInitializer(ExpressionPtr &expression, const InitializerExpression *initExpression, const TypeDenoter &targetTypeDen)
void convertExpressionMatrixSubscriptObject(ExpressionPtr &expression, ObjectExpression *objectExpression)
void convertExpressionVectorCompareTernary(ExpressionPtr &expression, TernaryExpression *ternaryExpression)
RawFlags mConversionFlags
Definition ExpressionConverter.hpp:33
static void convertExpressionIfCastRequired(ExpressionPtr &expression, const DataType targetType, bool matchTypeSize=true)
void convertExpressionVectorCompareUnary(ExpressionPtr &expression, UnaryExpression *unaryExpression)
void convertExpressionTextureIntrinsicVec4(ExpressionPtr &expression)
void convertExpressionSamplerBufferAccessArray(ExpressionPtr &expression, ArrayExpression *arrayExpression)
void convertExpressionIntrinsicCallLog10(ExpressionPtr &expression)
void convertExpressionFormatInitializer(ExpressionPtr &expression, InitializerExpression *initExpression, const TypeDenoter &targetTypeDen)
void convertExpressionImageAccessAssign(ExpressionPtr &expression, const AssignExpression *assignExpression)
static void convertExpressionIfCastRequired(ExpressionPtr &expression, const TypeDenoter &targetTypeDen, bool matchTypeSize=true)
void convertExpressionIntoBracket(ExpressionPtr &expression)
@ ConvertCompatibleStructs
Definition ExpressionConverter.hpp:51
@ ConvertImageAccess
Definition ExpressionConverter.hpp:41
@ ConvertMatrixLayout
Definition ExpressionConverter.hpp:47
@ ConvertLog10
Definition ExpressionConverter.hpp:44
@ ConvertVectorSubscripts
Definition ExpressionConverter.hpp:39
@ ConvertLiteralHalfToFloat
Definition ExpressionConverter.hpp:52
@ ConvertTextureBracketOp
Definition ExpressionConverter.hpp:48
@ ConvertUnaryExpression
Definition ExpressionConverter.hpp:45
@ ConvertImplicitCasts
Definition ExpressionConverter.hpp:42
@ ConvertMatrixSubscripts
Definition ExpressionConverter.hpp:50
@ AllPreVisit
Definition ExpressionConverter.hpp:55
@ ConvertSamplerBufferAccess
Definition ExpressionConverter.hpp:46
@ ConvertTextureIntrinsicVec4
Definition ExpressionConverter.hpp:49
@ ConvertVectorCompare
Definition ExpressionConverter.hpp:40
@ ConvertInitializerToCtor
Definition ExpressionConverter.hpp:43
@ All
Definition ExpressionConverter.hpp:62
@ AllPostVisit
Definition ExpressionConverter.hpp:59
void convertExpressionVectorCompareBinary(ExpressionPtr &expression, BinaryExpression *binaryExpression)
void convertExpressionList(Vector< ExpressionPtr > &expressionList, const RawFlags &flags)
static Int32 getTextureDimFromExpression(Expression *expression, const AST *ast=nullptr)
void convertExpressionMatrixSubscript(ExpressionPtr &expression)
void convertExpressionVectorSubscriptObject(ExpressionPtr &expression, const ObjectExpression *objectExpression)
void convertExpressionTextureBracketOp(ExpressionPtr &expression)
void convertExpressionImageAccessArray(ExpressionPtr &expression, ArrayExpression *arrayExpression, const AssignExpression *assignExpression=nullptr)
void convertExpressionImageAccess(ExpressionPtr &expression)
void convertExpressionVectorCompare(ExpressionPtr &expression)
void convertExpression(ExpressionPtr &expression, const RawFlags &flags)
Definition VisitorTracker.hpp:18
SPtr< Expression > ExpressionPtr
Definition Visitor.hpp:26
DataType
Definition ASTEnums.hpp:159
std::vector< T, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > Vector
Vector is a sequence container that encapsulates dynamic size arrays.
Definition Vector.hpp:17
std::int32_t Int32
Definition DataTypes.hpp:21
std::uint32_t UInt32
Definition DataTypes.hpp:23
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Definition ASTEnums.hpp:338
Name mangling descriptor structure for shader input/output variables (also referred to as "varyings")...
Definition ShaderCompiler.hpp:185
Definition TypeDenoter.hpp:82