Browse Source

Convenience functions for setting buffer data from vector.

pull/279/head
Vladimír Vondruš 14 years ago
parent
commit
e3f0edd418
  1. 42
      src/Buffer.h

42
src/Buffer.h

@ -176,6 +176,17 @@ class Buffer {
setData(_defaultTarget, size, data, usage);
}
/**
* @brief Set buffer data
* @param data Vector with data
* @param usage %Buffer usage
*
* Sets buffer data with default target.
*/
template<class T> inline void setData(const std::vector<T>& data, Usage usage) {
setData(_defaultTarget, data, usage);
}
/**
* @brief Set buffer data
* @param target %Target
@ -188,6 +199,16 @@ class Buffer {
glBufferData(static_cast<GLenum>(target), size, data, static_cast<GLenum>(usage));
}
/**
* @brief Set buffer data
* @param target %Target
* @param data Vector with data
* @param usage %Buffer usage
*/
template<class T> inline void setData(Target target, const std::vector<T>& data, Usage usage) {
setData(target, data.size()*sizeof(T), data.data(), usage);
}
/**
* @brief Set buffer subdata
* @param offset Offset
@ -200,6 +221,17 @@ class Buffer {
setSubData(_defaultTarget, offset, size, data);
}
/**
* @brief Set buffer subdata
* @param offset Offset
* @param data Vector with data
*
* Sets buffer subdata with default target.
*/
template<class T> inline void setSubData(GLintptr offset, const std::vector<T>& data) {
setSubData(_defaultTarget, offset, data);
}
/**
* @brief Set buffer subdata
* @param target %Target
@ -212,6 +244,16 @@ class Buffer {
glBufferSubData(static_cast<GLenum>(target), offset, size, data);
}
/**
* @brief Set buffer subdata
* @param target %Target
* @param offset Offset
* @param data Vector with data
*/
template<class T> inline void setSubData(Target target, GLintptr offset, const std::vector<T>& data) {
setSubData(target, offset, data.size()*sizeof(T), data.data());
}
private:
GLuint buffer;
Target _defaultTarget;

Loading…
Cancel
Save