准备开始实现StaticMeshComponent

This commit is contained in:
2025-06-12 03:01:50 +08:00
parent 3fd6f98ef7
commit 87c150d1bd
6 changed files with 43 additions and 28 deletions

View File

@@ -103,7 +103,7 @@ public:
public:
virtual Component * CreateComponent(SceneNode *,ComponentData *)=0;
virtual Component * CreateComponent(ComponentData *)=0;
int GetComponentCount()const{return component_set.GetCount();}

View File

@@ -7,7 +7,19 @@ COMPONENT_NAMESPACE_BEGIN
struct StaticMeshComponentData:public ComponentData
{
Mesh *renderable;
Mesh *mesh;
public:
StaticMeshComponentData()
{
mesh=nullptr;
}
StaticMeshComponentData(Mesh *m)
{
mesh=m;
}
};//struct StaticMeshComponentData
class StaticMeshComponent;
@@ -31,9 +43,24 @@ public:
StaticMeshComponentManager()=default;
StaticMeshComponent *CreateStaticMeshComponent(SceneNode *psn,StaticMeshComponentData *data);
StaticMeshComponent *CreateStaticMeshComponent(StaticMeshComponentData *data)
{
if(!data)return(nullptr);
virtual Component *CreateComponent(SceneNode *psn,ComponentData *data) override;
return(new StaticMeshComponent(data));
}
StaticMeshComponent *CreateStaticMeshComponent(Mesh *m)
{
return CreateStaticMeshComponent(new StaticMeshComponentData(m));
}
virtual Component *CreateComponent(ComponentData *data) override
{
if(!data)return(nullptr);
return CreateStaticMeshComponent(reinterpret_cast<StaticMeshComponentData *>(data));
}
};//class StaticMeshComponentManager
class StaticMeshComponent:public PrimitiveComponent
@@ -42,10 +69,10 @@ class StaticMeshComponent:public PrimitiveComponent
public:
StaticMeshComponent(SceneNode *psn,ComponentData *cd,ComponentManager *cm)
StaticMeshComponent(SceneNode *psn,StaticMeshComponentData *cd,StaticMeshComponentManager *cm)
:PrimitiveComponent(psn,cd,cm)
{
sm_data=reinterpret_cast<StaticMeshComponentData *>(cd);
sm_data=cd;
}
virtual ~StaticMeshComponent()=default;

View File

@@ -135,7 +135,7 @@ class IndirectDispatchBuffer;
class RenderResource;
class StaticMesh;
class StaticMeshComponent;
class SceneNode;
class Scene;