7 #include <utility/dllexport.h>
8 #include <nap/resource.h>
10 #include <nap/numeric.h>
12 #include "vulkan/vulkan_core.h"
30 virtual void* getRawData() = 0;
35 virtual VkFormat getFormat()
const = 0;
40 virtual int getCount()
const = 0;
45 virtual size_t getCapacity()
const = 0;
50 virtual void reserve(
size_t numElements) = 0;
64 template<
typename ELEMENTTYPE>
74 virtual void reserve(
size_t numElements)
override {
mData.reserve(numElements); }
85 void resize(
size_t numElements) {
mData.resize(numElements); }
106 void addData(
const ELEMENTTYPE& element) {
mData.emplace_back(element); }
113 void addData(
const ELEMENTTYPE* elements,
int numElements);
119 void setData(
const std::vector<ELEMENTTYPE>& values) {
setData(&(values.front()), values.size()); }
126 void setData(
const ELEMENTTYPE* elements,
int numElements);
131 virtual VkFormat
getFormat()
const override;
136 virtual int getCount()
const override {
return static_cast<int>(
mData.size()); }
180 template<
typename ELEMENTTYPE>
183 mData.resize(numElements);
184 memcpy(mData.data(), elements, numElements *
sizeof(ELEMENTTYPE));
187 template<
typename ELEMENTTYPE>
190 int cur_num_elements = mData.size();
191 mData.resize(cur_num_elements + numElements);
192 memcpy((
void*)&mData[cur_num_elements], elements, numElements *
sizeof(ELEMENTTYPE));
195 template<
typename ELEMENTTYPE>
198 return static_cast<void*
>(mData.data());
std::vector< ELEMENTTYPE > & getData()
Definition: vertexattribute.h:100
void setData(const std::vector< ELEMENTTYPE > &values)
Definition: vertexattribute.h:119
void addData(const ELEMENTTYPE &element)
Definition: vertexattribute.h:106
void clear()
Definition: vertexattribute.h:90
Definition: vertexattribute.h:65
virtual void * getRawData() override
Definition: vertexattribute.h:196
Definition: vertexattribute.h:20
std::string mAttributeID
Name/ID of the attribute.
Definition: vertexattribute.h:52
void resize(size_t numElements)
Definition: vertexattribute.h:85
virtual size_t getCapacity() const override
Definition: vertexattribute.h:79
const std::vector< ELEMENTTYPE > & getData() const
Definition: vertexattribute.h:95
virtual int getCount() const override
Definition: vertexattribute.h:136
ELEMENTTYPE & operator[](std::size_t index)
Definition: vertexattribute.h:143
Definition: templateapp.h:17
virtual void reserve(size_t numElements) override
Definition: vertexattribute.h:74
Definition: resource.h:19
const ELEMENTTYPE & operator[](std::size_t index) const
Definition: vertexattribute.h:150
virtual VkFormat getFormat() const override
std::vector< ELEMENTTYPE > mData
Actual typed data of the attribute.
Definition: vertexattribute.h:153