renamed to Primitive from Renderable

This commit is contained in:
2022-06-24 17:51:05 +08:00
parent 1e0e74da2f
commit 0fca6b8fc4
54 changed files with 148 additions and 404 deletions

View File

@@ -123,7 +123,7 @@ bool RenderCmdBuffer::BindDescriptorSets(RenderableInstance *ri)
ds[count]=mp->GetVkDescriptorSet();
++count;
if((DescriptorSetsType)i==DescriptorSetsType::Renderable)
if((DescriptorSetsType)i==DescriptorSetsType::Primitive)
{
dynamic_count=mp->GetCount();

View File

@@ -30,8 +30,9 @@ namespace
#ifdef _DEBUG
VK_EXT_DEBUG_MARKER_EXTENSION_NAME,
#endif//_DEBUG
VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
// VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME,
VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME,
// VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME,
// VK_EXT_HDR_METADATA_EXTENSION_NAME,
// VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME,

View File

@@ -109,7 +109,7 @@ Material *GPUDevice::CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *
data->pipeline_layout_data=pld;
data->mp.m=CreateMP(mds,pld,DescriptorSetsType::Material );
data->mp.r=CreateMP(mds,pld,DescriptorSetsType::Renderable );
data->mp.r=CreateMP(mds,pld,DescriptorSetsType::Primitive );
data->mp.g=CreateMP(mds,pld,DescriptorSetsType::Global );
return(new Material(data));

View File

@@ -72,11 +72,11 @@ MaterialInstance *RenderResource::CreateMaterialInstance(const OSString &mtl_fil
return CreateMaterialInstance(mtl,vab_cfg);
}
Renderable *RenderResource::CreateRenderable(const uint32_t vertex_count)
Primitive *RenderResource::CreatePrimitive(const uint32_t vertex_count)
{
if(!vertex_count)return(nullptr);
Renderable *ro=new Renderable(vertex_count);
Primitive *ro=new Primitive(vertex_count);
if(ro)
Add(ro);
@@ -84,7 +84,7 @@ Renderable *RenderResource::CreateRenderable(const uint32_t vertex_count)
return ro;
}
RenderableInstance *RenderResource::CreateRenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p)
RenderableInstance *RenderResource::CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p)
{
if(!p||!mi||!r)
return(nullptr);

View File

@@ -49,7 +49,7 @@ void LoadShaderDescriptor(const uint8 *data,ShaderDescriptor *sd_list,const uint
sd->set_type=CheckDescriptorSetsType(sd->name);
if(sd->set_type==DescriptorSetsType::Renderable)
if(sd->set_type==DescriptorSetsType::Primitive)
{
if(sd->desc_type==VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER)sd->desc_type=VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;else
if(sd->desc_type==VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)sd->desc_type=VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;

View File

@@ -1,63 +0,0 @@
#include<hgl/graph/VKRenderable.h>
#include<hgl/graph/VKBuffer.h>
#include<hgl/graph/VKShaderModule.h>
#include<hgl/graph/VKVertexAttribBuffer.h>
VK_NAMESPACE_BEGIN
//bool Renderable::Set(const int stage_input_binding,VAB *vab,VkDeviceSize offset)
//{
// if(stage_input_binding<0||stage_input_binding>=buf_count||!vab)return(false);
//
// const VkVertexInputBindingDescription *desc=vertex_sm->GetDesc(stage_input_binding);
// const VkVertexInputAttributeDescription *attr=vertex_sm->GetAttr(stage_input_binding);
//
// if(vab->GetFormat()!=attr->format)return(false);
// if(vab->GetStride()!=desc->stride)return(false);
//
// //format信息来自于shader实际中可以不一样。但那样需要为每一个格式产生一个同样shader的material instance不同的格式又需要不同的pipeline我们不支持这种行为
//
// buf_list[stage_input_binding]=vab->GetBuffer();
// buf_offset[stage_input_binding]=offset;
//
// return(true);
//}
bool Renderable::Set(const AnsiString &name,VBO *vbo,VkDeviceSize offset)
{
if(!vbo)return(false);
if(buffer_list.KeyExist(name))return(false);
VBOData bd;
bd.buf=vbo;
bd.offset=offset;
buffer_list.Add(name,bd);
return(true);
}
VBO *Renderable::GetVBO(const AnsiString &name,VkDeviceSize *offset)
{
if(!offset)return(nullptr);
if(name.IsEmpty())return(nullptr);
VBOData bd;
if(buffer_list.Get(name,bd))
{
*offset=bd.offset;
return bd.buf;
}
return(nullptr);
}
VkBuffer Renderable::GetBuffer(const AnsiString &name,VkDeviceSize *offset)
{
VBO *vbo=GetVBO(name,offset);
if(vbo)return vbo->GetBuffer();
return(VK_NULL_HANDLE);
}
VK_NAMESPACE_END

View File

@@ -8,7 +8,7 @@
VK_NAMESPACE_BEGIN
using namespace util;
RenderableInstance::RenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs)
RenderableInstance::RenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs)
{
render_obj=r;
pipeline=p;
@@ -32,7 +32,7 @@ RenderableInstance::~RenderableInstance()
delete[] buffer_size;
}
RenderableInstance *CreateRenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p)
RenderableInstance *CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p)
{
if(!r||!mi||!p)return(nullptr);

View File

@@ -11,7 +11,7 @@ VK_NAMESPACE_BEGIN
{
if(str[0]=='m')return DescriptorSetsType::Material;
if(str[0]=='g')return DescriptorSetsType::Global;
if(str[0]=='r')return DescriptorSetsType::Renderable;
if(str[0]=='r')return DescriptorSetsType::Primitive;
}
return DescriptorSetsType::Value;