renamed to Renderable from RenderableInstance, renamed to PrimitiveCreater from RenderableCreater

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2022-06-24 21:06:38 +08:00
parent 43c60c16e2
commit d8d8d97abd
46 changed files with 178 additions and 178 deletions

View File

@ -36,7 +36,7 @@ private:
Camera cam; Camera cam;
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
GPUBuffer * ubo_camera_info =nullptr; GPUBuffer * ubo_camera_info =nullptr;
GPUBuffer * ubo_color_material =nullptr; GPUBuffer * ubo_color_material =nullptr;
GPUBuffer * ubo_line_config =nullptr; GPUBuffer * ubo_line_config =nullptr;
@ -118,7 +118,7 @@ private:
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false);
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }

View File

@ -36,7 +36,7 @@ private:
Camera cam; Camera cam;
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
GPUBuffer * ubo_camera_info =nullptr; GPUBuffer * ubo_camera_info =nullptr;
GPUBuffer * ubo_rb_config =nullptr; GPUBuffer * ubo_rb_config =nullptr;
@ -134,7 +134,7 @@ private:
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V4I16,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V4I16,VERTEX_COUNT,position_data)))return(false);
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }

View File

@ -5,7 +5,7 @@
#include<hgl/filesystem/FileSystem.h> #include<hgl/filesystem/FileSystem.h>
#include<hgl/graph/InlineGeometry.h> #include<hgl/graph/InlineGeometry.h>
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/RenderList.h> #include<hgl/graph/RenderList.h>
using namespace hgl; using namespace hgl;
@ -83,7 +83,7 @@ private:
{ {
ro_sphere=CreateRenderableSphere(db,material_instance->GetVAB(),128); ro_sphere=CreateRenderableSphere(db,material_instance->GetVAB(),128);
render_root.CreateSubNode(scale(100),db->CreateRenderableInstance(ro_sphere,material_instance,pipeline_solid)); render_root.CreateSubNode(scale(100),db->CreateRenderable(ro_sphere,material_instance,pipeline_solid));
render_root.RefreshMatrix(); render_root.RefreshMatrix();
render_list->Expend(GetCameraInfo(),&render_root); render_list->Expend(GetCameraInfo(),&render_root);

View File

@ -5,7 +5,7 @@
#include<hgl/filesystem/FileSystem.h> #include<hgl/filesystem/FileSystem.h>
#include<hgl/graph/InlineGeometry.h> #include<hgl/graph/InlineGeometry.h>
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/VKTexture.h> #include<hgl/graph/VKTexture.h>
#include<hgl/graph/RenderList.h> #include<hgl/graph/RenderList.h>
@ -150,7 +150,7 @@ private:
SceneNode *Add(Primitive *r,MaterialInstance *mi,Pipeline *pl) SceneNode *Add(Primitive *r,MaterialInstance *mi,Pipeline *pl)
{ {
auto ri=db->CreateRenderableInstance(r,mi,pl); auto ri=db->CreateRenderable(r,mi,pl);
return render_root.CreateSubNode(ri); return render_root.CreateSubNode(ri);
} }

View File

@ -4,7 +4,7 @@
#include<hgl/filesystem/FileSystem.h> #include<hgl/filesystem/FileSystem.h>
#include<hgl/graph/InlineGeometry.h> #include<hgl/graph/InlineGeometry.h>
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/RenderList.h> #include<hgl/graph/RenderList.h>
#include<hgl/graph/VKTexture.h> #include<hgl/graph/VKTexture.h>
#include<hgl/graph/VKImageView.h> #include<hgl/graph/VKImageView.h>
@ -89,7 +89,7 @@ private:
*ro_gbc_plane, *ro_gbc_plane,
*ro_axis; *ro_axis;
RenderableInstance *ro_gbc_plane_ri; Renderable *ro_gbc_plane_ri;
struct struct
{ {
@ -329,7 +329,7 @@ private:
ro_gbc_plane=CreateRenderableGBufferComposition(db,sp_composition.material_instance->GetVAB()); ro_gbc_plane=CreateRenderableGBufferComposition(db,sp_composition.material_instance->GetVAB());
if(!ro_gbc_plane)return(false); if(!ro_gbc_plane)return(false);
ro_gbc_plane_ri=db->CreateRenderableInstance(ro_gbc_plane,sp_composition.material_instance,sp_composition.pipeline_fan); ro_gbc_plane_ri=db->CreateRenderable(ro_gbc_plane,sp_composition.material_instance,sp_composition.pipeline_fan);
if(!ro_gbc_plane_ri)return(false); if(!ro_gbc_plane_ri)return(false);
return(true); return(true);
@ -338,12 +338,12 @@ private:
bool InitScene(SubpassParam *sp) bool InitScene(SubpassParam *sp)
{ {
CreateRenderObject(sp->material_instance->GetVAB()); CreateRenderObject(sp->material_instance->GetVAB());
render_root.CreateSubNode( scale(100,100,1), db->CreateRenderableInstance(ro_plane ,sp->material_instance,sp->pipeline_fan )); render_root.CreateSubNode( scale(100,100,1), db->CreateRenderable(ro_plane ,sp->material_instance,sp->pipeline_fan ));
render_root.CreateSubNode( db->CreateRenderableInstance(ro_torus ,sp->material_instance,sp->pipeline_triangles)); render_root.CreateSubNode( db->CreateRenderable(ro_torus ,sp->material_instance,sp->pipeline_triangles));
render_root.CreateSubNode( scale(20,20,20), db->CreateRenderableInstance(ro_sphere ,sp->material_instance,sp->pipeline_triangles)); render_root.CreateSubNode( scale(20,20,20), db->CreateRenderable(ro_sphere ,sp->material_instance,sp->pipeline_triangles));
render_root.CreateSubNode(translate(-30, 0,10)*scale(10,10,10), db->CreateRenderableInstance(ro_cube ,sp->material_instance,sp->pipeline_triangles)); render_root.CreateSubNode(translate(-30, 0,10)*scale(10,10,10), db->CreateRenderable(ro_cube ,sp->material_instance,sp->pipeline_triangles));
render_root.CreateSubNode(translate( 30, 30,10)*scale(1,1,2), db->CreateRenderableInstance(ro_cylinder ,sp->material_instance,sp->pipeline_triangles)); render_root.CreateSubNode(translate( 30, 30,10)*scale(1,1,2), db->CreateRenderable(ro_cylinder ,sp->material_instance,sp->pipeline_triangles));
render_root.CreateSubNode(translate( 0,-30, 0)*scale(1,1,2), db->CreateRenderableInstance(ro_cone ,sp->material_instance,sp->pipeline_triangles)); render_root.CreateSubNode(translate( 0,-30, 0)*scale(1,1,2), db->CreateRenderable(ro_cone ,sp->material_instance,sp->pipeline_triangles));
render_root.RefreshMatrix(); render_root.RefreshMatrix();
render_list->Expend(GetCameraInfo(),&render_root); render_list->Expend(GetCameraInfo(),&render_root);

View File

@ -15,7 +15,7 @@ private:
TextRender * text_render =nullptr; TextRender * text_render =nullptr;
TextPrimitive * text_render_obj =nullptr; TextPrimitive * text_render_obj =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
public: public:
@ -44,7 +44,7 @@ private:
if(!text_render_obj) if(!text_render_obj)
return(false); return(false);
render_instance=text_render->CreateRenderableInstance(text_render_obj); render_instance=text_render->CreateRenderable(text_render_obj);
if(!render_instance) if(!render_instance)
return(false); return(false);

View File

@ -41,7 +41,7 @@ private:
Sampler * sampler =nullptr; Sampler * sampler =nullptr;
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
Primitive * primitive =nullptr; Primitive * primitive =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -180,7 +180,7 @@ private:
primitive->Set(VAN::Position,db->CreateVBO(VF_V4F,tile_count,position_data)); primitive->Set(VAN::Position,db->CreateVBO(VF_V4F,tile_count,position_data));
primitive->Set(VAN::TexCoord,db->CreateVBO(VF_V4F,tile_count,tex_coord_data)); primitive->Set(VAN::TexCoord,db->CreateVBO(VF_V4F,tile_count,tex_coord_data));
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
return(render_instance); return(render_instance);
} }

View File

@ -5,7 +5,7 @@
#include<hgl/filesystem/FileSystem.h> #include<hgl/filesystem/FileSystem.h>
#include<hgl/graph/InlineGeometry.h> #include<hgl/graph/InlineGeometry.h>
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/VKTexture.h> #include<hgl/graph/VKTexture.h>
#include<hgl/graph/RenderList.h> #include<hgl/graph/RenderList.h>
@ -76,7 +76,7 @@ private:
SceneNode *Add(Primitive *r,MaterialInstance *mi,Pipeline *pl) SceneNode *Add(Primitive *r,MaterialInstance *mi,Pipeline *pl)
{ {
auto ri=db->CreateRenderableInstance(r,mi,pl); auto ri=db->CreateRenderable(r,mi,pl);
return render_root.CreateSubNode(ri); return render_root.CreateSubNode(ri);
} }

View File

@ -25,7 +25,7 @@ class TestApp:public VulkanApplicationFramework
private: private:
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *renderable_instance =nullptr; Renderable *renderable =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -52,7 +52,7 @@ private:
if(!primitive->Set(VAN::Position,db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position,db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false);
renderable_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); renderable=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }
@ -69,7 +69,7 @@ public:
if(!InitVBO()) if(!InitVBO())
return(false); return(false);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
return(true); return(true);
} }
@ -78,7 +78,7 @@ public:
{ {
VulkanApplicationFramework::Resize(w,h); VulkanApplicationFramework::Resize(w,h);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
} }
};//class TestApp:public VulkanApplicationFramework };//class TestApp:public VulkanApplicationFramework

