win32 OpenGL的 context 多线程问题

微软的文档讲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做的不好的就是:错误检测机制做的不好,没图像了,但是很难从那个函数查出它的原因在哪里?

转载于:https://www.cnblogs.com/slowtech/p/3613171.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值