Home » Developing U++ » U++ Developers corner » Using Pen with U++
Re: Using Pen with U++ [message #56444 is a reply to message #56443] |
Fri, 12 March 2021 12:35 |
Tom1
Messages: 1213 Registered: March 2007
|
Senior Contributor |
|
|
Hi,
It seems, when the pen is moving fast, Windows filters out part of the intermediate pen positions. Therefore, processing GetPointerPenInfoHistory() improves drawing quality especially at higher pen speeds:
static bool disableOldWMs=false; // When true, blocks out original WM_MOUSEMOVE, WM_LBUTTONUP, WM_LBUTTONDOWN
switch(message) {
case WM_POINTERDOWN:
case WM_POINTERUPDATE:
case WM_POINTERUP:
{
POINT p = Point((LONG)lParam);
ScreenToClient(hwnd, &p);
pen = false;
pen_pressure = pen_rotation = Null;
pen_tilt = Null;
pen_eraser = false;
pen_barrel = false;
pen_inverted = false;
static BOOL (WINAPI *EnableMouseInPointer)(BOOL fEnable);
static BOOL (WINAPI *GetPointerType)(UINT32 pointerId, POINTER_INPUT_TYPE *pointerType);
static BOOL (WINAPI *GetPointerInfo)(UINT32 pointerId, POINTER_INFO *pointerInfo);
static BOOL (WINAPI *GetPointerPenInfo)(UINT32 pointerId, POINTER_PEN_INFO *penInfo);
static BOOL (WINAPI *GetPointerTouchInfo)(UINT32 pointerId, POINTER_TOUCH_INFO *touchInfo);
static BOOL (WINAPI *GetPointerPenInfoHistory)(UINT32 pointerId, UINT32 *entriesCount, POINTER_PEN_INFO *penInfo);
ONCELOCK {
DllFn(EnableMouseInPointer, "User32.dll", "EnableMouseInPointer");
if(EnableMouseInPointer && EnableMouseInPointer(true)) disableOldWMs=true; // Switching over to WM_POINTER* functions for mouse
DllFn(GetPointerType, "User32.dll", "GetPointerType");
DllFn(GetPointerInfo, "User32.dll", "GetPointerInfo");
DllFn(GetPointerPenInfo, "User32.dll", "GetPointerPenInfo");
DllFn(GetPointerTouchInfo, "User32.dll", "GetPointerTouchInfo");
DllFn(GetPointerPenInfoHistory, "User32.dll", "GetPointerPenInfoHistory");
};
POINTER_INPUT_TYPE pointerType;
UINT32 pointerId = GET_POINTERID_WPARAM(wParam);
if(GetPointerType && GetPointerType(pointerId, &pointerType)) {
switch(pointerType){
case PT_PEN:{
UINT32 hc=256;
POINTER_PEN_INFO ppit[hc];
if(message==WM_POINTERUPDATE && GetPointerPenInfoHistory && GetPointerPenInfoHistory(pointerId, &hc, ppit)) {
for(int i=hc-1;i>=0;i--){
pen = true;
if(ppit[i].penFlags & PEN_FLAG_BARREL)
pen_barrel = true;
if(ppit[i].penFlags & PEN_FLAG_INVERTED)
pen_inverted = true;
if(ppit[i].penFlags & PEN_FLAG_ERASER)
pen_eraser = true;
if(ppit[i].penMask & PEN_MASK_PRESSURE)
pen_pressure = ppit[i].pressure / 1024.0;
if(ppit[i].penMask & PEN_MASK_ROTATION)
pen_rotation = ppit[i].rotation * M_2PI / 360;
if(ppit[i].penMask & PEN_MASK_TILT_X)
pen_tilt.x = ppit[i].tiltX * M_2PI / 360;
if(ppit[i].penMask & PEN_MASK_TILT_Y)
pen_tilt.y = ppit[i].tiltY * M_2PI / 360;
POINT hp = ppit[i].pointerInfo.ptPixelLocation;
ScreenToClient(hwnd, &hp);
if(ignoreclick) {
EndIgnore();
return 0L;
}
if(_this) DoMouse(MOUSEMOVE, Point(hp));
DoCursorShape();
}
return 0L;
}
POINTER_PEN_INFO ppi;
if(GetPointerPenInfo && GetPointerPenInfo(pointerId, &ppi)) {
if(ppi.pointerInfo.historyCount){
}
pen = true;
if(ppi.penFlags & PEN_FLAG_BARREL)
pen_barrel = true;
if(ppi.penFlags & PEN_FLAG_INVERTED)
pen_inverted = true;
if(ppi.penFlags & PEN_FLAG_ERASER)
pen_eraser = true;
if(ppi.penMask & PEN_MASK_PRESSURE)
pen_pressure = ppi.pressure / 1024.0;
if(ppi.penMask & PEN_MASK_ROTATION)
pen_rotation = ppi.rotation * M_2PI / 360;
if(ppi.penMask & PEN_MASK_TILT_X)
pen_tilt.x = ppi.tiltX * M_2PI / 360;
if(ppi.penMask & PEN_MASK_TILT_Y)
pen_tilt.y = ppi.tiltY * M_2PI / 360;
}
break;
}
case PT_TOUCH:{
POINTER_TOUCH_INFO pti;
if(GetPointerTouchInfo && GetPointerTouchInfo(pointerId, &pti)) {
// Add something touch specific here some day maybe...
}
break;
}
/* default:{
POINTER_INFO pi;
if(GetPointerInfo && GetPointerInfo(pointerId, &pi)) {
}
break;
}
*/ }
switch(message){
case WM_POINTERDOWN:
ClickActivateWnd();
if(ignoreclick) return 0L;
DoMouse(LEFTDOWN, Point(p), 0);
if(_this) PostInput();
break;
case WM_POINTERUP:
if(ignoreclick) EndIgnore();
else DoMouse(LEFTUP, Point(p), 0);
if(_this) PostInput();
break;
case WM_POINTERUPDATE:
if(ignoreclick) {
EndIgnore();
return 0L;
}
if(_this) DoMouse(MOUSEMOVE, Point(p));
DoCursorShape();
break;
}
return 0L;
}
}
break;
case WM_POINTERLEAVE:
pen = false;
break;
...
Best regards,
Tom
|
|
|
|
|
Using Pen with U++
By: Tom1 on Wed, 03 March 2021 16:13
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 03 March 2021 17:06
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 03 March 2021 20:40
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 12:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 13:10
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 13:27
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 13:41
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 13:47
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 13:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 14:18
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 14:37
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 14:39
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 15:07
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 15:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 16:56
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 09 March 2021 17:48
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 09 March 2021 18:14
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 11 March 2021 11:21
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 11:53
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 11 March 2021 14:16
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 14:41
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 14:54
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 11 March 2021 16:26
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 09:37
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 09:52
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 10:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 10:28
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 11:56
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 12:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 17:50
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 12 March 2021 18:32
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 19:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 20:27
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 12:42
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 14:19
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 14:39
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 15:07
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 15:20
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 18:02
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 13 March 2021 19:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 20:54
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 14 March 2021 00:05
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 14 March 2021 12:14
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 17 March 2021 09:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 19 March 2021 09:09
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 19 March 2021 12:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 19 March 2021 16:02
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 20 March 2021 11:25
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 21 March 2021 12:29
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 22 March 2021 00:39
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 22 March 2021 08:46
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 22 March 2021 10:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 22 March 2021 16:17
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 23 March 2021 13:36
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 11:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 11:57
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 13:31
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 15:21
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 15:56
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 16:51
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 24 March 2021 18:01
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 24 March 2021 18:22
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 25 March 2021 19:58
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 25 March 2021 20:47
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 25 March 2021 22:07
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 25 March 2021 22:33
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 00:22
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 25 March 2021 22:28
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 08:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 10:15
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 12:42
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 13:39
|
|
|
Re: Using Pen with U++
By: Novo on Fri, 26 March 2021 15:05
|
|
|
Re: Using Pen with U++
By: Novo on Fri, 26 March 2021 15:08
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 15:45
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 16:44
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 26 March 2021 18:19
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 26 March 2021 18:52
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 27 March 2021 09:11
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 27 March 2021 12:20
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 27 March 2021 20:23
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 27 March 2021 20:45
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 28 March 2021 13:15
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 28 March 2021 18:11
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 11:10
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 12:33
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 13:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 14:36
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 15:35
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 15:50
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 16:01
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 16:20
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 16:54
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 17:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 17:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 17:29
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 29 March 2021 18:17
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 20:41
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 29 March 2021 22:02
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 30 March 2021 11:21
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 30 March 2021 11:26
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 30 March 2021 11:36
|
|
|
Re: Using Pen with U++
By: mirek on Tue, 30 March 2021 12:00
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 30 March 2021 12:44
|
|
|
Re: Using Pen with U++
By: Tom1 on Tue, 30 March 2021 15:26
|
|
|
Re: Using Pen with U++
By: Novo on Tue, 30 March 2021 23:34
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 10:37
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 13:14
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 13:46
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 31 March 2021 15:03
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 01 April 2021 13:53
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 01 April 2021 16:22
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 01 April 2021 17:29
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 01 April 2021 18:01
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 01 April 2021 22:46
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 01 April 2021 22:49
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 02 April 2021 08:26
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 02 April 2021 10:05
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 02 April 2021 11:43
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 02 April 2021 12:30
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 02 April 2021 21:27
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 08:44
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 08:52
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 08:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 10:37
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 11:14
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 11:37
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 15:52
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 16:02
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 16:05
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 16:17
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 03 April 2021 17:28
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 03 April 2021 22:57
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 04 April 2021 18:55
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 04 April 2021 20:35
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 04 April 2021 20:42
|
|
|
Re: Using Pen with U++
By: Tom1 on Sun, 04 April 2021 22:02
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 04 April 2021 23:15
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 05 April 2021 12:33
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 05 April 2021 12:59
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 07 April 2021 11:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 07 April 2021 12:00
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 08 April 2021 17:36
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 09 April 2021 09:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 09 April 2021 10:00
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 09 April 2021 10:24
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 09 April 2021 17:25
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 09 April 2021 20:15
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 12 April 2021 00:27
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 12 April 2021 09:10
|
|
|
Re: Using Pen with U++
By: mirek on Sun, 25 April 2021 23:20
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 26 April 2021 15:55
|
|
|
Re: Using Pen with U++
By: mirek on Mon, 26 April 2021 16:06
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 26 April 2021 16:33
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 26 April 2021 17:13
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 28 April 2021 12:00
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 28 April 2021 15:42
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 28 April 2021 16:39
|
|
|
Re: Using Pen with U++
By: mirek on Fri, 30 April 2021 07:32
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 30 April 2021 11:08
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 30 April 2021 17:08
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 01 May 2021 10:19
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 01 May 2021 10:16
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 01 May 2021 16:56
|
|
|
Re: Using Pen with U++
By: mirek on Sat, 01 May 2021 17:57
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 01 May 2021 22:56
|
|
|
Re: Using Pen with U++
By: Tom1 on Mon, 03 May 2021 09:18
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 14 May 2021 09:04
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 21:09
|
|
|
Re: Using Pen with U++
By: Tom1 on Sat, 13 March 2021 15:10
|
|
|
Re: Using Pen with U++
By: Tom1 on Fri, 12 March 2021 10:26
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 02 June 2021 10:53
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 11:28
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 02 June 2021 11:38
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 11:40
|
|
|
Re: Using Pen with U++
By: mirek on Wed, 02 June 2021 11:45
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 12:00
|
|
|
Re: Using Pen with U++
By: Tom1 on Wed, 02 June 2021 12:50
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 03 June 2021 10:05
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 03 June 2021 10:16
|
|
|
Re: Using Pen with U++
By: Tom1 on Thu, 03 June 2021 10:33
|
|
|
Re: Using Pen with U++
By: mirek on Thu, 03 June 2021 11:26
|
Goto Forum:
Current Time: Sun May 12 02:55:41 CEST 2024
Total time taken to generate the page: 0.04161 seconds
|