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