我在Toshiba笔记本电脑上安装了英特尔图形HD 3000 (OS Win7 x32,lang C++).
经典的单上下文OpenGL应用程序工作正常但在单个App中的多个OpenGL上下文中会产生奇怪的行为:
在我的基于OpenGL的软件架构行为的重大变化发生变化之后
现在我能够创建第二个渲染上下文但在释放之后(在使用/关闭窗口之后),驱动程序无法创建任何下一个渲染上下文.这已经在多个应用程序上进行了测试,并且始终表现相同.我希望通过让第二个上下文始终处于活动状态来克服这个问题,但它也不起作用(某种程度上,渲染上下文在英特尔上无效).为清楚起见,第二个OpenGL渲染上下文用于打开/保存对话框(预览子窗口).
司机信息:
Intel(R) HD Graphics 3000
OpenGL ver: 3.1.0 - Build 9.17.10.2932
Run Code Online (Sandbox Code Playgroud)
初始化和退出OpenGL代码(来自我的OpenGL引擎):
//------------------------------------------------------------------------------
int OpenGLscreen::init(void *f,int textures)
{
if (_init) exit();
frm=(formtype*)f;
hdc = GetDC(frm->Handle); // get device context
int i;
if (!_used)
{
int i,_pfid=-1,_zbit=0;
PIXELFORMATDESCRIPTOR _pfd;
#define pfd_test i=ChoosePixelFormat(hdc,&pfd); DescribePixelFormat(hdc,i,sizeof(_pfd),&_pfd); if (_zbit<_pfd.cDepthBits) { _zbit=_pfd.cDepthBits; _pfid=i; }
pfd.cColorBits = 32; pfd.cDepthBits = …Run Code Online (Sandbox Code Playgroud)