Serenity Operating System
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}