renamed Renderable to Mesh
This commit is contained in:
parent
692eeff4a3
commit
014fce2c8e
@ -1 +1 @@
|
|||||||
Subproject commit 6da4b9973812162a966de0db505572f25f1caaca
|
Subproject commit 9d9fad791d9c6569189bcc57dd4b219df62bc98a
|
@ -38,7 +38,7 @@ class TestApp:public VulkanApplicationFramework
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
|
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ private:
|
|||||||
Camera cam;
|
Camera cam;
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
DeviceBuffer * ubo_camera_info =nullptr;
|
DeviceBuffer * ubo_camera_info =nullptr;
|
||||||
DeviceBuffer * ubo_color_material =nullptr;
|
DeviceBuffer * ubo_color_material =nullptr;
|
||||||
DeviceBuffer * ubo_line_config =nullptr;
|
DeviceBuffer * ubo_line_config =nullptr;
|
||||||
|
@ -42,7 +42,7 @@ private:
|
|||||||
Camera cam;
|
Camera cam;
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
|
|
||||||
DeviceBuffer * ubo_camera_info =nullptr;
|
DeviceBuffer * ubo_camera_info =nullptr;
|
||||||
DeviceBuffer * ubo_rb_config =nullptr;
|
DeviceBuffer * ubo_rb_config =nullptr;
|
||||||
|
@ -38,7 +38,7 @@ private:
|
|||||||
|
|
||||||
MaterialInstance * mi_billboard =nullptr;
|
MaterialInstance * mi_billboard =nullptr;
|
||||||
Pipeline * pipeline_billboard =nullptr;
|
Pipeline * pipeline_billboard =nullptr;
|
||||||
Renderable * ro_billboard =nullptr;
|
Mesh * ro_billboard =nullptr;
|
||||||
|
|
||||||
Texture2D * texture =nullptr;
|
Texture2D * texture =nullptr;
|
||||||
Sampler * sampler =nullptr;
|
Sampler * sampler =nullptr;
|
||||||
@ -110,13 +110,13 @@ private:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *Add(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
Mesh *Add(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
||||||
{
|
{
|
||||||
Renderable *ri=db->CreateRenderable(r,mi,p);
|
Mesh *ri=db->CreateRenderable(r,mi,p);
|
||||||
|
|
||||||
if(!ri)
|
if(!ri)
|
||||||
{
|
{
|
||||||
LOG_ERROR(OS_TEXT("Create Renderable failed."));
|
LOG_ERROR(OS_TEXT("Create Mesh failed."));
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ private:
|
|||||||
SceneNode render_root;
|
SceneNode render_root;
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
|
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ private:
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
MaterialInstance * mi;
|
MaterialInstance * mi;
|
||||||
Renderable * r;
|
Mesh * r;
|
||||||
}render_obj[DRAW_OBJECT_COUNT]{};
|
}render_obj[DRAW_OBJECT_COUNT]{};
|
||||||
|
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
@ -68,7 +68,7 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
|
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ private:
|
|||||||
Color4f clear_color =Color4f(0.2f,0.2f,0.2f,1.0f);
|
Color4f clear_color =Color4f(0.2f,0.2f,0.2f,1.0f);
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
|
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ private:
|
|||||||
Color4f clear_color =Color4f(0.2f,0.2f,0.2f,1.0f);
|
Color4f clear_color =Color4f(0.2f,0.2f,0.2f,1.0f);
|
||||||
|
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
|
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ private:
|
|||||||
TextRender * text_render =nullptr;
|
TextRender * text_render =nullptr;
|
||||||
|
|
||||||
TextPrimitive * text_primitive =nullptr;
|
TextPrimitive * text_primitive =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ enum class GizmoShape:uint
|
|||||||
bool InitGizmoResource(RenderResource *);
|
bool InitGizmoResource(RenderResource *);
|
||||||
void FreeGizmoResource();
|
void FreeGizmoResource();
|
||||||
|
|
||||||
Renderable *GetGizmoRenderable(const GizmoShape &shape,const GizmoColor &color);
|
Mesh *GetGizmoRenderable(const GizmoShape &shape,const GizmoColor &color);
|
||||||
|
|
||||||
StaticMesh *GetGizmoMoveStaticMesh();
|
StaticMesh *GetGizmoMoveStaticMesh();
|
||||||
StaticMesh *GetGizmoScaleStaticMesh();
|
StaticMesh *GetGizmoScaleStaticMesh();
|
||||||
|
@ -45,22 +45,22 @@ void ClearGizmoMoveStaticMesh()
|
|||||||
|
|
||||||
bool InitGizmoMoveStaticMesh()
|
bool InitGizmoMoveStaticMesh()
|
||||||
{
|
{
|
||||||
Renderable *sphere=GetGizmoRenderable(GizmoShape::Sphere,GizmoColor::White);
|
Mesh *sphere=GetGizmoRenderable(GizmoShape::Sphere,GizmoColor::White);
|
||||||
Renderable *cylinder[3]
|
Mesh *cylinder[3]
|
||||||
{
|
{
|
||||||
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Red),
|
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Red),
|
||||||
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Green),
|
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Green),
|
||||||
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Blue),
|
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Blue),
|
||||||
};
|
};
|
||||||
|
|
||||||
Renderable *cone[3]
|
Mesh *cone[3]
|
||||||
{
|
{
|
||||||
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Red),
|
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Red),
|
||||||
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Green),
|
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Green),
|
||||||
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Blue),
|
GetGizmoRenderable(GizmoShape::Cone,GizmoColor::Blue),
|
||||||
};
|
};
|
||||||
|
|
||||||
Renderable *circle[3]=
|
Mesh *circle[3]=
|
||||||
{
|
{
|
||||||
GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Red),
|
GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Red),
|
||||||
GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Green),
|
GetGizmoRenderable(GizmoShape::Circle,GizmoColor::Green),
|
||||||
|
@ -22,7 +22,7 @@ void ClearGizmoRotateStaticMesh()
|
|||||||
|
|
||||||
bool InitGizmoRotateStaticMesh()
|
bool InitGizmoRotateStaticMesh()
|
||||||
{
|
{
|
||||||
Renderable *torus[4]
|
Mesh *torus[4]
|
||||||
{
|
{
|
||||||
GetGizmoRenderable(GizmoShape::Torus,GizmoColor::Red),
|
GetGizmoRenderable(GizmoShape::Torus,GizmoColor::Red),
|
||||||
GetGizmoRenderable(GizmoShape::Torus,GizmoColor::Green),
|
GetGizmoRenderable(GizmoShape::Torus,GizmoColor::Green),
|
||||||
|
@ -45,22 +45,22 @@ void ClearGizmoScaleStaticMesh()
|
|||||||
|
|
||||||
bool InitGizmoScaleStaticMesh()
|
bool InitGizmoScaleStaticMesh()
|
||||||
{
|
{
|
||||||
Renderable *center_cube=GetGizmoRenderable(GizmoShape::Cube,GizmoColor::White);
|
Mesh *center_cube=GetGizmoRenderable(GizmoShape::Cube,GizmoColor::White);
|
||||||
Renderable *cylinder[3]
|
Mesh *cylinder[3]
|
||||||
{
|
{
|
||||||
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Red),
|
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Red),
|
||||||
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Green),
|
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Green),
|
||||||
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Blue),
|
GetGizmoRenderable(GizmoShape::Cylinder,GizmoColor::Blue),
|
||||||
};
|
};
|
||||||
|
|
||||||
Renderable *cube[3]
|
Mesh *cube[3]
|
||||||
{
|
{
|
||||||
GetGizmoRenderable(GizmoShape::Cube,GizmoColor::Red),
|
GetGizmoRenderable(GizmoShape::Cube,GizmoColor::Red),
|
||||||
GetGizmoRenderable(GizmoShape::Cube,GizmoColor::Green),
|
GetGizmoRenderable(GizmoShape::Cube,GizmoColor::Green),
|
||||||
GetGizmoRenderable(GizmoShape::Cube,GizmoColor::Blue),
|
GetGizmoRenderable(GizmoShape::Cube,GizmoColor::Blue),
|
||||||
};
|
};
|
||||||
|
|
||||||
Renderable *square[3]=
|
Mesh *square[3]=
|
||||||
{
|
{
|
||||||
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Red),
|
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Red),
|
||||||
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Green),
|
GetGizmoRenderable(GizmoShape::Square,GizmoColor::Green),
|
||||||
|
@ -43,7 +43,7 @@ namespace
|
|||||||
{
|
{
|
||||||
Primitive *prim;
|
Primitive *prim;
|
||||||
|
|
||||||
Renderable *renderable[size_t(GizmoColor::RANGE_SIZE)];
|
Mesh *renderable[size_t(GizmoColor::RANGE_SIZE)];
|
||||||
};
|
};
|
||||||
|
|
||||||
GizmoRenderable gizmo_rederable[size_t(GizmoShape::RANGE_SIZE)]{};
|
GizmoRenderable gizmo_rederable[size_t(GizmoShape::RANGE_SIZE)]{};
|
||||||
@ -306,7 +306,7 @@ void FreeGizmoResource()
|
|||||||
SAFE_CLEAR(gizmo_line.vdm);
|
SAFE_CLEAR(gizmo_line.vdm);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *GetGizmoRenderable(const GizmoShape &shape,const GizmoColor &color)
|
Mesh *GetGizmoRenderable(const GizmoShape &shape,const GizmoColor &color)
|
||||||
{
|
{
|
||||||
if(!gizmo_rr)
|
if(!gizmo_rr)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
@ -35,7 +35,7 @@ constexpr const float GIZMO_CYLINDER_OFFSET =GIZMO_CYLINDER_HALF_LENGTH+GIZM
|
|||||||
|
|
||||||
constexpr const float GIZMO_TWO_AXIS_OFFSET =5.0F; ///<二轴调节点偏移量(方片或圆)
|
constexpr const float GIZMO_TWO_AXIS_OFFSET =5.0F; ///<二轴调节点偏移量(方片或圆)
|
||||||
|
|
||||||
Renderable *GetGizmoRenderable(const GizmoShape &gs,const GizmoColor &);
|
Mesh *GetGizmoRenderable(const GizmoShape &gs,const GizmoColor &);
|
||||||
|
|
||||||
StaticMesh *CreateGizmoStaticMesh(SceneNode *);
|
StaticMesh *CreateGizmoStaticMesh(SceneNode *);
|
||||||
|
|
||||||
|
@ -93,9 +93,9 @@ private:
|
|||||||
return ro_plane;
|
return ro_plane;
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *Add(MaterialInstance *mi,const Matrix4f &mat)
|
Mesh *Add(MaterialInstance *mi,const Matrix4f &mat)
|
||||||
{
|
{
|
||||||
Renderable *ri=db->CreateRenderable(ro_plane,mi,pipeline);
|
Mesh *ri=db->CreateRenderable(ro_plane,mi,pipeline);
|
||||||
|
|
||||||
if(!ri)
|
if(!ri)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
@ -74,9 +74,9 @@ private:
|
|||||||
return prim_plane_grid;
|
return prim_plane_grid;
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *Add(MaterialInstance *mi,const Matrix4f &mat)
|
Mesh *Add(MaterialInstance *mi,const Matrix4f &mat)
|
||||||
{
|
{
|
||||||
Renderable *ri=db->CreateRenderable(prim_plane_grid,mi,pipeline);
|
Mesh *ri=db->CreateRenderable(prim_plane_grid,mi,pipeline);
|
||||||
|
|
||||||
if(!ri)
|
if(!ri)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
@ -92,13 +92,13 @@ private:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *Add(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
Mesh *Add(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
||||||
{
|
{
|
||||||
Renderable *ri=db->CreateRenderable(r,mi,p);
|
Mesh *ri=db->CreateRenderable(r,mi,p);
|
||||||
|
|
||||||
if(!ri)
|
if(!ri)
|
||||||
{
|
{
|
||||||
LOG_ERROR(OS_TEXT("Create Renderable failed."));
|
LOG_ERROR(OS_TEXT("Create Mesh failed."));
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ private:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *Add(Primitive *r,MaterialInstance *mi,Pipeline *p,const Matrix4f &mat=Identity4f)
|
Mesh *Add(Primitive *r,MaterialInstance *mi,Pipeline *p,const Matrix4f &mat=Identity4f)
|
||||||
{
|
{
|
||||||
if(!r)
|
if(!r)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
@ -252,11 +252,11 @@ private:
|
|||||||
if(!p)
|
if(!p)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
Renderable *ri=db->CreateRenderable(r,mi,p);
|
Mesh *ri=db->CreateRenderable(r,mi,p);
|
||||||
|
|
||||||
if(!ri)
|
if(!ri)
|
||||||
{
|
{
|
||||||
LOG_ERROR("Create Renderable failed! Primitive: "+r->GetName());
|
LOG_ERROR("Create Mesh failed! Primitive: "+r->GetName());
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ private:
|
|||||||
Sampler * sampler =nullptr;
|
Sampler * sampler =nullptr;
|
||||||
Material * material =nullptr;
|
Material * material =nullptr;
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -40,7 +40,7 @@ private:
|
|||||||
Sampler * sampler =nullptr;
|
Sampler * sampler =nullptr;
|
||||||
Material * material =nullptr;
|
Material * material =nullptr;
|
||||||
MaterialInstance * material_instance =nullptr;
|
MaterialInstance * material_instance =nullptr;
|
||||||
Renderable * render_obj =nullptr;
|
Mesh * render_obj =nullptr;
|
||||||
Pipeline * pipeline =nullptr;
|
Pipeline * pipeline =nullptr;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -61,7 +61,7 @@ private:
|
|||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
MaterialInstance * mi;
|
MaterialInstance * mi;
|
||||||
Renderable * r;
|
Mesh * r;
|
||||||
}render_obj[TexCount]{};
|
}render_obj[TexCount]{};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -220,7 +220,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuildCommandBuffer(RenderCmdBuffer *cb,Framebuffer *fbo,Renderable *ri)
|
bool BuildCommandBuffer(RenderCmdBuffer *cb,Framebuffer *fbo,Mesh *ri)
|
||||||
{
|
{
|
||||||
if(!ri)return(false);
|
if(!ri)return(false);
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ public:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuildCommandBuffer(uint32_t index,Renderable *ri)
|
bool BuildCommandBuffer(uint32_t index,Mesh *ri)
|
||||||
{
|
{
|
||||||
if(!ri)return(false);
|
if(!ri)return(false);
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ public:
|
|||||||
sc_render_target->GetFramebuffer(),ri);
|
sc_render_target->GetFramebuffer(),ri);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuildCommandBuffer(Renderable *ri)
|
bool BuildCommandBuffer(Mesh *ri)
|
||||||
{
|
{
|
||||||
if(!ri)return(false);
|
if(!ri)return(false);
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ public:
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BuildCurrentCommandBuffer(Renderable *ri)
|
bool BuildCurrentCommandBuffer(Mesh *ri)
|
||||||
{
|
{
|
||||||
if(!ri)return(false);
|
if(!ri)return(false);
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ namespace hgl
|
|||||||
const graph::VIL *vil,
|
const graph::VIL *vil,
|
||||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
|
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
|
||||||
|
|
||||||
graph::Renderable *CreateRenderable(const AnsiString &name,
|
graph::Mesh *CreateRenderable(const AnsiString &name,
|
||||||
const uint32_t vertices_count,
|
const uint32_t vertices_count,
|
||||||
graph::MaterialInstance *mi,
|
graph::MaterialInstance *mi,
|
||||||
graph::Pipeline *pipeline,
|
graph::Pipeline *pipeline,
|
||||||
|
@ -7,7 +7,7 @@ COMPONENT_NAMESPACE_BEGIN
|
|||||||
|
|
||||||
struct StaticMeshComponentData:public ComponentData
|
struct StaticMeshComponentData:public ComponentData
|
||||||
{
|
{
|
||||||
Renderable *renderable;
|
Mesh *renderable;
|
||||||
};//struct StaticMeshComponentData
|
};//struct StaticMeshComponentData
|
||||||
|
|
||||||
class StaticMeshComponent;
|
class StaticMeshComponent;
|
||||||
|
@ -73,7 +73,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void Set(Renderable *);
|
void Set(Mesh *);
|
||||||
};
|
};
|
||||||
|
|
||||||
IndirectDrawBuffer *icb_draw;
|
IndirectDrawBuffer *icb_draw;
|
||||||
|
@ -7,7 +7,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
namespace graph
|
namespace graph
|
||||||
{
|
{
|
||||||
class Renderable;
|
class Mesh;
|
||||||
class MaterialInstance;
|
class MaterialInstance;
|
||||||
class SceneNode;
|
class SceneNode;
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ namespace hgl
|
|||||||
AABB LocalBoundingBox; ///<本地坐标绑定盒
|
AABB LocalBoundingBox; ///<本地坐标绑定盒
|
||||||
//AABB WorldBoundingBox; ///<世界坐标绑定盒
|
//AABB WorldBoundingBox; ///<世界坐标绑定盒
|
||||||
|
|
||||||
Renderable *render_obj=nullptr; ///<可渲染实例
|
Mesh *render_obj=nullptr; ///<可渲染实例
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
@ -51,9 +51,9 @@ namespace hgl
|
|||||||
SceneNode(const SceneNode &)=delete;
|
SceneNode(const SceneNode &)=delete;
|
||||||
SceneNode(const SceneNode *)=delete;
|
SceneNode(const SceneNode *)=delete;
|
||||||
SceneNode(const SceneOrient &so ):SceneOrient(so) {}
|
SceneNode(const SceneOrient &so ):SceneOrient(so) {}
|
||||||
SceneNode( Renderable *ri ) {render_obj=ri;}
|
SceneNode( Mesh *ri ) {render_obj=ri;}
|
||||||
SceneNode(const Matrix4f &mat ):SceneOrient(mat) {}
|
SceneNode(const Matrix4f &mat ):SceneOrient(mat) {}
|
||||||
SceneNode(const Matrix4f &mat, Renderable *ri ):SceneOrient(mat) {render_obj=ri;}
|
SceneNode(const Matrix4f &mat, Mesh *ri ):SceneOrient(mat) {render_obj=ri;}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -85,9 +85,9 @@ namespace hgl
|
|||||||
SceneNode * GetParent() noexcept{return ParentNode;}
|
SceneNode * GetParent() noexcept{return ParentNode;}
|
||||||
const SceneNode * GetParent()const noexcept{return ParentNode;}
|
const SceneNode * GetParent()const noexcept{return ParentNode;}
|
||||||
|
|
||||||
void SetRenderable(Renderable *);
|
void SetRenderable(Mesh *);
|
||||||
Renderable *GetRenderable() noexcept{return render_obj;}
|
Mesh *GetRenderable() noexcept{return render_obj;}
|
||||||
const Renderable *GetRenderable()const noexcept{return render_obj;}
|
const Mesh *GetRenderable()const noexcept{return render_obj;}
|
||||||
|
|
||||||
SceneNode *Add(SceneNode *sn)
|
SceneNode *Add(SceneNode *sn)
|
||||||
{
|
{
|
||||||
|
@ -123,7 +123,7 @@ using VIL=VertexInputLayout;
|
|||||||
|
|
||||||
class PrimitiveData;
|
class PrimitiveData;
|
||||||
class Primitive;
|
class Primitive;
|
||||||
class Renderable;
|
class Mesh;
|
||||||
|
|
||||||
class VertexDataManager;
|
class VertexDataManager;
|
||||||
using VDM=VertexDataManager;
|
using VDM=VertexDataManager;
|
||||||
|
@ -245,7 +245,7 @@ public: //dynamic state
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void Render(Renderable *ri)
|
void Render(Mesh *ri)
|
||||||
{
|
{
|
||||||
if(!ri)return;
|
if(!ri)return;
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ class RenderResource
|
|||||||
IDObjectManage<PrimitiveID, Primitive> rm_primitives; ///<图元合集
|
IDObjectManage<PrimitiveID, Primitive> rm_primitives; ///<图元合集
|
||||||
IDObjectManage<BufferID, DeviceBuffer> rm_buffers; ///<顶点缓冲区合集
|
IDObjectManage<BufferID, DeviceBuffer> rm_buffers; ///<顶点缓冲区合集
|
||||||
IDObjectManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
|
IDObjectManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
|
||||||
IDObjectManage<RenderableID, Renderable> rm_renderables; ///<渲染实例集合集
|
IDObjectManage<RenderableID, Mesh> rm_renderables; ///<渲染实例集合集
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -97,7 +97,7 @@ public: //添加数据到管理器(如果指针为nullptr会返回-1)
|
|||||||
PrimitiveID Add(Primitive * p ){return rm_primitives.Add(p);}
|
PrimitiveID Add(Primitive * p ){return rm_primitives.Add(p);}
|
||||||
BufferID Add(DeviceBuffer * buf ){return rm_buffers.Add(buf);}
|
BufferID Add(DeviceBuffer * buf ){return rm_buffers.Add(buf);}
|
||||||
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
|
SamplerID Add(Sampler * s ){return rm_samplers.Add(s);}
|
||||||
RenderableID Add(Renderable * r ){return rm_renderables.Add(r);}
|
RenderableID Add(Mesh * r ){return rm_renderables.Add(r);}
|
||||||
|
|
||||||
public: // VAB/VAO
|
public: // VAB/VAO
|
||||||
|
|
||||||
@ -143,8 +143,8 @@ public: //Material
|
|||||||
|
|
||||||
MaterialInstance * CreateMaterialInstance(const AnsiString &mtl_name,const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);
|
MaterialInstance * CreateMaterialInstance(const AnsiString &mtl_name,const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);
|
||||||
|
|
||||||
Renderable * CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p);
|
Mesh * CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p);
|
||||||
Renderable * CreateRenderable(PrimitiveCreater *pc,MaterialInstance *mi,Pipeline *p);
|
Mesh * CreateRenderable(PrimitiveCreater *pc,MaterialInstance *mi,Pipeline *p);
|
||||||
|
|
||||||
Sampler * CreateSampler(VkSamplerCreateInfo *sci=nullptr);
|
Sampler * CreateSampler(VkSamplerCreateInfo *sci=nullptr);
|
||||||
Sampler * CreateSampler(Texture *);
|
Sampler * CreateSampler(Texture *);
|
||||||
@ -157,7 +157,7 @@ public: //Get
|
|||||||
Primitive * GetPrimitive (const PrimitiveID &id){return rm_primitives.Get(id);}
|
Primitive * GetPrimitive (const PrimitiveID &id){return rm_primitives.Get(id);}
|
||||||
DeviceBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);}
|
DeviceBuffer * 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);}
|
||||||
Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
|
Mesh * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);}
|
||||||
|
|
||||||
public: //Release
|
public: //Release
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ public: //Release
|
|||||||
void Release(Primitive * p ){rm_primitives.Release(p);}
|
void Release(Primitive * p ){rm_primitives.Release(p);}
|
||||||
void Release(DeviceBuffer * buf ){rm_buffers.Release(buf);}
|
void Release(DeviceBuffer * buf ){rm_buffers.Release(buf);}
|
||||||
void Release(Sampler * s ){rm_samplers.Release(s);}
|
void Release(Sampler * s ){rm_samplers.Release(s);}
|
||||||
void Release(Renderable * r ){rm_renderables.Release(r);}
|
void Release(Mesh * r ){rm_renderables.Release(r);}
|
||||||
};//class RenderResource
|
};//class RenderResource
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,10 +62,9 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原始可渲染对象(即仅一个模型一个材质)
|
* 网格体(网格中的最小渲染单位)
|
||||||
* 未来考虑改名StaticMesh哦!
|
|
||||||
*/
|
*/
|
||||||
class Renderable ///可渲染对象实例
|
class Mesh
|
||||||
{
|
{
|
||||||
Pipeline * pipeline;
|
Pipeline * pipeline;
|
||||||
MaterialInstance * mat_inst;
|
MaterialInstance * mat_inst;
|
||||||
@ -76,13 +75,13 @@ class Renderable
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
friend Renderable *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
|
friend Mesh *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
|
||||||
|
|
||||||
Renderable(Primitive *,MaterialInstance *,Pipeline *,PrimitiveDataBuffer *,PrimitiveRenderData *);
|
Mesh(Primitive *,MaterialInstance *,Pipeline *,PrimitiveDataBuffer *,PrimitiveRenderData *);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual ~Renderable()
|
virtual ~Mesh()
|
||||||
{
|
{
|
||||||
//需要在这里添加删除pipeline/desc_sets/primitive引用计数的代码
|
//需要在这里添加删除pipeline/desc_sets/primitive引用计数的代码
|
||||||
|
|
||||||
@ -115,7 +114,7 @@ public:
|
|||||||
mat_inst=mi;
|
mat_inst=mi;
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
};//class Renderable
|
};//class Mesh
|
||||||
|
|
||||||
Renderable *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
|
Mesh *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
|
@ -44,7 +44,7 @@ namespace hgl
|
|||||||
|
|
||||||
bool WriteVertex (const int16 *fp);
|
bool WriteVertex (const int16 *fp);
|
||||||
bool WriteTexCoord (const float *fp);
|
bool WriteTexCoord (const float *fp);
|
||||||
};//class TextPrimitive:public Renderable
|
};//class TextPrimitive:public Mesh
|
||||||
}//namespace graph
|
}//namespace graph
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
#endif//HGL_GRAPH_FONT_PRIMITIVE_INCLUDE
|
#endif//HGL_GRAPH_FONT_PRIMITIVE_INCLUDE
|
||||||
|
@ -58,7 +58,7 @@ namespace hgl
|
|||||||
|
|
||||||
bool Layout(TextPrimitive *tr,const U16String &str);
|
bool Layout(TextPrimitive *tr,const U16String &str);
|
||||||
|
|
||||||
Renderable *CreateRenderable(TextPrimitive *text_primitive);
|
Mesh *CreateRenderable(TextPrimitive *text_primitive);
|
||||||
|
|
||||||
void Release(TextPrimitive *);
|
void Release(TextPrimitive *);
|
||||||
};//class TextRender
|
};//class TextRender
|
||||||
|
@ -287,7 +287,7 @@ SET(VK_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/VKRenderable.h
|
|||||||
Vulkan/VKTileData.cpp
|
Vulkan/VKTileData.cpp
|
||||||
Vulkan/VKTileFont.cpp)
|
Vulkan/VKTileFont.cpp)
|
||||||
|
|
||||||
SOURCE_GROUP("Vulkan\\Renderable" FILES ${VK_RENDERABLE_SOURCE})
|
SOURCE_GROUP("Vulkan\\Mesh" FILES ${VK_RENDERABLE_SOURCE})
|
||||||
|
|
||||||
set(COMPONENT_INCLUDE_PATH ${ROOT_INCLUDE_PATH}/hgl/component)
|
set(COMPONENT_INCLUDE_PATH ${ROOT_INCLUDE_PATH}/hgl/component)
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
//bool Renderable::Set(const int stage_input_binding,VIL *vil,VkDeviceSize offset)
|
//bool Mesh::Set(const int stage_input_binding,VIL *vil,VkDeviceSize offset)
|
||||||
//{
|
//{
|
||||||
// if(stage_input_binding<0||stage_input_binding>=buf_count||!vil)return(false);
|
// if(stage_input_binding<0||stage_input_binding>=buf_count||!vil)return(false);
|
||||||
//
|
//
|
||||||
|
@ -80,12 +80,12 @@ MaterialInstance *RenderResource::CreateMaterialInstance(const AnsiString &mtl_n
|
|||||||
return CreateMaterialInstance(mtl,vil_cfg);
|
return CreateMaterialInstance(mtl,vil_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *RenderResource::CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
Mesh *RenderResource::CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p)
|
||||||
{
|
{
|
||||||
if(!p||!mi||!r)
|
if(!p||!mi||!r)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
Renderable *ri=VK_NAMESPACE::CreateRenderable(r,mi,p);
|
Mesh *ri=VK_NAMESPACE::CreateRenderable(r,mi,p);
|
||||||
|
|
||||||
if(ri)
|
if(ri)
|
||||||
Add(ri);
|
Add(ri);
|
||||||
@ -93,7 +93,7 @@ Renderable *RenderResource::CreateRenderable(Primitive *r,MaterialInstance *mi,P
|
|||||||
return ri;
|
return ri;
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *RenderResource::CreateRenderable(PrimitiveCreater *pc,MaterialInstance *mi,Pipeline *p)
|
Mesh *RenderResource::CreateRenderable(PrimitiveCreater *pc,MaterialInstance *mi,Pipeline *p)
|
||||||
{
|
{
|
||||||
if(!p||!mi||!pc)
|
if(!p||!mi||!pc)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
@ -103,7 +103,7 @@ Renderable *RenderResource::CreateRenderable(PrimitiveCreater *pc,MaterialInstan
|
|||||||
if(!prim)
|
if(!prim)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
Renderable *ri=VK_NAMESPACE::CreateRenderable(prim,mi,p);
|
Mesh *ri=VK_NAMESPACE::CreateRenderable(prim,mi,p);
|
||||||
|
|
||||||
if(ri)
|
if(ri)
|
||||||
{
|
{
|
||||||
|
@ -52,7 +52,7 @@ const int PrimitiveDataBuffer::compare(const PrimitiveDataBuffer &pdb)const
|
|||||||
return off;
|
return off;
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable::Renderable(Primitive *r,MaterialInstance *mi,Pipeline *p,PrimitiveDataBuffer *pdb,PrimitiveRenderData *prd)
|
Mesh::Mesh(Primitive *r,MaterialInstance *mi,Pipeline *p,PrimitiveDataBuffer *pdb,PrimitiveRenderData *prd)
|
||||||
{
|
{
|
||||||
primitive=r;
|
primitive=r;
|
||||||
pipeline=p;
|
pipeline=p;
|
||||||
@ -62,7 +62,7 @@ Renderable::Renderable(Primitive *r,MaterialInstance *mi,Pipeline *p,PrimitiveDa
|
|||||||
primitive_render_data=prd;
|
primitive_render_data=prd;
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
Mesh *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
||||||
{
|
{
|
||||||
if(!prim||!mi||!p)return(nullptr);
|
if(!prim||!mi||!p)return(nullptr);
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
|||||||
|
|
||||||
if(prim->GetVABCount()<input_count) //小于材质要求的数量?那自然是不行的
|
if(prim->GetVABCount()<input_count) //小于材质要求的数量?那自然是不行的
|
||||||
{
|
{
|
||||||
LOG_ERROR("[FATAL ERROR] input buffer count of Renderable lesser than Material, Material name: "+mtl_name);
|
LOG_ERROR("[FATAL ERROR] input buffer count of Mesh lesser than Material, Material name: "+mtl_name);
|
||||||
|
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
}
|
}
|
||||||
@ -104,7 +104,7 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
|||||||
if(vab->GetFormat()!=vif->format)
|
if(vab->GetFormat()!=vif->format)
|
||||||
{
|
{
|
||||||
LOG_ERROR( "[FATAL ERROR] VAB \""+AnsiString(vif->name)+
|
LOG_ERROR( "[FATAL ERROR] VAB \""+AnsiString(vif->name)+
|
||||||
AnsiString("\" format can't match Renderable, Material(")+mtl_name+
|
AnsiString("\" format can't match Mesh, Material(")+mtl_name+
|
||||||
AnsiString(") Format(")+GetVulkanFormatName(vif->format)+
|
AnsiString(") Format(")+GetVulkanFormatName(vif->format)+
|
||||||
AnsiString("), VAB Format(")+GetVulkanFormatName(vab->GetFormat())+
|
AnsiString("), VAB Format(")+GetVulkanFormatName(vab->GetFormat())+
|
||||||
")");
|
")");
|
||||||
@ -114,7 +114,7 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
|||||||
if(vab->GetStride()!=vif->stride)
|
if(vab->GetStride()!=vif->stride)
|
||||||
{
|
{
|
||||||
LOG_ERROR( "[FATAL ERROR] VAB \""+AnsiString(vif->name)+
|
LOG_ERROR( "[FATAL ERROR] VAB \""+AnsiString(vif->name)+
|
||||||
AnsiString("\" stride can't match Renderable, Material(")+mtl_name+
|
AnsiString("\" stride can't match Mesh, Material(")+mtl_name+
|
||||||
AnsiString(") stride(")+AnsiString::numberOf(vif->stride)+
|
AnsiString(") stride(")+AnsiString::numberOf(vif->stride)+
|
||||||
AnsiString("), VAB stride(")+AnsiString::numberOf(vab->GetStride())+
|
AnsiString("), VAB stride(")+AnsiString::numberOf(vab->GetStride())+
|
||||||
")");
|
")");
|
||||||
@ -126,6 +126,6 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
|||||||
++vif;
|
++vif;
|
||||||
}
|
}
|
||||||
|
|
||||||
return(new Renderable(prim,mi,p,pdb,prd));
|
return(new Mesh(prim,mi,p,pdb,prd));
|
||||||
}
|
}
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
|
@ -31,8 +31,8 @@ const int RenderNode::compare(const RenderNode &other)const
|
|||||||
{
|
{
|
||||||
hgl::int64 off;
|
hgl::int64 off;
|
||||||
|
|
||||||
hgl::graph::Renderable *ri_one=other.scene_node->GetRenderable();
|
hgl::graph::Mesh *ri_one=other.scene_node->GetRenderable();
|
||||||
hgl::graph::Renderable *ri_two=scene_node->GetRenderable();
|
hgl::graph::Mesh *ri_two=scene_node->GetRenderable();
|
||||||
|
|
||||||
auto *prim_one=ri_one->GetPrimitive();
|
auto *prim_one=ri_one->GetPrimitive();
|
||||||
auto *prim_two=ri_two->GetPrimitive();
|
auto *prim_two=ri_two->GetPrimitive();
|
||||||
@ -203,7 +203,7 @@ void MaterialRenderList::UpdateMaterialInstance(SceneNode *sn)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaterialRenderList::RenderItem::Set(Renderable *ri)
|
void MaterialRenderList::RenderItem::Set(Mesh *ri)
|
||||||
{
|
{
|
||||||
mi =ri->GetMaterialInstance();
|
mi =ri->GetMaterialInstance();
|
||||||
pdb =ri->GetDataBuffer();
|
pdb =ri->GetDataBuffer();
|
||||||
@ -261,7 +261,7 @@ void MaterialRenderList::Stat()
|
|||||||
ri_array.Alloc(count);
|
ri_array.Alloc(count);
|
||||||
|
|
||||||
RenderItem *ri=ri_array.GetData();
|
RenderItem *ri=ri_array.GetData();
|
||||||
Renderable *ro=rn->scene_node->GetRenderable();
|
Mesh *ro=rn->scene_node->GetRenderable();
|
||||||
|
|
||||||
ri_count=1;
|
ri_count=1;
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
if(!sn)return(false);
|
if(!sn)return(false);
|
||||||
|
|
||||||
Renderable *ri=sn->GetRenderable();
|
Mesh *ri=sn->GetRenderable();
|
||||||
|
|
||||||
if(ri)
|
if(ri)
|
||||||
{
|
{
|
||||||
@ -89,7 +89,7 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
if(!sn)return;
|
if(!sn)return;
|
||||||
|
|
||||||
Renderable *ri=sn->GetRenderable();
|
Mesh *ri=sn->GetRenderable();
|
||||||
|
|
||||||
if(!ri)return;
|
if(!ri)return;
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ namespace hgl
|
|||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneNode::SetRenderable(Renderable *ri)
|
void SceneNode::SetRenderable(Mesh *ri)
|
||||||
{
|
{
|
||||||
render_obj=ri;
|
render_obj=ri;
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ namespace hgl
|
|||||||
return prim;
|
return prim;
|
||||||
}
|
}
|
||||||
|
|
||||||
graph::Renderable *WorkObject::CreateRenderable( const AnsiString &name,
|
graph::Mesh *WorkObject::CreateRenderable( const AnsiString &name,
|
||||||
const uint32_t vertices_count,
|
const uint32_t vertices_count,
|
||||||
graph::MaterialInstance *mi,
|
graph::MaterialInstance *mi,
|
||||||
graph::Pipeline *pipeline,
|
graph::Pipeline *pipeline,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user