View File

@ -15,7 +15,7 @@ class TestApp:public VulkanApplicationFramework
private: private:
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *renderable_instance =nullptr; Renderable *renderable =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -38,7 +38,7 @@ private:
auto primitive=db->CreatePrimitive(3); auto primitive=db->CreatePrimitive(3);
if(!primitive)return(false); if(!primitive)return(false);
renderable_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); renderable=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }
@ -56,7 +56,7 @@ public:
if(!InitVBO()) if(!InitVBO())
return(false); return(false);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
return(true); return(true);
} }
@ -65,7 +65,7 @@ public:
{ {
VulkanApplicationFramework::Resize(w,h); VulkanApplicationFramework::Resize(w,h);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
} }
};//class TestApp:public VulkanApplicationFramework };//class TestApp:public VulkanApplicationFramework

View File

@ -47,9 +47,9 @@ private:
return(true); return(true);
} }
RenderableInstance *Add(Primitive *r,const Matrix4f &mat) Renderable *Add(Primitive *r,const Matrix4f &mat)
{ {
RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); Renderable *ri=db->CreateRenderable(r,material_instance,pipeline);
render_root.CreateSubNode(mat,ri); render_root.CreateSubNode(mat,ri);

View File

@ -5,7 +5,7 @@
#include<hgl/filesystem/FileSystem.h> #include<hgl/filesystem/FileSystem.h>
#include<hgl/graph/InlineGeometry.h> #include<hgl/graph/InlineGeometry.h>
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/VKTexture.h> #include<hgl/graph/VKTexture.h>
#include<hgl/graph/RenderList.h> #include<hgl/graph/RenderList.h>
@ -232,21 +232,21 @@ private:
void Add(Primitive *r,Pipeline *pl) void Add(Primitive *r,Pipeline *pl)
{ {
auto ri=db->CreateRenderableInstance(r,material_instance,pl); auto ri=db->CreateRenderable(r,material_instance,pl);
render_root.CreateSubNode(ri); render_root.CreateSubNode(ri);
} }
void Add(Primitive *r,Pipeline *pl,const Matrix4f &mat) void Add(Primitive *r,Pipeline *pl,const Matrix4f &mat)
{ {
auto ri=db->CreateRenderableInstance(r,material_instance,pl); auto ri=db->CreateRenderable(r,material_instance,pl);
render_root.CreateSubNode(mat,ri); render_root.CreateSubNode(mat,ri);
} }
bool InitScene() bool InitScene()
{ {
render_root.CreateSubNode(db->CreateRenderableInstance(ro_axis,axis_mi,axis_pipeline)); render_root.CreateSubNode(db->CreateRenderable(ro_axis,axis_mi,axis_pipeline));
Add(ro_torus ,pipeline_solid); Add(ro_torus ,pipeline_solid);
Add(ro_cube ,pipeline_solid,translate(-10, 0, 5)*scale(10,10,10)); Add(ro_cube ,pipeline_solid,translate(-10, 0, 5)*scale(10,10,10));

View File

@ -32,7 +32,7 @@ class TestApp:public VulkanApplicationFramework
private: private:
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -59,7 +59,7 @@ private:
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false);
if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false); if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false);
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }

View File

@ -4,7 +4,7 @@
#include"VulkanAppFramework.h" #include"VulkanAppFramework.h"
#include<hgl/filesystem/FileSystem.h> #include<hgl/filesystem/FileSystem.h>
#include<hgl/graph/InlineGeometry.h> #include<hgl/graph/InlineGeometry.h>
#include<hgl/graph/RenderableInstance.h> #include<hgl/graph/Renderable.h>
#include<hgl/graph/VertexAttribData.h> #include<hgl/graph/VertexAttribData.h>
#include<hgl/graph/data/SceneNodeData.h> #include<hgl/graph/data/SceneNodeData.h>
@ -110,13 +110,13 @@ private:
ModelData *model_data; ModelData *model_data;
vulkan::Primitive **mesh_renderable; vulkan::Primitive **mesh_renderable;
RenderableInstance **mesh_renderable_instance; Renderable **mesh_renderable_instance;
vulkan::Primitive *axis_renderable; vulkan::Primitive *axis_renderable;
RenderableInstance *axis_renderable_instance; Renderable *axis_renderable_instance;
vulkan::Primitive *bbox_renderable; vulkan::Primitive *bbox_renderable;
RenderableInstance *bbox_renderable_instance; Renderable *bbox_renderable_instance;
private: private:
@ -163,9 +163,9 @@ private:
return(true); return(true);
} }
RenderableInstance *CreateRenderableInstance(const MP &mp,vulkan::Primitive *r) Renderable *CreateRenderable(const MP &mp,vulkan::Primitive *r)
{ {
return db->CreateRenderableInstance(mp.pipeline,mp.material_instance,r); return db->CreateRenderable(mp.pipeline,mp.material_instance,r);
} }
void CreateRenderObject() void CreateRenderObject()
@ -174,12 +174,12 @@ private:
MeshData **md=model_data->mesh_list.GetData(); MeshData **md=model_data->mesh_list.GetData();
mesh_renderable =new vulkan::Primitive *[count]; mesh_renderable =new vulkan::Primitive *[count];
mesh_renderable_instance=new RenderableInstance *[count]; mesh_renderable_instance=new Renderable *[count];
for(uint i=0;i<count;i++) for(uint i=0;i<count;i++)
{ {
mesh_renderable[i]=CreateMeshRenderable(db,mp_solid.material,*md); mesh_renderable[i]=CreateMeshRenderable(db,mp_solid.material,*md);
mesh_renderable_instance[i]=CreateRenderableInstance(mp_solid,mesh_renderable[i]); mesh_renderable_instance[i]=CreateRenderable(mp_solid,mesh_renderable[i]);
++md; ++md;
} }
@ -189,7 +189,7 @@ private:
aci.size.Set(1000,1000,1000); aci.size.Set(1000,1000,1000);
axis_renderable=CreateRenderableAxis(db,mp_line.material,&aci); axis_renderable=CreateRenderableAxis(db,mp_line.material,&aci);
axis_renderable_instance=CreateRenderableInstance(mp_line,axis_renderable); axis_renderable_instance=CreateRenderable(mp_line,axis_renderable);
} }
{ {
@ -199,7 +199,7 @@ private:
cci.color.Set(1,1,1,1); cci.color.Set(1,1,1,1);
bbox_renderable=CreateRenderableBoundingBox(db,mp_line.material,&cci); bbox_renderable=CreateRenderableBoundingBox(db,mp_line.material,&cci);
bbox_renderable_instance=CreateRenderableInstance(mp_line,bbox_renderable); bbox_renderable_instance=CreateRenderable(mp_line,bbox_renderable);
} }
} }

