summaryrefslogtreecommitdiff
path: root/lib/glMappedBufferWriter.h
diff options
context:
space:
mode:
authorDan Goodliffe <dan.goodliffe@octal.co.uk>2026-03-10 09:40:37 +0000
committerDan Goodliffe <dan.goodliffe@octal.co.uk>2026-03-10 10:23:51 +0000
commitb73a3c677171a13bdd7b0044071601647bfbfe67 (patch)
tree31f3ff8371ee964dfb6e68226d8f7f835c46293a /lib/glMappedBufferWriter.h
parentSwitch frame and render buffer to DSA helpers (diff)
downloadilt-b73a3c677171a13bdd7b0044071601647bfbfe67.tar.bz2
ilt-b73a3c677171a13bdd7b0044071601647bfbfe67.tar.xz
ilt-b73a3c677171a13bdd7b0044071601647bfbfe67.zip
Refactor glMappedBufferWriter into a DSA wrapper for std::spanHEADmain
Diffstat (limited to 'lib/glMappedBufferWriter.h')
-rw-r--r--lib/glMappedBufferWriter.h78
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;
-};