2011-03-22 76 views
3

我的一位同事建议我避免在我的移动应用中使用任何渐变,因为手机无法处理渲染按钮/背景上的渐变所需的工作负载等。我在呈现按钮时没有看到任何挂起或任何东西,但有没有我应该避免的渐变?使用渐变会影响WP7的性能吗?

回答

4

这取决于您在哪里使用它。如果您正在比较SolidColorBrush和GradientBrush of course,则平台需要做更多工作来渲染渐变,但这是微不足道的性能差异。

我能想到的唯一情况是,假设您在大型ListBox中使用复杂渐变并在ListBoxItems中使用它,这会使很多渐变得到实例化。在这种情况下,我宁愿用低质量的JPEG替换渐变。 JPEG(图像)会自动给我更多的系统级缓存,并且列表框的性能会比你在那里提供矢量渐变更好。

但是,如果它是个别按钮或其他控制样式,使用渐变完全没问题。 http://jobijoy.blogspot.com/2011/05/wp7dev-tip-2-few-things-to-remember-on.html

3

我不明白为什么渐变会影响性能,但渐变在许多WP7屏幕上不能很好地呈现,因为它们针对地铁进行了优化,不会促进渐变。我已经看到我们用于原型的HTC Trophy上的彩色条纹

0

使用渐变 - - 线性或放射状 - 不应该有任何显着的影响

更多这样的提示可以在这里我的博客上找到。但是,这并不意味着它不会。

WP7 Silverlight基于普通的Silverlight,而Silverlight基于WPF。在WPF中,线性渐变广泛使用时会产生显着影响,而径向渐变无论出于何种原因都会产生相当大的影响。所以看它的历史和谱系,经常使用可能会产生实质性影响。也就是说,如果考虑GPU实际需要做的工作来绘制这些图像,线性和径向渐变接近相同的工作量,并且可以优化以使用非常少的着色器指令。如果底层场景图允许顶点修改,则线性降至4(如果我可以修改顶点,则径向降至5),甚至在大多数情况下甚至可以为3。这两种着色器都非常简单。这意味着不应该是会产生任何实际影响。也许这是微软在某些时候可以优化的东西。

相关问题