View File

@ -25,7 +25,7 @@ class TestApp:public CameraAppFramework
RenderCmdBuffer * command_buffer =nullptr; RenderCmdBuffer * command_buffer =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
RenderableInstance *renderable_instance =nullptr; Renderable *renderable =nullptr;
public: public:
@ -45,7 +45,7 @@ class TestApp:public CameraAppFramework
Sampler * sampler =nullptr; Sampler * sampler =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
RenderableInstance *renderable_instance =nullptr; Renderable *renderable =nullptr;
SceneNode scene_root; SceneNode scene_root;
RenderList * render_list =nullptr; RenderList * render_list =nullptr;
@ -108,12 +108,12 @@ public:
Primitive *primitive=CreateRenderableCircle(db,os.material_instance->GetVAB(),&cci); Primitive *primitive=CreateRenderableCircle(db,os.material_instance->GetVAB(),&cci);
if(!primitive)return(false); if(!primitive)return(false);
os.renderable_instance=db->CreateRenderableInstance(primitive,os.material_instance,os.pipeline); os.renderable=db->CreateRenderable(primitive,os.material_instance,os.pipeline);
if(!os.renderable_instance)return(false); if(!os.renderable)return(false);
} }
VulkanApplicationFramework::BuildCommandBuffer(os.command_buffer,os.render_taget,os.renderable_instance); VulkanApplicationFramework::BuildCommandBuffer(os.command_buffer,os.render_taget,os.renderable);
os.Submit(); os.Submit();
@ -144,9 +144,9 @@ public:
Primitive *primitive=CreateRenderableCube(db,cube.material_instance->GetVAB(),&cci); Primitive *primitive=CreateRenderableCube(db,cube.material_instance->GetVAB(),&cci);
if(!primitive)return(false); if(!primitive)return(false);
cube.renderable_instance=db->CreateRenderableInstance(primitive,cube.material_instance,cube.pipeline); cube.renderable=db->CreateRenderable(primitive,cube.material_instance,cube.pipeline);
cube.scene_root.CreateSubNode(cube.renderable_instance); cube.scene_root.CreateSubNode(cube.renderable);
} }
camera->pos=Vector4f(5,5,5,1.0); camera->pos=Vector4f(5,5,5,1.0);

View File

@ -67,9 +67,9 @@ private:
return(true); return(true);
} }
RenderableInstance *Add(Primitive *r,const Matrix4f &mat) Renderable *Add(Primitive *r,const Matrix4f &mat)
{ {
RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); Renderable *ri=db->CreateRenderable(r,material_instance,pipeline);
render_root.CreateSubNode(mat,ri); render_root.CreateSubNode(mat,ri);

View File

@ -38,7 +38,7 @@ private:
Sampler * sampler =nullptr; Sampler * sampler =nullptr;
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
Primitive * primitive =nullptr; Primitive * primitive =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -73,7 +73,7 @@ private:
primitive->Set(VAN::Position,db->CreateVBO(VF_V4F,VERTEX_COUNT,position_data)); primitive->Set(VAN::Position,db->CreateVBO(VF_V4F,VERTEX_COUNT,position_data));
primitive->Set(VAN::TexCoord,db->CreateVBO(VF_V4F,VERTEX_COUNT,tex_coord_data)); primitive->Set(VAN::TexCoord,db->CreateVBO(VF_V4F,VERTEX_COUNT,tex_coord_data));
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
return(render_instance); return(render_instance);
} }

View File

@ -112,7 +112,7 @@ private:
uint count; uint count;
float size; float size;
RenderableInstance *ri=db->CreateRenderableInstance(renderable_object,material_instance,pipeline); Renderable *ri=db->CreateRenderable(renderable_object,material_instance,pipeline);
for(uint i=0;i<360;i++) for(uint i=0;i<360;i++)
{ {

View File

@ -77,9 +77,9 @@ private:
return(true); return(true);
} }
RenderableInstance *Add(Primitive *r,const Matrix4f &mat) Renderable *Add(Primitive *r,const Matrix4f &mat)
{ {
RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); Renderable *ri=db->CreateRenderable(r,material_instance,pipeline);
render_root.CreateSubNode(mat,ri); render_root.CreateSubNode(mat,ri);

View File

@ -66,9 +66,9 @@ private:
return(true); return(true);
} }
RenderableInstance *Add(Primitive *r,const Matrix4f &mat) Renderable *Add(Primitive *r,const Matrix4f &mat)
{ {
RenderableInstance *ri=db->CreateRenderableInstance(r,material_instance,pipeline); Renderable *ri=db->CreateRenderable(r,material_instance,pipeline);
render_root.CreateSubNode(mat,ri); render_root.CreateSubNode(mat,ri);
@ -100,7 +100,7 @@ private:
bool InitScene() bool InitScene()
{ {
RenderableInstance *ri=db->CreateRenderableInstance(renderable,material_instance,pipeline); Renderable *ri=db->CreateRenderable(renderable,material_instance,pipeline);
render_root.CreateSubNode(ri); render_root.CreateSubNode(ri);

View File

@ -32,7 +32,7 @@ class TestApp:public VulkanApplicationFramework
private: private:
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -59,7 +59,7 @@ private:
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false);
if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false); if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false);
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }

View File

@ -35,7 +35,7 @@ class TestApp:public VulkanApplicationFramework
private: private:
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *renderable_instance =nullptr; Renderable *renderable =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -62,7 +62,7 @@ private:
if(!primitive->Set(VAN::Position,db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position,db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false);
if(!primitive->Set(db->CreateIBO16(INDEX_COUNT,index_data)))return(false); if(!primitive->Set(db->CreateIBO16(INDEX_COUNT,index_data)))return(false);
renderable_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); renderable=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }
@ -80,7 +80,7 @@ public:
if(!InitVBO()) if(!InitVBO())
return(false); return(false);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
return(true); return(true);
} }
@ -89,7 +89,7 @@ public:
{ {
VulkanApplicationFramework::Resize(w,h); VulkanApplicationFramework::Resize(w,h);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
} }
};//class TestApp:public VulkanApplicationFramework };//class TestApp:public VulkanApplicationFramework

View File

