gpt4 book ai didi

c++ - 如何获取 GLFW 窗口 ID?

转载 作者:行者123 更新时间:2023-11-28 04:30:53 24 4
gpt4 key购买 nike

我希望在 glfw 窗口上渲染 gstreamer 视频流。根据 gstreamer 覆盖设计,如果您提供相关的 winId,它将呈现它。像 Qt 的例子:

  QWidget window;
window.resize(320, 240);
window.show();

WId xwinid = window.winId();
gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (sink), xwinid);

但我无法通过 GLFW 找到 winId。

GLFWwindow* window = glfwCreateWindow(...);

它有一个窗口结构类型,但仅此而已。有没有办法获得它的 Id,或者我应该为 glfw 采用另一种方式?

谢谢。

最佳答案

对于 GLFW 3,只要看看文档,它应该给你 answer ,但这不是跨平台的,并且可能像文档所说的那样有风险:

通过使用 native 访问函数,您可以断言您知道自己在做什么以及如何解决因使用它们而导致的问题。如果不这样做,则不应使用它们:

对于 Windows,如果你想要窗口的 Win32 句柄:

1) 定义GLFW_EXPOSE_NATIVE_WIN32

2) 包含glfw3native.h

3) 使用HWND glfwGetWin32Window (GLFWwindow *window)

您也可以找到 X11 和 Cocoa 的等价物...

编辑:对于 X11,如果您想要 Window 对象:

1) 定义GLFW_EXPOSE_NATIVE_X11

2) 包含glfw3native.h

3) 使用Window glfwGetX11Window (GLFWwindow *window)

关于c++ - 如何获取 GLFW 窗口 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52982954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com