Blit()性能取决于屏幕旋转

Joh*_* li 5 mfc windows-ce

我正在开发一个WinCE 6.0设备的应用程序,其中需要旋转屏幕,因此我们使用典型的ChangeDisplaySettingsEx()API.而且我在View上画了一些东西.

memDC横向模式到主DC时,在横向模式下为700x300像素需要20ms,但在纵向模式下,对450x450模块进行blitting需要50 ms.

我无法确定为什么会这样.以下是设备配置: - 800x480分辨率.我正在使用Normal Blt()API.

任何建议都会有所帮助

Hel*_*ein 2

我对WinCE一无所知,但如果复制算法逐行工作,性能差异是合乎逻辑的。

在一种模式中,屏幕上的像素布局和视频RAM中的像素布局是相同的。如果是这种情况,则屏幕上的一行对应于多个连续的内存地址。

在纵向模式下,算法需要为每个新像素访问新的内存位置。尽管像素彼此相邻,但内存地址却并非如此。