我尝试创建一个openGL上下文。
如果我在Radeon GPU上启动它,就可以正常工作……但是在我测试过的每张nvidia卡上,它都会崩溃。
m_hWindowHandleToDevice = GetDC(hWnd);
m_PixelFormat = {
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags
PFD_TYPE_RGBA, //The kind of framebuffer. RGBA or palette.
32, //Colordepth of the framebuffer.
0, 0, 0, 0, 0, 0,
0,
0,
0,
0, 0, 0, 0,
24, //Number of bits for the depthbuffer
8, //Number of bits for the stencilbuffer
0, //Number of Aux buffers in the framebuffer.
PFD_MAIN_PLANE,
0,
0, 0, 0
};
int PixelFormatHandle = ChoosePixelFormat(m_hWindowHandleToDevice, &m_PixelFormat);
BOOL bPixelFormatOK = SetPixelFormat(m_hWindowHandleToDevice, PixelFormatHandle, &m_PixelFormat);
DWORD nLastError = GetLastError();
m_hOpenGLContext = wglCreateContext(m_hWindowHandleToDevice);
nLastError = GetLastError();
变量是:
所有驱动程序都已更新,我正在使用:
先感谢您
汤玛士
最佳答案
MSDN说cColorBits
不带alpha(尽管我经常在那儿看到32个)...SetPixelFormat()
失败(为FALSE)。它从那里下来。检查Chosen
和PixelFormat
的DescribePixelFormat
,以确保您感觉不错。
您只能设置一次Pixel Format
。确保你这样做。
你怎么称呼这一切?我认为最安全的地方是WM_CREATE处理程序。
试试这个传奇的老东西:Nehe OpenGL Window(结尾处有资源)。
即使不起作用,那肯定很奇怪。或者您知道:不要太聪明,不能使用GLFW或类似工具。
关于c++ - SetPixelFormat返回0错误代码3221684230(C0070006),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36794641/