]> git.tdb.fi Git - libs/gl.git/commitdiff
Always use ARB_map_buffer_range for mapping buffers
authorMikko Rasa <tdb@tdb.fi>
Wed, 11 Aug 2021 15:02:28 +0000 (18:02 +0300)
committerMikko Rasa <tdb@tdb.fi>
Wed, 11 Aug 2021 15:02:28 +0000 (18:02 +0300)
source/core/buffer.cpp

index 5b3339a1d66721c51d417494ab77f80c6a58d78c..013a136a560a2a5866ee6bf7c343b0102cf9e246 100644 (file)
@@ -148,26 +148,16 @@ BufferRange *Buffer::create_range(unsigned s, unsigned o)
 
 void *Buffer::map()
 {
+       static Require _req(ARB_map_buffer_range);
+
        allocate();
-       if(ARB_map_buffer_range)
-       {
-               if(ARB_direct_state_access)
-                       return glMapNamedBufferRange(id, 0, size, GL_MAP_READ_BIT|GL_MAP_WRITE_BIT);
-               else
-               {
-                       BindRestore _bind(this, type);
-                       return glMapBufferRange(type, 0, size, GL_MAP_READ_BIT|GL_MAP_WRITE_BIT);
-               }
-       }
-       else if(ARB_direct_state_access)
-               return glMapNamedBuffer(id, GL_READ_WRITE);
-       else if(OES_mapbuffer)
+       if(ARB_direct_state_access)
+               return glMapNamedBufferRange(id, 0, size, GL_MAP_READ_BIT|GL_MAP_WRITE_BIT);
+       else
        {
                BindRestore _bind(this, type);
-               return glMapBuffer(type, GL_READ_WRITE);
+               return glMapBufferRange(type, 0, size, GL_MAP_READ_BIT|GL_MAP_WRITE_BIT);
        }
-       else
-               throw invalid_operation("Buffer::map");
 }
 
 bool Buffer::unmap()