Backend-agnostic GPU buffer for compute (storage) or CPU staging transfers. Squirrel-owned; derived class destroys GPU resources in destructor. 更多...
#include <GpuBuffer.h>
Public 成员函数 | |
| GpuBuffer ()=default | |
| Constructs a GpuBuffer. | |
| virtual | ~GpuBuffer ()=default |
| Releases GpuBuffer resources. | |
| GpuBuffer (const GpuBuffer &)=delete | |
| GpuBuffer & | operator= (const GpuBuffer &)=delete |
| virtual int | getSize () const =0 |
| Byte length of the owned buffer. | |
| virtual std::string | getUsage () const =0 |
| Returns the usage. | |
| virtual void | writeData (data::ByteData *data, int dstOffset=0)=0 |
| Writes data. | |
| virtual data::ByteData * | readData (int srcOffset=0, int size=-1)=0 |
| Reads data. | |
| virtual void | writeFloat32 (int floatIndex, float value)=0 |
| Writes float 32. | |
| virtual float | readFloat32 (int floatIndex)=0 |
| Reads float 32. | |
| virtual void | fillFloat32 (float value)=0 |
| Fill float 32. | |
| virtual void | writeFloat32s (const float *data, int count, int startIndex=0)=0 |
| Bulk float upload/download (one transfer). startIndex is in floats. | |
| virtual void | readFloat32s (float *out, int count, int startIndex=0) const =0 |
| Reads float 32 s. | |
| virtual void | uploadBytes (const void *src, uint64_t nbytes, uint64_t dstOffset=0)=0 |
| Uploads bytes. | |
| virtual void | downloadBytes (void *dst, uint64_t nbytes, uint64_t srcOffset=0) const =0 |
| Downloads bytes. | |
| virtual GpuResidentBufferView | residentView () const |
| Return a transient non-owning native view for same-device rendering. Unsupported/test buffers return an Unknown view. The buffer owns the handle and must outlive every frame command that consumes the returned view. | |
详细描述
Backend-agnostic GPU buffer for compute (storage) or CPU staging transfers. Squirrel-owned; derived class destroys GPU resources in destructor.
在文件 GpuBuffer.h 第 18 行定义.
构造及析构函数说明
◆ GpuBuffer() [1/2]
|
default |
Constructs a GpuBuffer.
◆ ~GpuBuffer()
|
virtualdefault |
Releases GpuBuffer resources.
◆ GpuBuffer() [2/2]
|
delete |
成员函数说明
◆ downloadBytes()
|
pure virtual |
Downloads bytes.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
◆ fillFloat32()
|
pure virtual |
Fill float 32.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
被这些函数引用 eve::virtualgeometry::vgUpdate().
◆ getSize()
|
pure virtual |
Byte length of the owned buffer.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
被这些函数引用 eve::gpgpu::ShaderSystem::downloadRange(), eve::gpgpu::ShaderSystem::ensureBuffer(), eve::gpgpu::packScriptEntityFloatsRange(), eve::gpgpu::unpackScriptEntityFloatsRange() , 以及 eve::gpgpu::ShaderSystem::uploadRange().
◆ getUsage()
|
pure virtual |
Returns the usage.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
◆ operator=()
◆ readData()
|
pure virtual |
Reads data.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
◆ readFloat32()
|
pure virtual |
Reads float 32.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
◆ readFloat32s()
|
pure virtual |
Reads float 32 s.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
被这些函数引用 eve::gpgpu::ShaderSystem::download(), eve::gpgpu::ShaderSystem::downloadRange() , 以及 eve::gpgpu::unpackScriptEntityFloatsRange().
◆ residentView()
|
inlinevirtual |
Return a transient non-owning native view for same-device rendering. Unsupported/test buffers return an Unknown view. The buffer owns the handle and must outlive every frame command that consumes the returned view.
被 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 重载.
在文件 GpuBuffer.h 第 60 行定义.
◆ uploadBytes()
|
pure virtual |
Uploads bytes.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
◆ writeData()
|
pure virtual |
Writes data.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
◆ writeFloat32()
|
pure virtual |
Writes float 32.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
◆ writeFloat32s()
|
pure virtual |
Bulk float upload/download (one transfer). startIndex is in floats.
在 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.
被这些函数引用 eve::gpgpu::packScriptEntityFloatsRange(), eve::gpgpu::ShaderSystem::upload() , 以及 eve::gpgpu::ShaderSystem::uploadRange().
该类的文档由以下文件生成:
- src/modules/gpgpu/GpuBuffer.h