在ShaderStage结构中保存原始的数据基本类型与成份数量
This commit is contained in:
parent
967c66569b
commit
b4dcd029f9
@ -9,7 +9,10 @@ VK_NAMESPACE_BEGIN
|
||||
{
|
||||
AnsiString name;
|
||||
uint location;
|
||||
|
||||
uint base_type;
|
||||
uint component;
|
||||
|
||||
VkFormat format;
|
||||
};//struct ShaderStage
|
||||
|
||||
@ -61,8 +64,11 @@ VK_NAMESPACE_BEGIN
|
||||
ShaderStageList &GetStageInputs(){return stage_inputs;}
|
||||
ShaderStageList &GetStageOutputs(){return stage_outputs;}
|
||||
|
||||
const ShaderStage *GetStage(const AnsiString &)const;
|
||||
const int GetStageInputBinding(const AnsiString &)const;
|
||||
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 ShaderDescriptorList *GetDescriptorList()const{return descriptor_list;}
|
||||
ShaderDescriptorList *GetDescriptorList(VkDescriptorType desc_type)
|
||||
|
@ -72,7 +72,8 @@ public:
|
||||
* 获取输入流绑定点,需要注意的时,这里获取的binding并非是shader中的binding/location,而是绑定顺序的序列号。对应vkCmdBindVertexBuffer的缓冲区序列号
|
||||
*/
|
||||
const int GetStageInputBinding(const AnsiString &name)const{return shader_resource->GetStageInputBinding(name);}
|
||||
const ShaderStage * GetStage(const AnsiString &name)const{return shader_resource->GetStage(name);}
|
||||
const ShaderStage * GetStageInput(const AnsiString &name)const{return shader_resource->GetStageInput(name);}
|
||||
const uint GetStageInputCount()const{return shader_resource->GetStageInputCount();}
|
||||
|
||||
const uint32_t GetAttrCount()const{return attr_count;}
|
||||
|
||||
|
@ -27,7 +27,6 @@ VK_NAMESPACE_BEGIN
|
||||
|
||||
const uint32 total_bytes=AccessByPointer(data,uint32);
|
||||
|
||||
int basetype;
|
||||
int str_len;
|
||||
|
||||
ShaderStage *ss;
|
||||
@ -37,10 +36,10 @@ VK_NAMESPACE_BEGIN
|
||||
ss=new ShaderStage;
|
||||
|
||||
ss->location=*data++;
|
||||
basetype=*data++;
|
||||
ss->base_type=*data++;
|
||||
ss->component=*data++;
|
||||
|
||||
ss->format=VK_NAMESPACE::GetVulkanFormat(basetype,ss->component);
|
||||
ss->format=VK_NAMESPACE::GetVulkanFormat(ss->base_type,ss->component);
|
||||
|
||||
str_len=*data++;
|
||||
ss->name.SetString((char *)data,str_len);
|
||||
@ -85,7 +84,7 @@ VK_NAMESPACE_BEGIN
|
||||
delete[] data;
|
||||
}
|
||||
|
||||
const ShaderStage *ShaderResource::GetStage(const AnsiString &name) const
|
||||
const ShaderStage *ShaderResource::GetStageInput(const AnsiString &name) const
|
||||
{
|
||||
const int count=stage_inputs.GetCount();
|
||||
ShaderStage **ss=stage_inputs.GetData();
|
||||
|
Loading…
x
Reference in New Issue
Block a user