Direct2D图像闪烁问题

刚刚学习了一点Direct2D的知识,准备写个小游戏。我用C++封装了一个D2DClass的类,准备在其他类中直接调用。D2DClass主要的功能是使用DrawBitmap函数绘图,使用DirectWrite绘制文字。开始好好的,文字正常显示,DirectWrite的使用还挺简单的,我还定义了很多参数。后来添加了一个图片显示功能,没想到文字没有被图片覆盖,文字没有闪烁,图片不停闪烁。后来,我以为要定义一个新的D2DClass的对象来绘制,我先去掉了绘图代码,用两个不同对象绘制文字,结果两个都不停的闪。真实郁闷,没有办法,我只好拿官方的Direct2D的例子来对比,还以为是Clear函数问题导致背景不停刷新,结果都徒劳无功。

在网上搜索自然没有搜到,最后我不断做实验,发现我最初的想法只是把D2DClass当个工具类而已,这样一来,我想画一个图片就必须先BeginDraw,然后又要EndDraw。我的DrawBitmap函数也是如此,这样游戏不停循环,我就有多个BeginDraw和EndDraw,最终造成了闪烁问题。说来,我开始入门,这是个低级问题,大家不要笑话,放到这里只是做个记录。我把BeginDraw与EndDraw放在其它地方就可以了,保证图像是完整的一帧被绘制,不要分别绘制不同部分。

你可能感兴趣的:(DI)