@ -32,7 +32,7 @@ class TestApp:public VulkanApplicationFramework
private: private:
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -61,7 +61,7 @@ private:
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false);
if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false); if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false);
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }

View File

@ -50,7 +50,7 @@ private:
Texture2D * texture =nullptr; Texture2D * texture =nullptr;
Sampler * sampler =nullptr; Sampler * sampler =nullptr;
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *renderable_instance =nullptr; Renderable *renderable =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
private: private:
@ -87,7 +87,7 @@ private:
if(!primitive->Set(VAN::TexCoord,db->CreateVBO(VF_V2F,VERTEX_COUNT,tex_coord_data)))return(false); if(!primitive->Set(VAN::TexCoord,db->CreateVBO(VF_V2F,VERTEX_COUNT,tex_coord_data)))return(false);
if(!primitive->Set(db->CreateIBO16(INDEX_COUNT,index_data)))return(false); if(!primitive->Set(db->CreateIBO16(INDEX_COUNT,index_data)))return(false);
renderable_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); renderable=db->CreateRenderable(primitive,material_instance,pipeline);
return(true); return(true);
} }
@ -105,7 +105,7 @@ public:
if(!InitVBO()) if(!InitVBO())
return(false); return(false);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
return(true); return(true);
} }
@ -114,7 +114,7 @@ public:
{ {
VulkanApplicationFramework::Resize(w,h); VulkanApplicationFramework::Resize(w,h);
BuildCommandBuffer(renderable_instance); BuildCommandBuffer(renderable);
} }
};//class TestApp:public VulkanApplicationFramework };//class TestApp:public VulkanApplicationFramework

View File

@ -34,7 +34,7 @@ private:
RenderList * render_list =nullptr; RenderList * render_list =nullptr;
MaterialInstance * material_instance =nullptr; MaterialInstance * material_instance =nullptr;
RenderableInstance *render_instance =nullptr; Renderable *render_instance =nullptr;
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -63,7 +63,7 @@ private:
if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false); if(!primitive->Set(VAN::Position, db->CreateVBO(VF_V2F,VERTEX_COUNT,position_data)))return(false);
if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false); if(!primitive->Set(VAN::Color, db->CreateVBO(VF_V4F,VERTEX_COUNT,color_data)))return(false);
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline); render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
render_root.CreateSubNode(render_instance); render_root.CreateSubNode(render_instance);

View File

