-void *Buffer::map()
-{
- static Require _req(ARB_map_buffer_range);
-
- allocate();
- if(ARB_direct_state_access)
- return glMapNamedBufferRange(id, 0, size, GL_MAP_READ_BIT|GL_MAP_WRITE_BIT);
- else
- {
- glBindBuffer(GL_ARRAY_BUFFER, id);
- void *result = glMapBufferRange(GL_ARRAY_BUFFER, 0, size, GL_MAP_READ_BIT|GL_MAP_WRITE_BIT);
- glBindBuffer(GL_ARRAY_BUFFER, 0);
- return result;
- }
-}
-
-bool Buffer::unmap()
-{
- // TODO check if it's mapped
- if(ARB_direct_state_access)
- return glUnmapNamedBuffer(id);
- else if(OES_mapbuffer)
- {
- glBindBuffer(GL_ARRAY_BUFFER, id);
- bool result = glUnmapBuffer(GL_ARRAY_BUFFER);
- glBindBuffer(GL_ARRAY_BUFFER, 0);
- return result;
- }
- else
- return true;
-}
-
-void Buffer::set_debug_name(const string &name)
-{
-#ifdef DEBUG
- if(KHR_debug)
- glObjectLabel(GL_BUFFER, id, name.size(), name.c_str());
-#else
- (void)name;
-#endif
-}
-