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;
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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));
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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++)
|
||||||
{
|
{
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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
|
@ -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:
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ class VertexAttributeBinding;
|
|||||||
using VAB=VertexAttributeBinding;
|
using VAB=VertexAttributeBinding;
|
||||||
|
|
||||||
class Primitive;
|
class Primitive;
|
||||||
class RenderableInstance;
|
class Renderable;
|
||||||
|
|
||||||
class RenderResource;
|
class RenderResource;
|
||||||
|
|
||||||
|
@ -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);}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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}
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
|
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
@ -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))
|
||||||
{
|
{
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user