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

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:27:28
我使用VC++并利用OpenGL 在一个MFC单文档文件中绘制了多个球。现在需要做动画,而且要在屏幕上输出文字(还有很多别的图形输出,很浪费时间)。我目前的做法是先画出多个球,再用CView类的OnDraw在球旁边绘制说明文字。不过这样做的后果就是屏幕闪动太厉害。为解决这个问题,我想新建一个CBitmap,先将图像绘制在CBitmap中,然后再显示。不过遇到了一个问题就是无法让通过OpenGL绘制的球也绘制在CBitmap上。
所以向各位高手求助,如何让OpenGL把在缓存中绘制好的球输出到我指定的CBitmap上?
或者其他高手有什么能在MFC单文档文件中防止动画闪动的高招也可以。
万分感谢!!
感谢各位的帮忙,不过小弟不才,即使在网上查了一些资料也没弄清楚SetBitmapBits之类的函数怎么用。能否麻烦某位高手写一下代码示范一下?
假定几经用OpenGL绘好了图,如何将它输出到一个指定的CBitmap对象中?
感谢各位!

gl命令绘制完成后,使用glReadPixels 读取图象数据(注意颜色格式和数据保存格式)——一般用RGBA。缓冲大小要匹配,否则出错的。
然后使用 SetBitmapBits 函数将读取的图象数据指派给图象句柄。在通过创建内存dc,指定此图象句柄,通过bitblt,等图象函数就可以显示在view的窗口上。
注意生成的图象句柄,格式要和gl的兼容噢

我现在也开始学这个了,还不是很清楚哦~!顺便答一下,下次也好来看高手怎么答的,呵呵~