diff --git a/inc/hgl/component/MeshComponent.h b/inc/hgl/component/MeshComponent.h index eeee506d..1722fcad 100644 --- a/inc/hgl/component/MeshComponent.h +++ b/inc/hgl/component/MeshComponent.h @@ -50,7 +50,7 @@ public: Component *CreateComponent(ComponentDataPtr cdp) override; - MeshComponent *CreateComponent(Mesh *); + Component *CreateComponent(Mesh *); };//class MeshComponentManager class MeshComponent:public RenderComponent diff --git a/inc/hgl/graph/RenderFramework.h b/inc/hgl/graph/RenderFramework.h index aa943b1e..27b8ff12 100644 --- a/inc/hgl/graph/RenderFramework.h +++ b/inc/hgl/graph/RenderFramework.h @@ -214,7 +214,7 @@ public: //Component 相关 return(nullptr); } - return manager->CreateComponent(args...); //创建组件 + return (C *)(manager->CreateComponent(args...)); //创建组件 } template diff --git a/src/SceneGraph/component/MeshComponentManager.cpp b/src/SceneGraph/component/MeshComponentManager.cpp index 69976ca3..6eba6cb6 100644 --- a/src/SceneGraph/component/MeshComponentManager.cpp +++ b/src/SceneGraph/component/MeshComponentManager.cpp @@ -30,11 +30,11 @@ Component *MeshComponentManager::CreateComponent(ComponentDataPtr cdp) return(new MeshComponent(cdp,this)); } -MeshComponent *MeshComponentManager::CreateComponent(Mesh *m) +Component *MeshComponentManager::CreateComponent(Mesh *m) { ComponentDataPtr cdp=new MeshComponentData(m); - return dynamic_cast(CreateComponent(cdp)); + return CreateComponent(cdp); } COMPONENT_NAMESPACE_END