HI,在一个Window CE平台上,发现BitBlt()函数很耗时间. 该应用有一个10.4吋LCD显示屏,分辨率800*600 象素.
在程序中设了TickCount读取2次连续循环之间差值.
原程序是把整个屏幕裁剪成了几部分需要根据定时跟新的数据画图的,剩下的裁剪下的边边角角不需要更新.
需要更新的Part,直接各自独立地BitBlt到屏幕DC上.现在连续2次Tickcount差值大概是175-180ms.
本想按照双缓冲的思路,需要吧更新Part的临时兼容DC,全部BitBlt到一个整屏800*600的兼容DC,在BitBlt到屏幕DC上.
尝试把整个屏幕作为Bkground Bitmap加到一个兼容DC,单单加了这个操作,BitBlt()后,发现连续2次TickCount差值增加到了400ms.
这样双缓冲毫无意义.反而性能变得很差了.
请问有何方法可以提高BitBlt速度.或更好的解决方法?
如下图: 菱形和椭圆以及箭头符号,表示是需要更新的部分.
其他部分是不需要更新的. 现在的程序是把更新的部分,如菱形,箭头,椭圆全部裁剪出来,单独BitBlt到屏幕DC.
我想用一个整个屏幕大小的兼容DC,将所有更新部分全部BitBlt到该兼容DC,在由该兼容DC BitBlt到屏幕DC,发现BitBlt太耗时间.