@ -208,7 +208,7 @@ public:
} }
} }
bool BuildCommandBuffer(RenderCmdBuffer *cb,RenderPass *rp,Framebuffer *fb,RenderableInstance *ri) bool BuildCommandBuffer(RenderCmdBuffer *cb,RenderPass *rp,Framebuffer *fb,Renderable *ri)
{ {
if(!ri)return(false); if(!ri)return(false);
@ -233,7 +233,7 @@ public:
return(true); return(true);
} }
void BuildCommandBuffer(RenderCmdBuffer *cb,RenderTarget *rt,RenderableInstance *ri) void BuildCommandBuffer(RenderCmdBuffer *cb,RenderTarget *rt,Renderable *ri)
{ {
if(!cb||!rt||!ri) if(!cb||!rt||!ri)
return; return;
@ -241,14 +241,14 @@ public:
BuildCommandBuffer(cb,rt->GetRenderPass(),rt->GetFramebuffer(),ri); BuildCommandBuffer(cb,rt->GetRenderPass(),rt->GetFramebuffer(),ri);
} }
bool BuildCommandBuffer(uint32_t index,RenderableInstance *ri) bool BuildCommandBuffer(uint32_t index,Renderable *ri)
{ {
if(!ri)return(false); if(!ri)return(false);
return BuildCommandBuffer(cmd_buf[index],sc_render_target->GetRenderPass(),sc_render_target->GetFramebuffer(index),ri); return BuildCommandBuffer(cmd_buf[index],sc_render_target->GetRenderPass(),sc_render_target->GetFramebuffer(index),ri);
} }
bool BuildCommandBuffer(RenderableInstance *ri) bool BuildCommandBuffer(Renderable *ri)
{ {
if(!ri)return(false); if(!ri)return(false);
@ -258,7 +258,7 @@ public:
return(true); return(true);
} }
bool BuildCurrentCommandBuffer(RenderableInstance *ri) bool BuildCurrentCommandBuffer(Renderable *ri)
{ {
if(!ri)return(false); if(!ri)return(false);

View File

@ -1,5 +1,5 @@
#ifndef HGL_GRAPH_RENDERABLE_CREATER_INCLUDE #ifndef HGL_GRAPH_PRIMITIVE_CREATER_INCLUDE
#define HGL_GRAPH_RENDERABLE_CREATER_INCLUDE #define HGL_GRAPH_PRIMITIVE_CREATER_INCLUDE
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/VertexAttribDataAccess.h> #include<hgl/graph/VertexAttribDataAccess.h>
@ -26,9 +26,9 @@ namespace hgl
using ShaderStageBindMap=MapObject<AnsiString,ShaderStageBind>; using ShaderStageBindMap=MapObject<AnsiString,ShaderStageBind>;
/** /**
* *
*/ */
class RenderableCreater class PrimitiveCreater
{ {
protected: protected:
@ -46,8 +46,8 @@ namespace hgl
public: public:
RenderableCreater(RenderResource *sdb,const VAB *); PrimitiveCreater(RenderResource *sdb,const VAB *);
virtual ~RenderableCreater()=default; virtual ~PrimitiveCreater()=default;
virtual bool Init(const uint32 vertices_count); ///<初始化,参数为顶点数量 virtual bool Init(const uint32 vertices_count); ///<初始化,参数为顶点数量
@ -79,7 +79,7 @@ namespace hgl
uint32 * CreateIBO32(uint count,const uint32 *data=nullptr); ///<创建32位的索引缓冲区 uint32 * CreateIBO32(uint count,const uint32 *data=nullptr); ///<创建32位的索引缓冲区
virtual Primitive * Finish(); ///<结束并创建可渲染对象 virtual Primitive * Finish(); ///<结束并创建可渲染对象
};//class RenderableCreater };//class PrimitiveCreater
}//namespace graph }//namespace graph
}//namespace hgl }//namespace hgl
#endif//HGL_GRAPH_RENDERABLE_CREATER_INCLUDE #endif//HGL_GRAPH_PRIMITIVE_CREATER_INCLUDE

View File

@ -37,7 +37,7 @@ namespace hgl
private: private:
MVPArrayBuffer *mvp_array; MVPArrayBuffer *mvp_array;
List<RenderableInstance *> ri_list; List<Renderable *> ri_list;
VkDescriptorSet ds_list[(size_t)DescriptorSetsType::RANGE_SIZE]; VkDescriptorSet ds_list[(size_t)DescriptorSetsType::RANGE_SIZE];
DescriptorSets *renderable_desc_sets; DescriptorSets *renderable_desc_sets;
@ -57,7 +57,7 @@ namespace hgl
MaterialParameters *last_mp[(size_t)DescriptorSetsType::RANGE_SIZE]; MaterialParameters *last_mp[(size_t)DescriptorSetsType::RANGE_SIZE];
uint32_t last_vbo; uint32_t last_vbo;
void Render(RenderableInstance *); void Render(Renderable *);
public: public:

View File

@ -8,7 +8,7 @@ namespace hgl
{ {
namespace graph namespace graph
{ {
class RenderableInstance; class Renderable;
struct RenderNode struct RenderNode
{ {
@ -19,7 +19,7 @@ namespace hgl
float distance_to_camera_square; float distance_to_camera_square;
// float distance_to_camera; // float distance_to_camera;
RenderableInstance *ri; Renderable *ri;
public: public:

View File

@ -26,7 +26,7 @@ namespace hgl
Vector4f LocalCenter; ///<本地坐标中心点 Vector4f LocalCenter; ///<本地坐标中心点
Vector4f WorldCenter; ///<世界坐标中心点 Vector4f WorldCenter; ///<世界坐标中心点
RenderableInstance *render_obj=nullptr; ///<可渲染实例 Renderable *render_obj=nullptr; ///<可渲染实例
public: public:
@ -35,9 +35,9 @@ namespace hgl
public: public:
SceneNode()=default; SceneNode()=default;
SceneNode( RenderableInstance *ri ) {render_obj=ri;} SceneNode( Renderable *ri ) {render_obj=ri;}
SceneNode(const Matrix4f &mat ):SceneOrient(mat) {} SceneNode(const Matrix4f &mat ):SceneOrient(mat) {}
SceneNode(const Matrix4f &mat, RenderableInstance *ri ):SceneOrient(mat) {render_obj=ri;} SceneNode(const Matrix4f &mat, Renderable *ri ):SceneOrient(mat) {render_obj=ri;}
virtual ~SceneNode()=default; virtual ~SceneNode()=default;
@ -47,8 +47,8 @@ namespace hgl
render_obj=nullptr; render_obj=nullptr;
} }
RenderableInstance *GetRI(){return render_obj;} Renderable *GetRenderable(){return render_obj;}
void SetRI(RenderableInstance *); void SetRenderable(Renderable *);
SceneNode *CreateSubNode() SceneNode *CreateSubNode()
{ {
@ -58,7 +58,7 @@ namespace hgl
return sn; return sn;
} }
SceneNode *CreateSubNode(RenderableInstance *ri) SceneNode *CreateSubNode(Renderable *ri)
{ {
SceneNode *sn=new SceneNode(ri); SceneNode *sn=new SceneNode(ri);
@ -74,7 +74,7 @@ namespace hgl
return sn; return sn;
} }
SceneNode *CreateSubNode(const Matrix4f &mat,RenderableInstance *ri) SceneNode *CreateSubNode(const Matrix4f &mat,Renderable *ri)
{ {
SceneNode *sn=new SceneNode(mat,ri); SceneNode *sn=new SceneNode(mat,ri);

View File

@ -131,7 +131,7 @@ class VertexAttributeBinding;
using VAB=VertexAttributeBinding; using VAB=VertexAttributeBinding;
class Primitive; class Primitive;
class RenderableInstance; class Renderable;
class RenderResource; class RenderResource;

View File

@ -126,7 +126,7 @@ public:
return(true); return(true);
} }
bool BindDescriptorSets(RenderableInstance *ri); bool BindDescriptorSets(Renderable *ri);
bool PushDescriptorSet(VkPipelineLayout pipeline_layout,uint32_t set,uint32_t count,const VkWriteDescriptorSet *write_desc_set) bool PushDescriptorSet(VkPipelineLayout pipeline_layout,uint32_t set,uint32_t count,const VkWriteDescriptorSet *write_desc_set)
{ {
@ -141,7 +141,7 @@ public:
void PushConstants(const void *data,const uint32_t size) {vkCmdPushConstants(cmd_buf,pipeline_layout,VK_SHADER_STAGE_VERTEX_BIT,0, size,data);} void PushConstants(const void *data,const uint32_t size) {vkCmdPushConstants(cmd_buf,pipeline_layout,VK_SHADER_STAGE_VERTEX_BIT,0, size,data);}
void PushConstants(const void *data,const uint32_t offset,const uint32_t size) {vkCmdPushConstants(cmd_buf,pipeline_layout,VK_SHADER_STAGE_VERTEX_BIT,offset, size,data);} void PushConstants(const void *data,const uint32_t offset,const uint32_t size) {vkCmdPushConstants(cmd_buf,pipeline_layout,VK_SHADER_STAGE_VERTEX_BIT,offset, size,data);}
bool BindVBO(RenderableInstance *); bool BindVBO(Renderable *);
void SetViewport (uint32_t first,uint32_t count,const VkViewport *vp) {vkCmdSetViewport(cmd_buf,first,count,vp);} void SetViewport (uint32_t first,uint32_t count,const VkViewport *vp) {vkCmdSetViewport(cmd_buf,first,count,vp);}
void SetScissor (uint32_t first,uint32_t count,const VkRect2D *sci) {vkCmdSetScissor(cmd_buf,first,count,sci);} void SetScissor (uint32_t first,uint32_t count,const VkRect2D *sci) {vkCmdSetScissor(cmd_buf,first,count,sci);}

View File

@ -11,7 +11,7 @@
#include<hgl/graph/VKMaterialParameters.h> #include<hgl/graph/VKMaterialParameters.h>
#include<hgl/graph/VKMaterialInstance.h> #include<hgl/graph/VKMaterialInstance.h>
#include<hgl/graph/VertexAttribData.h> #include<hgl/graph/VertexAttribData.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/font/TextPrimitive.h> #include<hgl/graph/font/TextPrimitive.h>
#include<hgl/type/ResManage.h> #include<hgl/type/ResManage.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
@ -20,7 +20,7 @@ using MaterialInstanceID =int;
using BufferID =int; using BufferID =int;
using DescriptorSetsID =int; using DescriptorSetsID =int;
using PrimitiveID =int; using PrimitiveID =int;
using RenderableInstanceID =int; using RenderableID =int;
using SamplerID =int; using SamplerID =int;
using TextureID =int; using TextureID =int;
@ -44,7 +44,7 @@ class RenderResource
IDResManage<BufferID, GPUBuffer> rm_buffers; ///<顶点缓冲区合集 IDResManage<BufferID, GPUBuffer> rm_buffers; ///<顶点缓冲区合集
IDResManage<SamplerID, Sampler> rm_samplers; ///<采样器合集 IDResManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
IDResManage<TextureID, Texture> rm_textures; ///<纹理合集 IDResManage<TextureID, Texture> rm_textures; ///<纹理合集
IDResManage<RenderableInstanceID, RenderableInstance> rm_renderable_instances; ///<渲染实例集合集 IDResManage<RenderableID, Renderable> rm_renderables; ///<渲染实例集合集
public: public:
@ -60,7 +60,7 @@ public: //Add
BufferID Add(GPUBuffer * buf ){return rm_buffers.Add(buf);} BufferID Add(GPUBuffer * buf ){return rm_buffers.Add(buf);}
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);} SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
TextureID Add(Texture * t ){return rm_textures.Add(t);} TextureID Add(Texture * t ){return rm_textures.Add(t);}
RenderableInstanceID Add(RenderableInstance *ri ){return rm_renderable_instances.Add(ri);} RenderableID Add(Renderable * r ){return rm_renderables.Add(r);}
public: // VBO/VAO public: // VBO/VAO
@ -95,7 +95,7 @@ public: //Material
Primitive * CreatePrimitive(const uint32_t vertex_count=0); Primitive * CreatePrimitive(const uint32_t vertex_count=0);
RenderableInstance *CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p); Renderable * CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p);
Sampler * CreateSampler(VkSamplerCreateInfo *sci=nullptr); Sampler * CreateSampler(VkSamplerCreateInfo *sci=nullptr);
Sampler * CreateSampler(Texture *); Sampler * CreateSampler(Texture *);
@ -110,11 +110,11 @@ public: //Get
Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);} Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);}
MaterialInstance * GetMaterialInstance (const MaterialInstanceID &id){return rm_material_instance.Get(id);} MaterialInstance * GetMaterialInstance (const MaterialInstanceID &id){return rm_material_instance.Get(id);}
DescriptorSets * GetDescSets (const DescriptorSetsID &id){return rm_desc_sets.Get(id);} DescriptorSets * GetDescSets (const DescriptorSetsID &id){return rm_desc_sets.Get(id);}
Primitive * GetPrimitive (const PrimitiveID &id){return rm_primitives.Get(id);} Primitive * GetPrimitive (const PrimitiveID &id){return rm_primitives.Get(id);}
GPUBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);} GPUBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);}
Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);} Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);}
Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);} Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);}
RenderableInstance *GetRenderableInstance (const RenderableInstanceID &id){return rm_renderable_instances.Get(id);} Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
};//class RenderResource };//class RenderResource
VK_NAMESPACE_END VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_DATABASE_INCLUDE #endif//HGL_GRAPH_VULKAN_DATABASE_INCLUDE

