ULRE/inc/hgl/graph/vulkan/VKVertexAttributeBinding.h

38 lines
1.4 KiB
C
Raw Normal View History

2019-04-26 23:46:03 +08:00
#ifndef HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE
2019-04-26 22:39:27 +08:00
#define HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE
#include<hgl/graph/vulkan/VK.h>
2020-09-05 17:54:21 +08:00
#include<hgl/type/String.h>
2019-04-26 22:39:27 +08:00
VK_NAMESPACE_BEGIN
/**
2019-04-26 23:46:03 +08:00
* <br>
* Material,(instance)
2019-04-26 22:39:27 +08:00
*/
class VertexAttributeBinding
{
uint32_t attr_count;
2019-04-26 22:39:27 +08:00
VkVertexInputBindingDescription *binding_list;
VkVertexInputAttributeDescription *attribute_list;
2019-04-26 22:39:27 +08:00
private:
friend class VertexShaderModule;
2019-04-26 22:39:27 +08:00
2020-09-05 17:54:21 +08:00
VertexAttributeBinding(const uint32_t,const VkVertexInputBindingDescription *,const VkVertexInputAttributeDescription *);
2019-04-26 22:39:27 +08:00
public:
~VertexAttributeBinding();
bool SetInstance(const uint binding,bool instance);
bool SetStride (const uint binding,const uint32_t & stride);
bool SetFormat (const uint binding,const VkFormat & format);
bool SetOffset (const uint binding,const uint32_t offset);
const uint32_t GetVertexAttrCount ()const{return attr_count;}
const VkVertexInputBindingDescription * GetVertexBindingList ()const{return binding_list;}
const VkVertexInputAttributeDescription * GetVertexAttributeList ()const{return attribute_list;}
2019-04-26 22:39:27 +08:00
};//class VertexAttributeBinding
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE