#include <RadientTypesX.hpp>
Public Member Functions | |
| RadientVertexLayoutDescX () noexcept=default | |
| Creates an empty layout. | |
| RadientVertexLayoutDescX (const RadientVertexLayoutDesc &Desc) | |
| Copies both arrays and every semantic. Nonzero counts require valid arrays. | |
| RadientVertexLayoutDescX (std::initializer_list< RadientVertexAttributeDesc > Attributes, std::initializer_list< RadientVertexBufferLayoutDesc > Buffers) | |
| Copies attributes and buffers from initializer lists. | |
| RadientVertexLayoutDescX (const RadientVertexLayoutDescX &Other) | |
| Creates an independent metadata copy. | |
| RadientVertexLayoutDescX & | operator= (const RadientVertexLayoutDescX &Other) |
| Replaces this layout with an independent metadata copy. | |
| RadientVertexLayoutDescX (RadientVertexLayoutDescX &&Other) noexcept | |
| Transfers storage and leaves Other empty. | |
| RadientVertexLayoutDescX & | operator= (RadientVertexLayoutDescX &&Other) noexcept |
| Transfers storage and leaves Other empty. Self-move leaves the layout unchanged. | |
| RadientVertexLayoutDescX & | AddBuffer (const RadientVertexBufferLayoutDesc &Buffer) |
| Appends a logical buffer. Its index is the previous buffer count. | |
| RadientVertexLayoutDescX & | AddBuffer (Uint32 ByteStride=RADIENT_VERTEX_AUTO_STRIDE) |
| Appends a buffer with the specified stride; the default requests automatic stride. | |
| RadientVertexLayoutDescX & | SetBuffer (Uint32 Index, const RadientVertexBufferLayoutDesc &Buffer) |
| Replaces a buffer descriptor. Index must be less than GetBufferCount(). | |
| RadientVertexLayoutDescX & | SetBuffer (Uint32 Index, Uint32 ByteStride) |
| Replaces a buffer's stride. Index must be less than GetBufferCount(). | |
| RadientVertexLayoutDescX & | AddAttribute (const RadientVertexAttributeDesc &Attribute) |
| Appends an attribute and copies its semantic string. | |
| RadientVertexLayoutDescX & | AddAttribute (const Char *Semantic, RADIENT_VERTEX_COMPONENT_TYPE ComponentType, Uint32 ComponentCount, Uint32 BufferIndex=0, Uint32 ByteOffset=RADIENT_VERTEX_AUTO_OFFSET, Bool Normalized=False) |
| Appends an attribute. Defaults select buffer zero, automatic offset, and no normalization. | |
| RadientVertexLayoutDescX & | SetAttribute (Uint32 Index, const RadientVertexAttributeDesc &Attribute) |
| Replaces an attribute and copies its semantic. Index must be less than GetAttributeCount(). | |
| Uint32 | GetAttributeCount () const noexcept |
| Returns the number of attributes. | |
| Uint32 | GetBufferCount () const noexcept |
| Returns the number of logical buffers. | |
| const RadientVertexAttributeDesc & | GetAttribute (Uint32 Index) const noexcept |
| Returns an attribute by index, which must be less than GetAttributeCount(). | |
| const RadientVertexBufferLayoutDesc & | GetBuffer (Uint32 Index) const noexcept |
| Returns a buffer by index, which must be less than GetBufferCount(). | |
| const RadientVertexLayoutDesc & | Get () const noexcept |
| Returns the C descriptor view. Its arrays and strings belong to this wrapper. | |
| operator const RadientVertexLayoutDesc & () const noexcept | |
| Allows passing this wrapper to APIs accepting a const C descriptor reference. | |
| void | Clear () noexcept |
| Releases metadata and restores an empty layout. | |
| void | Swap (RadientVertexLayoutDescX &Other) noexcept |
| Exchanges metadata and repairs both descriptor views without allocating. | |
Owns a vertex layout's attribute descriptors, buffer descriptors, and semantic strings.
Construction and copying duplicate metadata, including semantic strings. Automatic offsets and strides are preserved. Setters allow incremental construction; layout validation still takes place in the consuming Radient API. Get() and conversion expose a read-only view without allocating. Views are valid until the wrapper is modified, moved, or destroyed. A consuming API copies metadata during the call. Concurrent access to a wrapper requires synchronization if any access modifies it.