为什么我创建了 YV12 的 Overlay Surface , 但是图像不会更新呢?
首先我创建了一个'UYVY'格式的Overlay表面, 将一个视频序列读入其中, 在我的窗口中能看到叠加的视频, 一切正常(我以25fps的速度更新Overlay表面).
然后我将'UYUV'改为'YV12' (我的显卡TNT2支持YV12格式的, 我用GetFourCC看过), 所有函数调用成功(UpdateOverlay调用也成功了), 但是我往表面内存中写入图像时, 窗口中的图像没有更新, 奇怪的是当我移动窗口时(我在窗口的OnMove中调用了UpdateOverlay)图像才会更新, 停止移动窗口, 图像就又不动了:(
还有'YV12'格式是非打包格式, 那么 Y 和 U/V 分量的Pitch必然不同, 但是Lock函数返回的 DDSURFACEDESC2 结构中只有一个Pitch, 是否 U/V 分量的Pitch总是 Y 分量的一半呢??
以上Overlay表面在调用UpdateOverlay表面时设置的目的矩形和源矩形是一样大的, 不存在硬件不支持缩放的可能(根本就没有缩放嘛)
有谁知道是什么原因, 哪里可以找到更详细的关于DirectDraw中的YV12 Overlay表面的资料吗?