silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight - GPU加速大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Silverlight 3引入了GPU加速的特性,该功能默认为禁用。启用该功能需要:   1. 在Silverlight plug-in上设置 <param name="enableGPUAcceleration" value="true" /> 或使用代码 Application.Current.Host.SetTings. EnableGPUAcceleration= True;   2.在类

Silverlight 3引入了GPU加速的特性,该功能认为禁用。启用该功能需要:

 

1. 在Silverlight plug-in上设置 <param name="enableGPUAcceleration" value="true" /> 或使用代码 Application.Current.Host.SetTings. EnableGPUAcceleration= True;

 

2.在类型为UIElement的控件上设置 CacheMode = "BitmapCache" - 所谓GPU加速是基于GPU缓存了一些UI元素,节省了cpu的耗用

 

如何知道哪些控件被缓存?在Silverlight plug-in上设置 < param name = "enableCacheVisualization" value = "true" /> 后程序界面中会有颜色变化:

1. 红色表示没有被缓存

2. 正常颜色表示被缓存

3. 绿色表示没有设置 CacheMode = "BitmapCache",但被自动缓存

Silverlight - GPU加速

 

由于GPU加速的原理是缓存,那么频繁变动的UIElement就不适宜使用,因为缓存的频繁更新反而会带来性能损耗。但是MideaElement例如视频使用GPU加速可以实现性能提高

 

Silverlight - GPU加速

图:启用缓存的视频

 

但是perspetive 3d效果的视频 则不可以:

Silverlight - GPU加速

 图:右侧视频使用了Pespective 3d效果显示为红色,没有缓存


 

GPU加速的限制:

1. GPU 加速仅支持如下动画: @H_542_197@Scale,Rotate,Changing Opacity,Clipping (only if clip is rectangular),其他则不支持,例如 Perspective 3d效果的动画。

 

2. GPU显存不足,Silverlight会认使用cpu来实现缓存,这反而会增加cpu的负担 - 目前Silverlight还不支持查询GPU缓存大小的方法,仅提供了Analytics.GpuCollection 属性


3. 需要支持DirectX(Windows) 或OpenGL(MaC)的显卡,且Mac上仅支持全屏模式

 

 

1. https://blogs.msdn.com/b/rahul/archive/2010/06/09/silverlight-graphics-and-hardware-acceleration.aspx

2. http://dotnetslackers.com/articles/silverlight/discovering-silverlight3-deep-dive-into-gpu-acceleration.aspx

3. http://arthraim.cn/silverlight-3-and-gpu-acceleration/

大佬总结

以上是大佬教程为你收集整理的Silverlight - GPU加速全部内容,希望文章能够帮你解决Silverlight - GPU加速所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。