35template<
typename T,
int32 Alignment>
38#define IMPLEMENT_ALIGNED_TYPE(Alignment) \
39 template<typename T> \
40 class TAlignedTypedef<T,Alignment> \
43 typedef MS_ALIGN(Alignment) T Type GCC_ALIGN(Alignment); \
51#undef IMPLEMENT_ALIGNED_TYPE
57template<
typename PtrType>
60static_assert(
sizeof(
void*) == 8,
"Wrong PLATFORM_64BITS settings.");
65template<
typename PtrType>
85 inline operator PtrType&()
90 inline operator const PtrType&()
const
104 static_assert(
sizeof(
void*) == 4,
"Wrong PLATFORM_64BITS settings.");
107 static_assert(
sizeof(PtrType) ==
sizeof(
void*),
"T should be a pointer.");
113template<
class UniformBufferStructType,
typename =
void>
123template<
class UniformBufferStructType>
128 return UniformBufferStructType::FTypeInfo::GetStructMetadata();
134template<
typename TBufferStruct>
148 TEXT(
"Attempted to create a uniform buffer of type '%s' from uniform buffer pointer of type '%s'"),
164 UE_DEPRECATED(5.3,
"UpdateUniformBufferImmediate requires a command list.")
168 RHIUpdateUniformBuffer(GetReference(), &
Value);
179 template<
typename TBufferStruct2>
226template<
typename TBufferStruct>
244 TEXT(
"Uniform buffer binding flags don't match those supported by the uniform buffer layout '%s."),
256 return GetUniformBuffer();
260template <
typename TBufferStruct>
266template <
typename TBufferStruct>
318template <
typename TBufferStruct>
336 TEXT(
"RDG uniform buffer binding flags don't match those supported by the uniform buffer layout '%s."),
348 return GetUniformBuffer();
353template <
typename TBufferStruct>
360template <
typename TBufferStruct>
398 return Buffer == RHS.Buffer && Access == RHS.Access;
403 return Buffer != RHS.Buffer || Access != RHS.Access;
411template <ERHIAccess InAccess>
466 return Texture == RHS.Texture && Access == RHS.Access;
471 return Texture != RHS.Texture || Access != RHS.Access;
480template <ERHIAccess InAccess>
506template <
typename ResourceAccessType>
508 :
public TArray<ResourceAccessType, FRDGArrayAllocator>
554 return ResolveTexture;
577 ResolveTexture ==
Other.ResolveTexture &&
579 MipIndex ==
Other.MipIndex &&
580 ArraySlice ==
Other.ArraySlice;
613 UE_DEPRECATED(5.1,
"GetMipIndex has been renamed to SetMipIndex.")
622 int16 ArraySlice = -1;
644 , ResolveTexture(nullptr)
672 , ResolveTexture(nullptr)
698 return ResolveTexture;
702 return DepthLoadAction;
706 return StencilLoadAction;
710 return DepthStencilAccess;
718 ResolveTexture ==
Other.ResolveTexture &&
721 DepthStencilAccess ==
Other.DepthStencilAccess;
795 template <
typename TFunction>
811 template <
typename TFunction>
849 if (ResolveRect !=
Other.ResolveRect ||
850 (NumOcclusionQueries !=
Other.NumOcclusionQueries &&
Other.NumOcclusionQueries != 0) ||
851 SubpassHint !=
Other.SubpassHint ||
852 MultiViewCount !=
Other.MultiViewCount ||
853 ShadingRateTexture !=
Other.ShadingRateTexture)
864 static constexpr int32 NumColumns = 1;
865 static constexpr int32 NumElements = 0;
867 static constexpr bool bIsStoredInConstantBuffer =
false;
875static_assert(
sizeof(
FRenderTargetBindingSlots) == 256,
"FRenderTargetBindingSlots needs to be same size on all platforms.");
878template<
typename TElement, u
int32 NumElements>
884 for (
uint32 i = 0; i < NumElements; i++)
886 (*this)[i] =
nullptr;
893template<
typename TypeParameter>
901 static constexpr int32 NumColumns = 1;
906 static constexpr int32 NumElements = 0;
916 static constexpr bool bIsStoredInConstantBuffer =
true;
933 static constexpr int32 NumColumns = 1;
934 static constexpr int32 NumElements = 0;
935 static constexpr int32 Alignment = 4;
936 static constexpr bool bIsStoredInConstantBuffer =
true;
949 static constexpr int32 NumColumns = 1;
950 static constexpr int32 NumElements = 0;
951 static constexpr int32 Alignment = 4;
952 static constexpr bool bIsStoredInConstantBuffer =
true;
966 static constexpr int32 NumColumns = 1;
967 static constexpr int32 NumElements = 0;
968 static constexpr int32 Alignment = 4;
969 static constexpr bool bIsStoredInConstantBuffer =
true;
982 static constexpr int32 NumColumns = 1;
983 static constexpr int32 NumElements = 0;
984 static constexpr int32 Alignment = 4;
985 static constexpr bool bIsStoredInConstantBuffer =
true;
998 static constexpr int32 NumColumns = 2;
999 static constexpr int32 NumElements = 0;
1001 static constexpr bool bIsStoredInConstantBuffer =
true;
1017 static constexpr bool bIsStoredInConstantBuffer =
true;
1033 static constexpr bool bIsStoredInConstantBuffer =
true;
1049 static constexpr bool bIsStoredInConstantBuffer =
true;
1065 static constexpr bool bIsStoredInConstantBuffer =
true;
1081 static constexpr bool bIsStoredInConstantBuffer =
true;
1097 static constexpr bool bIsStoredInConstantBuffer =
true;
1113 static constexpr bool bIsStoredInConstantBuffer =
true;
1129 static constexpr bool bIsStoredInConstantBuffer =
true;
1145 static constexpr bool bIsStoredInConstantBuffer =
true;
1161 static constexpr bool bIsStoredInConstantBuffer =
true;
1177 static constexpr bool bIsStoredInConstantBuffer =
true;
1193 static constexpr bool bIsStoredInConstantBuffer =
true;
1201template <
typename BufferAccessType>
1208 static constexpr bool bIsStoredInConstantBuffer =
false;
1217template <
typename TextureAccessType>
1224 static constexpr bool bIsStoredInConstantBuffer =
false;
1234template<
typename T,
size_t InNumElements>
1249 static_assert(((
sizeof(T) % 16) == 0),
"Array element size does not satisfy 16 byte alignment requirements. Try packing it with other values in a vector or using SHADER_PARAMETER_SCALAR_ARRAY.");
1252template<
typename T,
size_t InNumElements,u
int32 IgnoredAlignment>
1267 static_assert(((
sizeof(T) % 16) == 0),
"Array element size does not satisfy 16 byte alignment requirements. Try packing it with other values in a vector or using SHADER_PARAMETER_SCALAR_ARRAY.");
1270template<
typename ShaderResourceType>
1277 static constexpr bool bIsStoredInConstantBuffer =
false;
1286template<
typename ShaderResourceType,
size_t InNumElements>
1293 static constexpr bool bIsStoredInConstantBuffer =
false;
1300template<
class UniformBufferStructType>
1307 static constexpr bool bIsStoredInConstantBuffer =
false;
1315template<
class UniformBufferStructType>
1322 static constexpr bool bIsStoredInConstantBuffer =
false;
1330template<
class UniformBufferStructType>
1337 static constexpr bool bIsStoredInConstantBuffer =
false;
1345template<
typename StructType>
1352 static constexpr bool bIsStoredInConstantBuffer =
true;
1359template<
typename StructType,
size_t InNumElements>
1366 static constexpr bool bIsStoredInConstantBuffer =
true;
1373#define INTERNAL_BEGIN_UNIFORM_BUFFER_STRUCT(DllStorage) \
1374 static DllStorage const FShaderParametersMetadata* GetStructMetadata();
1376#define INTERNAL_UNIFORM_BUFFER_STRUCT_GET_STRUCT_METADATA(StructTypeName) \
1377 { return StructTypeName::GetStructMetadata(); }
1379#define INTERNAL_SHADER_PARAMETER_GET_STRUCT_METADATA(StructTypeName) \
1381 static FShaderParametersMetadata StaticStructMetadata(\
1382 FShaderParametersMetadata::EUseCase::ShaderParameterStruct, \
1383 EUniformBufferBindingFlags::Shader, \
1384 TEXT(#StructTypeName), \
1385 TEXT(#StructTypeName), \
1388 FTypeInfo::FileName, \
1389 FTypeInfo::FileLine, \
1390 sizeof(StructTypeName), \
1391 StructTypeName::zzGetMembers()); \
1392 return &StaticStructMetadata; \
1396#define INTERNAL_SHADER_PARAMETER_STRUCT_CREATE_UNIFORM_BUFFER return nullptr;
1398#define INTERNAL_UNIFORM_BUFFER_STRUCT_CREATE_UNIFORM_BUFFER return RHICreateUniformBuffer(&InContents, FTypeInfo::GetStructMetadata()->GetLayoutPtr(), InUsage);
1401#define INTERNAL_SHADER_PARAMETER_STRUCT_BEGIN(StructTypeName,DllStorage,ConstructorSuffix,GetStructMetadataScope,CreateUniformBufferImpl) \
1402 MS_ALIGN(SHADER_PARAMETER_STRUCT_ALIGNMENT) class StructTypeName \
1405 DllStorage StructTypeName () ConstructorSuffix \
1406 struct FTypeInfo { \
1407 static constexpr int32 NumRows = 1; \
1408 static constexpr int32 NumColumns = 1; \
1409 static constexpr int32 NumElements = 0; \
1410 static constexpr int32 Alignment = SHADER_PARAMETER_STRUCT_ALIGNMENT; \
1411 static constexpr bool bIsStoredInConstantBuffer = true; \
1412 static constexpr const ANSICHAR* const FileName = UE_LOG_SOURCE_FILE(__builtin_FILE()); \
1413 static constexpr int32 FileLine = __builtin_LINE(); \
1414 using TAlignedType = StructTypeName; \
1415 static const FShaderParametersMetadata* GetStructMetadata() GetStructMetadataScope \
1417 static FUniformBufferRHIRef CreateUniformBuffer(const StructTypeName& InContents, EUniformBufferUsage InUsage) \
1419 CreateUniformBufferImpl \
1422 typedef StructTypeName zzTThisStruct; \
1423 struct zzFirstMemberId { enum { HasDeclaredResource = 0 }; }; \
1424 typedef void* zzFuncPtr; \
1425 typedef zzFuncPtr(*zzMemberFunc)(zzFirstMemberId, TArray<FShaderParametersMetadata::FMember>*); \
1426 static zzFuncPtr zzAppendMemberGetPrev(zzFirstMemberId, TArray<FShaderParametersMetadata::FMember>*) \
1430 typedef zzFirstMemberId
1433#define INTERNAL_SHADER_PARAMETER_EXPLICIT(BaseType,TypeInfo,MemberType,MemberName,ArrayDecl,DefaultValue,Precision,OptionalShaderType,IsMemberStruct) \
1434 zzMemberId##MemberName; \
1436 alignas(TypeInfo::Alignment) TypeInfo::TAlignedType MemberName DefaultValue; \
1437 static_assert(BaseType != UBMT_INVALID, "Invalid type " #MemberType " of member " #MemberName "."); \
1439 struct zzNextMemberId##MemberName { enum { HasDeclaredResource = zzMemberId##MemberName::HasDeclaredResource || !TypeInfo::bIsStoredInConstantBuffer }; }; \
1440 static zzFuncPtr zzAppendMemberGetPrev(zzNextMemberId##MemberName, TArray<FShaderParametersMetadata::FMember>* Members) \
1442 static_assert(TypeInfo::bIsStoredInConstantBuffer || TIsArrayOrRefOfTypeByPredicate<decltype(OptionalShaderType), TIsCharEncodingCompatibleWithTCHAR>::Value, "No shader type for " #MemberName "."); \
1444 (STRUCT_OFFSET(zzTThisStruct, MemberName) & (TypeInfo::Alignment - 1)) == 0, \
1445 "Misaligned uniform buffer struct member " #MemberName "."); \
1446 Members->Add(FShaderParametersMetadata::FMember( \
1447 TEXT(#MemberName), \
1448 (const TCHAR*)OptionalShaderType, \
1450 STRUCT_OFFSET(zzTThisStruct,MemberName), \
1451 EUniformBufferBaseType(BaseType), \
1453 TypeInfo::NumRows, \
1454 TypeInfo::NumColumns, \
1455 TypeInfo::NumElements, \
1456 TypeInfo::GetStructMetadata() \
1458 zzFuncPtr(*PrevFunc)(zzMemberId##MemberName, TArray<FShaderParametersMetadata::FMember>*); \
1459 PrevFunc = zzAppendMemberGetPrev; \
1460 return (zzFuncPtr)PrevFunc; \
1462 typedef zzNextMemberId##MemberName
1482#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage) \
1483 INTERNAL_SHADER_PARAMETER_STRUCT_BEGIN(StructTypeName,, {}, INTERNAL_SHADER_PARAMETER_GET_STRUCT_METADATA(StructTypeName), INTERNAL_SHADER_PARAMETER_STRUCT_CREATE_UNIFORM_BUFFER)
1485#define END_SHADER_PARAMETER_STRUCT() \
1488 static TArray<FShaderParametersMetadata::FMember> zzGetMembers() { \
1489 TArray<FShaderParametersMetadata::FMember> Members; \
1490 zzFuncPtr(*LastFunc)(zzLastMemberId, TArray<FShaderParametersMetadata::FMember>*); \
1491 LastFunc = zzAppendMemberGetPrev; \
1492 zzFuncPtr Ptr = (zzFuncPtr)LastFunc; \
1495 Ptr = reinterpret_cast<zzMemberFunc>(Ptr)(zzFirstMemberId(), &Members); \
1497 Algo::Reverse(Members); \
1500 } GCC_ALIGN(SHADER_PARAMETER_STRUCT_ALIGNMENT);
1512#define BEGIN_UNIFORM_BUFFER_STRUCT(StructTypeName, DllStorage) \
1513 DECLARE_UNIFORM_BUFFER_STRUCT(StructTypeName, DllStorage) \
1514 INTERNAL_SHADER_PARAMETER_STRUCT_BEGIN(StructTypeName,,{} INTERNAL_BEGIN_UNIFORM_BUFFER_STRUCT(DllStorage), INTERNAL_UNIFORM_BUFFER_STRUCT_GET_STRUCT_METADATA(StructTypeName), INTERNAL_UNIFORM_BUFFER_STRUCT_CREATE_UNIFORM_BUFFER)
1516#define BEGIN_UNIFORM_BUFFER_STRUCT_WITH_CONSTRUCTOR(StructTypeName, DllStorage) \
1517 DECLARE_UNIFORM_BUFFER_STRUCT(StructTypeName, DllStorage) \
1518 INTERNAL_SHADER_PARAMETER_STRUCT_BEGIN(StructTypeName,DllStorage,; INTERNAL_BEGIN_UNIFORM_BUFFER_STRUCT(DllStorage), INTERNAL_UNIFORM_BUFFER_STRUCT_GET_STRUCT_METADATA(StructTypeName), INTERNAL_UNIFORM_BUFFER_STRUCT_CREATE_UNIFORM_BUFFER)
1520#define END_UNIFORM_BUFFER_STRUCT() \
1521 END_SHADER_PARAMETER_STRUCT()
1528 : LazyShaderParametersMetadataAccessor(LazyShaderParametersMetadataAccessor)
1530 GetInstances().Add(
this);
1543#define IMPLEMENT_UNIFORM_BUFFER_STRUCT_EX(StructTypeName,ShaderVariableName,UsageFlags) \
1544 const FShaderParametersMetadata* GetForwardDeclaredShaderParametersStructMetadata(const StructTypeName* DummyPtr) { return StructTypeName::FTypeInfo::GetStructMetadata(); } \
1545 const FShaderParametersMetadata* StructTypeName::GetStructMetadata() \
1547 ensureMsgf(FShaderParametersMetadataRegistration::IsReadyForRegistration(), TEXT("GetStructMetadata should not be called from a static initializer")); \
1548 static const FShaderParametersMetadata StaticStructMetadata( \
1549 FShaderParametersMetadata::EUseCase::UniformBuffer, \
1550 EUniformBufferBindingFlags::Shader, \
1551 TEXT(#StructTypeName), \
1552 TEXT(#StructTypeName), \
1553 TEXT(ShaderVariableName), \
1555 StructTypeName::FTypeInfo::FileName, \
1556 StructTypeName::FTypeInfo::FileLine, \
1557 sizeof(StructTypeName), \
1558 StructTypeName::zzGetMembers(), \
1562 return &StaticStructMetadata; \
1564 FShaderParametersMetadataRegistration StructTypeName##MetadataRegistration { TFunctionRef<const ::FShaderParametersMetadata* ()>{StructTypeName::GetStructMetadata} };
1566#define IMPLEMENT_UNIFORM_BUFFER_STRUCT(StructTypeName,ShaderVariableName) \
1567 IMPLEMENT_UNIFORM_BUFFER_STRUCT_EX(StructTypeName,ShaderVariableName,FShaderParametersMetadata::EUsageFlags::None)
1569#define IMPLEMENT_UNIFORM_BUFFER_ALIAS_STRUCT(StructTypeName, UniformBufferAlias) \
1570 static const FShaderParametersMetadata UniformBufferAlias( \
1571 FShaderParametersMetadata::EUseCase::UniformBuffer, \
1572 EUniformBufferBindingFlags::Shader, \
1573 TEXT(#StructTypeName), \
1574 TEXT(#StructTypeName), \
1575 TEXT(#UniformBufferAlias), \
1577 StructTypeName::FTypeInfo::FileName, \
1578 StructTypeName::FTypeInfo::FileLine, \
1579 sizeof(StructTypeName), \
1580 StructTypeName::zzGetMembers())
1582#define IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT_EX(StructTypeName,ShaderVariableName,StaticSlotName,BindingFlagsEnum) \
1583 static_assert(EnumHasAnyFlags(EUniformBufferBindingFlags::BindingFlagsEnum, EUniformBufferBindingFlags::Static), "Shader bindings must include 'Static'."); \
1584 const FShaderParametersMetadata* GetForwardDeclaredShaderParametersStructMetadata(const StructTypeName* DummyPtr) { return StructTypeName::FTypeInfo::GetStructMetadata(); } \
1585 const FShaderParametersMetadata* StructTypeName::GetStructMetadata() \
1587 ensureMsgf(FShaderParametersMetadataRegistration::IsReadyForRegistration(), TEXT("GetStructMetadata should not be called from a static initializer")); \
1588 static const FShaderParametersMetadata StaticStructMetadata( \
1589 FShaderParametersMetadata::EUseCase::UniformBuffer, \
1590 EUniformBufferBindingFlags::BindingFlagsEnum, \
1591 TEXT(#StructTypeName), \
1592 TEXT(#StructTypeName), \
1593 TEXT(ShaderVariableName), \
1594 TEXT(#StaticSlotName), \
1595 StructTypeName::FTypeInfo::FileName, \
1596 StructTypeName::FTypeInfo::FileLine, \
1597 sizeof(StructTypeName), \
1598 StructTypeName::zzGetMembers()); \
1599 return &StaticStructMetadata; \
1601 FShaderParametersMetadataRegistration StructTypeName##MetadataRegistration { TFunctionRef<const ::FShaderParametersMetadata* ()>{StructTypeName::GetStructMetadata} };
1603#define IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT_EX2(StructTypeName,ShaderVariableName,StaticSlotName,BindingFlagsEnum,UsageFlags) \
1604 static_assert(EnumHasAnyFlags(EUniformBufferBindingFlags::BindingFlagsEnum, EUniformBufferBindingFlags::Static), "Shader bindings must include 'Static'."); \
1605 const FShaderParametersMetadata* GetForwardDeclaredShaderParametersStructMetadata(const StructTypeName* DummyPtr) { return StructTypeName::FTypeInfo::GetStructMetadata(); } \
1606 const FShaderParametersMetadata* StructTypeName::GetStructMetadata() \
1608 ensureMsgf(FShaderParametersMetadataRegistration::IsReadyForRegistration(), TEXT("GetStructMetadata should not be called from a static initializer")); \
1609 static const FShaderParametersMetadata StaticStructMetadata( \
1610 FShaderParametersMetadata::EUseCase::UniformBuffer, \
1611 EUniformBufferBindingFlags::BindingFlagsEnum, \
1612 TEXT(#StructTypeName), \
1613 TEXT(#StructTypeName), \
1614 TEXT(ShaderVariableName), \
1615 TEXT(#StaticSlotName), \
1616 StructTypeName::FTypeInfo::FileName, \
1617 StructTypeName::FTypeInfo::FileLine, \
1618 sizeof(StructTypeName), \
1619 StructTypeName::zzGetMembers(), \
1623 return &StaticStructMetadata; \
1625 FShaderParametersMetadataRegistration StructTypeName##MetadataRegistration { TFunctionRef<const ::FShaderParametersMetadata* ()>{StructTypeName::GetStructMetadata} };
1633#define IMPLEMENT_STATIC_AND_SHADER_UNIFORM_BUFFER_STRUCT(StructTypeName,ShaderVariableName,StaticSlotName) \
1634 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT_EX(StructTypeName, ShaderVariableName, StaticSlotName, StaticAndShader)
1636#define IMPLEMENT_STATIC_AND_SHADER_UNIFORM_BUFFER_STRUCT_EX(StructTypeName,ShaderVariableName,StaticSlotName,UsageFlags) \
1637 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT_EX2(StructTypeName, ShaderVariableName, StaticSlotName, StaticAndShader, UsageFlags)
1655#define IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT(StructTypeName,ShaderVariableName,StaticSlotName) \
1656 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT_EX(StructTypeName, ShaderVariableName, StaticSlotName, Static)
1659#define IMPLEMENT_STATIC_UNIFORM_BUFFER_SLOT(SlotName) \
1660 static FUniformBufferStaticSlotRegistrar UniformBufferStaticSlot_##SlotName(TEXT(#SlotName));
1663#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT \
1664 BEGIN_UNIFORM_BUFFER_STRUCT
1666#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT_WITH_CONSTRUCTOR \
1667 BEGIN_UNIFORM_BUFFER_STRUCT_WITH_CONSTRUCTOR
1669#define END_GLOBAL_SHADER_PARAMETER_STRUCT \
1670 END_UNIFORM_BUFFER_STRUCT
1672#define IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT \
1673 IMPLEMENT_UNIFORM_BUFFER_STRUCT
1675#define IMPLEMENT_GLOBAL_SHADER_PARAMETER_ALIAS_STRUCT \
1676 IMPLEMENT_UNIFORM_BUFFER_ALIAS_STRUCT
1684#define SHADER_PARAMETER(MemberType,MemberName) \
1685 SHADER_PARAMETER_EX(MemberType,MemberName,EShaderPrecisionModifier::Float)
1687#define SHADER_PARAMETER_EX(MemberType,MemberName,Precision) \
1688 INTERNAL_SHADER_PARAMETER_EXPLICIT(TShaderParameterTypeInfo<MemberType>::BaseType, TShaderParameterTypeInfo<MemberType>, MemberType,MemberName,,,Precision,TEXT(""),false)
1696#define SHADER_PARAMETER_ARRAY(MemberType,MemberName,ArrayDecl) \
1697 SHADER_PARAMETER_ARRAY_EX(MemberType,MemberName,ArrayDecl,EShaderPrecisionModifier::Float)
1699#define SHADER_PARAMETER_ARRAY_EX(MemberType,MemberName,ArrayDecl,Precision) \
1700 INTERNAL_SHADER_PARAMETER_EXPLICIT(TShaderParameterTypeInfo<MemberType ArrayDecl>::BaseType, TShaderParameterTypeInfo<MemberType ArrayDecl>, MemberType,MemberName,ArrayDecl,,Precision,TEXT(""),false)
1708#define SHADER_PARAMETER_TEXTURE(ShaderType,MemberName) \
1709 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_TEXTURE, TShaderResourceParameterTypeInfo<FRHITexture*>, FRHITexture*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1711#define SHADER_PARAMETER_TEXTURE_ARRAY(ShaderType,MemberName, ArrayDecl) \
1712 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_TEXTURE, TShaderResourceParameterTypeInfo<FRHITexture* ArrayDecl>, FRHITexture*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1720#define SHADER_PARAMETER_SRV(ShaderType,MemberName) \
1721 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_SRV, TShaderResourceParameterTypeInfo<FRHIShaderResourceView*>, FRHIShaderResourceView*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1723#define SHADER_PARAMETER_SRV_ARRAY(ShaderType,MemberName, ArrayDecl) \
1724 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_SRV, TShaderResourceParameterTypeInfo<FRHIShaderResourceView* ArrayDecl>, FRHIShaderResourceView*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1731#define SHADER_PARAMETER_UAV(ShaderType,MemberName) \
1732 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_UAV, TShaderResourceParameterTypeInfo<FRHIUnorderedAccessView*>, FRHIUnorderedAccessView*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1740#define SHADER_PARAMETER_SAMPLER(ShaderType,MemberName) \
1741 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_SAMPLER, TShaderResourceParameterTypeInfo<FRHISamplerState*>, FRHISamplerState*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1743#define SHADER_PARAMETER_SAMPLER_ARRAY(ShaderType,MemberName, ArrayDecl) \
1744 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_SAMPLER, TShaderResourceParameterTypeInfo<FRHISamplerState* ArrayDecl>, FRHISamplerState*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1752#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType,MemberName) \
1753 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE, TShaderResourceParameterTypeInfo<FRDGTexture*>, FRDGTexture*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1755#define SHADER_PARAMETER_RDG_TEXTURE_ARRAY(ShaderType,MemberName, ArrayDecl) \
1756 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE, TShaderResourceParameterTypeInfo<FRDGTexture* ArrayDecl>, FRDGTexture*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1764#define SHADER_PARAMETER_RDG_TEXTURE_SRV(ShaderType,MemberName) \
1765 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_SRV, TShaderResourceParameterTypeInfo<FRDGTextureSRV*>, FRDGTextureSRV*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1767#define SHADER_PARAMETER_RDG_TEXTURE_SRV_ARRAY(ShaderType,MemberName, ArrayDecl) \
1768 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_SRV, TShaderResourceParameterTypeInfo<FRDGTextureSRV* ArrayDecl>, FRDGTextureSRV*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1776#define SHADER_PARAMETER_RDG_TEXTURE_NON_PIXEL_SRV(ShaderType,MemberName) \
1777 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_NON_PIXEL_SRV, TShaderResourceParameterTypeInfo<FRDGTextureSRV*>, FRDGTextureSRV*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1779#define SHADER_PARAMETER_RDG_TEXTURE_NON_PIXEL_SRV_ARRAY(ShaderType,MemberName, ArrayDecl) \
1780 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_NON_PIXEL_SRV, TShaderResourceParameterTypeInfo<FRDGTextureSRV* ArrayDecl>, FRDGTextureSRV*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1788#define SHADER_PARAMETER_RDG_TEXTURE_UAV(ShaderType,MemberName) \
1789 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_UAV, TShaderResourceParameterTypeInfo<FRDGTextureUAV*>, FRDGTextureUAV*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1791#define SHADER_PARAMETER_RDG_TEXTURE_UAV_ARRAY(ShaderType,MemberName, ArrayDecl) \
1792 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_UAV, TShaderResourceParameterTypeInfo<FRDGTextureUAV* ArrayDecl>, FRDGTextureUAV*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1800#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType,MemberName) \
1801 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_BUFFER_SRV, TShaderResourceParameterTypeInfo<FRDGBufferSRV*>, FRDGBufferSRV*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1803#define SHADER_PARAMETER_RDG_BUFFER_SRV_ARRAY(ShaderType,MemberName, ArrayDecl) \
1804 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_BUFFER_SRV, TShaderResourceParameterTypeInfo<FRDGBufferSRV* ArrayDecl>, FRDGBufferSRV*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1812#define SHADER_PARAMETER_RDG_BUFFER_UAV(ShaderType,MemberName) \
1813 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_BUFFER_UAV, TShaderResourceParameterTypeInfo<FRDGBufferUAV*>, FRDGBufferUAV*,MemberName,, = nullptr,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1815#define SHADER_PARAMETER_RDG_BUFFER_UAV_ARRAY(ShaderType,MemberName, ArrayDecl) \
1816 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_BUFFER_UAV, TShaderResourceParameterTypeInfo<FRDGBufferUAV* ArrayDecl>, FRDGBufferUAV*,MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#ShaderType),false)
1823#define SHADER_PARAMETER_RDG_UNIFORM_BUFFER(StructType, MemberName) \
1824 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_UNIFORM_BUFFER, TShaderParameterTypeInfo<TRDGUniformBufferBinding<StructType>>, TRDGUniformBufferBinding<StructType>,MemberName,,,EShaderPrecisionModifier::Float,TEXT(#StructType),false)
1847#define SHADER_PARAMETER_STRUCT(StructType,MemberName) \
1848 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_NESTED_STRUCT, StructType::FTypeInfo, StructType, MemberName,,,EShaderPrecisionModifier::Float,TEXT(#StructType),true)
1871#define SHADER_PARAMETER_STRUCT_ARRAY(StructType,MemberName, ArrayDecl) \
1872 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_NESTED_STRUCT, TShaderParameterStructTypeInfo<StructType ArrayDecl>, StructType, MemberName,ArrayDecl,,EShaderPrecisionModifier::Float,TEXT(#StructType),true)
1895#define SHADER_PARAMETER_STRUCT_INCLUDE(StructType,MemberName) \
1896 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_INCLUDED_STRUCT, StructType::FTypeInfo, StructType, MemberName,,,EShaderPrecisionModifier::Float,TEXT(#StructType),true)
1909#define SHADER_PARAMETER_STRUCT_REF(StructType,MemberName) \
1910 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_REFERENCED_STRUCT, TShaderParameterTypeInfo<TUniformBufferBinding<StructType>>, TUniformBufferBinding<StructType>,MemberName,,,EShaderPrecisionModifier::Float,TEXT(#StructType),false)
1923#define RDG_BUFFER_ACCESS(MemberName, Access) \
1924 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_BUFFER_ACCESS, TRDGResourceAccessTypeInfo<TRDGBufferAccess<Access>>, TRDGBufferAccess<Access>,MemberName,,,EShaderPrecisionModifier::Float,TEXT(""),false)
1926#define RDG_BUFFER_ACCESS_DYNAMIC(MemberName) \
1927 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_BUFFER_ACCESS, TRDGResourceAccessTypeInfo<FRDGBufferAccess>, FRDGBufferAccess,MemberName,,,EShaderPrecisionModifier::Float,TEXT(""),false)
1929#define RDG_BUFFER_ACCESS_ARRAY(MemberName) \
1930 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_BUFFER_ACCESS_ARRAY, TRDGResourceAccessTypeInfo<FRDGBufferAccessArray>, FRDGBufferAccessArray,MemberName,,,EShaderPrecisionModifier::Float,TEXT(""),false)
1933#define RDG_TEXTURE_ACCESS(MemberName, Access) \
1934 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_ACCESS, TRDGTextureAccessTypeInfo<TRDGTextureAccess<Access>>, TRDGTextureAccess<Access>,MemberName,,,EShaderPrecisionModifier::Float,TEXT(""),false)
1936#define RDG_TEXTURE_ACCESS_DYNAMIC(MemberName) \
1937 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_ACCESS, TRDGTextureAccessTypeInfo<FRDGTextureAccess>, FRDGTextureAccess,MemberName,,,EShaderPrecisionModifier::Float,TEXT(""),false)
1939#define RDG_TEXTURE_ACCESS_ARRAY(MemberName) \
1940 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RDG_TEXTURE_ACCESS_ARRAY, TRDGResourceAccessTypeInfo<FRDGTextureAccessArray>, FRDGTextureAccessArray,MemberName,,,EShaderPrecisionModifier::Float,TEXT(""),false)
1955#define RENDER_TARGET_BINDING_SLOTS() \
1956 INTERNAL_SHADER_PARAMETER_EXPLICIT(UBMT_RENDER_TARGET_BINDING_SLOTS, FRenderTargetBindingSlots::FTypeInfo, FRenderTargetBindingSlots,RenderTargets,,,EShaderPrecisionModifier::Float,TEXT(""),false)
1976#define SHADER_PARAMETER_RDG_BUFFER_UPLOAD(MemberName) \
1977 UE_DEPRECATED_MACRO(5.0, "SHADER_PARAMETER_RDG_BUFFER_UPLOAD has been deprecated. Use RDG_BUFFER_ACCESS(Buffer, ERHIAccess::CopyDest) instead.") \
1978 RDG_BUFFER_ACCESS(MemberName, ERHIAccess::CopyDest)
1980#define SHADER_PARAMETER_RDG_BUFFER(ShaderType,MemberName) \
1981 UE_DEPRECATED_MACRO(5.0, "SHADER_PARAMETER_RDG_BUFFER has been deprecated. Use RDG_BUFFER_ACCESS with an explicit RHI state instead.") \
1982 RDG_BUFFER_ACCESS(MemberName, ERHIAccess::SRVMask | ERHIAccess::IndirectArgs)
1984#define SHADER_PARAMETER_RDG_BUFFER_ARRAY(ShaderType,MemberName, ArrayDecl) \
1985 UE_DEPRECATED_MACRO(5.0, "SHADER_PARAMETER_RDG_BUFFER_ARRAY has been deprecated. Use RDG_BUFFER_ACCESS_ARRAY instead.")
1992template<
typename TypeParameter>
1995 static_assert(
sizeof(
TypeParameter) == 0,
"This type is not supported for automatic packing.");
2026#define SHADER_PARAMETER_SCALAR_ARRAY(MemberType,MemberName,ArrayDecl) \
2027 SHADER_PARAMETER_ARRAY(TShaderParameterScalarArrayTypeInfo<MemberType>::PackedArrayType, MemberName, [CalcPackedArraySize(TShaderParameterTypeInfo<TShaderParameterScalarArrayTypeInfo<MemberType>::PackedArrayType ArrayDecl>::NumElements)])
2029#define GET_SCALAR_ARRAY_ELEMENT(PackedArray, ElementIndex) \
2030 PackedArray[CalcPackedArrayIndex(ElementIndex)][CalcPackedComponentIndex(ElementIndex)]
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool IsValidAccess(ED3D12Access InD3D12Access)
Definition D3D12Access.h:78
FUniformBufferRHIRef RHICreateUniformBuffer(const void *Contents, const FRHIUniformBufferLayout *Layout, EUniformBufferUsage Usage, EUniformBufferValidation Validation=EUniformBufferValidation::ValidateResources)
Definition DynamicRHI.h:1231
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
UE::Math::TIntRect< int32 > FIntRect
Definition MathFwd.h:133
UE::Math::TIntVector4< uint32 > FUintVector4
Definition MathFwd.h:105
UE::Math::TQuat< float > FQuat4f
Definition MathFwd.h:76
UE::Math::TIntVector4< int32 > FIntVector4
Definition MathFwd.h:93
UE::Math::TVector4< float > FVector4f
Definition MathFwd.h:75
UE::Math::TMatrix< float > FMatrix44f
Definition MathFwd.h:77
const bool
Definition NetworkReplayStreaming.h:178
ERHIAccess
Definition RHIAccess.h:11
@ MaxSimultaneousRenderTargets
Definition RHIDefinitions.h:287
EUniformBufferUsage
Definition RHIDefinitions.h:536
#define SHADER_PARAMETER_ARRAY_ELEMENT_ALIGNMENT
Definition RHIDefinitions.h:28
#define SHADER_PARAMETER_STRUCT_ALIGNMENT
Definition RHIDefinitions.h:25
EUniformBufferBaseType
Definition RHIDefinitions.h:634
@ UBMT_BOOL
Definition RHIDefinitions.h:639
@ UBMT_FLOAT32
Definition RHIDefinitions.h:644
@ UBMT_UINT32
Definition RHIDefinitions.h:643
@ UBMT_INVALID
Definition RHIDefinitions.h:635
@ UBMT_INT32
Definition RHIDefinitions.h:642
EUniformBufferBindingFlags
Definition RHIDefinitions.h:686
EUniformBufferValidation
Definition RHIDefinitions.h:546
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
#define SHADER_PARAMETER_POINTER_ALIGNMENT
Definition RHIDefinitions.h:35
ESubpassHint
Definition RHIResources.h:4526
EShaderBindingLayoutFlags
Definition RHIShaderBindingLayout.h:53
constexpr uint32 CalcPackedArrayIndex(uint32 ElementIndex)
Definition ShaderParameterMacros.h:2018
constexpr uint32 CalcPackedComponentIndex(uint32 ElementIndex)
Definition ShaderParameterMacros.h:2019
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
RENDERCORE_API FShaderParametersMetadata * FindUniformBufferStructByShaderVariableName(const FHashedName &Name)
TUniformBufferBinding< TBufferStruct > GetShaderBinding(const TUniformBufferRef< TBufferStruct > &InUniformBuffer)
Definition ShaderParameterMacros.h:267
#define RENDER_TARGET_BINDING_SLOTS()
Definition ShaderParameterMacros.h:1955
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define IMPLEMENT_ALIGNED_TYPE(Alignment)
Definition ShaderParameterMacros.h:38
constexpr uint32 CalcPackedArraySize(uint32 NumElements)
Definition ShaderParameterMacros.h:2017
TUniformBufferBinding< TBufferStruct > GetStaticBinding(const TUniformBufferRef< TBufferStruct > &InUniformBuffer)
Definition ShaderParameterMacros.h:261
const FShaderParametersMetadata * GetForwardDeclaredShaderParametersStructMetadata(const T *)
Definition ShaderParameterStructDeclaration.h:19
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition RHIResources.h:409
@ DepthNop_StencilNop
Definition RHIResources.h:425
Definition MemoryImage.h:858
Definition NameTypes.h:617
Definition ShaderParameterMacros.h:367
FRDGBufferAccess(FRDGBuffer *InBuffer, ERHIAccess InAccess)
Definition ShaderParameterMacros.h:370
bool operator!=(const FRDGBufferAccess &RHS) const
Definition ShaderParameterMacros.h:401
bool operator==(const FRDGBufferAccess &RHS) const
Definition ShaderParameterMacros.h:396
FRDGBufferAccess()=default
FRDGBuffer * operator->() const
Definition ShaderParameterMacros.h:385
FRDGBuffer * GetBuffer() const
Definition ShaderParameterMacros.h:377
ERHIAccess GetAccess() const
Definition ShaderParameterMacros.h:378
Definition RenderGraphResources.h:1426
Definition RenderGraphResources.h:1452
Definition RenderGraphResources.h:1321
Definition ShaderParameterMacros.h:430
FRDGTexture * GetTexture() const
Definition ShaderParameterMacros.h:444
FRDGTexture * operator->() const
Definition ShaderParameterMacros.h:453
bool operator==(const FRDGTextureAccess &RHS) const
Definition ShaderParameterMacros.h:464
ERHIAccess GetAccess() const
Definition ShaderParameterMacros.h:446
bool operator!=(const FRDGTextureAccess &RHS) const
Definition ShaderParameterMacros.h:469
FRDGTextureAccess()=default
FRDGTextureSubresourceRange GetSubresourceRange() const
Definition ShaderParameterMacros.h:445
FRDGTextureAccess(FRDGTexture *InTexture, FRDGTextureSubresourceRange InSubresourceRange, ERHIAccess InAccess)
Definition ShaderParameterMacros.h:434
Definition RenderGraphResources.h:839
Definition RenderGraphResources.h:905
Definition RenderGraphResources.h:571
Definition RHICommandList.h:455
PRAGMA_ENABLE_DEPRECATION_WARNINGS void UpdateUniformBuffer(FRHIUniformBuffer *UniformBufferRHI, const void *Contents)
Definition RHICommandList.h:891
Definition ShaderCore.h:487
PLATFORM_64BITS.
Definition ShaderParameterMacros.h:67
const PtrType & operator->() const
Definition ShaderParameterMacros.h:95
TAlignedShaderParameterPtr(const TAlignedShaderParameterPtr< PtrType > &Other)
Definition ShaderParameterMacros.h:76
TAlignedShaderParameterPtr(const PtrType &Other)
Definition ShaderParameterMacros.h:72
TAlignedShaderParameterPtr()
Definition ShaderParameterMacros.h:69
void operator=(const PtrType &Other)
Definition ShaderParameterMacros.h:80
Definition ShaderParameterMacros.h:36
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
Definition ShaderParameterMacros.h:414
TRDGBufferAccess(FRDGBuffer *InBuffer)
Definition ShaderParameterMacros.h:424
TRDGBufferAccess()
Definition ShaderParameterMacros.h:418
Definition ShaderParameterMacros.h:509
Definition ShaderParameterMacros.h:483
TRDGTextureAccess(FRDGTexture *InTexture, FRDGTextureSubresourceRange InSubresourceRange)
Definition ShaderParameterMacros.h:489
TRDGTextureAccess(FRDGTextureSRV *InTextureSRV)
Definition ShaderParameterMacros.h:497
TRDGTextureAccess(FRDGTexture *InTexture)
Definition ShaderParameterMacros.h:493
TRDGTextureAccess(FRDGTextureUAV *InTextureUAV)
Definition ShaderParameterMacros.h:501
TRDGTextureAccess()=default
Definition ShaderParameterMacros.h:880
TShaderResourceParameterArray()
Definition ShaderParameterMacros.h:882
Definition StaticArray.h:26
U16 Index
Definition radfft.cpp:71
Definition ShaderParameterMacros.h:630
FExclusiveDepthStencil GetDepthStencilAccess() const
Definition ShaderParameterMacros.h:708
void SetDepthLoadAction(ERenderTargetLoadAction InAction)
Definition ShaderParameterMacros.h:742
ERenderTargetLoadAction GetDepthLoadAction() const
Definition ShaderParameterMacros.h:700
FDepthStencilBinding(FRDGTexture *InTexture, FRDGTexture *InResolveTexture, ERenderTargetLoadAction InDepthLoadAction, FExclusiveDepthStencil InDepthStencilAccess)
Definition ShaderParameterMacros.h:679
FDepthStencilBinding(FRDGTexture *InTexture, ERenderTargetLoadAction InDepthLoadAction, FExclusiveDepthStencil InDepthStencilAccess)
Definition ShaderParameterMacros.h:667
FRDGTexture * GetTexture() const
Definition ShaderParameterMacros.h:692
FDepthStencilBinding()=default
FDepthStencilBinding(FRDGTexture *InTexture, ERenderTargetLoadAction InDepthLoadAction, ERenderTargetLoadAction InStencilLoadAction, FExclusiveDepthStencil InDepthStencilAccess)
Definition ShaderParameterMacros.h:638
void SetResolveTexture(FRDGTexture *InTexture)
Definition ShaderParameterMacros.h:730
FDepthStencilBinding(FRDGTexture *InTexture, FRDGTexture *InResolveTexture, ERenderTargetLoadAction InDepthLoadAction, ERenderTargetLoadAction InStencilLoadAction, FExclusiveDepthStencil InDepthStencilAccess)
Definition ShaderParameterMacros.h:652
ERenderTargetLoadAction GetStencilLoadAction() const
Definition ShaderParameterMacros.h:704
void SetTexture(FRDGTexture *InTexture)
Definition ShaderParameterMacros.h:724
void SetStencilLoadAction(ERenderTargetLoadAction InAction)
Definition ShaderParameterMacros.h:748
bool CanMergeBefore(const FDepthStencilBinding &Other) const
Definition ShaderParameterMacros.h:714
FRDGTexture * GetResolveTexture() const
Definition ShaderParameterMacros.h:696
void SetDepthStencilAccess(FExclusiveDepthStencil InAccess)
Definition ShaderParameterMacros.h:736
Definition RenderGraphTextureSubresource.h:130
Definition ShaderParameterMacros.h:862
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:871
Definition ShaderParameterMacros.h:770
TStaticArray< FRenderTargetBinding, MaxSimultaneousRenderTargets > Output
Definition ShaderParameterMacros.h:771
const FRenderTargetBinding & operator[](uint32 Index) const
Definition ShaderParameterMacros.h:790
uint32 GetActiveCount() const
Definition ShaderParameterMacros.h:827
FRenderTargetBinding & operator[](uint32 Index)
Definition ShaderParameterMacros.h:785
FDepthStencilBinding DepthStencil
Definition ShaderParameterMacros.h:772
bool CanMergeBefore(const FRenderTargetBindingSlots &Other) const
Definition ShaderParameterMacros.h:834
void Enumerate(TFunction Function)
Definition ShaderParameterMacros.h:796
void Enumerate(TFunction Function) const
Definition ShaderParameterMacros.h:812
FResolveRect ResolveRect
Definition ShaderParameterMacros.h:773
Definition ShaderParameterMacros.h:525
void SetTexture(FRDGTexture *InTexture)
Definition ShaderParameterMacros.h:583
void SetArraySlice(int16 InArraySlice)
Definition ShaderParameterMacros.h:607
void SetResolveTexture(FRDGTexture *InTexture)
Definition ShaderParameterMacros.h:589
bool CanMergeBefore(const FRenderTargetBinding &Other) const
Definition ShaderParameterMacros.h:573
uint8 GetMipIndex() const
Definition ShaderParameterMacros.h:562
ERenderTargetLoadAction GetLoadAction() const
Definition ShaderParameterMacros.h:557
FRenderTargetBinding()=default
FRenderTargetBinding(FRDGTexture *InTexture, ERenderTargetLoadAction InLoadAction, uint8 InMipIndex=0, int16 InArraySlice=-1)
Definition ShaderParameterMacros.h:528
int16 GetArraySlice() const
Definition ShaderParameterMacros.h:567
FRenderTargetBinding(FRDGTexture *InTexture, FRDGTexture *InResolveTexture, ERenderTargetLoadAction InLoadAction, uint8 InMipIndex=0, int16 InArraySlice=-1)
Definition ShaderParameterMacros.h:537
void SetLoadAction(ERenderTargetLoadAction InLoadAction)
Definition ShaderParameterMacros.h:595
FRDGTexture * GetTexture() const
Definition ShaderParameterMacros.h:547
FRDGTexture * GetResolveTexture() const
Definition ShaderParameterMacros.h:552
void SetMipIndex(uint8 InMipIndex)
Definition ShaderParameterMacros.h:601
Definition RHIResources.h:5209
Definition IsUECoreType.h:19
Definition ShaderParameterMacros.h:1203
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1212
BufferAccessType TAlignedType
Definition ShaderParameterMacros.h:1210
Definition ShaderParameterMacros.h:1219
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1228
TextureAccessType TAlignedType
Definition ShaderParameterMacros.h:1226
Definition ShaderParameterMacros.h:1994
void PackedArrayType
Definition ShaderParameterMacros.h:1996
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1370
Definition ShaderParameterMacros.h:1347
StructType TAlignedType
Definition ShaderParameterMacros.h:1354
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1356
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1070
TAlignedTypedef< FIntPoint, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1067
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1166
TAlignedTypedef< FIntRect, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1163
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1134
TAlignedTypedef< FIntVector4, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1131
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1102
TAlignedTypedef< FIntVector, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1099
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1054
TAlignedTypedef< FLinearColor, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1051
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1198
TAlignedTypedef< FMatrix44f, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1195
TAlignedTypedef< FQuat4f, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1179
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1182
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1086
TAlignedTypedef< FUintVector2, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1083
TAlignedTypedef< FUintVector3, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1115
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1118
TAlignedTypedef< FUintVector4, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1147
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1150
TAlignedTypedef< FVector2f, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1003
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1006
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1022
TAlignedTypedef< FVector3f, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1019
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1038
TAlignedTypedef< FVector4f, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:1035
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1265
T TInstancedType
Definition ShaderParameterMacros.h:1263
T TInstancedType
Definition ShaderParameterMacros.h:1245
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1247
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:941
TAlignedTypedef< bool, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:938
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:990
TAlignedTypedef< float, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:987
TAlignedTypedef< int32, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:971
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:974
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:957
TAlignedTypedef< uint32, Alignment >::Type TAlignedType
Definition ShaderParameterMacros.h:954
Definition ShaderParameterMacros.h:895
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:924
TypeParameter TInstancedType
Definition ShaderParameterMacros.h:922
TypeParameter TAlignedType
Definition ShaderParameterMacros.h:919
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1297
Definition ShaderParameterMacros.h:1272
static const FShaderParametersMetadata * GetStructMetadata()
Definition ShaderParameterMacros.h:1281
Definition AlignedElement.h:13