3dvideo example: Correct video overlay for HiDPI
authorJan Schmidt <jan@centricular.com>
Thu, 23 Nov 2017 14:37:48 +0000 (01:37 +1100)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:31 +0000 (19:32 +0000)
Use the GTK scaling factor to scale the video allocation
so video displays correctly on hi-dpi screens

tests/examples/gl/gtk/3dvideo/main.cpp

index ec5951b..4f12b11 100644 (file)
@@ -117,9 +117,16 @@ static gboolean
 resize_cb (GtkWidget * widget, GdkEvent * event, gpointer sink)
 {
   GtkAllocation allocation;
+  gint scale = 1;
+
+#if GTK_CHECK_VERSION(3, 10, 0)
+  scale = gtk_widget_get_scale_factor (widget);
+#endif
 
   gtk_widget_get_allocation (widget, &allocation);
-  gst_video_overlay_set_render_rectangle (GST_VIDEO_OVERLAY (sink), allocation.x, allocation.y, allocation.width, allocation.height);
+  gst_video_overlay_set_render_rectangle (GST_VIDEO_OVERLAY (sink),
+      allocation.x * scale, allocation.y * scale, allocation.width * scale,
+      allocation.height * scale);
 
   return G_SOURCE_CONTINUE;
 }