DrawingSurface和DrawingSurfaceBackgroundGrid之间是否存在性能差异?

时间:2013-04-09 20:55:33

标签: wpf drawing windows-phone-8 windows-phone

在Windows Phone 8的Xaml / Direct3d应用程序中,使用DrawingSurface和DrawingSurfaceBackgroundGrid之间是否存在性能差异?

3 个答案:

答案 0 :(得分:3)

是的,有区别。

我设法找到了有用的信息:

来自http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662943(v=vs.105).aspx,"带有XAML项目模板的Direct3D"

"如果您想创建一个仅将托管应用程序用作本机游戏的瘦包装器的游戏,以便利用仅适用于托管应用程序的某些功能,则建议使用此模板,如活瓷砖。此模板使用DrawingSurfaceBackgroundGrid控件在屏幕上显示Direct3D图形。与DrawingSurface控件不同,此控件必须放在XAML树的根部,并始终覆盖整个屏幕。与其他模板一样,用于渲染图形的Direct3D代码在单独的Windows Phone运行时组件中实现。 使用XAML应用程序的Direct3D的帧速率略高于使用Direct3D应用程序的XAML。"

来自http://tiptoptool.com/tag/sdk/," DrawingSurfaceBackgroundGrid"

" DrawingSurfaceBackgroundGrid是一个非常特殊的元素,必须始终是页面的根元素,并允许开发人员使用C ++直接从Direct3D渲染到背景。 DrawingSurfaceBackgroundGrid,顾名思义,继承自Grid,因此您可以使用Grid布局来定位子元素。子元素由Direct3D渲染背景上的平台自动组成。 DrawingSurfaceBackgroundGrid允许开发人员直接渲染,而不需要像DrawingSurface所需的副本(通过Direct3D交换链),这样可以提高性能。引入DrawingSurfaceBackgroundGrid来支持游戏或其他需要'到金属的图形性能,但也希望使用现有的XAML元素用于UI,并且可以访问本机应用程序模型中不可用的一些功能,如Live Tiles或Notification"

答案 1 :(得分:0)

主要区别在于DrawingSurface应仅用于绘制屏幕的一部分,例如在控制中。

另一方面,DrawingSurfaceBackgroundGrid用于全屏使用,因为该元素充当网格,即您可以在中添加XAML元素并安排它们,就好像您使用顶级网格布局。

至于性能,我会说,对于全屏使用,后一种形式更高效,尽管我不能说这是事实。

答案 2 :(得分:0)

另一个主要区别是DrawingSurfaceBackgroundGrid不支持方向。它总是使用肖像。