From 7eedffe8ed548db418971dd15233db8a9327f50d Mon Sep 17 00:00:00 2001 From: hyzboy Date: Mon, 20 Jul 2020 17:31:33 +0800 Subject: [PATCH] Codes layout --- inc/hgl/graph/shader/ShaderResource.h | 36 +++++++++++++-------------- inc/hgl/graph/vulkan/VK.h | 2 ++ inc/hgl/graph/vulkan/VKDevice.h | 6 ++--- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/inc/hgl/graph/shader/ShaderResource.h b/inc/hgl/graph/shader/ShaderResource.h index 9ab53ed5..c98d03ce 100644 --- a/inc/hgl/graph/shader/ShaderResource.h +++ b/inc/hgl/graph/shader/ShaderResource.h @@ -10,16 +10,16 @@ VK_NAMESPACE_BEGIN AnsiString name; uint location; - uint base_type; - uint component; + uint base_type; ///<基本类型(如vec4中的vec) + uint component; ///<成份数量(如vec4中的4) - VkFormat format; + VkFormat format; ///<对应的Vulkan格式(如vec4对应的FMT_RGBA32F) uint binding; };//struct ShaderStage - using ShaderStageList=ObjectList; - using ShaderBindingList=List; + using ShaderStageList =ObjectList; + using ShaderBindingList =List; struct ShaderDescriptorList { @@ -58,22 +58,22 @@ VK_NAMESPACE_BEGIN ShaderResource(const void *,const VkShaderStageFlagBits &,const void *,const uint32); virtual ~ShaderResource(); - const VkShaderStageFlagBits GetStage()const{return stage_flag;} + const VkShaderStageFlagBits GetStage ()const {return stage_flag;} - const uint32_t *GetCode ()const{return (uint32_t *)spv_data;} - const uint32_t GetCodeSize ()const{return spv_size;} + const uint32_t * GetCode ()const {return (uint32_t *)spv_data;} + const uint32_t GetCodeSize ()const {return spv_size;} - ShaderStageList &GetStageInputs(){return stage_inputs;} - ShaderStageList &GetStageOutputs(){return stage_outputs;} + ShaderStageList & GetStageInputs () {return stage_inputs;} + ShaderStageList & GetStageOutputs () {return stage_outputs;} - const uint GetStageInputCount()const{return stage_inputs.GetCount();} - const uint GetStageOutputCount()const{return stage_outputs.GetCount();} + const uint GetStageInputCount ()const {return stage_inputs.GetCount();} + const uint GetStageOutputCount ()const {return stage_outputs.GetCount();} - const ShaderStage * GetStageInput (const AnsiString &)const; - const int GetStageInputBinding(const AnsiString &)const; + const ShaderStage * GetStageInput (const AnsiString &)const; + const int GetStageInputBinding(const AnsiString &)const; - const ShaderDescriptorList *GetDescriptorList()const{return descriptor_list;} - ShaderDescriptorList *GetDescriptorList(VkDescriptorType desc_type) + const ShaderDescriptorList * GetDescriptorList ()const {return descriptor_list;} + ShaderDescriptorList * GetDescriptorList (VkDescriptorType desc_type) { if(desc_typeVK_DESCRIPTOR_TYPE_END_RANGE)return nullptr; @@ -81,8 +81,8 @@ VK_NAMESPACE_BEGIN return descriptor_list+desc_type; } - ShaderDescriptorList &GetUBO(){return descriptor_list[VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER];} - ShaderDescriptorList &GetSSBO(){return descriptor_list[VK_DESCRIPTOR_TYPE_STORAGE_BUFFER];} + ShaderDescriptorList &GetUBO (){return descriptor_list[VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER];} + ShaderDescriptorList &GetSSBO (){return descriptor_list[VK_DESCRIPTOR_TYPE_STORAGE_BUFFER];} ShaderDescriptorList &GetSampler(){return descriptor_list[VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER];} const int GetBinding (VkDescriptorType desc_type,const AnsiString &name)const; diff --git a/inc/hgl/graph/vulkan/VK.h b/inc/hgl/graph/vulkan/VK.h index 2986f142..334fa38c 100644 --- a/inc/hgl/graph/vulkan/VK.h +++ b/inc/hgl/graph/vulkan/VK.h @@ -44,6 +44,8 @@ class RenderPass; class Fence; class Semaphore; +struct ShaderStage; + class ShaderModule; class ShaderModuleManage; class VertexShaderModule; diff --git a/inc/hgl/graph/vulkan/VKDevice.h b/inc/hgl/graph/vulkan/VKDevice.h index 13436886..9657e445 100644 --- a/inc/hgl/graph/vulkan/VKDevice.h +++ b/inc/hgl/graph/vulkan/VKDevice.h @@ -87,9 +87,9 @@ public: //Buffer相关 Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateBuffer(buf_usage,size,nullptr,sharing_mode);} - VertexAttribBuffer * CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); - VertexAttribBuffer * CreateVAB(VkFormat format,uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(format,count,nullptr,sharing_mode);} - VertexAttribBuffer * CreateVAB(const VertexAttribData *vbc,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(vbc->GetDataType(),vbc->GetCount(),vbc->GetData(),sharing_mode);} + VertexAttribBuffer *CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); + VertexAttribBuffer *CreateVAB(VkFormat format,uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(format,count,nullptr,sharing_mode);} + VertexAttribBuffer *CreateVAB(const VertexAttribData *vad,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sharing_mode);} IndexBuffer * CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); IndexBuffer * CreateIBO16(uint32_t count,const uint16 *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT16,count,(void *)data,sharing_mode);}