UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TShaderPermutationInt< TType, TDimensionSize, TFirstValue > Struct Template Reference

#include <ShaderPermutation.h>

Public Types

using Type = TType
 

Static Public Member Functions

static int32 ToDimensionValueId (Type E)
 
static int32 ToDefineValue (Type E)
 
static Type FromDimensionValueId (int32 PermutationId)
 

Static Public Attributes

static constexpr int32 PermutationCount = TDimensionSize
 
static constexpr bool IsMultiDimensional = false
 
static constexpr Type MinValue = static_cast<Type>(TFirstValue)
 
static constexpr Type MaxValue = static_cast<Type>(TFirstValue + TDimensionSize - 1)
 

Detailed Description

template<typename TType, int32 TDimensionSize, int32 TFirstValue = 0>
struct TShaderPermutationInt< TType, TDimensionSize, TFirstValue >

Defines at compile time a permutation dimension made of int32 from 0 to N -1.

Member Typedef Documentation

◆ Type

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
using TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::Type = TType

Setup the dimension's type in permutation domain as integer.

Member Function Documentation

◆ FromDimensionValueId()

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
static Type TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::FromDimensionValueId ( int32  PermutationId)
inlinestatic

Converts dimension's value id to dimension's integer value (exact reciprocal of ToDimensionValueId).

◆ ToDefineValue()

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
static int32 TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::ToDefineValue ( Type  E)
inlinestatic

Pass down a int32 to FShaderCompilerEnvironment::SetDefine() even for contiguous enum classes.

◆ ToDimensionValueId()

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
static int32 TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::ToDimensionValueId ( Type  E)
inlinestatic

Converts dimension's integer value to dimension's value id.

Member Data Documentation

◆ IsMultiDimensional

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
constexpr bool TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::IsMultiDimensional = false
staticconstexpr

Setup the dimension as non multi-dimensional, so that the ModifyCompilationEnvironement's define can conventily be set up in SHADER_PERMUTATION_INT.

◆ MaxValue

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
constexpr Type TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::MaxValue = static_cast<Type>(TFirstValue + TDimensionSize - 1)
staticconstexpr

◆ MinValue

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
constexpr Type TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::MinValue = static_cast<Type>(TFirstValue)
staticconstexpr

Min and max values.

◆ PermutationCount

template<typename TType , int32 TDimensionSize, int32 TFirstValue = 0>
constexpr int32 TShaderPermutationInt< TType, TDimensionSize, TFirstValue >::PermutationCount = TDimensionSize
staticconstexpr

Setup the dimension's number of permutation.


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