OpenGL上下文创建期间未记录的错误
Posted
技术标签:
【中文标题】OpenGL上下文创建期间未记录的错误【英文标题】:Undocumented error during OpenGL context creation 【发布时间】:2014-01-31 04:54:48 【问题描述】:我正在使用 wglCreateContextAttribsARB() 函数创建具有以下参数的 OGL 上下文:
const int contextAttrib[] =
WGL_CONTEXT_MAJOR_VERSION_ARB, 4,
WGL_CONTEXT_MINOR_VERSION_ARB, 2,
WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB,
#ifdef _DEBUG
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB | WGL_CONTEXT_DEBUG_BIT_ARB,
#else
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
#endif
0
;
mContext = wglCreateContextAttribsARB_local(mhDC, shareLists, contextAttrib);
不幸的是,当我尝试创建与之前成功创建的某些上下文(shareLists 参数)共享数据的第二个上下文时,我收到一个错误 - 0xc00710dd 或 3221688541(由 GetLastError() 返回)。谷歌搜索它只给出了一个结果:http://software.intel.com/en-us/forums/topic/303629我在 Windows 8.1 上使用 GeForce 680 GTX 和最新的驱动程序,所以这个线程对我们来说并不多。
一个奇怪的事情是重现此错误的方式。当我创建上下文 A 和上下文 B 与 A 共享数据,然后 C 与 A 共享数据时,仅当 B 在创建 C 之前呈现某些内容时才会发生错误(失败)。
有人知道会发生什么吗?
【问题讨论】:
我知道这很旧,但是我遇到了同样的错误。你知道是什么原因吗? 【参考方案1】:这个错误可能是一个HRESULT
/ SCODE
这是一个复合值。每个部分(严重性、设施、代码)都可以通过宏访问:
HRESULT_SEVERITY(0xC00710DD) = 0xC0000000 //ERROR_SEVERITY_ERROR
HRESULT_FACILITY(0xC00710DD) = 7 //FACILITY_WIN32
HRESULT_CODE(0xC00710DD) = 4317 //ERROR_INVALID_OPERATION
【讨论】:
谢谢,有道理。以上是关于OpenGL上下文创建期间未记录的错误的主要内容,如果未能解决你的问题,请参考以下文章
QXcbIntegration:无法创建平台 OpenGL 上下文,GLX 和 EGL 均未启用
带有 QT 错误的 OpenGL:断言:“QOpenGLFunctions::isInitialized(d_ptr)”。无法创建 OpenGL 上下文