重新命名EventDispatcher的添加/解决函数
This commit is contained in:
2
CMCore
2
CMCore
Submodule CMCore updated: a9e37e6219...7139219855
Submodule CMPlatform updated: ea52f06e72...5c4851e586
@@ -88,7 +88,7 @@ public:
|
|||||||
{
|
{
|
||||||
CloseShaderCompiler();
|
CloseShaderCompiler();
|
||||||
|
|
||||||
win->UnregisterEventDispatch(this);
|
win->RemoveChildDispatcher(this);
|
||||||
|
|
||||||
SAFE_CLEAR(db);
|
SAFE_CLEAR(db);
|
||||||
SAFE_CLEAR_OBJECT_ARRAY_OBJECT(cmd_buf,swap_chain_count);
|
SAFE_CLEAR_OBJECT_ARRAY_OBJECT(cmd_buf,swap_chain_count);
|
||||||
@@ -154,7 +154,7 @@ public:
|
|||||||
|
|
||||||
InitCommandBuffer();
|
InitCommandBuffer();
|
||||||
|
|
||||||
win->RegisterEventDispatch(this);
|
win->AddChildDispatcher(this);
|
||||||
|
|
||||||
{
|
{
|
||||||
vp_info.Set(w,h);
|
vp_info.Set(w,h);
|
||||||
@@ -403,8 +403,8 @@ public:
|
|||||||
ckc=new CameraKeyboardControl(camera_control);
|
ckc=new CameraKeyboardControl(camera_control);
|
||||||
cmc=new CameraMouseControl(camera_control);
|
cmc=new CameraMouseControl(camera_control);
|
||||||
|
|
||||||
win->RegisterEventDispatch(ckc);
|
win->AddChildDispatcher(ckc);
|
||||||
win->RegisterEventDispatch(cmc);
|
win->AddChildDispatcher(cmc);
|
||||||
|
|
||||||
RefreshCameraInfo(camera_control->GetCameraInfo(),&vp_info,camera);
|
RefreshCameraInfo(camera_control->GetCameraInfo(),&vp_info,camera);
|
||||||
|
|
||||||
|
@@ -29,12 +29,12 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
render_framework=rf;
|
render_framework=rf;
|
||||||
|
|
||||||
rf->RegisterEventDispatch(this);
|
rf->AddChildDispatcher(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~WorkManager()
|
virtual ~WorkManager()
|
||||||
{
|
{
|
||||||
render_framework->UnregisterEventDispatch(this);
|
render_framework->RemoveChildDispatcher(this);
|
||||||
SAFE_CLEAR(cur_work_object);
|
SAFE_CLEAR(cur_work_object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,10 +1,12 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include<hgl/type/object/TickObject.h>
|
#include<hgl/type/object/TickObject.h>
|
||||||
#include<hgl/graph/RenderFramework.h>
|
#include<hgl/graph/RenderFramework.h>
|
||||||
#include<hgl/graph/VKRenderResource.h>
|
#include<hgl/graph/VKRenderResource.h>
|
||||||
#include<hgl/graph/mtl/MaterialLibrary.h>
|
#include<hgl/graph/mtl/MaterialLibrary.h>
|
||||||
#include<hgl/graph/Renderer.h>
|
#include<hgl/graph/Renderer.h>
|
||||||
#include<hgl/graph/Scene.h>
|
#include<hgl/graph/Scene.h>
|
||||||
|
#include<hgl/io/event/WindowEvent.h>
|
||||||
#include<hgl/Time.h>
|
#include<hgl/Time.h>
|
||||||
//#include<iostream>
|
//#include<iostream>
|
||||||
|
|
||||||
@@ -20,7 +22,7 @@ namespace hgl
|
|||||||
*
|
*
|
||||||
* WorkObject被定义为工作对象,所有的渲染控制都需要被写在WorkObject的Render函数下。
|
* WorkObject被定义为工作对象,所有的渲染控制都需要被写在WorkObject的Render函数下。
|
||||||
*/
|
*/
|
||||||
class WorkObject:public TickObject
|
class WorkObject:public TickObject,public io::WindowEvent
|
||||||
{
|
{
|
||||||
graph::RenderFramework *render_framework=nullptr;
|
graph::RenderFramework *render_framework=nullptr;
|
||||||
|
|
||||||
|
@@ -65,7 +65,7 @@ protected: //RenderContext,未来合并成一个RenderContext结构
|
|||||||
|
|
||||||
void CreateDefaultRenderer();
|
void CreateDefaultRenderer();
|
||||||
|
|
||||||
protected: //EventDispatch
|
protected: //EventDispatcher
|
||||||
|
|
||||||
io::MouseEvent *mouse_event=nullptr;
|
io::MouseEvent *mouse_event=nullptr;
|
||||||
|
|
||||||
|
@@ -112,7 +112,7 @@ bool RenderFramework::Init(uint w,uint h)
|
|||||||
if(!device)
|
if(!device)
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
win->RegisterEventDispatch(this);
|
win->AddChildDispatcher(this);
|
||||||
|
|
||||||
module_manager=new GraphModuleManager(this);
|
module_manager=new GraphModuleManager(this);
|
||||||
|
|
||||||
@@ -161,10 +161,10 @@ void RenderFramework::CreateDefaultRenderer()
|
|||||||
auto ckc=new CameraKeyboardControl(fpcc);
|
auto ckc=new CameraKeyboardControl(fpcc);
|
||||||
auto cmc=new CameraMouseControl(fpcc);
|
auto cmc=new CameraMouseControl(fpcc);
|
||||||
|
|
||||||
this->RegisterEventDispatch(fpcc);
|
this->AddChildDispatcher(fpcc);
|
||||||
|
|
||||||
fpcc->RegisterEventDispatch(ckc);
|
fpcc->AddChildDispatcher(ckc);
|
||||||
fpcc->RegisterEventDispatch(cmc);
|
fpcc->AddChildDispatcher(cmc);
|
||||||
|
|
||||||
default_camera_control=fpcc;
|
default_camera_control=fpcc;
|
||||||
|
|
||||||
|
@@ -23,6 +23,11 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
if(!rf)
|
if(!rf)
|
||||||
{
|
{
|
||||||
|
if(render_framework)
|
||||||
|
{
|
||||||
|
render_framework->RemoveChildDispatcher(this);
|
||||||
|
}
|
||||||
|
|
||||||
render_framework=nullptr;
|
render_framework=nullptr;
|
||||||
db=nullptr;
|
db=nullptr;
|
||||||
}
|
}
|
||||||
@@ -37,6 +42,8 @@ namespace hgl
|
|||||||
db=rf->GetRenderResource();
|
db=rf->GetRenderResource();
|
||||||
scene=rf->GetDefaultScene();
|
scene=rf->GetDefaultScene();
|
||||||
renderer=rf->GetDefaultRenderer();
|
renderer=rf->GetDefaultRenderer();
|
||||||
|
|
||||||
|
render_framework->AddChildDispatcher(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorkObject::Render(double delta_time)
|
void WorkObject::Render(double delta_time)
|
||||||
|
Reference in New Issue
Block a user