View File

@ -1,5 +1,5 @@
#ifndef HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE #ifndef HGL_GRAPH_RENDERABLE_INCLUDE
#define HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE #define HGL_GRAPH_RENDERABLE_INCLUDE
#include<hgl/graph/VKPrimitive.h> #include<hgl/graph/VKPrimitive.h>
#include<hgl/graph/VKPipeline.h> #include<hgl/graph/VKPipeline.h>
@ -9,10 +9,10 @@
#include<hgl/graph/VKMaterialInstance.h> #include<hgl/graph/VKMaterialInstance.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
/** /**
* <br> * <br>
* RenderList会统一管理Shader中的LocalToWorld数据使DynamicUBO/DynamicSSBO实现 * RenderList会统一管理Shader中的LocalToWorld数据使DynamicUBO/DynamicSSBO实现
*/ */
class RenderableInstance ///可渲染对象实例 class Renderable ///可渲染对象实例
{ {
Pipeline * pipeline; Pipeline * pipeline;
MaterialInstance * mat_inst; MaterialInstance * mat_inst;
@ -26,13 +26,13 @@ class RenderableInstance
private: private:
friend RenderableInstance *CreateRenderableInstance(Primitive *,MaterialInstance *,Pipeline *); friend Renderable *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
RenderableInstance(Primitive *,MaterialInstance *,Pipeline *,const uint32_t,VkBuffer *,VkDeviceSize *); Renderable(Primitive *,MaterialInstance *,Pipeline *,const uint32_t,VkBuffer *,VkDeviceSize *);
public: public:
virtual ~RenderableInstance(); virtual ~Renderable();
void UpdatePipeline (Pipeline *p){pipeline=p;} void UpdatePipeline (Pipeline *p){pipeline=p;}
@ -57,8 +57,8 @@ public:
public: //instance support public: //instance support
virtual const uint32_t GetInstanceCount ()const{return 1;} virtual const uint32_t GetInstanceCount ()const{return 1;}
};//class RenderableInstance };//class Renderable
RenderableInstance *CreateRenderableInstance(Primitive *,MaterialInstance *,Pipeline *); Renderable *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
VK_NAMESPACE_END VK_NAMESPACE_END
#endif//HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE #endif//HGL_GRAPH_RENDERABLE_INCLUDE

View File

@ -3,7 +3,7 @@
#include<hgl/type/StringList.h> #include<hgl/type/StringList.h>
#include<hgl/graph/font/FontSource.h> #include<hgl/graph/font/FontSource.h>
#include<hgl/graph/RenderableCreater.h> #include<hgl/graph/PrimitiveCreater.h>
#include<hgl/graph/TileData.h> #include<hgl/graph/TileData.h>
#include<hgl/type/MemBlock.h> #include<hgl/type/MemBlock.h>
namespace hgl namespace hgl

View File

@ -58,7 +58,7 @@ namespace hgl
bool Layout(TextPrimitive *tr,const UTF16String &str); bool Layout(TextPrimitive *tr,const UTF16String &str);
RenderableInstance *CreateRenderableInstance(TextPrimitive *text_render_obj); Renderable *CreateRenderable(TextPrimitive *text_render_obj);
void Release(TextPrimitive *); void Release(TextPrimitive *);
};//class TextRender };//class TextRender

View File

