修正鼠标滚轮消息传递,并增加滚轮控制摄像机距离
This commit is contained in:
parent
f5414372a6
commit
4cc94b1fd5
@ -46,6 +46,7 @@ protected:
|
||||
void OnMouseDown(int,int,uint mk){mouse_key=mk;MouseDown(mk);}
|
||||
void OnMouseUp (int,int,uint mk){mouse_key=0;MouseUp(mk);}
|
||||
void OnMouseMove(int x,int y){mouse_pos.Set(x,y);MouseMove();}
|
||||
void OnMouseWheel(int v,int h,uint mk){MouseWheel(v,h,mk);}
|
||||
|
||||
protected:
|
||||
|
||||
@ -117,6 +118,7 @@ public:
|
||||
SetEventCall(win->OnMouseDown, this,VulkanApplicationFramework,OnMouseDown );
|
||||
SetEventCall(win->OnMouseUp, this,VulkanApplicationFramework,OnMouseUp );
|
||||
SetEventCall(win->OnMouseMove, this,VulkanApplicationFramework,OnMouseMove );
|
||||
SetEventCall(win->OnMouseWheel, this,VulkanApplicationFramework,OnMouseWheel);
|
||||
|
||||
return(true);
|
||||
}
|
||||
@ -126,6 +128,7 @@ public:
|
||||
virtual void MouseDown(uint){}
|
||||
virtual void MouseUp(uint){}
|
||||
virtual void MouseMove(){}
|
||||
virtual void MouseWheel(int,int,uint){}
|
||||
|
||||
void InitCommandBuffer()
|
||||
{
|
||||
@ -314,4 +317,9 @@ public:
|
||||
|
||||
mouse_last_pos=mouse_pos;
|
||||
}
|
||||
|
||||
virtual void MouseWheel(int v,int h,uint)
|
||||
{
|
||||
camera.Distance(1+(v/1000.0f));
|
||||
}
|
||||
};//class WalkerCameraAppFramework
|
||||
|
@ -33,7 +33,7 @@ namespace hgl
|
||||
public:
|
||||
|
||||
virtual void ProcMouseMove (int x,int y) {SafeCallEvent(OnMouseMove, (x,y));}
|
||||
virtual void ProcMouseWheel (int x,int y, int v,int h) {SafeCallEvent(OnMouseWheel, (x,y,v,h));}
|
||||
virtual void ProcMouseWheel (int v,int h,uint mb) {SafeCallEvent(OnMouseWheel, (v,h,mb));}
|
||||
virtual void ProcMouseDown (int x,int y,uint mb) {SafeCallEvent(OnMouseDown, (x,y,mb));}
|
||||
virtual void ProcMouseUp (int x,int y,uint mb) {SafeCallEvent(OnMouseUp, (x,y,mb));}
|
||||
virtual void ProcMouseDblClick (int x,int y,uint mb) {SafeCallEvent(OnMouseDblClick, (x,y,mb));}
|
||||
@ -61,7 +61,7 @@ namespace hgl
|
||||
public:
|
||||
|
||||
DefEvent(void,OnMouseMove ,(int,int));
|
||||
DefEvent(void,OnMouseWheel ,(int,int, int,int));
|
||||
DefEvent(void,OnMouseWheel ,(int,int,uint));
|
||||
DefEvent(void,OnMouseDown ,(int,int,uint));
|
||||
DefEvent(void,OnMouseUp ,(int,int,uint));
|
||||
DefEvent(void,OnMouseDblClick ,(int,int,uint));
|
||||
|
@ -226,20 +226,18 @@ namespace hgl
|
||||
#define WMEF2(name) void name(WinWindow *win,uint32 wParam,uint32 lParam)
|
||||
WMEF2(WMProcMouseWheel)
|
||||
{
|
||||
const int x=LOWORD(lParam);
|
||||
const int y=HIWORD(lParam);
|
||||
|
||||
win->ProcMouseMove(x,y);
|
||||
win->ProcMouseWheel(x,y,HIWORD(wParam),0);
|
||||
int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
|
||||
uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
|
||||
|
||||
win->ProcMouseWheel(zDelta,0,key);
|
||||
}
|
||||
|
||||
WMEF2(WMProcMouseHWheel)
|
||||
{
|
||||
const int x=LOWORD(lParam);
|
||||
const int y=HIWORD(lParam);
|
||||
|
||||
win->ProcMouseMove(x,y);
|
||||
win->ProcMouseWheel(x,y,0,HIWORD(wParam));
|
||||
int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
|
||||
uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
|
||||
|
||||
win->ProcMouseWheel(0,zDelta,key);
|
||||
}
|
||||
|
||||
WMEF2(WMProcSize)
|
||||
|
Loading…
x
Reference in New Issue
Block a user