OpenGL上下文创建期间的未记录错误

kro*_*jew 2 c++ windows opengl nvidia

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到一个错误 - 0xc00710dd或3221688541(由GetLastError()返回),当我尝试创建第二个上下文,它与先前成功创建的某些上下文共享数据(shareLists参数).谷歌搜索只给出了一个结果:http://software.intel.com/en-us/forums/topic/303629我在Windows 8.1上使用GeForce 680 GTX和最新的驱动程序,所以线程不是很多我们无论如何.

一个奇怪的是这个错误的再现方式.当我创建与A共享数据的上下文A和上下文B,然后C与A共享数据时,只有当B在创建C(失败)之前呈现某些内容时才会发生错误.

有谁知道可能会发生什么?

rod*_*igo 5

此错误可能是HRESULT/ SCODE是复合值.可以使用宏访问每个部分(严重性,设施,代码):

HRESULT_SEVERITY(0xC00710DD) = 0xC0000000 //ERROR_SEVERITY_ERROR  
HRESULT_FACILITY(0xC00710DD) = 7          //FACILITY_WIN32
HRESULT_CODE(0xC00710DD)     = 4317       //ERROR_INVALID_OPERATION
Run Code Online (Sandbox Code Playgroud)