add VKMemoryAllocator
This commit is contained in:
@@ -1,38 +1,39 @@
|
||||
#ifndef HGL_GRAPH_VULKAN_ARRAY_BUFFER_INCLUDE
|
||||
#ifndef HGL_GRAPH_VULKAN_ARRAY_BUFFER_INCLUDE
|
||||
#define HGL_GRAPH_VULKAN_ARRAY_BUFFER_INCLUDE
|
||||
|
||||
#include<hgl/graph/VKBuffer.h>
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
/**
|
||||
* GPU<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><br>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><EFBFBD>instance<EFBFBD><EFBFBD>
|
||||
* GPU数据阵列缓冲区<br>
|
||||
* 它用于储存多份相同格式的数据,常用于多物件渲染,instance等
|
||||
*/
|
||||
class GPUArrayBuffer
|
||||
{
|
||||
protected:
|
||||
|
||||
uint32_t item_size; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
uint32_t alloc_count; ///<<3C>ܼƷ<DCBC><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
|
||||
uint32_t count; ///<ʵ<><CAB5>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
|
||||
GPUDevice * device;
|
||||
|
||||
GPUBuffer * buf_gpu; ///<ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GPU<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint32_t item_size; ///<单个数据长度
|
||||
uint32_t alloc_count; ///<总计分配的数据个数
|
||||
uint32_t count; ///<实际使用的数据个数
|
||||
uint32_t total_bytes; ///<总字节数
|
||||
|
||||
GPUBuffer * buf_gpu; ///<实际数据GPU缓冲区
|
||||
uint8 * buf_cpu;
|
||||
uint32_t * offset; ///<<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD>Ƶ<EFBFBD>ַ
|
||||
uint32_t * offset; ///<数据偏移地址
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* <20><><EFBFBD><EFBFBD>캯<EFBFBD><ECBAAF>
|
||||
* @param s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||
* @param c <20><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
|
||||
*/
|
||||
GPUArrayBuffer(const uint32_t s=0,const uint32_t c=0);
|
||||
GPUArrayBuffer(GPUDevice *,const uint32_t s=0,const uint32_t c=0);
|
||||
virtual ~GPUArrayBuffer();
|
||||
|
||||
void Clear(); ///<<EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Clear(); ///<清空缓冲区
|
||||
|
||||
bool Init(const uint32_t); ///<初始化并分配空间
|
||||
};//class GPUArrayBuffer
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
||||
|
Reference in New Issue
Block a user