



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows Phone中的图形渲染处理 这篇文章主要介绍Windows Phone中XAML的渲染处理过程,你可以根据下文中所提到的内容来优化现有的XAML页面,来提高页面渲染的性能。 XAML的渲染包括以下两个阶段: 1. 光栅化(Rasterization) 光栅化是将图形的表现形式从以基于矢量 (vector-based)的图形(比如:线、文字和矩形)转换成基于像素(pixel-based)的图形,从而可以使图像直接显示在屏幕上的处理过 程。这个转换过程要先在内存中先为位图分配一个缓冲区,然后将以矢量图形一个像素一个像素的转换成位图,并完成蒙板和梯度值的计算。这个光栅化的过程完全 是由CPU来处理的。 2. 组合(Composition) 在每一个UIElement都被光栅化之后渲染器按照原始 元素Z轴的顺序讲各个缓冲区上的位图层叠到彼此之上。这个处理将各个位图组合到了一起,所以渲染器要负责处理元素的透明度和任何转换(如:大小和位置), 最终将位图展示在设备的屏幕上。组合处理CPU或者GPU来完成。 下面这张图通过将两个UI Element展示在屏幕上,说明了光栅化和组合阶段的过程,其中一个具有不透明蒙板。 渲染的过程是非常复杂的,因为屏幕上的图形都是由UI Element的集合组合在一起的,而很多UI Element又是由其他UI Element组合的。在内部,XAML使用一种所有元素都可见和渲染的层次结构的视觉树(visual tree)。比如要呈现一个普通的屏幕图形, XAML通过光栅化及组合可视化树中的元素,以减少必须分配的内存缓冲区的数量。这个处理过程将尽可能的将元素覆盖到现有的缓冲区中。开发人员可以通过缓冲组合,以指定特定的UI元素如何被分组和由GPU组成。适当的缓存可以显着提高用户界面的帧速率。 如果UI Element是可动的,它将浪费一些处理器的时间,直到动画结束才进行光栅化处理。此外,即使元素只移动了其中一小部分,也需要对整个UI Element进行重新组合。为了优化渲染过程,XAML自动推迟了某些元素的组合过程,从而是元素的组合步骤可以迅速的通过GPU来完成。使用GPU来加速渲染过程通常被称为硬件加速。如果您的设备没有GPU或因其他原因不能硬体加速,XAML采用图形设备接口(GDI )以较低的渲染速度来通过Z轴的顺序一像素一像素绘制UI。渲染处理过程中的线程 在XAML中有两个主要的线程:UI线程和Compositor线程。为了创建响应及时的应用,了解这两个线程是非常重要的。 1. UI Thread UI线程负责以下任务:用户输入的处理。XAML对象的创建和解析。首次绘制所有视图到屏幕上。执行每帧回调或其他用户代码。 为了使您的应用程序尽可能灵活响应,必须尽量保持UI线程的轻量和空闲。 2. Compositor Thread 组合线程是一个超轻量级的线程,它为GPU简单的组合元素的纹理,它处理GPU上的被定义为Storyboards类型或者基础纹理的绘制类型的动画。这些动画类型包括:Translation. 改变对象的位置。Scaling. 放大或缩小对象以产生深度的视觉。Rotation. 旋转对象。Draws. 屏幕首次呈现所有视图。Plane Projection. 通过映射到二位平面来展示对象的3D变化。 注意,任何使用了不透明蒙板,非矩形剪切或者大小改变的动画的对象大于2,048 x 2,048像素,它们将在UI线程上光栅化。渲染处理过程的例子 为了说明前面的概念,请参阅如下图所示的界面。屏幕上的地球图像制作成动画,绕着屏幕剩余边界。虽然这个屏幕显示了一个非常简单的用户界面,它包括所有上面列出的关键构建模块来说明渲染过程. 这个图像是由下面这个XAML用户控件构成的。 下图展示了上面代码的树形结构。 XAML的渲染过程执行以下步骤来呈现上图所示的可视化树:分配给LayoutRoot的主缓冲区。光栅化渐变画笔的_Background网格到主缓冲区。光栅化_LightHexes到一个临时缓冲区和撰写主缓冲区。光栅化_DarkHexes到一个临时缓冲区和撰写主缓冲区。光栅化_Border矩形到一个临时缓冲区和撰写主缓冲区。光栅化文字_Label到一个临时缓冲区,并缀以主缓冲区。分配给_button一个临时的缓冲区,然后光栅化并撰写所有的按钮元素(按钮的模板中)到这个临时缓冲区中。构图_button缓冲区与主缓冲区。构成_Globe与主缓冲区。 注意,在渲染器执行的过程中遵循以下规则:只分配必要的缓冲区。如果有可能覆盖一个元素到一个现有的缓冲区中,将不分配新的缓冲区。它使用的CPU来执行所有光栅化和组合操作。(如果该设备有GPU和启用硬件加速,这个过程GPU上完成。) 在动画过程中,只有_Globe元素在画面上移动,没有其他任何元素的变化。XAML没有必要逐帧来执行所有光栅化和组合的步骤。最优行为是保存已经完成的每帧动画步骤的结果,通过保存的步骤来组合_Globe。 在前面的代码块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版售楼部装饰装修与绿色建筑认证合同
- 2025年度挖掘机整机及配件销售合同
- 2025版服装生产车间承包及订单加工合同
- 乡村旅游与乡村旅游生态旅游融合发展的2025年资金申请研究报告
- 碳捕获与封存技术2025:工业应用案例与市场前景分析
- 2025年工业互联网平台射频识别(RFID)技术与智能工厂生产设备智能化融合创新报告
- 新能源汽车二手车市场评估与流通行业市场细分领域发展研究报告
- 游戏推广营销实战指南
- 重难点解析鲁教版(五四制)8年级数学下册测试卷(易错题)附答案详解
- 中央纪委国家监委机关直属单位2025年度公开招聘工作人员笔试高频难、易错点备考题库含答案详解
- GB/T 44977-2024卫星导航定位基准站网终端定位服务安全技术规范
- 物业管理的风险管控
- 人教PEP版五年级上册英语全册教案(6个单元整体教学设计)
- S7-200 SMART应用教程2版习题答案 高职SMART习题答案
- 人教版数学八年级上册《全等三角形》单元测试题附答案
- 2023-2024学年沪科版(2019)高中信息技术必修一3.2《解决温标转换问题-认识程序和程序设计语言》教案
- 专升本计算机教学课件-第一章-计算机基础知识(2023新版大纲)
- DB3502T 090-2022 居家养老紧急事件应急助援规范
- 合作共享协议书
- 投标财务状况承诺书范本
- 2024年全国中学生数学奥林匹克竞赛甘肃赛区预赛试题
评论
0/150
提交评论