我知道我需要调用wglGetProcAddress来获取扩展wglSwapIntervalEXT的地址。假设对wglGetProcAddress的调用成功,wglSwapIntervalEXT是否位于opengl32.lib中? 最佳答案 wglSwapIntervalEXTlocatedinopengl32.lib?没有。opengl32.dll基本上是GPU驱动程序提供的实际OpenGL实现的跳板,所谓的ICD(独立客户端驱动程序)。它还包含一个软件光栅器,但这只是一个后备。opengl32.lib只是DLL的目录。
我正在尝试使用wglSwapIntervalEXT(intinterval)通过WGL_EXT_swap_control在OpenGl中禁用垂直同步。我试图包含wglextheader,但经过大量搜索后,它似乎没有安装在我的电脑上(使用opengl扩展查看器找到它)。我已尝试安装windowssdk并更新.net框架,但仍然无法安装此扩展。无论如何要包括这个。我的显卡是nVidiaGTX770m。或者是否有更简单的方法来禁用垂直同步。谢谢 最佳答案 因此,一位friend成功地解决了这个问题。因此,如果有人需要帮助,这应该与您正在寻
我拼命地想让Vsync在我的OpenGL应用程序中工作。这是重要的统计数据:我使用的是Windows,使用C++OpenGL进行编码,并且我将FreeGLUT用于我的OpenGL上下文(双缓冲)。我知道要让交换缓冲区在Windows中等待垂直同步,您需要调用wglSwapIntervalEXT()。我的代码确实调用了它(正如您将在下面看到的),但我仍然在垂直撕裂。我设法阻止它的唯一方法是调用glFinish(),这当然会带来显着的性能损失。我的main()函数的相关部分如下所示://InitiatingglutwindowglutInit(&argc,argv);glutInitDis
这可能吗?因为我注意到垂直同步在我的笔记本电脑上根本不起作用,所以我正在“手动”构建FPS限制器,现在我想使用用户为他的屏幕设置的FPS限制。编辑:我指的是显示器赫兹率。Edit3:这是我开始工作的代码(我想……有什么问题吗?):DEVMODElpDevMode;memset(&lpDevMode,0,sizeof(DEVMODE));lpDevMode.dmSize=sizeof(DEVMODE);lpDevMode.dmDriverExtra=0;if(EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&lpDevMode)==0){fr
glfwSwapInterval(1)似乎对我不起作用。如果我在CCC中强制使用VSync或在SFML中强制使用setVerticalSyncEnabled(true),我的fps会下降到60,但GLFW只会保持9000fps的运行速度。我是在以错误的方式解决这个问题还是GLFW被窃听了? 最佳答案 看起来GLFW不想在启用桌面合成时打开VSync。如果您仍然需要VSync,这将适用于Windows:#ifdef_WIN32//TurnonverticalscreensyncunderWindows.//(I.e.itusesthe