win32 OpenGL的 context 多线程问题
2014-03-20 10:53
921 查看
微软的文档讲wglMakeCurrent时并没有说清楚一些问题:它讲这样用是可以的:
A thread用 wglCreateContext建立context;
B thread用wglMakeCurrent绑定context;
但是缺少了两点说明,否则你看不到图像更新(返回值都正常),或者wglMakeCurrent返回奇怪的错误:
1.创建context的A线程不能退出了,否则即使B线程绑定了,也得不到图像更新;
2.有些显卡(我试过Intel的显卡)需要A线程线程解绑定wglMakeCurrent(0, 0),否则这个函数返回BUZY的错误;
还有,A线程创建的context事实上可以被多个线程轮番使用,但前提是每次使用之前需要wlgMakeCurrent绑定,使用之后应该wglMakeCurrent(0, 0)解出绑定。
opengl的API做的不好的就是:错误检测机制做的不好,没图像了,但是很难从那个函数查出它的原因在哪里?
A thread用 wglCreateContext建立context;
B thread用wglMakeCurrent绑定context;
但是缺少了两点说明,否则你看不到图像更新(返回值都正常),或者wglMakeCurrent返回奇怪的错误:
1.创建context的A线程不能退出了,否则即使B线程绑定了,也得不到图像更新;
2.有些显卡(我试过Intel的显卡)需要A线程线程解绑定wglMakeCurrent(0, 0),否则这个函数返回BUZY的错误;
还有,A线程创建的context事实上可以被多个线程轮番使用,但前提是每次使用之前需要wlgMakeCurrent绑定,使用之后应该wglMakeCurrent(0, 0)解出绑定。
opengl的API做的不好的就是:错误检测机制做的不好,没图像了,但是很难从那个函数查出它的原因在哪里?
相关文章推荐
- 多线程下HttpContext.Current 的问题
- 安卓下多线程OpenGL共享Context (四)
- 安卓下多线程OpenGL共享Context (一)
- 安卓下多线程OpenGL共享Context (二)
- OpenGL ES开发中遇到call to OpenGL ES API with no current context (logged once per thread) 问题原因
- .net 多线程下HttpContext.Current 的问题
- 多线程下HttpContext.Current 的问题
- opengl 多线程渲染中的问题
- 解决 “VC++ 多线程编程,win32,MFC 例子(转)”在高版本上运行有错误的问题
- 多线程编程之一(Win32)——问题提出(收藏)
- 解决COCOS2D-X与JNI交互游戏出现崩溃的问题call to OpenGL ES API with no current context (logged once per thread)
- 用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口
- 多线程编程之一(Win32)——问题提出(收藏)
- 继续讨论win32下的多线程编程问题
- opengl多线程的问题
- call to OpenGL ES API with no current context (logged once per thread)可能会导致加载问题?
- 安卓下多线程OpenGL共享Context (三)
- C#异步,多线程下的HttpContext丢失问题
- win32 多线程的问题(未解决)
- 多线程编程2 例程3-4(Win32 API)