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);
|
|
|
|
|
|
|
|
|
|
void Write(VkPipelineVertexInputStateCreateInfo &vis)const;
|
|
|
|
|
};//class VertexAttributeBinding
|
|
|
|
|
VK_NAMESPACE_END
|
|
|
|
|
#endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE
|