|
|
|
|
@ -20,6 +20,7 @@
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#include <cstddef> |
|
|
|
|
#include <array> |
|
|
|
|
#include <vector> |
|
|
|
|
|
|
|
|
|
#include "Magnum.h" |
|
|
|
|
@ -266,6 +267,11 @@ class Buffer {
|
|
|
|
|
setData(_defaultTarget, data, usage); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** @overload */ |
|
|
|
|
template<std::size_t size, class T> inline void setData(const std::array<T, size>& data, Usage usage) { |
|
|
|
|
setData(_defaultTarget, data, usage); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set buffer data |
|
|
|
|
* @param target %Target |
|
|
|
|
@ -307,6 +313,11 @@ class Buffer {
|
|
|
|
|
setData(target, data.size()*sizeof(T), data.data(), usage); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** @overload */ |
|
|
|
|
template<std::size_t size, class T> inline void setData(Target target, const std::array<T, size>& data, Usage usage) { |
|
|
|
|
setData(target, data.size()*sizeof(T), data.data(), usage); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set buffer subdata |
|
|
|
|
* @param offset Offset |
|
|
|
|
@ -346,6 +357,11 @@ class Buffer {
|
|
|
|
|
setSubData(_defaultTarget, offset, data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** @overload */ |
|
|
|
|
template<std::size_t size, class T> inline void setSubData(GLintptr offset, const std::array<T, size>& data) { |
|
|
|
|
setSubData(_defaultTarget, offset, data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set buffer subdata |
|
|
|
|
* @param target %Target |
|
|
|
|
@ -386,6 +402,11 @@ class Buffer {
|
|
|
|
|
setSubData(target, offset, data.size()*sizeof(T), data.data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** @overload */ |
|
|
|
|
template<std::size_t size, class T> inline void setSubData(Target target, GLintptr offset, const std::array<T, size>& data) { |
|
|
|
|
setSubData(target, offset, data.size()*sizeof(T), data.data()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
GLuint buffer; |
|
|
|
|
Target _defaultTarget; |
|
|
|
|
|