finished write codes of CreateMaterial from MaterialCreateInfo
This commit is contained in:
@@ -2,15 +2,13 @@
|
||||
#define HGL_GRAPH_VULKAN_MATERIAL_DESCRIPTOR_MANAGER_INCLUDE
|
||||
|
||||
#include<hgl/graph/VK.h>
|
||||
#include<hgl/graph/VKShaderDescriptor.h>
|
||||
#include<hgl/graph/VKShaderDescriptorSet.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
class MaterialDescriptorManager
|
||||
{
|
||||
UTF8String mtl_name;
|
||||
|
||||
bool set_has_desc[DESCRIPTOR_SET_TYPE_COUNT];
|
||||
|
||||
Map<AnsiString,int> binding_map[VK_DESCRIPTOR_TYPE_RANGE_SIZE];
|
||||
|
||||
private:
|
||||
@@ -22,6 +20,7 @@ private:
|
||||
public:
|
||||
|
||||
MaterialDescriptorManager(const UTF8String &,ShaderDescriptor *,const uint);
|
||||
MaterialDescriptorManager(const UTF8String &,const ShaderDescriptorSetArray &);
|
||||
~MaterialDescriptorManager();
|
||||
|
||||
const UTF8String &GetMaterialName()const{return mtl_name;}
|
||||
@@ -35,9 +34,7 @@ public:
|
||||
|
||||
const DescriptorSetLayoutCreateInfo *GetDSLCI(const DescriptorSetType &type)const{return dsl_ci+size_t(type);}
|
||||
|
||||
//const ShaderDescriptorList &GetDescriptorList(const DescriptorSetType &type)const{return sd_list_by_set_type[size_t(type)];}
|
||||
|
||||
const bool hasSet(const DescriptorSetType &type)const{return set_has_desc[size_t(type)];}
|
||||
const bool hasSet(const DescriptorSetType &type)const{return dsl_ci[size_t(type)].bindingCount>0;}
|
||||
//!sd_list_by_set_type[size_t(type)].IsEmpty();}
|
||||
};//class MaterialDescriptorManager
|
||||
VK_NAMESPACE_END
|
||||
|
@@ -57,5 +57,7 @@ public:
|
||||
bool AddSampler(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name);
|
||||
|
||||
bool CreateShader();
|
||||
|
||||
const MaterialDescriptorInfo &GetMDI()const{return mdm;}
|
||||
};//class MaterialCreateInfo
|
||||
SHADERGEN_NAMESPACE_END
|
||||
|
@@ -1,7 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/VKShaderDescriptor.h>
|
||||
#include<hgl/graph/VKDescriptorSetType.h>
|
||||
#include<hgl/graph/VKShaderDescriptorSet.h>
|
||||
#include<hgl/shadergen/ShaderGenNamespace.h>
|
||||
#include<hgl/type/Map.h>
|
||||
|
||||
@@ -15,22 +14,6 @@ SHADERGEN_NAMESPACE_BEGIN
|
||||
*/
|
||||
class MaterialDescriptorInfo
|
||||
{
|
||||
struct ShaderDescriptorSet
|
||||
{
|
||||
DescriptorSetType set_type;
|
||||
|
||||
int set;
|
||||
int count;
|
||||
|
||||
ObjectMap<AnsiString,ShaderDescriptor> descriptor_map;
|
||||
|
||||
public:
|
||||
|
||||
ShaderDescriptor *AddDescriptor(VkShaderStageFlagBits ssb,ShaderDescriptor *new_sd); ///<添加一个描述符,如果它本身存在,则返回false
|
||||
};
|
||||
|
||||
using ShaderDescriptorSetArray=ShaderDescriptorSet[DESCRIPTOR_SET_TYPE_COUNT];
|
||||
|
||||
ShaderDescriptorSetArray desc_set_array;
|
||||
|
||||
Map<AnsiString,AnsiString> struct_map;
|
||||
@@ -68,6 +51,11 @@ public:
|
||||
|
||||
void Resort(); //排序产生set号与binding号
|
||||
|
||||
const ShaderDescriptorSetArray &Get()const
|
||||
{
|
||||
return desc_set_array;
|
||||
}
|
||||
|
||||
const bool hasSet(const DescriptorSetType &type)const
|
||||
{
|
||||
return desc_set_array[size_t(type)].count>0;
|
||||
|
@@ -16,7 +16,5 @@ public:
|
||||
|
||||
int AddInput(const graph::VAT &type,const AnsiString &name);
|
||||
int AddInput(const AnsiString &type,const AnsiString &name);
|
||||
|
||||
const hgl::graph::ShaderAttributeArray &GetInput()const;
|
||||
};
|
||||
SHADERGEN_NAMESPACE_END
|
||||
|
Reference in New Issue
Block a user