X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbuffer.cpp;h=2b18d7d7d7d3bf0a47611207850aec5aabc4cc9d;hp=100e4b2ea40a08b4858b41abf043f7b4d84c11eb;hb=9319f1c8ed99866966f20fbab952da673af2257e;hpb=08e19bc2b4eba572bc7699378cf55cd8772ac67e diff --git a/source/buffer.cpp b/source/buffer.cpp index 100e4b2e..2b18d7d7 100644 --- a/source/buffer.cpp +++ b/source/buffer.cpp @@ -46,6 +46,7 @@ void Buffer::require_buffer_type(BufferType type) void Buffer::set_usage(BufferUsage u) { + // TODO OpenGL ES 2.0 doesn't support read or copy usages usage = u; } @@ -98,22 +99,27 @@ void *Buffer::map(BufferAccess access) } else if(ARB_direct_state_access) return glMapNamedBuffer(id, access); - else + else if(OES_mapbuffer) { BindRestore _bind(this, type); return glMapBuffer(type, access); } + else + throw invalid_operation("Buffer::map"); } bool Buffer::unmap() { + // TODO check if it's mapped if(ARB_direct_state_access) return glUnmapNamedBuffer(id); - else + else if(OES_mapbuffer) { BindRestore _bind(this, type); return glUnmapBuffer(type); } + else + return true; } void Buffer::bind_to(BufferType t) const