renamed to Renderable from RenderableInstance, renamed to PrimitiveCreater from RenderableCreater
This commit is contained in:
parent
43c60c16e2
commit
d8d8d97abd
@ -36,7 +36,7 @@ private:
|
||||
Camera cam;
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =nullptr;
|
||||
GPUBuffer * ubo_camera_info =nullptr;
|
||||
GPUBuffer * ubo_color_material =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);
|
||||
|
||||
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline);
|
||||
render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ private:
|
||||
Camera cam;
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =nullptr;
|
||||
|
||||
GPUBuffer * ubo_camera_info =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);
|
||||
|
||||
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline);
|
||||
render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<hgl/filesystem/FileSystem.h>
|
||||
#include<hgl/graph/InlineGeometry.h>
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/RenderList.h>
|
||||
|
||||
using namespace hgl;
|
||||
@ -83,7 +83,7 @@ private:
|
||||
{
|
||||
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_list->Expend(GetCameraInfo(),&render_root);
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<hgl/filesystem/FileSystem.h>
|
||||
#include<hgl/graph/InlineGeometry.h>
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/VKTexture.h>
|
||||
#include<hgl/graph/RenderList.h>
|
||||
|
||||
@ -150,7 +150,7 @@ private:
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include<hgl/filesystem/FileSystem.h>
|
||||
#include<hgl/graph/InlineGeometry.h>
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/RenderList.h>
|
||||
#include<hgl/graph/VKTexture.h>
|
||||
#include<hgl/graph/VKImageView.h>
|
||||
@ -89,7 +89,7 @@ private:
|
||||
*ro_gbc_plane,
|
||||
*ro_axis;
|
||||
|
||||
RenderableInstance *ro_gbc_plane_ri;
|
||||
Renderable *ro_gbc_plane_ri;
|
||||
|
||||
struct
|
||||
{
|
||||
@ -329,7 +329,7 @@ private:
|
||||
ro_gbc_plane=CreateRenderableGBufferComposition(db,sp_composition.material_instance->GetVAB());
|
||||
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);
|
||||
|
||||
return(true);
|
||||
@ -338,12 +338,12 @@ private:
|
||||
bool InitScene(SubpassParam *sp)
|
||||
{
|
||||
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( db->CreateRenderableInstance(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(translate(-30, 0,10)*scale(10,10,10), db->CreateRenderableInstance(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( 0,-30, 0)*scale(1,1,2), db->CreateRenderableInstance(ro_cone ,sp->material_instance,sp->pipeline_triangles));
|
||||
render_root.CreateSubNode( scale(100,100,1), db->CreateRenderable(ro_plane ,sp->material_instance,sp->pipeline_fan ));
|
||||
render_root.CreateSubNode( db->CreateRenderable(ro_torus ,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->CreateRenderable(ro_cube ,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->CreateRenderable(ro_cone ,sp->material_instance,sp->pipeline_triangles));
|
||||
|
||||
render_root.RefreshMatrix();
|
||||
render_list->Expend(GetCameraInfo(),&render_root);
|
||||
|
@ -15,7 +15,7 @@ private:
|
||||
TextRender * text_render =nullptr;
|
||||
|
||||
TextPrimitive * text_render_obj =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =nullptr;
|
||||
|
||||
public:
|
||||
|
||||
@ -44,7 +44,7 @@ private:
|
||||
if(!text_render_obj)
|
||||
return(false);
|
||||
|
||||
render_instance=text_render->CreateRenderableInstance(text_render_obj);
|
||||
render_instance=text_render->CreateRenderable(text_render_obj);
|
||||
if(!render_instance)
|
||||
return(false);
|
||||
|
||||
|
@ -41,7 +41,7 @@ private:
|
||||
Sampler * sampler =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
Primitive * primitive =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =nullptr;
|
||||
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
@ -180,7 +180,7 @@ private:
|
||||
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));
|
||||
|
||||
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline);
|
||||
render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
|
||||
|
||||
return(render_instance);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<hgl/filesystem/FileSystem.h>
|
||||
#include<hgl/graph/InlineGeometry.h>
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/VKTexture.h>
|
||||
#include<hgl/graph/RenderList.h>
|
||||
|
||||
@ -76,7 +76,7 @@ private:
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ class TestApp:public VulkanApplicationFramework
|
||||
private:
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
Renderable *renderable =nullptr;
|
||||
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
@ -52,7 +52,7 @@ private:
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ public:
|
||||
if(!InitVBO())
|
||||
return(false);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
|
||||
return(true);
|
||||
}
|
||||
@ -78,7 +78,7 @@ public:
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
}
|
||||
};//class TestApp:public VulkanApplicationFramework
|
||||
|
||||
|
@ -15,7 +15,7 @@ class TestApp:public VulkanApplicationFramework
|
||||
private:
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
Renderable *renderable =nullptr;
|
||||
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
@ -38,7 +38,7 @@ private:
|
||||
auto primitive=db->CreatePrimitive(3);
|
||||
if(!primitive)return(false);
|
||||
|
||||
renderable_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline);
|
||||
renderable=db->CreateRenderable(primitive,material_instance,pipeline);
|
||||
|
||||
return(true);
|
||||
}
|
||||
@ -56,7 +56,7 @@ public:
|
||||
if(!InitVBO())
|
||||
return(false);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
|
||||
return(true);
|
||||
}
|
||||
@ -65,7 +65,7 @@ public:
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
}
|
||||
};//class TestApp:public VulkanApplicationFramework
|
||||
|
||||
|
@ -47,9 +47,9 @@ private:
|
||||
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);
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<hgl/filesystem/FileSystem.h>
|
||||
#include<hgl/graph/InlineGeometry.h>
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/VKTexture.h>
|
||||
#include<hgl/graph/RenderList.h>
|
||||
|
||||
@ -232,21 +232,21 @@ private:
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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_cube ,pipeline_solid,translate(-10, 0, 5)*scale(10,10,10));
|
||||
|
@ -32,7 +32,7 @@ class TestApp:public VulkanApplicationFramework
|
||||
private:
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =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::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);
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include"VulkanAppFramework.h"
|
||||
#include<hgl/filesystem/FileSystem.h>
|
||||
#include<hgl/graph/InlineGeometry.h>
|
||||
#include<hgl/graph/RenderableInstance.h>
|
||||
#include<hgl/graph/Renderable.h>
|
||||
#include<hgl/graph/VertexAttribData.h>
|
||||
|
||||
#include<hgl/graph/data/SceneNodeData.h>
|
||||
@ -110,13 +110,13 @@ private:
|
||||
ModelData *model_data;
|
||||
|
||||
vulkan::Primitive **mesh_renderable;
|
||||
RenderableInstance **mesh_renderable_instance;
|
||||
Renderable **mesh_renderable_instance;
|
||||
|
||||
vulkan::Primitive *axis_renderable;
|
||||
RenderableInstance *axis_renderable_instance;
|
||||
Renderable *axis_renderable_instance;
|
||||
|
||||
vulkan::Primitive *bbox_renderable;
|
||||
RenderableInstance *bbox_renderable_instance;
|
||||
Renderable *bbox_renderable_instance;
|
||||
|
||||
private:
|
||||
|
||||
@ -163,9 +163,9 @@ private:
|
||||
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()
|
||||
@ -174,12 +174,12 @@ private:
|
||||
MeshData **md=model_data->mesh_list.GetData();
|
||||
|
||||
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++)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@ -189,7 +189,7 @@ private:
|
||||
aci.size.Set(1000,1000,1000);
|
||||
|
||||
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);
|
||||
|
||||
bbox_renderable=CreateRenderableBoundingBox(db,mp_line.material,&cci);
|
||||
bbox_renderable_instance=CreateRenderableInstance(mp_line,bbox_renderable);
|
||||
bbox_renderable_instance=CreateRenderable(mp_line,bbox_renderable);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ class TestApp:public CameraAppFramework
|
||||
RenderCmdBuffer * command_buffer =nullptr;
|
||||
|
||||
Pipeline * pipeline =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
Renderable *renderable =nullptr;
|
||||
|
||||
public:
|
||||
|
||||
@ -45,7 +45,7 @@ class TestApp:public CameraAppFramework
|
||||
Sampler * sampler =nullptr;
|
||||
|
||||
Pipeline * pipeline =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
Renderable *renderable =nullptr;
|
||||
|
||||
SceneNode scene_root;
|
||||
RenderList * render_list =nullptr;
|
||||
@ -108,12 +108,12 @@ public:
|
||||
Primitive *primitive=CreateRenderableCircle(db,os.material_instance->GetVAB(),&cci);
|
||||
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();
|
||||
|
||||
@ -144,9 +144,9 @@ public:
|
||||
Primitive *primitive=CreateRenderableCube(db,cube.material_instance->GetVAB(),&cci);
|
||||
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);
|
||||
|
@ -67,9 +67,9 @@ private:
|
||||
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);
|
||||
|
||||
|
@ -38,7 +38,7 @@ private:
|
||||
Sampler * sampler =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
Primitive * primitive =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =nullptr;
|
||||
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
@ -73,7 +73,7 @@ private:
|
||||
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));
|
||||
|
||||
render_instance=db->CreateRenderableInstance(primitive,material_instance,pipeline);
|
||||
render_instance=db->CreateRenderable(primitive,material_instance,pipeline);
|
||||
|
||||
return(render_instance);
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ private:
|
||||
uint count;
|
||||
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++)
|
||||
{
|
||||
|
@ -77,9 +77,9 @@ private:
|
||||
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);
|
||||
|
||||
|
@ -66,9 +66,9 @@ private:
|
||||
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);
|
||||
|
||||
@ -100,7 +100,7 @@ private:
|
||||
|
||||
bool InitScene()
|
||||
{
|
||||
RenderableInstance *ri=db->CreateRenderableInstance(renderable,material_instance,pipeline);
|
||||
Renderable *ri=db->CreateRenderable(renderable,material_instance,pipeline);
|
||||
|
||||
render_root.CreateSubNode(ri);
|
||||
|
||||
|
@ -32,7 +32,7 @@ class TestApp:public VulkanApplicationFramework
|
||||
private:
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =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::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);
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@ class TestApp:public VulkanApplicationFramework
|
||||
private:
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
Renderable *renderable =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(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);
|
||||
}
|
||||
@ -80,7 +80,7 @@ public:
|
||||
if(!InitVBO())
|
||||
return(false);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
|
||||
return(true);
|
||||
}
|
||||
@ -89,7 +89,7 @@ public:
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
}
|
||||
};//class TestApp:public VulkanApplicationFramework
|
||||
|
||||
|
@ -32,7 +32,7 @@ class TestApp:public VulkanApplicationFramework
|
||||
private:
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =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::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);
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ private:
|
||||
Texture2D * texture =nullptr;
|
||||
Sampler * sampler =nullptr;
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *renderable_instance =nullptr;
|
||||
Renderable *renderable =nullptr;
|
||||
Pipeline * pipeline =nullptr;
|
||||
|
||||
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(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);
|
||||
}
|
||||
@ -105,7 +105,7 @@ public:
|
||||
if(!InitVBO())
|
||||
return(false);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
|
||||
return(true);
|
||||
}
|
||||
@ -114,7 +114,7 @@ public:
|
||||
{
|
||||
VulkanApplicationFramework::Resize(w,h);
|
||||
|
||||
BuildCommandBuffer(renderable_instance);
|
||||
BuildCommandBuffer(renderable);
|
||||
}
|
||||
};//class TestApp:public VulkanApplicationFramework
|
||||
|
||||
|
@ -34,7 +34,7 @@ private:
|
||||
RenderList * render_list =nullptr;
|
||||
|
||||
MaterialInstance * material_instance =nullptr;
|
||||
RenderableInstance *render_instance =nullptr;
|
||||
Renderable *render_instance =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::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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
@ -233,7 +233,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
void BuildCommandBuffer(RenderCmdBuffer *cb,RenderTarget *rt,RenderableInstance *ri)
|
||||
void BuildCommandBuffer(RenderCmdBuffer *cb,RenderTarget *rt,Renderable *ri)
|
||||
{
|
||||
if(!cb||!rt||!ri)
|
||||
return;
|
||||
@ -241,14 +241,14 @@ public:
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
@ -258,7 +258,7 @@ public:
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool BuildCurrentCommandBuffer(RenderableInstance *ri)
|
||||
bool BuildCurrentCommandBuffer(Renderable *ri)
|
||||
{
|
||||
if(!ri)return(false);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef HGL_GRAPH_RENDERABLE_CREATER_INCLUDE
|
||||
#define HGL_GRAPH_RENDERABLE_CREATER_INCLUDE
|
||||
#ifndef HGL_GRAPH_PRIMITIVE_CREATER_INCLUDE
|
||||
#define HGL_GRAPH_PRIMITIVE_CREATER_INCLUDE
|
||||
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/VertexAttribDataAccess.h>
|
||||
@ -26,9 +26,9 @@ namespace hgl
|
||||
using ShaderStageBindMap=MapObject<AnsiString,ShaderStageBind>;
|
||||
|
||||
/**
|
||||
* 可渲染对象创建器
|
||||
* 可绘制图元创建器
|
||||
*/
|
||||
class RenderableCreater
|
||||
class PrimitiveCreater
|
||||
{
|
||||
protected:
|
||||
|
||||
@ -46,8 +46,8 @@ namespace hgl
|
||||
|
||||
public:
|
||||
|
||||
RenderableCreater(RenderResource *sdb,const VAB *);
|
||||
virtual ~RenderableCreater()=default;
|
||||
PrimitiveCreater(RenderResource *sdb,const VAB *);
|
||||
virtual ~PrimitiveCreater()=default;
|
||||
|
||||
virtual bool Init(const uint32 vertices_count); ///<初始化,参数为顶点数量
|
||||
|
||||
@ -79,7 +79,7 @@ namespace hgl
|
||||
uint32 * CreateIBO32(uint count,const uint32 *data=nullptr); ///<创建32位的索引缓冲区
|
||||
|
||||
virtual Primitive * Finish(); ///<结束并创建可渲染对象
|
||||
};//class RenderableCreater
|
||||
};//class PrimitiveCreater
|
||||
}//namespace graph
|
||||
}//namespace hgl
|
||||
#endif//HGL_GRAPH_RENDERABLE_CREATER_INCLUDE
|
||||
#endif//HGL_GRAPH_PRIMITIVE_CREATER_INCLUDE
|
@ -37,7 +37,7 @@ namespace hgl
|
||||
private:
|
||||
|
||||
MVPArrayBuffer *mvp_array;
|
||||
List<RenderableInstance *> ri_list;
|
||||
List<Renderable *> ri_list;
|
||||
|
||||
VkDescriptorSet ds_list[(size_t)DescriptorSetsType::RANGE_SIZE];
|
||||
DescriptorSets *renderable_desc_sets;
|
||||
@ -57,7 +57,7 @@ namespace hgl
|
||||
MaterialParameters *last_mp[(size_t)DescriptorSetsType::RANGE_SIZE];
|
||||
uint32_t last_vbo;
|
||||
|
||||
void Render(RenderableInstance *);
|
||||
void Render(Renderable *);
|
||||
|
||||
public:
|
||||
|
||||
|
@ -8,7 +8,7 @@ namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
class RenderableInstance;
|
||||
class Renderable;
|
||||
|
||||
struct RenderNode
|
||||
{
|
||||
@ -19,7 +19,7 @@ namespace hgl
|
||||
float distance_to_camera_square;
|
||||
// float distance_to_camera;
|
||||
|
||||
RenderableInstance *ri;
|
||||
Renderable *ri;
|
||||
|
||||
public:
|
||||
|
||||
|
@ -26,7 +26,7 @@ namespace hgl
|
||||
Vector4f LocalCenter; ///<本地坐标中心点
|
||||
Vector4f WorldCenter; ///<世界坐标中心点
|
||||
|
||||
RenderableInstance *render_obj=nullptr; ///<可渲染实例
|
||||
Renderable *render_obj=nullptr; ///<可渲染实例
|
||||
|
||||
public:
|
||||
|
||||
@ -35,9 +35,9 @@ namespace hgl
|
||||
public:
|
||||
|
||||
SceneNode()=default;
|
||||
SceneNode( RenderableInstance *ri ) {render_obj=ri;}
|
||||
SceneNode(const Matrix4f &mat ):SceneOrient(mat) {}
|
||||
SceneNode(const Matrix4f &mat, RenderableInstance *ri ):SceneOrient(mat) {render_obj=ri;}
|
||||
SceneNode( Renderable *ri ) {render_obj=ri;}
|
||||
SceneNode(const Matrix4f &mat ):SceneOrient(mat) {}
|
||||
SceneNode(const Matrix4f &mat, Renderable *ri ):SceneOrient(mat) {render_obj=ri;}
|
||||
|
||||
virtual ~SceneNode()=default;
|
||||
|
||||
@ -47,8 +47,8 @@ namespace hgl
|
||||
render_obj=nullptr;
|
||||
}
|
||||
|
||||
RenderableInstance *GetRI(){return render_obj;}
|
||||
void SetRI(RenderableInstance *);
|
||||
Renderable *GetRenderable(){return render_obj;}
|
||||
void SetRenderable(Renderable *);
|
||||
|
||||
SceneNode *CreateSubNode()
|
||||
{
|
||||
@ -58,7 +58,7 @@ namespace hgl
|
||||
return sn;
|
||||
}
|
||||
|
||||
SceneNode *CreateSubNode(RenderableInstance *ri)
|
||||
SceneNode *CreateSubNode(Renderable *ri)
|
||||
{
|
||||
SceneNode *sn=new SceneNode(ri);
|
||||
|
||||
@ -74,7 +74,7 @@ namespace hgl
|
||||
return sn;
|
||||
}
|
||||
|
||||
SceneNode *CreateSubNode(const Matrix4f &mat,RenderableInstance *ri)
|
||||
SceneNode *CreateSubNode(const Matrix4f &mat,Renderable *ri)
|
||||
{
|
||||
SceneNode *sn=new SceneNode(mat,ri);
|
||||
|
||||
|
@ -131,7 +131,7 @@ class VertexAttributeBinding;
|
||||
using VAB=VertexAttributeBinding;
|
||||
|
||||
class Primitive;
|
||||
class RenderableInstance;
|
||||
class Renderable;
|
||||
|
||||
class RenderResource;
|
||||
|
||||
|
@ -126,7 +126,7 @@ public:
|
||||
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)
|
||||
{
|
||||
@ -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 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 SetScissor (uint32_t first,uint32_t count,const VkRect2D *sci) {vkCmdSetScissor(cmd_buf,first,count,sci);}
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include<hgl/graph/VKMaterialParameters.h>
|
||||
#include<hgl/graph/VKMaterialInstance.h>
|
||||
#include<hgl/graph/VertexAttribData.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/font/TextPrimitive.h>
|
||||
#include<hgl/type/ResManage.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
@ -20,7 +20,7 @@ using MaterialInstanceID =int;
|
||||
using BufferID =int;
|
||||
using DescriptorSetsID =int;
|
||||
using PrimitiveID =int;
|
||||
using RenderableInstanceID =int;
|
||||
using RenderableID =int;
|
||||
using SamplerID =int;
|
||||
using TextureID =int;
|
||||
|
||||
@ -44,7 +44,7 @@ class RenderResource
|
||||
IDResManage<BufferID, GPUBuffer> rm_buffers; ///<顶点缓冲区合集
|
||||
IDResManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
|
||||
IDResManage<TextureID, Texture> rm_textures; ///<纹理合集
|
||||
IDResManage<RenderableInstanceID, RenderableInstance> rm_renderable_instances; ///<渲染实例集合集
|
||||
IDResManage<RenderableID, Renderable> rm_renderables; ///<渲染实例集合集
|
||||
|
||||
public:
|
||||
|
||||
@ -60,7 +60,7 @@ public: //Add
|
||||
BufferID Add(GPUBuffer * buf ){return rm_buffers.Add(buf);}
|
||||
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
|
||||
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
|
||||
|
||||
@ -95,7 +95,7 @@ public: //Material
|
||||
|
||||
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(Texture *);
|
||||
@ -110,11 +110,11 @@ public: //Get
|
||||
Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);}
|
||||
MaterialInstance * GetMaterialInstance (const MaterialInstanceID &id){return rm_material_instance.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);}
|
||||
Sampler * GetSampler (const SamplerID &id){return rm_samplers.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
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_DATABASE_INCLUDE
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE
|
||||
#define HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE
|
||||
#ifndef HGL_GRAPH_RENDERABLE_INCLUDE
|
||||
#define HGL_GRAPH_RENDERABLE_INCLUDE
|
||||
|
||||
#include<hgl/graph/VKPrimitive.h>
|
||||
#include<hgl/graph/VKPipeline.h>
|
||||
@ -9,10 +9,10 @@
|
||||
#include<hgl/graph/VKMaterialInstance.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
/**
|
||||
* 可渲染对象实例<br>
|
||||
* 可渲染对象<br>
|
||||
* RenderList会统一管理Shader中的LocalToWorld数据,使用DynamicUBO/DynamicSSBO实现。
|
||||
*/
|
||||
class RenderableInstance ///可渲染对象实例
|
||||
class Renderable ///可渲染对象实例
|
||||
{
|
||||
Pipeline * pipeline;
|
||||
MaterialInstance * mat_inst;
|
||||
@ -26,13 +26,13 @@ class RenderableInstance
|
||||
|
||||
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:
|
||||
|
||||
virtual ~RenderableInstance();
|
||||
virtual ~Renderable();
|
||||
|
||||
void UpdatePipeline (Pipeline *p){pipeline=p;}
|
||||
|
||||
@ -57,8 +57,8 @@ public:
|
||||
public: //instance support
|
||||
|
||||
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
|
||||
#endif//HGL_GRAPH_RENDERABLE_INSTANCE_INCLUDE
|
||||
#endif//HGL_GRAPH_RENDERABLE_INCLUDE
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include<hgl/type/StringList.h>
|
||||
#include<hgl/graph/font/FontSource.h>
|
||||
#include<hgl/graph/RenderableCreater.h>
|
||||
#include<hgl/graph/PrimitiveCreater.h>
|
||||
#include<hgl/graph/TileData.h>
|
||||
#include<hgl/type/MemBlock.h>
|
||||
namespace hgl
|
||||
|
@ -58,7 +58,7 @@ namespace hgl
|
||||
|
||||
bool Layout(TextPrimitive *tr,const UTF16String &str);
|
||||
|
||||
RenderableInstance *CreateRenderableInstance(TextPrimitive *text_render_obj);
|
||||
Renderable *CreateRenderable(TextPrimitive *text_render_obj);
|
||||
|
||||
void Release(TextPrimitive *);
|
||||
};//class TextRender
|
||||
|
@ -40,10 +40,10 @@ SET(SCENE_GRAPH_SOURCE RenderList.cpp
|
||||
#SceneFile.cpp
|
||||
)
|
||||
|
||||
SET(RENDERABLE_FILES ${SG_INCLUDE_PATH}/RenderableCreater.h
|
||||
RenderableCreater.cpp)
|
||||
SET(PRIMITIVE_CREATER_FILES ${SG_INCLUDE_PATH}/PrimitiveCreater.h
|
||||
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
|
||||
${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})
|
||||
|
||||
SET(VK_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/VKPrimitive.h
|
||||
${SG_INCLUDE_PATH}/VKRenderableInstance.h
|
||||
${SG_INCLUDE_PATH}/VKRenderable.h
|
||||
Vulkan/VKPrimitive.cpp
|
||||
Vulkan/VKRenderableInstance.cpp
|
||||
Vulkan/VKRenderable.cpp
|
||||
Vulkan/VKTileData.cpp
|
||||
Vulkan/VKTileFont.cpp)
|
||||
|
||||
@ -264,7 +264,7 @@ add_cm_library(ULRE.SceneGraph "ULRE" ${SCENE_GRAPH_HEADER}
|
||||
${TILE_SOURCE}
|
||||
${SG_VAD_SOURCE}
|
||||
|
||||
${RENDERABLE_FILES}
|
||||
${PRIMITIVE_CREATER_FILES}
|
||||
|
||||
${FONT_MANAGE_SOURCE}
|
||||
${FONT_SOURCE}
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
#include<hgl/graph/VKShaderModule.h>
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/RenderableCreater.h>
|
||||
#include<hgl/graph/PrimitiveCreater.h>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
@ -14,7 +14,7 @@ namespace hgl
|
||||
{
|
||||
Primitive *CreateRenderableRectangle(RenderResource *db,const VAB *vab,const RectangleCreateInfo *rci)
|
||||
{
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
if(!rc.Init(4))
|
||||
return(nullptr);
|
||||
@ -40,7 +40,7 @@ namespace hgl
|
||||
|
||||
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) //这是要画矩形
|
||||
{
|
||||
@ -114,7 +114,7 @@ namespace hgl
|
||||
|
||||
Primitive *CreateRenderableCircle(RenderResource *db,const VAB *vab,const CircleCreateInfo *cci)
|
||||
{
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
uint edge;
|
||||
|
||||
@ -162,7 +162,7 @@ namespace hgl
|
||||
|
||||
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))
|
||||
return(nullptr);
|
||||
@ -214,7 +214,7 @@ namespace hgl
|
||||
const Vector3f xy_normal(0.0f,0.0f,1.0f);
|
||||
const Vector3f xy_tangent(1.0f,0.0f,0.0f);
|
||||
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
if(!rc.Init(4))
|
||||
return(nullptr);
|
||||
@ -301,7 +301,7 @@ namespace hgl
|
||||
16, 17, 18, 16, 18, 19,
|
||||
20, 23, 22, 20, 22, 21};
|
||||
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
if(!rc.Init(24))
|
||||
return(nullptr);
|
||||
@ -442,7 +442,7 @@ namespace hgl
|
||||
*/
|
||||
Primitive *CreateRenderableSphere(RenderResource *db,const VAB *vab,const uint numberSlices)
|
||||
{
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
uint numberParallels = (numberSlices+1) / 2;
|
||||
uint numberVertices = (numberParallels + 1) * (numberSlices + 1);
|
||||
@ -518,7 +518,7 @@ namespace hgl
|
||||
|
||||
Primitive *CreateRenderableDome(RenderResource *db,const VAB *vab,const uint numberSlices)
|
||||
{
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
uint i, j;
|
||||
|
||||
@ -639,7 +639,7 @@ namespace hgl
|
||||
|
||||
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]
|
||||
float s = 0;
|
||||
@ -800,7 +800,7 @@ namespace hgl
|
||||
if(numberIndices<=0)
|
||||
return(nullptr);
|
||||
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
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)
|
||||
{
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
uint i, j;
|
||||
|
||||
@ -1143,7 +1143,7 @@ namespace hgl
|
||||
{
|
||||
if(!db||!vab||!aci)return(nullptr);
|
||||
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
if(!rc.Init(6))
|
||||
return(nullptr);
|
||||
@ -1188,7 +1188,7 @@ namespace hgl
|
||||
0,4, 1,5, 2,6, 3,7
|
||||
};
|
||||
|
||||
RenderableCreater rc(db,vab);
|
||||
PrimitiveCreater rc(db,vab);
|
||||
|
||||
if(!rc.Init(8))
|
||||
return(nullptr);
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include<hgl/graph/RenderableCreater.h>
|
||||
#include<hgl/graph/PrimitiveCreater.h>
|
||||
#include<hgl/graph/VKShaderModule.h>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
RenderableCreater::RenderableCreater(RenderResource *sdb,const VAB *v)
|
||||
PrimitiveCreater::PrimitiveCreater(RenderResource *sdb,const VAB *v)
|
||||
{
|
||||
db =sdb;
|
||||
vab =v;
|
||||
@ -14,7 +14,7 @@ namespace hgl
|
||||
ibo =nullptr;
|
||||
}
|
||||
|
||||
bool RenderableCreater::Init(const uint32 count)
|
||||
bool PrimitiveCreater::Init(const uint32 count)
|
||||
{
|
||||
if(count<=0)return(false);
|
||||
|
||||
@ -23,7 +23,7 @@ namespace hgl
|
||||
return(true);
|
||||
}
|
||||
|
||||
VAD *RenderableCreater::CreateVAD(const AnsiString &name)
|
||||
VAD *PrimitiveCreater::CreateVAD(const AnsiString &name)
|
||||
{
|
||||
if(!vab)return(nullptr);
|
||||
if(name.IsEmpty())return(nullptr);
|
||||
@ -56,7 +56,7 @@ namespace hgl
|
||||
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(name.IsEmpty())return(false);
|
||||
@ -89,7 +89,7 @@ namespace hgl
|
||||
return true;
|
||||
}
|
||||
|
||||
uint16 *RenderableCreater::CreateIBO16(uint count,const uint16 *data)
|
||||
uint16 *PrimitiveCreater::CreateIBO16(uint count,const uint16 *data)
|
||||
{
|
||||
if(ibo)return(nullptr);
|
||||
|
||||
@ -97,7 +97,7 @@ namespace hgl
|
||||
return (uint16 *)ibo->Map();
|
||||
}
|
||||
|
||||
uint32 *RenderableCreater::CreateIBO32(uint count,const uint32 *data)
|
||||
uint32 *PrimitiveCreater::CreateIBO32(uint count,const uint32 *data)
|
||||
{
|
||||
if(ibo)return(nullptr);
|
||||
|
||||
@ -105,7 +105,7 @@ namespace hgl
|
||||
return (uint32 *)ibo->Map();
|
||||
}
|
||||
|
||||
Primitive *RenderableCreater::Finish()
|
||||
Primitive *PrimitiveCreater::Finish()
|
||||
{
|
||||
const uint si_count=vab->GetVertexAttrCount();
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include<hgl/graph/VKCommandBuffer.h>
|
||||
#include<hgl/graph/VertexAttribDataAccess.h>
|
||||
#include<hgl/graph/VKMaterialParameters.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/util/sort/Sort.h>
|
||||
|
||||
/**
|
||||
@ -23,8 +23,8 @@ int Comparator<RenderNodePointer>::compare(const RenderNodePointer &obj_one,cons
|
||||
{
|
||||
int off;
|
||||
|
||||
hgl::graph::RenderableInstance *ri_one=obj_one->ri;
|
||||
hgl::graph::RenderableInstance *ri_two=obj_two->ri;
|
||||
hgl::graph::Renderable *ri_one=obj_one->ri;
|
||||
hgl::graph::Renderable *ri_two=obj_two->ri;
|
||||
|
||||
//比较管线
|
||||
{
|
||||
@ -133,7 +133,7 @@ namespace hgl
|
||||
ubo_align=mvp_array->GetUnitSize();
|
||||
|
||||
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处考虑做去重
|
||||
{
|
||||
@ -165,7 +165,7 @@ namespace hgl
|
||||
{
|
||||
if(!sn)return(false);
|
||||
|
||||
RenderableInstance *ri=sn->GetRI();
|
||||
Renderable *ri=sn->GetRenderable();
|
||||
|
||||
if(ri)
|
||||
{
|
||||
@ -204,7 +204,7 @@ namespace hgl
|
||||
return(true);
|
||||
}
|
||||
|
||||
void RenderList::Render(RenderableInstance *ri)
|
||||
void RenderList::Render(Renderable *ri)
|
||||
{
|
||||
if(last_pipeline!=ri->GetPipeline())
|
||||
{
|
||||
@ -294,7 +294,7 @@ namespace hgl
|
||||
last_vbo=0;
|
||||
ubo_offset=0;
|
||||
|
||||
for(RenderableInstance *ri:ri_list)
|
||||
for(Renderable *ri:ri_list)
|
||||
Render(ri);
|
||||
|
||||
return(true);
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include<hgl/graph/SceneNode.h>
|
||||
#include<hgl/graph/RenderList.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
namespace hgl
|
||||
{
|
||||
namespace graph
|
||||
{
|
||||
void SceneNode::SetRI(RenderableInstance *ri)
|
||||
void SceneNode::SetRenderable(Renderable *ri)
|
||||
{
|
||||
render_obj=ri;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include<hgl/graph/VKCommandBuffer.h>
|
||||
#include<hgl/graph/VKRenderPass.h>
|
||||
#include<hgl/graph/VKFramebuffer.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/VKDeviceAttribute.h>
|
||||
#include<hgl/graph/VKPhysicalDevice.h>
|
||||
|
||||
@ -101,7 +101,7 @@ bool RenderCmdBuffer::BeginRenderPass()
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool RenderCmdBuffer::BindDescriptorSets(RenderableInstance *ri)
|
||||
bool RenderCmdBuffer::BindDescriptorSets(Renderable *ri)
|
||||
{
|
||||
if(!ri)return(false);
|
||||
|
||||
@ -145,7 +145,7 @@ bool RenderCmdBuffer::BindDescriptorSets(RenderableInstance *ri)
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool RenderCmdBuffer::BindVBO(RenderableInstance *ri)
|
||||
bool RenderCmdBuffer::BindVBO(Renderable *ri)
|
||||
{
|
||||
if(!ri)
|
||||
return(false);
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include<hgl/graph/VKRenderResource.h>
|
||||
#include<hgl/graph/VKDevice.h>
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/VKInlinePipeline.h>
|
||||
#include<hgl/graph/VKVertexAttribBuffer.h>
|
||||
|
||||
@ -84,12 +84,12 @@ Primitive *RenderResource::CreatePrimitive(const uint32_t vertex_count)
|
||||
return ro;
|
||||
}
|
||||
|
||||
RenderableInstance *RenderResource::CreateRenderableInstance(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
||||
Renderable *RenderResource::CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
||||
{
|
||||
if(!p||!mi||!r)
|
||||
return(nullptr);
|
||||
|
||||
RenderableInstance *ri=VK_NAMESPACE::CreateRenderableInstance(r,mi,p);
|
||||
Renderable *ri=VK_NAMESPACE::CreateRenderable(r,mi,p);
|
||||
|
||||
if(ri)
|
||||
Add(ri);
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include<hgl/graph/VKRenderableInstance.h>
|
||||
#include<hgl/graph/VKRenderable.h>
|
||||
#include<hgl/graph/VKMaterialInstance.h>
|
||||
#include<hgl/graph/VKMaterialParameters.h>
|
||||
#include<hgl/graph/VKMaterial.h>
|
||||
@ -8,7 +8,7 @@
|
||||
VK_NAMESPACE_BEGIN
|
||||
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;
|
||||
pipeline=p;
|
||||
@ -24,7 +24,7 @@ RenderableInstance::RenderableInstance(Primitive *r,MaterialInstance *mi,Pipelin
|
||||
buffer_hash=0;
|
||||
}
|
||||
|
||||
RenderableInstance::~RenderableInstance()
|
||||
Renderable::~Renderable()
|
||||
{
|
||||
//需要在这里添加删除pipeline/desc_sets/primitive引用计数的代码
|
||||
|
||||
@ -32,7 +32,7 @@ RenderableInstance::~RenderableInstance()
|
||||
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);
|
||||
|
||||
@ -92,7 +92,7 @@ RenderableInstance *CreateRenderableInstance(Primitive *r,MaterialInstance *mi,P
|
||||
++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_size.Discard();
|
||||
return ri;
|
@ -93,7 +93,7 @@ VAB *VertexShaderModule::CreateVAB(const VABConfigInfo *cfg)
|
||||
attr->offset =0;
|
||||
|
||||
bind->binding =i; //binding对应在vkCmdBindVertexBuffer中设置的缓冲区的序列号,所以这个数字必须从0开始,而且紧密排列。
|
||||
//在RenderableInstance类中,buffer_list必需严格按照本此binding为序列号排列
|
||||
//在Renderable类中,buffer_list必需严格按照本此binding为序列号排列
|
||||
|
||||
if(!cfg||!cfg->Get((*si)->name,vac))
|
||||
{
|
||||
|
@ -174,9 +174,9 @@ namespace hgl
|
||||
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user