小编tpn*_*rma的帖子

如何在gtk4中获取属于GtkDrawingArea的X窗口?

我试图将 gstreamer 的 GUI 集成教程(https://gstreamer.freedesktop.org/documentation/tutorials/basic/toolkit-integration.html?gi-language=c)从 gtk3 移植到 gtk4。我在获取属于 GtkDrawingArea 的 X 窗口时遇到了问题。在 gtk3 中,要获取 XID 并将其传递给 GstVideoOverlay,使用以下方法:

static void realize_cb (GtkWidget *widget, CustomData *data) {
  GdkWindow *window = gtk_widget_get_window (widget);
  guintptr window_handle;

  if (!gdk_window_ensure_native (window))
    g_error ("Couldn't create native window needed for GstVideoOverlay!");

  /* Retrieve window handler from GDK */
  window_handle = GDK_WINDOW_XID (window);

  /* Pass it to playbin, which implements VideoOverlay and will forward it to the video sink */
  gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (data->playbin), window_handle);
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何在 Gtk4 …

gtk gstreamer cairo gtk4

5
推荐指数
1
解决办法
526
查看次数

标签 统计

cairo ×1

gstreamer ×1

gtk ×1

gtk4 ×1