CORRADE_ASSERT(Implementation::imageDataSize(*this)<=data.size(),"BufferImage::BufferImage(): bad image data size, got"<<data.size()<<"but expected at least"<<Implementation::imageDataSize(*this),);
CORRADE_ASSERT(Implementation::imageDataSize(*this)<=data.size(),"BufferImage::setData(): bad image data size, got"<<data.size()<<"but expected at least"<<Implementation::imageDataSize(*this),);
_buffer.setData(data,usage);
/* Keep the old storage if zero-sized nullptr buffer was passed */
if(data.data()==nullptr&&data.size()==0)
CORRADE_ASSERT(Implementation::imageDataSize(*this)<=_dataSize,"BufferImage::setData(): bad current storage size, got"<<_dataSize<<"but expected at least"<<Implementation::imageDataSize(*this),);
else{
CORRADE_ASSERT(Implementation::imageDataSize(*this)<=data.size(),"BufferImage::setData(): bad image data size, got"<<data.size()<<"but expected at least"<<Implementation::imageDataSize(*this),);