ULRE/example/Vulkan/VKVertexAttributeBinding.h

40 lines
1.0 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"VK.h"
#include<hgl/type/BaseString.h>
VK_NAMESPACE_BEGIN
class VertexBuffer;
class IndexBuffer;
class Shader;
/**
2019-04-26 23:46:03 +08:00
* <br>
* MaterialInstance,(instance)
2019-04-26 22:39:27 +08:00
*/
class VertexAttributeBinding
{
Shader *shader;
VkVertexInputBindingDescription *binding_list;
private:
friend class Shader;
VertexAttributeBinding(Shader *);
public:
~VertexAttributeBinding();
bool SetInstance(const uint index,bool instance);
bool SetInstance(const UTF8String &name,bool instance);
2019-04-27 00:48:49 +08:00
bool SetStride(const uint index,uint32_t stride);
bool SetStride(const UTF8String &name,uint32_t stride);
2019-04-26 22:39:27 +08:00
void Write(VkPipelineVertexInputStateCreateInfo &vis)const;
};//class VertexAttributeBinding
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE