当前位置:编程学习 > VC++ >>

如何在VC++6.0中将OpenGL绘制的图像输出到一个CBitmap对象中?

我使用VC++并利用OpenGL 在一个MFC单文档文件中绘制了多个球。现在需要做动画,而且要在屏幕上输出文字(还有很多别的图形输出,很浪费时间)。我目前的做法是先画出多个球,再用CView类的OnDraw在球旁边绘制说明文字。不过这样做的后果就是屏幕闪动太厉害。为解决这个问题,我想新建一个CBitmap,先将图像绘制在CBitmap中,然后再显示。不过遇到了一个问题就是无法让通过OpenGL绘制的球也绘制在CBitmap上。 所以向各位高手求助,如何让OpenGL把在缓存中绘制好的球输出到我指定的CBitmap上? 或者其他高手有什么能在MFC单文档文件中防止动画闪动的高招也可以。 万分感谢!!
答案:gl命令绘制完成后,使用glReadPixels 读取图象数据(注意颜色格式和数据保存格式)——一般用RGBA。缓冲大小要匹配,否则出错的。
然后使用 SetBitmapBits 函数将读取的图象数据指派给图象句柄。在通过创建内存dc,指定此图象句柄,通过bitblt,等图象函数就可以显示在view的窗口上。
注意生成的图象句柄,格式要和gl的兼容噢

上一个:VC父子进程是怎么回事啊?
下一个:UDF中VC++2008的环境变量如何设置,有贴吧说加三个环境变量,可是环境变量里面有用户变量和系统变量

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,