c++ - 如何在窗口外绘制图形(OpenGL glfw)
问题描述
我想知道如何在主绘图窗口 (GLFW) 之外绘制 opengl 图形。可以使用 ImGUI 库查看示例。通过 ImGui 停靠,您可以将面板拖到主窗口之外。ImGui 是如何做到这一点的?在主窗口外绘制图形?如何使用 openGL 和 glfw 实现这一目标?我正在使用 c++ 顺便说一句。谢谢!
解决方案
对于 OpenGL,您总是需要一个上下文来绘制。这样的上下文要么是屏幕外上下文(所有绘制到该上下文的内容在屏幕上不可见),要么是绑定到窗口画布的上下文。
该窗口的外观取决于使用的库和系统,但您永远不能在该窗口/画布之外进行绘制。
ImGUI 是一个库,它使用 OpenGL 上下文中的各种组件/基元组成 UI。ImGUI 的 UI 元素不是 OS 相关的 UI 元素。并且 ImGUI 窗口不是操作系统将识别为窗口的任何东西,而只是 OpenGL 上下文中形成 UI 视觉外观的像素集合。ImGUI 具有与您相同的限制,它不能在 OpenGL 上下文的主窗口之外绘制。
推荐阅读
- python - 如何验证我正在导入的文件中是否存在列表元素
- javascript - 就像我们在 babelTypes 中一样,将 JavaScript 代码转换为 AST 表示
- django - 如何在 django 管理面板上搜索框旁边的下拉列表?
- postgresql - 使用循环迭代时,不会为 Postgres 重新调整自动生成的主键
- python - 根据某些条件,将空日期时间值替换为来自同一数据帧的其他日期时间值
- pysimplegui - PySimpleGUI:为列添加边框
- python - 如何将一列中的值添加到另一列中另一个值的末尾?
- ios - 如何更改之前选择的ios开发团队
- javascript - 将 useState 重写为 vanilla JS 时刷新值
- node.js - 当我第二次尝试将相同的 cookie 发送到相同的请求时,意味着先前的 cookie 盗窃攻击