Go to the documentation of this file.
42 static const Uint32 MAX_LAYOUT_ELEMENTS = 16;
43 static const Uint32 LAYOUT_ELEMENT_AUTO_OFFSET = 0xFFFFFFFF;
44 static const Uint32 LAYOUT_ELEMENT_AUTO_STRIDE = 0xFFFFFFFF;
110 #if DILIGENT_CPP_INTERFACE
124 InputIndex {_InputIndex },
125 BufferSlot {_BufferSlot },
127 ValueType {_ValueType },
128 IsNormalized {_IsNormalized },
129 RelativeOffset {_RelativeOffset },
131 Frequency {_Frequency },
132 InstanceDataStepRate{_InstanceDataStepRate}
146 HLSLSemantic {_HLSLSemantic },
147 InputIndex {_InputIndex },
148 BufferSlot {_BufferSlot },
150 ValueType {_ValueType },
151 IsNormalized {_IsNormalized },
152 RelativeOffset {_RelativeOffset },
154 Frequency {_Frequency },
155 InstanceDataStepRate{_InstanceDataStepRate}
166 InputIndex {_InputIndex },
167 BufferSlot {_BufferSlot },
169 ValueType {_ValueType },
170 IsNormalized {_IsNormalized },
173 Frequency {_Frequency },
174 InstanceDataStepRate{_InstanceDataStepRate }
193 return !(*
this == rhs);
210 #if DILIGENT_CPP_INTERFACE
214 Uint32 _NumElements)noexcept :
215 LayoutElements{_LayoutElements},
216 NumElements {_NumElements }
224 for (
Uint32 i=0; i < NumElements; ++i)
235 return !(*
this == rhs);
Description of a single element of the input layout.
Definition: InputLayout.h:63
@ INPUT_ELEMENT_FREQUENCY_UNDEFINED
Frequency is undefined.
Definition: InputLayout.h:50
@ INPUT_ELEMENT_FREQUENCY_PER_INSTANCE
Input data is per-instance data.
Definition: InputLayout.h:56
Uint32 BufferSlot
Buffer slot index that this element is read from.
Definition: InputLayout.h:76
const char * HLSLSemantic
HLSL semantic. Default value ("ATTRIB") allows HLSL shaders to be converted to GLSL and used in OpenG...
Definition: InputLayout.h:69
@ INPUT_ELEMENT_FREQUENCY_NUM_FREQUENCIES
Helper value that stores the total number of frequencies in the enumeration.
Definition: InputLayout.h:59
Uint32 InstanceDataStepRate
The number of instances to draw using the same per-instance data before advancing in the buffer by on...
Definition: InputLayout.h:107
Uint32 NumComponents
Number of components in the element. Allowed values are 1, 2, 3, and 4.
Definition: InputLayout.h:79
bool operator==(const Plane3D &p1, const Plane3D &p2)
Definition: AdvancedMath.hpp:442
LayoutElement() noexcept
Definition: InputLayout.h:112
Uint32 Stride
Stride, in bytes, between two elements, for this buffer slot. If this value is set to LAYOUT_ELEMENT_...
Definition: InputLayout.h:101
#define DILIGENT_END_NAMESPACE
Definition: CommonDefinitions.h:86
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:49
D3D10_SB_OPERAND_NUM_COMPONENTS NumComponents
Definition: DXBCUtils.cpp:519
struct LayoutElement LayoutElement
Definition: InputLayout.h:197
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
#define DEFAULT_INITIALIZER(x)
Definition: CommonDefinitions.h:93
bool Bool
Boolean.
Definition: BasicTypes.h:59
@ INPUT_ELEMENT_FREQUENCY_PER_VERTEX
Input data is per-vertex data.
Definition: InputLayout.h:53
LayoutElement(Uint32 _InputIndex, Uint32 _BufferSlot, Uint32 _NumComponents, VALUE_TYPE _ValueType, Bool _IsNormalized=LayoutElement{}.IsNormalized, Uint32 _RelativeOffset=LayoutElement{}.RelativeOffset, Uint32 _Stride=LayoutElement{}.Stride, INPUT_ELEMENT_FREQUENCY _Frequency=LayoutElement{}.Frequency, Uint32 _InstanceDataStepRate=LayoutElement{}.InstanceDataStepRate) noexcept
Initializes the structure.
Definition: InputLayout.h:115
Uint32 InputIndex
Input index of the element that is specified in the vertex shader. In Direct3D11 and Direct3D12 backe...
Definition: InputLayout.h:73
Bool IsNormalized
For signed and unsigned integer value types (VT_INT8, VT_INT16, VT_INT32, VT_UINT8,...
Definition: InputLayout.h:89
enum INPUT_ELEMENT_FREQUENCY Frequency
Definition: InputLayout.h:103
LayoutElement(const char *_HLSLSemantic, Uint32 _InputIndex, Uint32 _BufferSlot, Uint32 _NumComponents, VALUE_TYPE _ValueType, Bool _IsNormalized=LayoutElement{}.IsNormalized, Uint32 _RelativeOffset=LayoutElement{}.RelativeOffset, Uint32 _Stride=LayoutElement{}.Stride, INPUT_ELEMENT_FREQUENCY _Frequency=LayoutElement{}.Frequency, Uint32 _InstanceDataStepRate=LayoutElement{}.InstanceDataStepRate) noexcept
Initializes the structure.
Definition: InputLayout.h:136
#define DILIGENT_BEGIN_NAMESPACE(Name)
Definition: CommonDefinitions.h:82
@ VT_FLOAT32
Full-precision 32-bit floating point.
Definition: GraphicsTypes.h:59
INPUT_ELEMENT_FREQUENCY
Input frequency.
Definition: InputLayout.h:47
Uint32 RelativeOffset
Relative offset, in bytes, to the element bits. If this value is set to LAYOUT_ELEMENT_AUTO_OFFSET (d...
Definition: InputLayout.h:94
VALUE_TYPE ValueType
Type of the element components, see Diligent::VALUE_TYPE for details.
Definition: InputLayout.h:82
LayoutElement(Uint32 _InputIndex, Uint32 _BufferSlot, Uint32 _NumComponents, VALUE_TYPE _ValueType, Bool _IsNormalized, INPUT_ELEMENT_FREQUENCY _Frequency, Uint32 _InstanceDataStepRate=LayoutElement{}.InstanceDataStepRate) noexcept
Initializes the structure.
Definition: InputLayout.h:159
bool operator!=(const STDAllocator< T, A > &left, const STDAllocator< U, A > &right)
Definition: STDAllocator.hpp:173
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37