Windows 上没有 GLUT 的 OpenGL 4.5 简单教程 [关闭]

Posted

技术标签:

【中文标题】Windows 上没有 GLUT 的 OpenGL 4.5 简单教程 [关闭]【英文标题】:Simple tutorial for OpenGL 4.5 without GLUT on Windows [closed] 【发布时间】:2015-10-09 04:40:01 【问题描述】:

我在网上找到了很多旧 OpenGL 版本的教程。但是在我为 4.5 加载核心功能后,我无法访问 glSwapBuffers。可能这个功能已经过时了。是否有任何教程或文档我可以如何在 OpenGL 4.5 中实际绘制。

现在我已经使用 PFD_DOUBLEBUFFER 初始化了 OpenGL,并且我已经将着色器编译到了一个程序中。

编辑: 作为加载程序,我使用OpenGL Loader Generator

回答: 碰巧函数名 glSwapBuffers 让我误以为它是 OpenGL 函数,但事实并非如此。对于Windows,它是wingdi 功能。所以,不需要gl:: 前缀。只需拨打SwapBuffers(_hdc);

【问题讨论】:

看看这个:simple complete GL+GLSL+VAO/VBO example 没有使用 GLUT(它只使用 GLEW 来加载 GL 函数指针)。但是,如果他们真的在GL 4.5+ 中过时了glSwapBuffers,那么这也无济于事。但我怀疑您使用的加载程序更有可能存在某种错误或需要为更高的 GL 版本定义一些 #define。如果你发现了,请告诉我。 @Spektre 他们没有过时的功能,因为我原来,它不是 OpenGL 功能,而是系统功能。 感谢您的信息。刚刚意识到我使用的是SwapBuffers(hdc); 而不是glSwapBuffers(hdc);,所以这应该很明显,但对我来说并没有(我把它隐藏在scr.rfs() 之类的东西中) 【参考方案1】:

OpenGL 中没有glSwapBuffers 函数(没有它的版本)。该功能由底层窗口系统(win32/x11)提供。您必须致电(取决于您使用的系统)wglSwapBuffersglXSwapBuffers

我怀疑,GLUT 提供了一个映射到正确函数的glSwapBuffers

【讨论】:

以上是关于Windows 上没有 GLUT 的 OpenGL 4.5 简单教程 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Windows下配置OpenGL环境

如何在 Windows 中为 opengl 编译 gcc?

visual studio 2010配置opengl环境

OpenGL + GLUT没有填充最左边的多边形?

Opengl 64位窗口

如何在Qt中配置OpenGL