2019-04-09 02:02:43 +08:00
|
|
|
|
#ifndef HGL_GRAPH_VULKAN_COMMAND_BUFFER_INCLUDE
|
|
|
|
|
#define HGL_GRAPH_VULKAN_COMMAND_BUFFER_INCLUDE
|
|
|
|
|
|
|
|
|
|
#include"VK.h"
|
2019-04-16 02:23:03 +08:00
|
|
|
|
#include"VKVertexInput.h"
|
2019-04-09 02:02:43 +08:00
|
|
|
|
|
|
|
|
|
VK_NAMESPACE_BEGIN
|
2019-04-16 13:21:21 +08:00
|
|
|
|
|
2019-04-09 02:02:43 +08:00
|
|
|
|
class CommandBuffer
|
|
|
|
|
{
|
|
|
|
|
VkDevice device;
|
|
|
|
|
VkCommandPool pool;
|
|
|
|
|
VkCommandBuffer buf;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
CommandBuffer(VkDevice dev,VkCommandPool cp,VkCommandBuffer cb){device=dev;pool=cp;buf=cb;}
|
|
|
|
|
~CommandBuffer();
|
2019-04-16 02:23:03 +08:00
|
|
|
|
|
2019-04-16 13:21:21 +08:00
|
|
|
|
bool Bind(VertexInput *vi)
|
2019-04-16 02:23:03 +08:00
|
|
|
|
{
|
2019-04-16 13:21:21 +08:00
|
|
|
|
if(!vi)
|
|
|
|
|
return(false);
|
|
|
|
|
|
|
|
|
|
const List<VkBuffer> &buf_list=vi->GetBufferList();
|
|
|
|
|
|
|
|
|
|
if(buf_list.GetCount()<=0)
|
|
|
|
|
return(false);
|
|
|
|
|
|
|
|
|
|
constexpr VkDeviceSize zero_offsets[1]={0};
|
2019-04-16 02:23:03 +08:00
|
|
|
|
|
2019-04-16 13:21:21 +08:00
|
|
|
|
vkCmdBindVertexBuffers(buf,0,buf_list.GetCount(),buf_list.GetData(),zero_offsets);
|
2019-04-16 02:23:03 +08:00
|
|
|
|
|
2019-04-16 13:21:21 +08:00
|
|
|
|
return(true);
|
2019-04-16 02:23:03 +08:00
|
|
|
|
}
|
2019-04-09 02:02:43 +08:00
|
|
|
|
};//class CommandBuffer
|
|
|
|
|
VK_NAMESPACE_END
|
|
|
|
|
#endif//HGL_GRAPH_VULKAN_COMMAND_BUFFER_INCLUDE
|