From e3f0edd41844a9ed7e3024d8a060457bcee3b855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 26 Feb 2012 15:19:34 +0100 Subject: [PATCH] Convenience functions for setting buffer data from vector. --- src/Buffer.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/Buffer.h b/src/Buffer.h index 970a14a8a..5fa34f995 100644 --- a/src/Buffer.h +++ b/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 inline void setData(const std::vector& data, Usage usage) { + setData(_defaultTarget, data, usage); + } + /** * @brief Set buffer data * @param target %Target @@ -188,6 +199,16 @@ class Buffer { glBufferData(static_cast(target), size, data, static_cast(usage)); } + /** + * @brief Set buffer data + * @param target %Target + * @param data Vector with data + * @param usage %Buffer usage + */ + template inline void setData(Target target, const std::vector& 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 inline void setSubData(GLintptr offset, const std::vector& data) { + setSubData(_defaultTarget, offset, data); + } + /** * @brief Set buffer subdata * @param target %Target @@ -212,6 +244,16 @@ class Buffer { glBufferSubData(static_cast(target), offset, size, data); } + /** + * @brief Set buffer subdata + * @param target %Target + * @param offset Offset + * @param data Vector with data + */ + template inline void setSubData(Target target, GLintptr offset, const std::vector& data) { + setSubData(target, offset, data.size()*sizeof(T), data.data()); + } + private: GLuint buffer; Target _defaultTarget;