RenderFramework关联default_scene事件传递

This commit is contained in:
2025-07-27 16:47:12 +08:00
parent 510168e912
commit d577642533
2 changed files with 26 additions and 6 deletions

View File

@@ -63,6 +63,8 @@ protected: //RenderContext,未来合并成一个RenderContext结构
CameraControl * default_camera_control =nullptr;
Renderer * default_renderer =nullptr;
void OnChangeDefaultScene(Scene *);
void CreateDefaultRenderer();
protected: //EventDispatcher

View File

@@ -134,7 +134,7 @@ bool RenderFramework::Init(uint w,uint h)
render_resource=new RenderResource(device);
default_scene=new Scene;
OnChangeDefaultScene(new Scene);
default_camera=new Camera();
@@ -143,6 +143,24 @@ bool RenderFramework::Init(uint w,uint h)
return(true);
}
void RenderFramework::OnChangeDefaultScene(Scene *s)
{
if(default_scene==s)
return;
if(default_scene)
{
this->RemoveChildDispatcher(&(default_scene->GetEventDispatcher()));
}
if(s)
{
this->AddChildDispatcher(&(s->GetEventDispatcher()));
}
default_scene=s;
}
void RenderFramework::CreateDefaultRenderer()
{
SAFE_CLEAR(default_renderer)
@@ -246,11 +264,11 @@ graph::Primitive *RenderFramework::CreatePrimitive( const AnsiString &name,
return prim;
}
graph::Mesh *RenderFramework::CreateMesh( const AnsiString &name,
const uint32_t vertices_count,
graph::MaterialInstance *mi,
graph::Pipeline *pipeline,
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)
graph::Mesh *RenderFramework::CreateMesh( const AnsiString &name,
const uint32_t vertices_count,
graph::MaterialInstance *mi,
graph::Pipeline *pipeline,
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)
{
auto *prim=this->CreatePrimitive(name,vertices_count,mi->GetVIL(),vad_list);