为了账号安全,请及时绑定邮箱和手机立即绑定

什么是Intel HD 3000上正确的OpenGL初始化?

什么是Intel HD 3000上正确的OpenGL初始化?

C++
偶然的你 2020-02-02 14:35:43
我对东芝笔记本电脑上的Intel图形HD 3000 (OS Win7 x32,lang C ++)有问题。经典的单一上下文OpenGL应用程序可以正常工作,但是在单个App中的多个OpenGL上下文上会产生奇怪的行为:在我的应用程序的旧版本上,英特尔驱动程序根本无法创建第二个渲染上下文。在基于OpenGL的软件体系结构中进行重大更改后,行为发生了变化现在,我可以创建第二个渲染上下文了,但是在释放它之后(使用/关闭窗口之后),驱动程序无法创建任何下一个渲染上下文。这已经在多个应用程序上进行了测试,并且始终表现相同。我想通过始终激活第二个上下文来解决这个问题,但是它也无法正常工作(某种程度上渲染上下文在Intel上无效)。为了清楚起见,第二个OpenGL渲染上下文用于“ 打开/保存”对话框(预览子窗口)。驾驶员信息:Intel(R) HD Graphics 3000OpenGL ver: 3.1.0 - Build 9.17.10.2932现在的问题:难道我做错了什么?引擎是功能齐全的GL,GLSL,VBO,VAO等,并经过多年测试。怪异的行为仅出现在Intel上。来自nVidia的卡可以正常工作,而ATI / AMD则可以正常工作(存在一些问题,但它们总是与ATI有关,尤其是具有索引的VBO的故障驱动程序,其他一切正常)有没有更好的初始化/退出OpenGL的方法?如何在不同的渲染上下文之间正确切换?我现在正在使用wglMakeCurrent(hdc,hrc),但可能是我遗漏了一些东西,或者在Intel上有一些解决方法。
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

您对WGL的使用对我来说看起来是正确的(包括对wglMakeCurrent的使用),但是我已经有一段时间没有使用它了,所以我的记忆可能很模糊(回答Q1和Q3)。


然而,是一种更好的方法来初始化的OpenGL:使用加载库,因为这里详述。正如Wiki所述,强烈建议您使用加载程序库,而不要自己尝试。


我喜欢使用SFML创建OpenGL上下文和窗口,再加上GLEW(仅Windows才需要)来设置OpenGL核心上下文函数。我在glfw上也取得了成功,这非常适合加载OpenGL 3.2+


查看完整回答
反对 回复 2020-02-02
  • 2 回答
  • 0 关注
  • 1060 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信