Navigation
API > API/Runtime > API/Runtime/RenderCore
References
| Module | RenderCore |
| Header | /Engine/Source/Runtime/RenderCore/Public/ShaderPermutation.h |
| Include | #include "ShaderPermutation.h" |
Syntax
template<typename... Ts>
struct TShaderPermutationDomain
Remarks
Variadic template that defines an arbitrary multi-dimensional permutation domain, that can be instantiated to represent a vector within the domain.
// Defines a permutation domain with arbitrary number of dimensions. Dimensions can themselves be domains. // It is totally legal to have a domain with no dimensions. class FMyPermutationDomain = TShaderPermutationDomain
// ...
// Create a permutation vector to be initialized. By default a vector is set at the origin of the domain. // The origin of the domain is the ShaderPermutationId == 0. FMyPermutationDomain PermutationVector;
// Set the permutation vector's dimensions. PermutationVector.Set
// Get the permutation id from the permutation vector for shader compiler. int32 ShaderPermutationId = PermutationVector.ToDimensionValueId();
// Reconstruct the permutation vector from shader permutation id. FMyPermutationDomain PermutationVector2(ShaderPermutationId);
// Get permutation vector's dimension. if (PermutationVector2.Get
Specializations
TShaderPermutationDomain< TDimension, Ts... >
Constructors
| Type | Name | Description | |
|---|---|---|---|
| Constructors. | |||
TShaderPermutationDomain
(
int32 PermutationId |
Functions
| Type | Name | Description | |
|---|---|---|---|
| Type | FromDimensionValueId
(
const int32 PermutationId |
Returns the permutation domain from the unique ID. | |
| const DimensionToGet::Type | Get () |
Get dimension's value, but in this case emit compile time error if could not find the dimension to get. | |
| void | ModifyCompilationEnvironment
(
FShaderCompilerEnvironment& OutEnvironment |
Modify compilation environment. | |
| void | Set
(
typename DimensionToSet::Type |
Set dimension's value, but in this case emit compile time error if could not find the dimension to set. | |
| int32 | |||
| int32 | ToDimensionValueId
(
const Type& PermutationVector |
Converts domain permutation vector to domain's value id. |
Operators
| Type | Name | Description | |
|---|---|---|---|
| bool | operator==
(
const Type& Other |
Test if equal. |
Typedefs
| Name | Description |
|---|---|
| Type | Setup the dimension's type in permutation domain as itself so that a permutation domain can be used as a dimension of another domain. |
Constants
| Name | Description |
|---|---|
| IsMultiDimensional | Define a domain as a multidimensional dimension so that ModifyCompilationEnvironment() is getting used. |
| PermutationCount | Total number of permutation within the domain is one if no dimension at all. |