@ -40,10 +40,10 @@ SET(SCENE_GRAPH_SOURCE RenderList.cpp
#SceneFile.cpp #SceneFile.cpp
) )
SET(RENDERABLE_FILES ${SG_INCLUDE_PATH}/RenderableCreater.h SET(PRIMITIVE_CREATER_FILES ${SG_INCLUDE_PATH}/PrimitiveCreater.h
RenderableCreater.cpp) PrimitiveCreater.cpp)
SOURCE_GROUP("Renderable" FILES ${RENDERABLE_FILES}) SOURCE_GROUP("PrimitiveCreater" FILES ${PRIMITIVE_CREATER_FILES})
SET(FONT_MANAGE_SOURCE ${SG_INCLUDE_PATH}/font/Font.h SET(FONT_MANAGE_SOURCE ${SG_INCLUDE_PATH}/font/Font.h
${SG_INCLUDE_PATH}/font/FontManage.h ${SG_INCLUDE_PATH}/font/FontManage.h
@ -221,9 +221,9 @@ SET(VK_CMD_BUFFER_SOURCE ${SG_INCLUDE_PATH}/VKCommandBuffer.h
SOURCE_GROUP("Vulkan\\Command Buffer" FILES ${VK_CMD_BUFFER_SOURCE}) SOURCE_GROUP("Vulkan\\Command Buffer" FILES ${VK_CMD_BUFFER_SOURCE})
SET(VK_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/VKPrimitive.h SET(VK_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/VKPrimitive.h
${SG_INCLUDE_PATH}/VKRenderableInstance.h ${SG_INCLUDE_PATH}/VKRenderable.h
Vulkan/VKPrimitive.cpp Vulkan/VKPrimitive.cpp
Vulkan/VKRenderableInstance.cpp Vulkan/VKRenderable.cpp
Vulkan/VKTileData.cpp Vulkan/VKTileData.cpp
Vulkan/VKTileFont.cpp) Vulkan/VKTileFont.cpp)
@ -264,7 +264,7 @@ add_cm_library(ULRE.SceneGraph "ULRE" ${SCENE_GRAPH_HEADER}
${TILE_SOURCE} ${TILE_SOURCE}
${SG_VAD_SOURCE} ${SG_VAD_SOURCE}
${RENDERABLE_FILES} ${PRIMITIVE_CREATER_FILES}
${FONT_MANAGE_SOURCE} ${FONT_MANAGE_SOURCE}
${FONT_SOURCE} ${FONT_SOURCE}

View File

@ -6,7 +6,7 @@
#include<hgl/graph/VKDevice.h> #include<hgl/graph/VKDevice.h>
#include<hgl/graph/VKShaderModule.h> #include<hgl/graph/VKShaderModule.h>
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/RenderableCreater.h> #include<hgl/graph/PrimitiveCreater.h>
namespace hgl namespace hgl
{ {
@ -14,7 +14,7 @@ namespace hgl
{ {
Primitive *CreateRenderableRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci) Primitive *CreateRenderableRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
if(!rc.Init(4)) if(!rc.Init(4))
return(nullptr); return(nullptr);
@ -40,7 +40,7 @@ namespace hgl
Primitive *CreateRenderableRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci) Primitive *CreateRenderableRoundRectangle(RenderResource *db,const VAB *vab,const RoundRectangleCreateInfo *rci)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
if(rci->radius==0||rci->round_per<=1) //这是要画矩形 if(rci->radius==0||rci->round_per<=1) //这是要画矩形
{ {
@ -114,7 +114,7 @@ namespace hgl
Primitive *CreateRenderableCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci) Primitive *CreateRenderableCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
uint edge; uint edge;
@ -162,7 +162,7 @@ namespace hgl
Primitive *CreateRenderablePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci) Primitive *CreateRenderablePlaneGrid(RenderResource *db,const VAB *vab,const PlaneGridCreateInfo *pgci)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
if(!rc.Init(((pgci->step.x+1)+(pgci->step.y+1))*2)) if(!rc.Init(((pgci->step.x+1)+(pgci->step.y+1))*2))
return(nullptr); return(nullptr);
@ -214,7 +214,7 @@ namespace hgl
const Vector3f xy_normal(0.0f,0.0f,1.0f); const Vector3f xy_normal(0.0f,0.0f,1.0f);
const Vector3f xy_tangent(1.0f,0.0f,0.0f); const Vector3f xy_tangent(1.0f,0.0f,0.0f);
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
if(!rc.Init(4)) if(!rc.Init(4))
return(nullptr); return(nullptr);
@ -301,7 +301,7 @@ namespace hgl
16, 17, 18, 16, 18, 19, 16, 17, 18, 16, 18, 19,
20, 23, 22, 20, 22, 21}; 20, 23, 22, 20, 22, 21};
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
if(!rc.Init(24)) if(!rc.Init(24))
return(nullptr); return(nullptr);
@ -442,7 +442,7 @@ namespace hgl
*/ */
Primitive *CreateRenderableSphere(RenderResource *db,const VAB *vab,const uint numberSlices) Primitive *CreateRenderableSphere(RenderResource *db,const VAB *vab,const uint numberSlices)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
uint numberParallels = (numberSlices+1) / 2; uint numberParallels = (numberSlices+1) / 2;
uint numberVertices = (numberParallels + 1) * (numberSlices + 1); uint numberVertices = (numberParallels + 1) * (numberSlices + 1);
@ -518,7 +518,7 @@ namespace hgl
Primitive *CreateRenderableDome(RenderResource *db,const VAB *vab,const uint numberSlices) Primitive *CreateRenderableDome(RenderResource *db,const VAB *vab,const uint numberSlices)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
uint i, j; uint i, j;
@ -639,7 +639,7 @@ namespace hgl
Primitive *CreateRenderableTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci) Primitive *CreateRenderableTorus(RenderResource *db,const VAB *vab,const TorusCreateInfo *tci)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
// s, t = parametric values of the equations, in the range [0,1] // s, t = parametric values of the equations, in the range [0,1]
float s = 0; float s = 0;
@ -800,7 +800,7 @@ namespace hgl
if(numberIndices<=0) if(numberIndices<=0)
return(nullptr); return(nullptr);
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
uint numberVertices = (cci->numberSlices + 2) * 2 + (cci->numberSlices + 1) * 2; uint numberVertices = (cci->numberSlices + 2) * 2 + (cci->numberSlices + 1) * 2;
@ -1014,7 +1014,7 @@ namespace hgl
Primitive *CreateRenderableCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci) Primitive *CreateRenderableCone(RenderResource *db,const VAB *vab,const ConeCreateInfo *cci)
{ {
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
uint i, j; uint i, j;
@ -1143,7 +1143,7 @@ namespace hgl
{ {
if(!db||!vab||!aci)return(nullptr); if(!db||!vab||!aci)return(nullptr);
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
if(!rc.Init(6)) if(!rc.Init(6))
return(nullptr); return(nullptr);
@ -1188,7 +1188,7 @@ namespace hgl
0,4, 1,5, 2,6, 3,7 0,4, 1,5, 2,6, 3,7
}; };
RenderableCreater rc(db,vab); PrimitiveCreater rc(db,vab);
if(!rc.Init(8)) if(!rc.Init(8))
return(nullptr); return(nullptr);

View File

@ -1,11 +1,11 @@
#include<hgl/graph/RenderableCreater.h> #include<hgl/graph/PrimitiveCreater.h>
#include<hgl/graph/VKShaderModule.h> #include<hgl/graph/VKShaderModule.h>
namespace hgl namespace hgl
{ {
namespace graph namespace graph
{ {
RenderableCreater::RenderableCreater(RenderResource *sdb,const VAB *v) PrimitiveCreater::PrimitiveCreater(RenderResource *sdb,const VAB *v)
{ {
db =sdb; db =sdb;
vab =v; vab =v;
@ -14,7 +14,7 @@ namespace hgl
ibo =nullptr; ibo =nullptr;
} }
bool RenderableCreater::Init(const uint32 count) bool PrimitiveCreater::Init(const uint32 count)
{ {
if(count<=0)return(false); if(count<=0)return(false);
@ -23,7 +23,7 @@ namespace hgl
return(true); return(true);
} }
VAD *RenderableCreater::CreateVAD(const AnsiString &name) VAD *PrimitiveCreater::CreateVAD(const AnsiString &name)
{ {
if(!vab)return(nullptr); if(!vab)return(nullptr);
if(name.IsEmpty())return(nullptr); if(name.IsEmpty())return(nullptr);
@ -56,7 +56,7 @@ namespace hgl
return ssb->data; return ssb->data;
} }
bool RenderableCreater::WriteVAD(const AnsiString &name,const void *data,const uint32_t bytes) bool PrimitiveCreater::WriteVAD(const AnsiString &name,const void *data,const uint32_t bytes)
{ {
if(!vab)return(false); if(!vab)return(false);
if(name.IsEmpty())return(false); if(name.IsEmpty())return(false);
@ -89,7 +89,7 @@ namespace hgl
return true; return true;
} }
uint16 *RenderableCreater::CreateIBO16(uint count,const uint16 *data) uint16 *PrimitiveCreater::CreateIBO16(uint count,const uint16 *data)
{ {
if(ibo)return(nullptr); if(ibo)return(nullptr);
@ -97,7 +97,7 @@ namespace hgl
return (uint16 *)ibo->Map(); return (uint16 *)ibo->Map();
} }
uint32 *RenderableCreater::CreateIBO32(uint count,const uint32 *data) uint32 *PrimitiveCreater::CreateIBO32(uint count,const uint32 *data)
{ {
if(ibo)return(nullptr); if(ibo)return(nullptr);
@ -105,7 +105,7 @@ namespace hgl
return (uint32 *)ibo->Map(); return (uint32 *)ibo->Map();
} }
Primitive *RenderableCreater::Finish() Primitive *PrimitiveCreater::Finish()
{ {
const uint si_count=vab->GetVertexAttrCount(); const uint si_count=vab->GetVertexAttrCount();

View File

@ -6,7 +6,7 @@
#include<hgl/graph/VKCommandBuffer.h> #include<hgl/graph/VKCommandBuffer.h>
#include<hgl/graph/VertexAttribDataAccess.h> #include<hgl/graph/VertexAttribDataAccess.h>
#include<hgl/graph/VKMaterialParameters.h> #include<hgl/graph/VKMaterialParameters.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/util/sort/Sort.h> #include<hgl/util/sort/Sort.h>
/** /**
@ -23,8 +23,8 @@ int Comparator<RenderNodePointer>::compare(const RenderNodePointer &obj_one,cons
{ {
int off; int off;
hgl::graph::RenderableInstance *ri_one=obj_one->ri; hgl::graph::Renderable *ri_one=obj_one->ri;
hgl::graph::RenderableInstance *ri_two=obj_two->ri; hgl::graph::Renderable *ri_two=obj_two->ri;
//比较管线 //比较管线
{ {
@ -133,7 +133,7 @@ namespace hgl
ubo_align=mvp_array->GetUnitSize(); ubo_align=mvp_array->GetUnitSize();
char *mp=(char *)(mvp_array->Map(0,count)); char *mp=(char *)(mvp_array->Map(0,count));
RenderableInstance **ri=ri_list.GetData(); Renderable **ri=ri_list.GetData();
for(RenderNode *node:render_node_list) //未来可能要在Expend处考虑做去重 for(RenderNode *node:render_node_list) //未来可能要在Expend处考虑做去重
{ {
@ -165,7 +165,7 @@ namespace hgl
{ {
if(!sn)return(false); if(!sn)return(false);
RenderableInstance *ri=sn->GetRI(); Renderable *ri=sn->GetRenderable();
if(ri) if(ri)
{ {
@ -204,7 +204,7 @@ namespace hgl
return(true); return(true);
} }
void RenderList::Render(RenderableInstance *ri) void RenderList::Render(Renderable *ri)
{ {
if(last_pipeline!=ri->GetPipeline()) if(last_pipeline!=ri->GetPipeline())
{ {
@ -294,7 +294,7 @@ namespace hgl
last_vbo=0; last_vbo=0;
ubo_offset=0; ubo_offset=0;
for(RenderableInstance *ri:ri_list) for(Renderable *ri:ri_list)
Render(ri); Render(ri);
return(true); return(true);

View File

@ -1,11 +1,11 @@
#include<hgl/graph/SceneNode.h> #include<hgl/graph/SceneNode.h>
#include<hgl/graph/RenderList.h> #include<hgl/graph/RenderList.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
namespace hgl namespace hgl
{ {
namespace graph namespace graph
{ {
void SceneNode::SetRI(RenderableInstance *ri) void SceneNode::SetRenderable(Renderable *ri)
{ {
render_obj=ri; render_obj=ri;

View File

@ -1,7 +1,7 @@
#include<hgl/graph/VKCommandBuffer.h> #include<hgl/graph/VKCommandBuffer.h>
#include<hgl/graph/VKRenderPass.h> #include<hgl/graph/VKRenderPass.h>
#include<hgl/graph/VKFramebuffer.h> #include<hgl/graph/VKFramebuffer.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/VKDeviceAttribute.h> #include<hgl/graph/VKDeviceAttribute.h>
#include<hgl/graph/VKPhysicalDevice.h> #include<hgl/graph/VKPhysicalDevice.h>
@ -101,7 +101,7 @@ bool RenderCmdBuffer::BeginRenderPass()
return(true); return(true);
} }
bool RenderCmdBuffer::BindDescriptorSets(RenderableInstance *ri) bool RenderCmdBuffer::BindDescriptorSets(Renderable *ri)
{ {
if(!ri)return(false); if(!ri)return(false);
@ -145,7 +145,7 @@ bool RenderCmdBuffer::BindDescriptorSets(RenderableInstance *ri)
return(true); return(true);
} }
bool RenderCmdBuffer::BindVBO(RenderableInstance *ri) bool RenderCmdBuffer::BindVBO(Renderable *ri)
{ {
if(!ri) if(!ri)
return(false); return(false);

View File

@ -1,6 +1,6 @@
#include<hgl/graph/VKRenderResource.h> #include<hgl/graph/VKRenderResource.h>
#include<hgl/graph/VKDevice.h> #include<hgl/graph/VKDevice.h>
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/VKInlinePipeline.h> #include<hgl/graph/VKInlinePipeline.h>
#include<hgl/graph/VKVertexAttribBuffer.h> #include<hgl/graph/VKVertexAttribBuffer.h>
@ -84,12 +84,12 @@ Primitive *RenderResource::CreatePrimitive(const uint32_t vertex_count)
return ro; return ro;
} }
RenderableInstance *RenderResource::CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p) Renderable *RenderResource::CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p)
{ {
if(!p||!mi||!r) if(!p||!mi||!r)
return(nullptr); return(nullptr);
RenderableInstance *ri=VK_NAMESPACE::CreateRenderableInstance(r,mi,p); Renderable *ri=VK_NAMESPACE::CreateRenderable(r,mi,p);
if(ri) if(ri)
Add(ri); Add(ri);

View File

@ -1,4 +1,4 @@
#include<hgl/graph/VKRenderableInstance.h> #include<hgl/graph/VKRenderable.h>
#include<hgl/graph/VKMaterialInstance.h> #include<hgl/graph/VKMaterialInstance.h>
#include<hgl/graph/VKMaterialParameters.h> #include<hgl/graph/VKMaterialParameters.h>
#include<hgl/graph/VKMaterial.h> #include<hgl/graph/VKMaterial.h>
@ -8,7 +8,7 @@
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
using namespace util; using namespace util;
RenderableInstance::RenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs) Renderable::Renderable(Primitive *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs)
{ {
primitive=r; primitive=r;
pipeline=p; pipeline=p;
@ -24,7 +24,7 @@ RenderableInstance::RenderableInstance(Primitive *r,MaterialInstance *mi,Pipelin
buffer_hash=0; buffer_hash=0;
} }
RenderableInstance::~RenderableInstance() Renderable::~Renderable()
{ {
//需要在这里添加删除pipeline/desc_sets/primitive引用计数的代码 //需要在这里添加删除pipeline/desc_sets/primitive引用计数的代码
@ -32,7 +32,7 @@ RenderableInstance::~RenderableInstance()
delete[] buffer_size; delete[] buffer_size;
} }
RenderableInstance *CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p) Renderable *CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p)
{ {
if(!r||!mi||!p)return(nullptr); if(!r||!mi||!p)return(nullptr);
@ -92,7 +92,7 @@ RenderableInstance *CreateRenderableInstance(Primitive *r,MaterialInstance *mi,P
++attr_list; ++attr_list;
} }
RenderableInstance *ri=new RenderableInstance(r,mi,p,input_count,buffer_list,buffer_size); Renderable *ri=new Renderable(r,mi,p,input_count,buffer_list,buffer_size);
buffer_list.Discard(); buffer_list.Discard();
buffer_size.Discard(); buffer_size.Discard();
return ri; return ri;

View File

@ -93,7 +93,7 @@ VAB *VertexShaderModule::CreateVAB(const VABConfigInfo *cfg)
attr->offset =0; attr->offset =0;
bind->binding =i; //binding对应在vkCmdBindVertexBuffer中设置的缓冲区的序列号所以这个数字必须从0开始而且紧密排列。 bind->binding =i; //binding对应在vkCmdBindVertexBuffer中设置的缓冲区的序列号所以这个数字必须从0开始而且紧密排列。
//在RenderableInstance类中buffer_list必需严格按照本此binding为序列号排列 //在Renderable类中buffer_list必需严格按照本此binding为序列号排列
if(!cfg||!cfg->Get((*si)->name,vac)) if(!cfg||!cfg->Get((*si)->name,vac))
{ {

View File

@ -174,9 +174,9 @@ namespace hgl
return true; return true;
} }
RenderableInstance *TextRender::CreateRenderableInstance(TextPrimitive *text_render_obj) Renderable *TextRender::CreateRenderable(TextPrimitive *text_render_obj)
{ {
return db->CreateRenderableInstance(text_render_obj,material_instance,pipeline); return db->CreateRenderable(text_render_obj,material_instance,pipeline);
} }
void TextRender::Release(TextPrimitive *tr) void TextRender::Release(TextPrimitive *tr)