ladybird/Userland/Libraries/LibGL/Buffer/Buffer.cpp
cflip 59df2e62ee LibGL: Add simple implementation of buffer objects
For now, buffers are only implemented on the LibGL side, however in the
future buffer objects should be stored in LibGPU.
2022-11-26 09:38:13 +01:00

41 lines
684 B
C++

/*
* Copyright (c) 2022, cflip <cflip@cflip.net>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "Buffer.h"
namespace GL {
ErrorOr<void> Buffer::set_data(void const* data, size_t size)
{
if (!data) {
m_data = TRY(ByteBuffer::create_uninitialized(size));
return {};
}
m_data = TRY(ByteBuffer::copy(data, size));
return {};
}
void Buffer::replace_data(void const* data, size_t offset, size_t size)
{
m_data.overwrite(offset, data, size);
}
size_t Buffer::size()
{
return m_data.size();
}
void* Buffer::data()
{
return m_data.data();
}
void* Buffer::offset_data(size_t offset)
{
return m_data.offset_pointer(offset);
}
}