renamed Renderable to Mesh

This commit is contained in:
2025-05-18 02:03:16 +08:00
parent 692eeff4a3
commit 014fce2c8e
44 changed files with 91 additions and 92 deletions

View File

@@ -73,7 +73,7 @@ private:
public:
void Set(Renderable *);
void Set(Mesh *);
};
IndirectDrawBuffer *icb_draw;

View File

@@ -7,7 +7,7 @@ namespace hgl
{
namespace graph
{
class Renderable;
class Mesh;
class MaterialInstance;
class SceneNode;

View File

@@ -31,7 +31,7 @@ namespace hgl
AABB LocalBoundingBox; ///<本地坐标绑定盒
//AABB WorldBoundingBox; ///<世界坐标绑定盒
Renderable *render_obj=nullptr; ///<可渲染实例
Mesh *render_obj=nullptr; ///<可渲染实例
protected:
@@ -51,9 +51,9 @@ namespace hgl
SceneNode(const SceneNode &)=delete;
SceneNode(const SceneNode *)=delete;
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, Renderable *ri ):SceneOrient(mat) {render_obj=ri;}
SceneNode(const Matrix4f &mat, Mesh *ri ):SceneOrient(mat) {render_obj=ri;}
public:
@@ -85,9 +85,9 @@ namespace hgl
SceneNode * GetParent() noexcept{return ParentNode;}
const SceneNode * GetParent()const noexcept{return ParentNode;}
void SetRenderable(Renderable *);
Renderable *GetRenderable() noexcept{return render_obj;}
const Renderable *GetRenderable()const noexcept{return render_obj;}
void SetRenderable(Mesh *);
Mesh *GetRenderable() noexcept{return render_obj;}
const Mesh *GetRenderable()const noexcept{return render_obj;}
SceneNode *Add(SceneNode *sn)
{

View File

@@ -123,7 +123,7 @@ using VIL=VertexInputLayout;
class PrimitiveData;
class Primitive;
class Renderable;
class Mesh;
class VertexDataManager;
using VDM=VertexDataManager;

View File

@@ -245,7 +245,7 @@ public: //dynamic state
public:
void Render(Renderable *ri)
void Render(Mesh *ri)
{
if(!ri)return;

View File

@@ -54,7 +54,7 @@ class RenderResource
IDObjectManage<PrimitiveID, Primitive> rm_primitives; ///<图元合集
IDObjectManage<BufferID, DeviceBuffer> rm_buffers; ///<顶点缓冲区合集
IDObjectManage<SamplerID, Sampler> rm_samplers; ///<采样器合集
IDObjectManage<RenderableID, Renderable> rm_renderables; ///<渲染实例集合集
IDObjectManage<RenderableID, Mesh> rm_renderables; ///<渲染实例集合集
private:
@@ -97,7 +97,7 @@ public: //添加数据到管理器如果指针为nullptr会返回-1
PrimitiveID Add(Primitive * p ){return rm_primitives.Add(p);}
BufferID Add(DeviceBuffer * buf ){return rm_buffers.Add(buf);}
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
@@ -143,8 +143,8 @@ public: //Material
MaterialInstance * CreateMaterialInstance(const AnsiString &mtl_name,const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);
Renderable * CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p);
Renderable * CreateRenderable(PrimitiveCreater *pc,MaterialInstance *mi,Pipeline *p);
Mesh * CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p);
Mesh * CreateRenderable(PrimitiveCreater *pc,MaterialInstance *mi,Pipeline *p);
Sampler * CreateSampler(VkSamplerCreateInfo *sci=nullptr);
Sampler * CreateSampler(Texture *);
@@ -157,7 +157,7 @@ public: //Get
Primitive * GetPrimitive (const PrimitiveID &id){return rm_primitives.Get(id);}
DeviceBuffer * GetBuffer (const BufferID &id){return rm_buffers.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
@@ -167,7 +167,7 @@ public: //Release
void Release(Primitive * p ){rm_primitives.Release(p);}
void Release(DeviceBuffer * buf ){rm_buffers.Release(buf);}
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
/**

View File

@@ -62,10 +62,9 @@ public:
};
/**
* 原始可渲染对象(即仅一个模型一个材质)
* 未来考虑改名StaticMesh哦
* 网格体(网格中的最小渲染单位)
*/
class Renderable ///可渲染对象实例
class Mesh
{
Pipeline * pipeline;
MaterialInstance * mat_inst;
@@ -76,13 +75,13 @@ class Renderable
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:
virtual ~Renderable()
virtual ~Mesh()
{
//需要在这里添加删除pipeline/desc_sets/primitive引用计数的代码
@@ -115,7 +114,7 @@ public:
mat_inst=mi;
return(true);
}
};//class Renderable
};//class Mesh
Renderable *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
Mesh *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
VK_NAMESPACE_END

View File

@@ -44,7 +44,7 @@ namespace hgl
bool WriteVertex (const int16 *fp);
bool WriteTexCoord (const float *fp);
};//class TextPrimitive:public Renderable
};//class TextPrimitive:public Mesh
}//namespace graph
}//namespace hgl
#endif//HGL_GRAPH_FONT_PRIMITIVE_INCLUDE

View File

@@ -58,7 +58,7 @@ namespace hgl
bool Layout(TextPrimitive *tr,const U16String &str);
Renderable *CreateRenderable(TextPrimitive *text_primitive);
Mesh *CreateRenderable(TextPrimitive *text_primitive);
void Release(TextPrimitive *);
};//class TextRender