diff --git a/src/Buffer.h b/src/Buffer.h index c76260f3e..54af31cf4 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -237,6 +237,19 @@ class Buffer { setData(_defaultTarget, size, data, usage); } + /** + * @brief Set buffer data + * @param data Fixed-size array with data + * @param usage %Buffer usage + * + * Sets buffer data with default target. More convenient for setting + * data from fixed-size arrays than + * setData(GLsizeiptr, const GLvoid*, Usage). + */ + template inline void setData(const T(&data)[size], Usage usage) { + setData(_defaultTarget, data, usage); + } + /** * @brief Set buffer data * @param data Vector with data @@ -260,6 +273,19 @@ class Buffer { glBufferData(static_cast(target), size, data, static_cast(usage)); } + /** + * @brief Set buffer data + * @param target %Target + * @param data Fixed-size array with data + * @param usage %Buffer usage + * + * More convenient for setting data from fixed-size arrays than + * setData(Target, GLsizeiptr, const GLvoid*, Usage). + */ + template inline void setData(Target target, const T(&data)[size], Usage usage) { + setData(target, size*sizeof(T), data, usage); + } + /** * @brief Set buffer data * @param target %Target @@ -282,6 +308,19 @@ class Buffer { setSubData(_defaultTarget, offset, size, data); } + /** + * @brief Set buffer subdata + * @param offset Offset + * @param data Fixed-size array with data + * + * Sets buffer subdata with default target. More convenient for + * setting data from fixed-size arrays than + * setSubData(GLintptr, GLsizeiptr, const GLvoid*). + */ + template inline void setSubData(GLintptr offset, const T(&data)[size]) { + setSubData(_defaultTarget, offset, data); + } + /** * @brief Set buffer subdata * @param offset Offset @@ -305,6 +344,19 @@ class Buffer { glBufferSubData(static_cast(target), offset, size, data); } + /** + * @brief Set buffer subdata + * @param target %Target + * @param offset Offset + * @param data Fixed-size array with data + * + * More convenient for setting data from fixed-size arrays than + * setSubData(Target, GLintptr, GLsizeiptr, const GLvoid*). + */ + template inline void setSubData(Target target, GLintptr offset, const T(&data)[size]) { + setSubData(target, offset, size*sizeof(T), data); + } + /** * @brief Set buffer subdata * @param target %Target