c++ - 如何在窗口外绘制图形(OpenGL glfw)

标签 c++ opengl glfw

我想知道如何在主绘图窗口 (GLFW) 之外绘制 opengl 图形。可以在 ImGUI 库中看到一个示例。通过 ImGui 停靠,您可以将面板拖到主窗口之外。 ImGui 如何做到这一点;在主窗口外绘制图形?我怎样才能用 openGL 和 glfw 实现这一点?我正在使用 c++ 顺便说一句。谢谢!

最佳答案

对于 OpenGL,您始终需要一个上下文来进行绘制。这样的上下文要么是屏幕外上下文(所有绘制到该上下文的内容在屏幕上都不可见),要么是绑定(bind)到窗口 Canvas 的上下文。

该窗口的外观取决于所使用的库和系统,但您永远不能在该窗口/ Canvas 之外绘制。

ImGUI 是一个库,它使用 OpenGL 上下文中的各种组件/基元组成 UI。 ImGUI 的 UI 元素不是操作系统相关的 UI 元素。并且 ImGUI 窗口不会被操作系统识别为窗口,而只是 OpenGL 上下文中形成 UI 视觉外观的像素集合。 ImGUI 具有与您相同的限制,它不能在 OpenGL 上下文的主窗口之外绘制。

关于c++ - 如何在窗口外绘制图形(OpenGL glfw),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56747621/

相关文章:

c++ - fiber.detach() 之后什么时候执行?

c++ - 在 C++ 中沿着二维 vector (塔防)移动

c++ - OpenGL 和 Qt : display a label on the mouseover

c++ - 如果没有显卡,谁来运行 OpenGL 着色器

iPhone OpenGL fps 测试

c++ - GLSL 错误 : Undefined layout buffer variable in compute shader, 虽然已定义

c++ - 导出(安装)的 cmake 目标是否可分发?

c++ - GLFW 在 Visual Studio Community 中不工作

c++ - 在数组函数指针中调用 void

c++ - 将类添加到基本 Qt GUI 应用程序时出现 Qt 链接器错误