void Buffer::storage(unsigned sz)
{
if(size>0)
- throw invalid_operation("Buffer::storage");
+ {
+ if(sz!=size)
+ throw incompatible_data("Buffer::storage");
+ return;
+ }
if(sz==0)
throw invalid_argument("Buffer::storage");
void *Buffer::map()
{
+ allocate();
if(ARB_map_buffer_range)
{
if(ARB_direct_state_access)