Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
Buffer类 参考abstract

缓冲区. 更多...

#include <Buffer.h>

类 Buffer 继承关系图:
GLBuffer VKBuffer

Public 类型

enum class  Type { Vertex , Index , Uniform }
 缓冲区类型. 表明了缓冲区的用途.
 
enum class  Usage { Static , Dynamic , Stream }
 缓冲区使用方式.
 

Public 成员函数

 Buffer (size_t size, Type type, Usage usage)
 构造函数. 更多...
 
template<typename T >
void write (std::span< T > data, size_t offset=0)
 写入映射缓冲区. 更多...
 
void write (const void *data, size_t size, size_t offset=0)
 写入映射缓冲区. 更多...
 
void read (void *data, size_t size, size_t offset=0)
 读取映射缓冲区. 更多...
 
size_t get_size () const
 获取缓冲区大小, 单位: 字节.
 
Type get_type () const
 获取缓冲区类型.
 
Usage get_usage () const
 获取缓冲区使用方式.
 
void * get_data ()
 获取映射的缓冲区.
 
virtual void map (size_t size=-1, size_t offset=0)=0
 映射缓冲区到内存. 更多...
 
virtual void unmap ()=0
 取消映射. 更多...
 
virtual void flush (size_t size=-1, size_t offset=0)=0
 刷新映射缓冲区. 更多...
 

Protected 属性

size_t size_
 
Type type_
 
Usage usage_
 
void * data_ = nullptr
 

详细描述

缓冲区.

构造及析构函数说明

◆ Buffer()

Buffer::Buffer ( size_t  size,
Type  type,
Usage  usage 
)

构造函数.

参数
size缓冲区大小, 单位: 字节.
type缓冲区类型.
usage缓冲区使用方式.

成员函数说明

◆ flush()

virtual void Buffer::flush ( size_t  size = -1,
size_t  offset = 0 
)
pure virtual

刷新映射缓冲区.

参数
size要刷新的大小, 默认值: 全部.
offset偏移量, 单位: byte.

GLBuffer , 以及 VKBuffer 内被实现.

◆ map()

virtual void Buffer::map ( size_t  size = -1,
size_t  offset = 0 
)
pure virtual

映射缓冲区到内存.

参数
size要映射的大小, 默认值: 全部.
offset偏移量, 单位: byte.

GLBuffer , 以及 VKBuffer 内被实现.

◆ read()

void Buffer::read ( void *  data,
size_t  size,
size_t  offset = 0 
)

读取映射缓冲区.

参数
data要写入的缓冲区.
size要读取的大小, 单位: byte.
offset偏移量, 单位: byte.

◆ unmap()

virtual void Buffer::unmap ( )
pure virtual

取消映射.

GLBuffer , 以及 VKBuffer 内被实现.

◆ write() [1/2]

void Buffer::write ( const void *  data,
size_t  size,
size_t  offset = 0 
)

写入映射缓冲区.

参数
data要写入的数据.
size要写入的大小, 单位: byte.
offset偏移量, 单位: byte.

◆ write() [2/2]

template<typename T >
void Buffer::write ( std::span< T >  data,
size_t  offset = 0 
)

写入映射缓冲区.

参数
data要写入的数据.
offset偏移量, 单位: byte.

该类的文档由以下文件生成: