58 lines
1.1 KiB
C++
58 lines
1.1 KiB
C++
#pragma once
|
|
|
|
VK_NAMESPACE_BEGIN
|
|
class VBOList
|
|
{
|
|
uint32_t binding_count;
|
|
VkBuffer *buffer_list;
|
|
VkDeviceSize *buffer_offset;
|
|
|
|
uint32_t write_count;
|
|
|
|
friend class RenderCmdBuffer;
|
|
|
|
public:
|
|
|
|
VBOList(const uint32 bc)
|
|
{
|
|
binding_count=bc;
|
|
buffer_list=new VkBuffer[binding_count];
|
|
buffer_offset=new VkDeviceSize[binding_count];
|
|
|
|
write_count=0;
|
|
}
|
|
|
|
~VBOList()
|
|
{
|
|
delete[] buffer_offset;
|
|
delete[] buffer_list;
|
|
}
|
|
|
|
void Restart()
|
|
{
|
|
write_count=0;
|
|
}
|
|
|
|
const bool IsFull()const
|
|
{
|
|
return write_count>=binding_count;
|
|
}
|
|
|
|
void Add(const VkBuffer buf,const VkDeviceSize offset)
|
|
{
|
|
buffer_list[write_count]=buf;
|
|
buffer_offset[write_count]=offset;
|
|
|
|
++write_count;
|
|
}
|
|
|
|
void Add(const VkBuffer *buf,const VkDeviceSize *offset,const uint32_t count)
|
|
{
|
|
hgl_cpy(buffer_list +write_count,buf, count);
|
|
hgl_cpy(buffer_offset+write_count,offset,count);
|
|
|
|
write_count+=count;
|
|
}
|
|
};//class VBOList
|
|
VK_NAMESPACE_END
|