首页 > 解决方案 > 如何在窗口外绘制图形(OpenGL glfw)

问题描述

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

标签: c++openglglfw

解决方案


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

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

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


推荐阅读