qmlglsrc: Handle HiDPI scaling
authorJan Schmidt <jan@centricular.com>
Tue, 20 Dec 2022 15:37:58 +0000 (02:37 +1100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 21 Dec 2022 12:21:32 +0000 (12:21 +0000)
When calculating the capture framebuffer size, include
any device scaling applied to the rendered framebuffer

Fixes only capturing part of the window when there is
a global scale factor.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3612>

subprojects/gst-plugins-good/ext/qt/qtwindow.cc

index ec8f85d..daec322 100644 (file)
@@ -330,8 +330,12 @@ QtGLWindow::getGeometry(int * width, int * height)
   if (width == NULL || height == NULL)
     return FALSE;
 
-  *width = this->source->width();
-  *height = this->source->height();
+  double scale = this->source->effectiveDevicePixelRatio();
+  *width = this->source->width() * scale;
+  *height = this->source->height() * scale;
+
+  GST_LOG("Window width %d height %d scale %f", *width, *height,
+      scale);
 
   return TRUE;
 }