VirtualSurfaceImageSource的闪烁问题

时间:2012-05-22 11:22:22

标签: directx windows-8 windows-runtime direct3d direct2d

我正在考虑在我的应用程序中使用VirtualSurfaceImageSource,并且我已经实现了与Direct2D magazine app sample类似的东西,但我遇到了一个问题,当虚拟表面大几倍时就会出现这个问题比显示区域。

基本上,我有一个水平滚动ScrollViewer,其中包含Image。图像的来源是宽VirtualSurfaceImageSource(至少~10000 x 500像素)。 ScrollViewer的宽度为1280像素。

当我使用触摸平移滚动滚动查看器时,图像有时会闪烁 - 图像的一部分消失然后重新绘制。这通常发生在惯性滚动停止时。当图像滚动到视图中时,图像已经完全绘制,但由于某种原因,图像被清除并且IVirtualSurfaceUpdatesCallbackNative::UpdatesNeeded()被调用。

我上传了a video which illustrates the problem 。观察滚动停止时的情况(0:02,0:17,等等......)

为什么会发生这种情况?

我还注意到,如果图像宽度为~5000像素或更低,则不会发生闪烁。


如果要重现此问题,请从Direct2D magazine app sample开始,在<text name="butterfly-body">标记下的Sample.story中添加更多文本 - 只需将现有文本复制10次左右即可。尝试在两个方向上滚动蝴蝶页面并以不同的速度,你应该看到似乎是同样的问题。

我在MSDN forum中提出了这个问题,但到目前为止我还没有回答。

1 个答案:

答案 0 :(得分:0)

这不再是Windows 8 Release Preview中的问题,因此它可能只是Consumer Preview中的一个错误。