如何获取 GLFW 窗口 ID?
How to get GLFW Window Id?
我希望在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,只需查看文档,它应该会给您答案,但这不是跨平台的,并且可能如文档所述有风险:
通过使用本机访问函数,您可以断言您知道自己在做什么以及如何解决因使用它们而导致的问题。如果你不这样做,你不应该使用它们:
对于 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)
相关文章:
- 如何获取 GLFW 窗口 ID?
- 在 GLFW 窗口中显示 FFMPEG 解码帧
- glfw 在创建之前/创建时实例化窗口位置
- 编译GLFW源窗口
- 无法在 GLFW 窗口标题中显示'ä'
- 为什么在GLFW窗口中没有用这个代码在我的屏幕上绘制立方体
- 在多个函数中使用全局glfw窗口
- 无法创建GLFW窗口
- 鼠标离开 GLFW窗口后触发 GLFW 鼠标回调?
- 如何在 GLFW 窗口中以固定的 FPS 渲染?
- 当焦点丢失时,全屏GLFW窗口消失了
- 如何在窗口外绘制图形(OpenGL GLFW)
- GLFW 不会检测到 GLFW 窗口外的鼠标移动
- 如何设置GLFW窗口的(0,0)坐标位置
- GLFW窗口glfwSwapBuffers()真的很慢吗
- 如何在GLFW窗口中限制每秒帧数?(使用亲爱的ImGui)
- 在窗口窗体中嵌入 GLFW 窗口
- 在GLFW窗口标题中显示FPS
- 调用glfwWindowHint()后,GLFW窗口创建失败
- 当GLFW窗口调整大小时,渲染区域不会改变