mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-26 09:22:34 +00:00 
			
		
		
		
	 59df2e62ee
			
		
	
	
		59df2e62ee
		
	
	
	
	
		
			
			For now, buffers are only implemented on the LibGL side, however in the future buffer objects should be stored in LibGPU.
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			684 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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);
 | |
| }
 | |
| 
 | |
| }
 |