如何获取由 DirectFB 创建的 X 窗口的 ID
How do I get the ID of the X Window created by DirectFB?
我正在为一个使用 DirectFB 和 GStreamer-0.10 的程序开发。我正在使用 GStreamer gstxoverlay
库中的gst_x_overlay_set_xwindow_id()
来告诉 GStreamer 渲染到 DirectFB 创建的窗口。 gst_x_overlay_set_xwindow_id()
要求我给它我想要渲染的 X 窗口的 ID,但我似乎找不到从 DirectFB 获取它的方法。
有没有办法获取DirectFB创建的窗口的X Window ID?如果没有任何简单的方法,有没有办法对 DirectFB 的源文件进行一些黑客攻击来实现这一点?
在你的代码directfb
某处必须有类似Window window;
行。 尝试将其公开给 gstreamer 代码。
从那里获取窗口句柄,然后您可以使用以下函数
gst_x_overlay_set_window_handle(GST_X_OVERLAY(yoursinkvariable), (guintptr) windowhandle);
不完全按照您询问的方式,但这也可能解决问题。
此外,gst_x_overlay_set_xwindow_id() 已被弃用。
从文档中,
警告
gst_x_overlay_set_xwindow_id
已弃用,不应在新编写的代码中使用。请改用gst_x_overlay_set_window_handle()
。
相关文章:
- 是否可以从控制台应用程序使用 C++/WinRT 创建窗口?
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- 有没有办法一次运行 3 个创建窗口函数?
- 使用带有诅咒库的 stdscr 创建窗口,在边框而不是线条中显示不需要的笑脸字符
- 无法使用 CreateWindowEx 函数创建窗口
- 无法创建窗口
- openGL PBO 使用 wglcontext,而不是创建窗口
- SDL2 无法创建窗口,因为它找不到匹配的 GLX 视觉对象
- 可以控制台应用程序自行创建窗口
- 为对话框创建窗口类
- OpenGL /Glut在Maineventloop()之后创建窗口
- 我无法创建窗口
- 创建窗口参数类型错误
- 在 C++ 中创建窗口
- 获取确切的窗口区域大小 - 创建窗口窗口大小不正确
- WinAPI在dll中创建窗口
- 如何在作为控制台启动的应用程序中创建窗口
- 创建窗口不起作用,但不提供错误消息
- 如何使用 C++ 在 Linux 中创建窗口
- WinAPI 创建窗口 + 子窗口,处理一个按钮按下