UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TShaderPermutationDomain< TDimension, Ts... > Struct Template Reference

#include <ShaderPermutation.h>

Public Types

using Type = TShaderPermutationDomain< TDimension, Ts... >
 
using Super = TShaderPermutationDomain< Ts... >
 

Public Member Functions

 TShaderPermutationDomain ()
 
 TShaderPermutationDomain (int32 PermutationId)
 
template<class DimensionToSet >
void Set (typename DimensionToSet::Type Value)
 
template<class DimensionToGet >
const DimensionToGet::Type & Get () const
 
const Super::TypeGetTail () const
 
void ModifyCompilationEnvironment (FShaderCompilerEnvironment &OutEnvironment) const
 
int32 ToDimensionValueId () const
 
bool operator== (const Type &Other) const
 
bool operator!= (const Type &Other) const
 

Static Public Member Functions

static int32 ToDimensionValueId (const Type &PermutationVector)
 
static Type FromDimensionValueId (const int32 PermutationId)
 

Static Public Attributes

static constexpr bool IsMultiDimensional = true
 
static constexpr int32 PermutationCount = Super::PermutationCount * TDimension::PermutationCount
 

Friends

template<bool BooleanSpecialization>
class TShaderPermutationDomainSpetialization
 

Member Typedef Documentation

◆ Super

template<typename TDimension , typename... Ts>
using TShaderPermutationDomain< TDimension, Ts... >::Super = TShaderPermutationDomain<Ts...>

Parent type in the variadic template to reduce code.

◆ Type

template<typename TDimension , typename... Ts>
using TShaderPermutationDomain< TDimension, Ts... >::Type = TShaderPermutationDomain<TDimension, Ts...>

Setup the dimension's type in permutation domain as itself so that a permutation domain can be used as a dimension of another domain.

Constructor & Destructor Documentation

◆ TShaderPermutationDomain() [1/2]

template<typename TDimension , typename... Ts>
TShaderPermutationDomain< TDimension, Ts... >::TShaderPermutationDomain ( )
inline

Constructors.

◆ TShaderPermutationDomain() [2/2]

template<typename TDimension , typename... Ts>
TShaderPermutationDomain< TDimension, Ts... >::TShaderPermutationDomain ( int32  PermutationId)
inlineexplicit

Member Function Documentation

◆ FromDimensionValueId()

template<typename TDimension , typename... Ts>
static Type TShaderPermutationDomain< TDimension, Ts... >::FromDimensionValueId ( const int32  PermutationId)
inlinestatic

Returns the permutation domain from the unique ID.

◆ Get()

template<typename TDimension , typename... Ts>
template<class DimensionToGet >
const DimensionToGet::Type & TShaderPermutationDomain< TDimension, Ts... >::Get ( ) const
inline

Get dimension's value.

◆ GetTail()

template<typename TDimension , typename... Ts>
const Super::Type & TShaderPermutationDomain< TDimension, Ts... >::GetTail ( ) const
inline

Get the tail of the dimensions.

◆ ModifyCompilationEnvironment()

template<typename TDimension , typename... Ts>
void TShaderPermutationDomain< TDimension, Ts... >::ModifyCompilationEnvironment ( FShaderCompilerEnvironment OutEnvironment) const
inline

Modify the shader's compilation environment.

◆ operator!=()

template<typename TDimension , typename... Ts>
bool TShaderPermutationDomain< TDimension, Ts... >::operator!= ( const Type Other) const
inline

Test if not equal.

◆ operator==()

template<typename TDimension , typename... Ts>
bool TShaderPermutationDomain< TDimension, Ts... >::operator== ( const Type Other) const
inline

Test if equal.

◆ Set()

template<typename TDimension , typename... Ts>
template<class DimensionToSet >
void TShaderPermutationDomain< TDimension, Ts... >::Set ( typename DimensionToSet::Type  Value)
inline

Set dimension's value.

◆ ToDimensionValueId() [1/2]

template<typename TDimension , typename... Ts>
int32 TShaderPermutationDomain< TDimension, Ts... >::ToDimensionValueId ( ) const
inline

◆ ToDimensionValueId() [2/2]

template<typename TDimension , typename... Ts>
static int32 TShaderPermutationDomain< TDimension, Ts... >::ToDimensionValueId ( const Type PermutationVector)
inlinestatic

Converts domain permutation vector to domain's value id.

Friends And Related Symbol Documentation

◆ TShaderPermutationDomainSpetialization

template<typename TDimension , typename... Ts>
template<bool BooleanSpecialization>
friend class TShaderPermutationDomainSpetialization
friend

Member Data Documentation

◆ IsMultiDimensional

template<typename TDimension , typename... Ts>
constexpr bool TShaderPermutationDomain< TDimension, Ts... >::IsMultiDimensional = true
staticconstexpr

Define a domain as a multidimensional dimension so that ModifyCompilationEnvironment() is used.

◆ PermutationCount

template<typename TDimension , typename... Ts>
constexpr int32 TShaderPermutationDomain< TDimension, Ts... >::PermutationCount = Super::PermutationCount * TDimension::PermutationCount
staticconstexpr

Total number of permutation within the domain.


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