28 #ifndef ZMOL_BUFFER_OBJECT_HPP
29 #define ZMOL_BUFFER_OBJECT_HPP
31 #include "opengl3.hpp"
32 #include "noncopyable.hpp"
60 explicit buffer_object(GLenum
const p_target, GLenum
const p_usage);
106 void upload_data(
void const *p_data,
unsigned long const p_num_bytes);
114 void resize(
unsigned long const p_num_bytes);
126 GLenum m_target, m_usage;
127 unsigned long m_size;
185 void flush_subrange(GLintptr
const p_offset, GLsizeiptr p_length);
194 GLvoid *m_mapped_pointer;
195 GLintptr m_flush_offset;
196 GLsizeiptr m_flush_length;
197 bool m_explicit_flush;
202 void bind_to_indexed_target(
buffer_object &p_bufobj, GLenum
const p_target, GLuint
const p_index);
204 void bind_to_indexed_target(
buffer_object &p_bufobj, GLenum
const p_target, GLuint
const p_index, GLintptr
const p_offset, GLsizeiptr
const p_size);