Browse Source

Support for filling Buffer from std::array.

vectorfields
Vladimír Vondruš 14 years ago
parent
commit
c97d2c9049
  1. 21
      src/Buffer.h

21
src/Buffer.h

@ -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;

Loading…
Cancel
Save