gpt4 book ai didi

c++ - 为 GLUT 创建自定义窗口?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:26 27 4
gpt4 key购买 nike

有没有一种方法可以为 GLUT 创建/指定自定义窗口而不是使用 glutCreateWindow 方法?我想修改窗口的某些元素,例如删除边框,可能圆角等。

似乎没有任何内置函数可以将某个 HWND 句柄设置为目标 GLUT 窗口(在 Windows 上)。

有什么想法吗?
詹格勒

最佳答案

Glut 和构建 Glut 的 OpenGL 旨在跨平台。每个平台对窗口的构成都有自己的想法。为了解决这个问题,OpenGL 有自己的窗口概念或渲染上下文。呈现上下文是呈现 DIB(设备独立位图)的内存块,通常不包括窗口装饰(边框、X、窗口图标等)。除非有我不知道的特定于平台的扩展,否则无法将特定于 Windows 的 HWND 传递给 Glut。

您可以在其他地方创建渲染上下文,例如在您自己的代码中或在另一个库中。一旦创建,可能会有一种方法将此上下文或指向上下文的指针传递给 Glut。这支持 OpenGL,许多基于它构建的库也是如此。

我不确定您为什么要更改窗口装饰,如果情况允许,使用 native 支持此功能的库可能更容易,而不是将 Glut 装配到解决方案中。我知道 SDL,Ogre3d 控制窗口装饰的能力有限(我不认为它们都可以绕过角落),如果你真的想使用 Glut,可以让这些库中的任何一个给你一个指针他们使用的 OpenGL 渲染上下文。我没有使用过 QT,但我知道它可以更轻松地访问您想要的控件类型,并且能够为您创建 OpenGL 上下文。

但是,在查看了位于 http://www.opengl.org/documentation/specs/glut/spec3/spec3.html 的 Glut 文档之后它不使用“上下文”一词。这可能意味着如果您使用 Glut,您将只能使用它提供的窗口装饰工具。这可能意味着您要么放弃过剩并使用功能更多的库,要么满足于操作系统提供的窗口装饰。

关于c++ - 为 GLUT 创建自定义窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4643473/

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