18#ifndef INCLUDED_VERTEXARRAY
19#define INCLUDED_VERTEXARRAY
Definition: VertexBufferManager.h:49
Renderer::Backend::IBuffer * GetBuffer()
Definition: VertexBuffer.h:135
Type
Definition: IBuffer.h:35
Definition: IDeviceCommandContext.h:42
Definition: VertexArray.h:31
T * operator->() const
Definition: VertexArray.h:60
char * m_Data
Definition: VertexArray.h:122
VertexArrayIterator(const VertexArrayIterator &rhs)
Definition: VertexArray.h:46
VertexArrayIterator operator-(ssize_t rhs) const
Definition: VertexArray.h:104
T & operator[](size_t idx) const
Definition: VertexArray.h:61
VertexArrayIterator operator++(int)
Definition: VertexArray.h:69
VertexArrayIterator & operator=(const VertexArrayIterator &rhs)
Definition: VertexArray.h:51
VertexArrayIterator(char *data, size_t stride)
Definition: VertexArray.h:41
VertexArrayIterator & operator--()
Definition: VertexArray.h:75
size_t GetStride() const
Definition: VertexArray.h:116
VertexArrayIterator operator+(ssize_t rhs) const
Definition: VertexArray.h:98
VertexArrayIterator()
Definition: VertexArray.h:36
char * GetData() const
Definition: VertexArray.h:112
size_t m_Stride
Definition: VertexArray.h:123
VertexArrayIterator operator--(int)
Definition: VertexArray.h:80
VertexArrayIterator & operator+=(ssize_t rhs)
Definition: VertexArray.h:87
VertexArrayIterator & operator-=(ssize_t rhs)
Definition: VertexArray.h:92
VertexArrayIterator & operator++()
Definition: VertexArray.h:64
T Type
Definition: VertexArray.h:33
T & operator*() const
Definition: VertexArray.h:59
Definition: VertexArray.h:138
uint32_t GetOffset() const
Definition: VertexArray.h:193
char * m_BackingStore
Definition: VertexArray.h:212
VertexArray(const Renderer::Backend::IBuffer::Type type, const uint32_t usage)
Definition: VertexArray.cpp:68
CVertexBufferManager::Handle m_VB
Definition: VertexArray.h:210
void SetNumberOfVertices(const size_t numberOfVertices)
Definition: VertexArray.cpp:93
Renderer::Backend::IBuffer * GetBuffer()
Definition: VertexArray.h:191
uint32_t m_Stride
Definition: VertexArray.h:211
size_t m_NumberOfVertices
Definition: VertexArray.h:207
void UploadIfNeeded(Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
Definition: VertexArray.cpp:286
void AddAttribute(Attribute *attr)
Definition: VertexArray.cpp:103
void PrepareForRendering()
Definition: VertexArray.cpp:260
~VertexArray()
Definition: VertexArray.cpp:78
void FreeBackingStore()
Definition: VertexArray.cpp:293
VertexArrayIterator< T > MakeIterator(const Attribute *attr)
Definition: VertexArray.h:199
uint32_t m_Usage
Definition: VertexArray.h:206
void Layout()
Definition: VertexArray.cpp:230
uint32_t GetStride() const
Definition: VertexArray.h:172
void Free()
Definition: VertexArray.cpp:84
Renderer::Backend::IBuffer::Type m_Type
Definition: VertexArray.h:205
size_t GetNumberOfVertices() const
Definition: VertexArray.h:171
std::vector< Attribute * > m_Attributes
Definition: VertexArray.h:208
void Upload()
Definition: VertexArray.cpp:267
A VertexArray that is specialised to handle 16-bit array indices.
Definition: VertexArray.h:220
VertexArrayIterator< u16 > GetIterator() const
Gets the iterator over the (only) attribute in this array, i.e. a u16.
Definition: VertexArray.cpp:309
Attribute m_Attr
Definition: VertexArray.h:228
VertexIndexArray(const uint32_t usage)
Definition: VertexArray.cpp:302
#define ENSURE(expr)
ensure the expression <expr> evaluates to non-zero.
Definition: debug.h:290
Format
Definition: Format.h:28
#define T(string_literal)
Definition: secure_crt.cpp:77
CVertexBuffer * m_Owner
Definition: VertexBuffer.h:67
size_t m_Index
Definition: VertexBuffer.h:69
Definition: VertexArray.h:141
VertexArray * vertexArray
Definition: VertexArray.h:147
VertexArrayIterator< T > GetIterator() const
Renderer::Backend::Format format
Definition: VertexArray.h:142
uint32_t offset
Definition: VertexArray.h:145
Attribute()
Definition: VertexArray.h:149
unsigned int uint32_t
Definition: wposix_types.h:53
intptr_t ssize_t
Definition: wposix_types.h:82