diff options
| author | Dan Goodliffe <dan.goodliffe@octal.co.uk> | 2026-03-10 09:40:37 +0000 |
|---|---|---|
| committer | Dan Goodliffe <dan.goodliffe@octal.co.uk> | 2026-03-10 10:23:51 +0000 |
| commit | b73a3c677171a13bdd7b0044071601647bfbfe67 (patch) | |
| tree | 31f3ff8371ee964dfb6e68226d8f7f835c46293a /lib/glMappedBufferWriter.h | |
| parent | Switch frame and render buffer to DSA helpers (diff) | |
| download | ilt-b73a3c677171a13bdd7b0044071601647bfbfe67.tar.bz2 ilt-b73a3c677171a13bdd7b0044071601647bfbfe67.tar.xz ilt-b73a3c677171a13bdd7b0044071601647bfbfe67.zip | |
Diffstat (limited to 'lib/glMappedBufferWriter.h')
| -rw-r--r-- | lib/glMappedBufferWriter.h | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/lib/glMappedBufferWriter.h b/lib/glMappedBufferWriter.h deleted file mode 100644 index 05540e4..0000000 --- a/lib/glMappedBufferWriter.h +++ /dev/null @@ -1,78 +0,0 @@ -#pragma once - -#include "special_members.h" -#include <cstddef> -#include <glad/gl.h> -#include <utility> - -template<typename T> class glMappedBufferWriter { -public: - using difference_type = std::ptrdiff_t; - - glMappedBufferWriter(GLenum target, GLuint buffer, size_t count) : - target {target}, data {[&]() { - glBindBuffer(target, buffer); - glBufferData(target, static_cast<GLsizeiptr>(sizeof(T) * count), nullptr, GL_DYNAMIC_DRAW); - return static_cast<T *>(glMapBuffer(target, GL_WRITE_ONLY)); - }()} - { - } - - ~glMappedBufferWriter() - { - if (target) { - glUnmapBuffer(target); - } - } - - glMappedBufferWriter(glMappedBufferWriter && other) noexcept : - target {std::exchange(other.target, 0)}, data {std::exchange(other.data, nullptr)} - { - } - - glMappedBufferWriter & - operator=(glMappedBufferWriter && other) noexcept - { - if (target) { - glUnmapBuffer(target); - } - target = std::exchange(other.target, 0); - data = std::exchange(other.data, nullptr); - return *this; - } - - NO_COPY(glMappedBufferWriter); - - glMappedBufferWriter & - operator++() - { - data++; - return *this; - } - - glMappedBufferWriter & - operator++(int) - { - glMappedBufferWriter rtn {data}; - data++; - return rtn; - } - - T & - operator*() - { - return *data; - } - - T * - operator->() const - { - return data; - } - -private: - explicit glMappedBufferWriter(T * data) : target {0}, data {data} { } - - GLenum target; - T * data; -}; |
