From 684a1ee71288a77f9e36028c11234b4e83b40dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 7 Oct 2012 17:14:38 +0200 Subject: [PATCH] Removed set*Data(Target, ...) functions from Buffer. They didn't make sense at all (and even less with DSA, where target doesn't need to be specified anywhere), the only usage in BufferedImage was misunderstood from the beginning. --- src/Buffer.h | 137 ++++++------------------------------------ src/BufferedImage.cpp | 2 +- 2 files changed, 19 insertions(+), 120 deletions(-) diff --git a/src/Buffer.h b/src/Buffer.h index 6d9b89ff9..57b4eebe4 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -74,9 +74,7 @@ class MAGNUM_EXPORT Buffer { /** * @brief %Buffer target * - * @see bind(Target), unbind(Target), - * setData(Target, GLsizeiptr, const GLvoid*, Usage), - * setSubData(Target, GLintptr, GLsizeiptr, const GLvoid*) + * @see bind(Target), unbind(Target) */ enum class Target: GLenum { /** Used for storing vertex attributes. */ @@ -170,7 +168,7 @@ class MAGNUM_EXPORT Buffer { /** * @brief %Buffer usage * - * @see setData(Target, GLsizeiptr, const GLvoid*, Usage) + * @see setData(GLsizeiptr, const GLvoid*, Usage) */ enum class Usage: GLenum { /** @@ -313,11 +311,11 @@ class MAGNUM_EXPORT Buffer { * @param data Pointer to data * @param usage %Buffer usage * - * Sets buffer data with default target. - * @see setData(Target, GLsizeiptr, const GLvoid*, Usage) + * @see bind(), @fn_gl{BufferData} */ inline void setData(GLsizeiptr size, const GLvoid* data, Usage usage) { - setData(_defaultTarget, size, data, usage); + bind(); + glBufferData(static_cast(_defaultTarget), size, data, static_cast(usage)); } /** @@ -325,13 +323,10 @@ class MAGNUM_EXPORT Buffer { * @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). - * @see setData(Target, GLsizeiptr, const GLvoid*, Usage) + * @see setData(GLsizeiptr, const GLvoid*, Usage). */ template inline void setData(const T(&data)[size], Usage usage) { - setData(_defaultTarget, data, usage); + setData(size*sizeof(T), data, usage); } /** @@ -339,62 +334,15 @@ class MAGNUM_EXPORT Buffer { * @param data Vector with data * @param usage %Buffer usage * - * Sets buffer data with default target. - * @see setData(Target, GLsizeiptr, const GLvoid*, Usage) + * @see setData(GLsizeiptr, const GLvoid*, Usage) */ template inline void setData(const std::vector& data, Usage usage) { - setData(_defaultTarget, data, usage); + setData(data.size()*sizeof(T), data.data(), usage); } /** @overload */ template inline void setData(const std::array& data, Usage usage) { - setData(_defaultTarget, data, usage); - } - - /** - * @brief Set buffer data - * @param target %Target - * @param size Data size - * @param data Pointer to data - * @param usage %Buffer usage - * - * @see bind(Target), @fn_gl{BufferData} - */ - inline void setData(Target target, GLsizeiptr size, const GLvoid* data, Usage usage) { - bind(target); - 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). - * - * @see 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 - * @param data Vector with data - * @param usage %Buffer usage - * - * @see setData(Target, GLsizeiptr, const GLvoid*, Usage) - */ - template inline void setData(Target target, const std::vector& data, Usage usage) { - setData(target, data.size()*sizeof(T), data.data(), usage); - } - - /** @overload */ - template inline void setData(Target target, const std::array& data, Usage usage) { - setData(target, data.size()*sizeof(T), data.data(), usage); + setData(data.size()*sizeof(T), data.data(), usage); } /** @@ -403,11 +351,11 @@ class MAGNUM_EXPORT Buffer { * @param size Data size * @param data Pointer to data * - * Sets buffer subdata with default target. - * @see setSubData(Target, GLintptr, GLsizeiptr, const GLvoid*) + * @see bind(), @fn_gl{BufferSubData} */ inline void setSubData(GLintptr offset, GLsizeiptr size, const GLvoid* data) { - setSubData(_defaultTarget, offset, size, data); + bind(); + glBufferSubData(static_cast(_defaultTarget), offset, size, data); } /** @@ -415,13 +363,10 @@ class MAGNUM_EXPORT Buffer { * @param offset Offset in the buffer * @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*). - * @see setSubData(Target, GLintptr, GLsizeiptr, const GLvoid*) + * @see setSubData(GLintptr, GLsizeiptr, const GLvoid*) */ template inline void setSubData(GLintptr offset, const T(&data)[size]) { - setSubData(_defaultTarget, offset, data); + setSubData(offset, size*sizeof(T), data); } /** @@ -429,61 +374,15 @@ class MAGNUM_EXPORT Buffer { * @param offset Offset in the buffer * @param data Vector with data * - * Sets buffer subdata with default target. - * @see setSubData(Target, GLintptr, GLsizeiptr, const GLvoid*) + * @see setSubData(GLintptr, GLsizeiptr, const GLvoid*) */ template inline void setSubData(GLintptr offset, const std::vector& data) { - setSubData(_defaultTarget, offset, data); + setSubData(offset, data.size()*sizeof(T), data.data()); } /** @overload */ template inline void setSubData(GLintptr offset, const std::array& data) { - setSubData(_defaultTarget, offset, data); - } - - /** - * @brief Set buffer subdata - * @param target %Target - * @param offset Offset in the buffer - * @param size Data size - * @param data Pointer to data - * - * @see bind(Target), @fn_gl{BufferSubData} - */ - inline void setSubData(Target target, GLintptr offset, GLsizeiptr size, const GLvoid* data) { - bind(target); - glBufferSubData(static_cast(target), offset, size, data); - } - - /** - * @brief Set buffer subdata - * @param target %Target - * @param offset Offset in the buffer - * @param data Fixed-size array with data - * - * More convenient for setting data from fixed-size arrays than - * setSubData(Target, GLintptr, GLsizeiptr, const GLvoid*). - * @see 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 - * @param offset Offset in the buffer - * @param data Vector with data - * - * @see setSubData(Target, GLintptr, GLsizeiptr, const GLvoid*) - */ - template inline void setSubData(Target target, GLintptr offset, const std::vector& data) { - setSubData(target, offset, data.size()*sizeof(T), data.data()); - } - - /** @overload */ - template inline void setSubData(Target target, GLintptr offset, const std::array& data) { - setSubData(target, offset, data.size()*sizeof(T), data.data()); + setSubData(offset, data.size()*sizeof(T), data.data()); } private: diff --git a/src/BufferedImage.cpp b/src/BufferedImage.cpp index 7a8b80936..54fdeb03a 100644 --- a/src/BufferedImage.cpp +++ b/src/BufferedImage.cpp @@ -21,7 +21,7 @@ template void BufferedImage::setData(const _components = components; _type = type; _size = size; - _buffer.setData(Buffer::Target::PixelPack, pixelSize(_components, _type)*size.product(), data, usage); + _buffer.setData(pixelSize(_components, _type)*size.product(), data, usage); } template class BufferedImage<1>;