C++ 为GLUT创建自定义窗口?

C++ 为GLUT创建自定义窗口?,c++,window,glut,C++,Window,Glut,是否有方法为GLUT创建/指定自定义窗口,而不是使用glutCreateWindow方法?我想修改窗口的某些元素,例如删除边框、可能圆角等 似乎没有任何内置函数将某个HWND句柄设置为目标GLUT窗口(在Windows上) 有什么想法吗? Jenger和构建Glut的OpenGL旨在实现跨平台。每一个平台都有它自己的关于窗口的想法。为了解决这个问题,OpenGL有自己的窗口或渲染上下文的概念。渲染上下文是渲染DIB(设备独立位图)的内存块,通常不包括窗口装饰(边框、X、窗口图标等)。除非有我不知

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

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

有什么想法吗?

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

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

我不知道你为什么要改变窗户装饰,如果情况允许的话,使用一个本机支持这个功能的库可能比把过量的东西装配到一个解决方案中更容易。我知道SDL和Ogre3d控制窗口装饰的能力有限(但我不认为两者都能解决问题),如果您真的想使用Glut,可以让其中任何一个库为您提供指向它们使用的OpenGL渲染上下文的指针。我没有使用过QT,但我知道它可以更方便地访问您想要的控件,并且能够为您创建OpenGL上下文

然而,在查看了Glut的文档之后,它没有使用“上下文”一词。这可能意味着,如果使用Glut,则仅限于它提供的窗口装饰工具。这可能意味着你要么放弃过剩,使用一个功能更强的库,要么满足于操作系统提供的窗口装饰