MOS
buffer.hpp
1 #pragma once
2 
3 #include <chrono>
4 #include <glad/glad.h>
5 
6 namespace mos::gl {
7 
8 class Buffer {
9  friend class Renderer;
10  friend class Vertex_array;
11 public:
12  using Time_point = std::chrono::time_point<std::chrono::system_clock,
13  std::chrono::nanoseconds>;
14 private:
15  Buffer(GLenum type, GLsizeiptr size, const void *data, GLenum hint,
16  Time_point modified);
17 public:
18  Buffer(const Buffer &buffer) = delete;
19  Buffer(Buffer &&buffer) noexcept;
20  Buffer &operator=(const Buffer &buffer) = delete;
21  Buffer &operator=(Buffer &&buffer) noexcept;
22  ~Buffer();
23 
24  GLuint id{0};
25  Time_point modified;
26 
27 private:
28  void release();
29 };
30 }
Definition: buffer.hpp:8
Definition: array_buffers.hpp:5
Render geometry shapes with OpenGL.
Definition: renderer.hpp:40
Definition: vertex_array.hpp:10