From 151e1af1e4407ac48d7df68c3b974b6b092b1d77 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sat, 27 Apr 2019 00:48:49 +0800 Subject: [PATCH] =?UTF-8?q?VAB=E5=A2=9E=E5=8A=A0SetStride=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/VKVertexAttributeBinding.cpp | 14 ++++++++++++ example/Vulkan/VKVertexAttributeBinding.h | 3 +++ example/Vulkan/VKVertexInput.h | 25 --------------------- 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/example/Vulkan/VKVertexAttributeBinding.cpp b/example/Vulkan/VKVertexAttributeBinding.cpp index 94abeab8..f26a5ef8 100644 --- a/example/Vulkan/VKVertexAttributeBinding.cpp +++ b/example/Vulkan/VKVertexAttributeBinding.cpp @@ -38,6 +38,20 @@ bool VertexAttributeBinding::SetInstance(const UTF8String &name,bool instance) return SetInstance(shader->GetBinding(name),instance); } +bool VertexAttributeBinding::SetStride(const uint index,uint32_t stride) +{ + if(index>=shader->GetAttrCount())return(false); + + binding_list[index].stride=stride; + + return(true); +} + +bool VertexAttributeBinding::SetStride(const UTF8String &name,uint32_t stride) +{ + return SetStride(shader->GetBinding(name),stride); +} + void VertexAttributeBinding::Write(VkPipelineVertexInputStateCreateInfo &vis_create_info) const { vis_create_info.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; diff --git a/example/Vulkan/VKVertexAttributeBinding.h b/example/Vulkan/VKVertexAttributeBinding.h index 91fb99b1..bd8f5d04 100644 --- a/example/Vulkan/VKVertexAttributeBinding.h +++ b/example/Vulkan/VKVertexAttributeBinding.h @@ -30,6 +30,9 @@ public: bool SetInstance(const uint index,bool instance); bool SetInstance(const UTF8String &name,bool instance); + bool SetStride(const uint index,uint32_t stride); + bool SetStride(const UTF8String &name,uint32_t stride); + void Write(VkPipelineVertexInputStateCreateInfo &vis)const; };//class VertexAttributeBinding VK_NAMESPACE_END diff --git a/example/Vulkan/VKVertexInput.h b/example/Vulkan/VKVertexInput.h index 8e964610..a252a73e 100644 --- a/example/Vulkan/VKVertexInput.h +++ b/example/Vulkan/VKVertexInput.h @@ -8,31 +8,6 @@ class VertexBuffer; class IndexBuffer; class Shader; -/** - * 顶点输入状态实例
- * 本对象用于传递给MaterialInstance,用于已经确定好顶点格式的情况下,依然可修改部分设定(如instance)。 - */ -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 VertexInputStateInstance - /** * 顶点输入配置,负责具体的buffer绑定,提供给CommandBuffer使用
* 注:本引擎不支持一个Buffer中包括多种数据