UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Shader::Private Namespace Reference

Classes

struct  FCastBool
 
struct  FCastDouble
 
struct  FCastFloat
 
struct  FCastInt
 
struct  FOpAbs
 
struct  FOpAcos
 
struct  FOpAdd
 
struct  FOpAsin
 
struct  FOpAtan
 
struct  FOpAtan2
 
struct  FOpBase
 
struct  FOpBaseNoInt
 
struct  FOpCeil
 
struct  FOpCos
 
struct  FOpDiv
 
struct  FOpExp
 
struct  FOpExp2
 
struct  FOpFloor
 
struct  FOpFmod
 
struct  FOpFrac
 
struct  FOpFractional
 
struct  FOpGreater
 
struct  FOpGreaterEqual
 
struct  FOpLess
 
struct  FOpLessEqual
 
struct  FOpLog
 
struct  FOpLog10
 
struct  FOpLog2
 
struct  FOpMax
 
struct  FOpMin
 
struct  FOpModulo
 
struct  FOpMul
 
struct  FOpNeg
 
struct  FOpRcp
 
struct  FOpRound
 
struct  FOpSaturate
 
struct  FOpSign
 
struct  FOpSin
 
struct  FOpSqrt
 
struct  FOpSub
 
struct  FOpTan
 
struct  FOpTrunc
 

Functions

template<typename Operation , typename ResultType >
void AsType (const Operation &Op, const FValue &Value, ResultType &OutResult)
 
template<typename Operation , typename ResultType >
void AsTypeInPlace (const Operation &Op, EValueType Type, TArrayView< FValueComponent > Component, ResultType &OutResult)
 
template<typename Operation >
void Cast (const Operation &Op, const FValue &Value, FValue &OutResult)
 
void FormatComponent_Double (double Value, int32 NumComponents, EValueStringFormat Format, FStringBuilderBase &OutResult)
 
void SetFieldType (EValueType *FieldTypes, EValueComponentType *ComponentTypes, int32 FieldIndex, int32 ComponentIndex, const FType &Type)
 
template<typename T >
FORCENOINLINEGetSafeDivisor (T Number)
 
template<>
FORCENOINLINE int32 GetSafeDivisor< int32 > (int32 Number)
 
template<typename Operation >
FValue UnaryOp (const Operation &Op, const FValue &Value)
 
template<typename Operation >
EValueType UnaryOpInPlace (const Operation &Op, EValueType Type, TArrayView< FValueComponent > &Component)
 
int8 GetNumComponentsResult (int8 Lhs, int8 Rhs)
 
template<typename Operation >
FValue BinaryOp (const Operation &Op, const FValue &Lhs, const FValue &Rhs)
 
template<typename Operation >
EValueType BinaryOpInPlace (const Operation &Op, EValueType LhsType, EValueType RhsType, TArrayView< FValueComponent > &Component, int32 &OutComponentsConsumed)
 
template<typename Operation >
FValue CompareOp (const Operation &Op, const FValue &Lhs, const FValue &Rhs)
 

Function Documentation

◆ AsType()

template<typename Operation , typename ResultType >
void UE::Shader::Private::AsType ( const Operation &  Op,
const FValue Value,
ResultType &  OutResult 
)

◆ AsTypeInPlace()

template<typename Operation , typename ResultType >
void UE::Shader::Private::AsTypeInPlace ( const Operation &  Op,
EValueType  Type,
TArrayView< FValueComponent Component,
ResultType &  OutResult 
)

◆ BinaryOp()

template<typename Operation >
FValue UE::Shader::Private::BinaryOp ( const Operation &  Op,
const FValue Lhs,
const FValue Rhs 
)
inline

◆ BinaryOpInPlace()

template<typename Operation >
EValueType UE::Shader::Private::BinaryOpInPlace ( const Operation &  Op,
EValueType  LhsType,
EValueType  RhsType,
TArrayView< FValueComponent > &  Component,
int32 OutComponentsConsumed 
)
inline

◆ Cast()

template<typename Operation >
void UE::Shader::Private::Cast ( const Operation &  Op,
const FValue Value,
FValue OutResult 
)

◆ CompareOp()

template<typename Operation >
FValue UE::Shader::Private::CompareOp ( const Operation &  Op,
const FValue Lhs,
const FValue Rhs 
)
inline

◆ FormatComponent_Double()

void UE::Shader::Private::FormatComponent_Double ( double  Value,
int32  NumComponents,
EValueStringFormat  Format,
FStringBuilderBase OutResult 
)

◆ GetNumComponentsResult()

int8 UE::Shader::Private::GetNumComponentsResult ( int8  Lhs,
int8  Rhs 
)
inline

◆ GetSafeDivisor()

template<typename T >
FORCENOINLINE T UE::Shader::Private::GetSafeDivisor ( Number)

Converts an arbitrary number into a safe divisor. i.e. FMath::Abs(Number) >= DELTA FORCENOINLINE is required to discourage compiler from vectorizing the Div operation, which may tempt it into optimizing divide as A * rcp(B) This will break shaders that are depending on exact divide results (see SubUV material function) Technically this could still happen for a scalar divide, but it doesn't seem to occur in practice

◆ GetSafeDivisor< int32 >()

◆ SetFieldType()

void UE::Shader::Private::SetFieldType ( EValueType FieldTypes,
EValueComponentType ComponentTypes,
int32  FieldIndex,
int32  ComponentIndex,
const FType Type 
)

◆ UnaryOp()

template<typename Operation >
FValue UE::Shader::Private::UnaryOp ( const Operation &  Op,
const FValue Value 
)
inline

◆ UnaryOpInPlace()

template<typename Operation >
EValueType UE::Shader::Private::UnaryOpInPlace ( const Operation &  Op,
EValueType  Type,
TArrayView< FValueComponent > &  Component 
)
inline