我有一个 C/C++ MFC 应用程序,其中从左到右的移动图像显示StretchDIBits
在窗口中。屏幕撕裂发生在窗口中。
请理解我不是在谈论闪烁,而是屏幕撕裂,因为闪烁更像是整个屏幕闪烁,而屏幕撕裂会导致图像的某些散射部分在图像向右或向左移动时不同步,因此移动的垂直线暂时看起来断线很短的一段时间。
起初,我认为StretchDIBits
是原因,但将其更改为 SetDIBitsToDevice 根本没有帮助。所以我怀疑它是 GDI 并且谷歌搜索支持我的怀疑。
我看到这篇文章来解决这个问题,但我认为直接使用 DirectX 会更干净。
所以在这一点上,我正在考虑使用 DirectX 或 OpenGL 来防止这种撕裂,但不确定这种方法是否有效,或者是否有更好的方法。所以我的问题是
- 使用 OpenGL 或 DirectX 会解决这个问题吗?
- 有没有比使用 OpenGL 和 DirectX 更好的方法?
任何线索将不胜感激。
为了节省时间,请不要建议不要使用 MFC,因为这是要求之一。