移除Window::input_event,减少一次传递
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
#ifndef HGL_GRAPH_WINDOW_INCLUDE
|
||||
#define HGL_GRAPH_WINDOW_INCLUDE
|
||||
#pragma once
|
||||
|
||||
#include<hgl/type/String.h>
|
||||
#include<hgl/io/event/WindowEvent.h>
|
||||
@@ -21,14 +20,6 @@ namespace hgl
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* 外部输入事件<br>
|
||||
* 比如Windows平台,是由WindowProc函数传递过来的。
|
||||
* 本事件传递器会呼叫io::WindowEvent的对象指针,在本类中指向的是自己。<br>
|
||||
* 注:仅当前类会如此设计,本身此Event是要放在外面的,不该在此级别。
|
||||
*/
|
||||
io::EventDispatch input_event;
|
||||
|
||||
void OnResize(uint,uint) override;
|
||||
void OnActive(bool) override;
|
||||
void OnClose () override;
|
||||
@@ -71,4 +62,3 @@ namespace hgl
|
||||
|
||||
void InitNativeWindowSystem();
|
||||
}//namespace hgl
|
||||
#endif//HGL_GRAPH_WINDOW_INCLUDE
|
||||
|
@@ -83,7 +83,7 @@ namespace hgl
|
||||
}
|
||||
|
||||
win_dc = GetDC(win_hwnd);
|
||||
SetWindowLongPtrW(win_hwnd, GWLP_USERDATA, (LONG_PTR)&input_event);
|
||||
SetWindowLongPtrW(win_hwnd, GWLP_USERDATA, (LONG_PTR)this);
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@@ -10,8 +10,6 @@ namespace hgl
|
||||
active=false;
|
||||
is_close=true;
|
||||
is_min=false;
|
||||
|
||||
input_event.RegisterEventDispatch(this);
|
||||
}
|
||||
|
||||
void Window::OnResize(uint w,uint h)
|
||||
@@ -38,8 +36,7 @@ namespace hgl
|
||||
}
|
||||
|
||||
void Window::OnClose()
|
||||
{
|
||||
input_event.UnregisterEventDispatch(this);
|
||||
{
|
||||
is_close=true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user