/** * @glsymbols * @glfunref{FlushMappedNamedBufferRange} * * @pre Mapped() * * @throws Error */ void FlushRange(BufferSize offset, BufferSize length) { OGLPLUS_GLFUNC(FlushMappedNamedBufferRange)( _name, GLintptr(offset.Get()), GLsizeiptr(length.Get()) ); OGLPLUS_CHECK( FlushMappedNamedBufferRange, ObjectError, Object(BufferName(_name)) ); }
/** * @param buffer use the specified buffer * @param offset map offset in units of Type * @param size map size in units of Type * @param access the access specifier for the buffer mapping * * @throws Error */ DSABufferRawMapEXT( BufferName buffer, BufferSize offset, BufferSize size, Bitfield<BufferMapAccess> access ): _offset(GLintptr(offset.Get())) , _size(GLsizeiptr(size.Get())) , _ptr( OGLPLUS_GLFUNC(MapNamedBufferRangeEXT)( GetGLName(buffer), _offset, _size, GLbitfield(access) ) ), _buf_name(GetGLName(buffer)) { OGLPLUS_CHECK( MapNamedBufferRangeEXT, ObjectError, Object(buffer) ); }
/** * @see Data * @see SubData * @throws Error * * @glvoereq{3,1,ARB,copy_buffer} */ static void CopySubData( BufferName readbuffer, BufferName writebuffer, BufferSize readoffset, BufferSize writeoffset, BufferSize size ) { OGLPLUS_GLFUNC(CopyNamedBufferSubData)( GetGLName(readbuffer), GetGLName(writebuffer), GLintptr(readoffset.Get()), GLintptr(writeoffset.Get()), GLsizeiptr(size.Get()) ); OGLPLUS_CHECK( CopyNamedBufferSubData, ObjectPairError, Subject(readbuffer). Object(writebuffer) ); }
void ClearSubData( PixelDataInternalFormat internal_format, BufferSize offset, BufferSize size, PixelDataFormat format, const GLtype* data ) const { OGLPLUS_GLFUNC(ClearNamedBufferSubData)( _name, GLenum(internal_format), GLintptr(offset.Get()), GLsizeiptr(size.Get()), GLenum(format), GLenum(GetDataType<GLtype>()), data ); OGLPLUS_CHECK( ClearNamedBufferSubData, ObjectError, Object(*this). EnumParam(internal_format) ); }
/** * @see Data * @see CopySubData * @throws Error */ void SubData( BufferSize offset, const BufferData& data ) const { OGLPLUS_GLFUNC(NamedBufferSubData)( _name, GLintptr(offset.Get()), GLsizei(data.Size()), data.Data() ); OGLPLUS_CHECK( NamedBufferSubData, ObjectError, Object(*this) ); }
/** This member function allows to (re-)allocate the buffer storage * to the specifies @p size, without uploading any data. * * @glsymbols * @glfunref{NamedBufferData} * * @see SubData * @throws Error */ void Resize( BufferSize size, BufferUsage usage = BufferUsage::StaticDraw ) { OGLPLUS_GLFUNC(NamedBufferData)( _name, size.Get(), nullptr, GLenum(usage) ); OGLPLUS_CHECK( NamedBufferData, ObjectError, Object(*this). EnumParam(usage) ); }