Serenity Operating System
at master 41 lines 684 B view raw
1/* 2 * Copyright (c) 2022, cflip <cflip@cflip.net> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include "Buffer.h" 8 9namespace GL { 10 11ErrorOr<void> Buffer::set_data(void const* data, size_t size) 12{ 13 if (!data) { 14 m_data = TRY(ByteBuffer::create_uninitialized(size)); 15 return {}; 16 } 17 m_data = TRY(ByteBuffer::copy(data, size)); 18 return {}; 19} 20 21void Buffer::replace_data(void const* data, size_t offset, size_t size) 22{ 23 m_data.overwrite(offset, data, size); 24} 25 26size_t Buffer::size() 27{ 28 return m_data.size(); 29} 30 31void* Buffer::data() 32{ 33 return m_data.data(); 34} 35 36void* Buffer::offset_data(size_t offset) 37{ 38 return m_data.offset_pointer(offset); 39} 40 41}