Definition HLSLIntrinsics.hpp:32
TypeDenoterPtr deriveReturnTypeVectorCompare(const Vector< ExpressionPtr > &args) const
TypeDenoterPtr deriveReturnTypeMulPrimary(const Vector< ExpressionPtr > &args, const TypeDenoterPtr &type0, const TypeDenoterPtr &type1) const
void deriveParameterTypesFirstBit(Vector< TypeDenoterPtr > ¶mTypeDenoters, const Vector< ExpressionPtr > &args, const Intrinsic intrinsic) const
void deriveParameterTypes(Vector< TypeDenoterPtr > ¶mTypeDenoters, const Intrinsic intrinsic, const Vector< ExpressionPtr > &args, bool useMinDimension=false) const
void deriveParameterTypesMul(Vector< TypeDenoterPtr > ¶mTypeDenoters, const Vector< ExpressionPtr > &args) const
TypeDenoterPtr deriveReturnTypeTextureGather(const BaseTypeDenoterPtr &genericTypeDenoter) const
TypeDenoterPtr deriveReturnTypeTranspose(const Vector< ExpressionPtr > &args) const
TypeDenoterPtr deriveReturnTypeMul(const Vector< ExpressionPtr > &args) const
BaseTypeDenoterPtr getGenericTextureTypeFromPrefix(const Intrinsic intrinsic, const TypeDenoterPtr &prefixTypeDenoter) const
Vector< TypeDenoterPtr > getIntrinsicParameterTypes(const Intrinsic intrinsic, const Vector< ExpressionPtr > &args) const override
static const HLSLIntrinsicsMap & getIntrinsicMap()
TypeDenoterPtr deriveReturnTypeTextureSampleCmp(const BaseTypeDenoterPtr &genericTypeDenoter) const
void deriveParameterTypesTranspose(Vector< TypeDenoterPtr > ¶mTypeDenoters, const Vector< ExpressionPtr > &args) const
TypeDenoterPtr getIntrinsicReturnType(const Intrinsic intrinsic, const Vector< ExpressionPtr > &args, const TypeDenoterPtr &prefixTypeDenoter=nullptr) const override
TypeDenoterPtr deriveReturnType(const Intrinsic intrinsic, const Vector< ExpressionPtr > &args) const
Vector< std::size_t > getIntrinsicOutputParameterIndices(const Intrinsic intrinsic) const override
TypeDenoterPtr deriveReturnTypeTextureGatherCmp(const BaseTypeDenoterPtr &genericTypeDenoter) const
TypeDenoterPtr deriveReturnTypeTextureSample(const BaseTypeDenoterPtr &genericTypeDenoter) const
Definition IntrinsicAdept.hpp:26
Definition ShaderVersion.hpp:17
SPtr< BaseTypeDenoter > BaseTypeDenoterPtr
Definition TypeDenoter.hpp:32
Intrinsic
Intrinsics function enumeration (currently only HLSL intrinsics).
Definition ASTEnums.hpp:980
SPtr< TypeDenoter > TypeDenoterPtr
Definition TypeDenoter.hpp:29
Map< String, HLSLIntrinsicEntry > HLSLIntrinsicsMap
Definition HLSLIntrinsics.hpp:29
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
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
std::map< Key, T, Compare, ScopedAllocatorAdaptor< StdAllocator< Pair< const Key, T >, RawAllocator > > > Map
Map is a sorted associative container that contains key-value pairs with unique keys.
Definition Map.hpp:24
Definition HLSLIntrinsics.hpp:22
ShaderVersion minShaderModel
Definition HLSLIntrinsics.hpp:26
Intrinsic intrinsic
Definition HLSLIntrinsics.hpp:25
HLSLIntrinsicEntry(const Intrinsic intrinsic, const Int32 major, const Int32 minor)
Definition HLSLIntrinsics.hpp:23