lavd/gdigrab: mouse dpi awareness

correct mouse location on hidpi screens.
fixes ticket #5008

Signed-off-by: Matt Oliver <protogonoi@gmail.com>
This commit is contained in:
Metaksakis Georgios 2016-02-15 10:05:17 +11:00 committed by Matt Oliver
parent 70d685a77f
commit 00c73c475e
1 changed files with 6 additions and 0 deletions

View File

@ -446,6 +446,8 @@ static void paint_mouse_pointer(AVFormatContext *s1, struct gdigrab *gdigrab)
POINT pos;
RECT clip_rect = gdigrab->clip_rect;
HWND hwnd = gdigrab->hwnd;
int vertres = GetDeviceCaps(gdigrab->source_hdc, VERTRES);
int desktopvertres = GetDeviceCaps(gdigrab->source_hdc, DESKTOPVERTRES);
info.hbmMask = NULL;
info.hbmColor = NULL;
@ -479,6 +481,10 @@ static void paint_mouse_pointer(AVFormatContext *s1, struct gdigrab *gdigrab)
}
}
//that would keep the correct location of mouse with hidpi screens
pos.x = pos.x * desktopvertres / vertres;
pos.y = pos.y * desktopvertres / vertres;
av_log(s1, AV_LOG_DEBUG, "Cursor pos (%li,%li) -> (%li,%li)\n",
ci.ptScreenPos.x, ci.ptScreenPos.y, pos.x, pos.y);