如何使用SurfaceImageSource创建保留的图形?

时间:2013-01-09 02:38:54

标签: windows-runtime directx winrt-xaml

我想创建一个XAML应用程序,它在屏幕的一部分中逐步显示一些图形。我可以拥有大量的元素,所以我想保留已绘制的元素,并在它们出现时仅绘制新的元素。但不幸的是,我无法从SurfaceImageSource进入交换链(告诉我是否有可能)所以我不能只用每次绘制调用复制缓冲区。

如何在SurfaceImageSource上绘制新元素,同时以高效的方式保留旧元素?

1 个答案:

答案 0 :(得分:1)

我认为交换链是你可以用于屏幕而不是像SurfaceImageSource一样的表面,所以我认为它根本没有交换链 - 它只是一个单一的纹理。我没有尝试,但我会假设如果你不在渲染调用之间清除它(使用ClearRenderTargetView方法) - 内容应该保持原样。如果您只想重用部分内容 - 您应该创建一个单独的纹理和渲染目标视图,用于渲染到该纹理,然后以某种方式将该纹理的内容复制到SurfaceImageSource。我不确定最好的方法是做什么 - 也许内存映射纹理并在它们之间做一个memcpy或者将一个纹理四边形(两个三角形)渲染到另一个。