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