




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GPUAndroidAndroid图形系统简介rreFlinAndroidrcSeurfacinrrAndorid多个SurfrSurfacinrrrAndroidinrrrgnLLgcGtiiudGL.-griL呼吕AndroidgnL|.9CGin与把缓冲区归还给接收到合成请求后,的交互过程申请一块绘图缓冲区;之后,,并通知合成并重绘需要重重新绘的f并输出给显示设备,,从而使屏幕上呈现最新的界面。图首先,当需要更新的时候,向就在这块缓冲区上绘图绘图完成后,合成各个;图形系统的效率提升作为系统的关键组件,图形系统的运行效率直接影响着用户体验,而且关乎系统的整体效率。系统采取如下措施提升图形系
2、统的效率:1.共享缓冲区使用加速图形绘制与叠加下面,就分别分析图形系统对缓冲区的管理和对的使用。、缓冲区管理为了便于使用,并隔离底层硬件的变化,向上提供统一的接口,在其层为其图形系统提供了(即)模块,负责图像缓冲区的分配、映射和回收。它可以从匿名共享内存以下简称设备和图形设备设备,以下简称设备的存储区中分配缓冲区,并且可以把缓冲区映射到不同的进程中。设备的存储区位于系统内存中,它的容量只受系统内存大小的限制。设备的存储区位于显示设备的内存(即显存),或者位于系统内存的一块特定区域,这里统称为显存。显示设备可以直接访问显存,但是受技术和成本的限制,相对于系统内存来说,其容量往往较小。注意,这两个
3、存储区是不相交的,它们之间传递数据只能逐位复制。向外提供了个主要的数据结构及其接口,他们的关系如下:占血孑匚片早上卩丁卫pc匚匚右兀puqjsP口匚匚er)():ru+崔。匸山自竄:rnjeidu-eQyuc+卩占Tapf:rruefdu-ecjyuc4-Myqfp:rruejdu-eqtucxixiGprrttxgeAT匚号匚1+CJOSG(PMqGATCG匚甘匚卩丁览)():TJJfPMqGATCSp+iu石匚卩oq合:pMujognyelus-ppogap+tq:亡卩言匸年+DbLTfJTSTq1pMuroqnjcurcppoqspIjj吕匸曰-p图数据结构及其接口G是作为_ha层的一个
4、模块运行的,所以其必须遵守层的规范,即继承并实现代表模块的和代表设备的息,作为分酉己图像缓冲区的模块,gra应该提供缓冲区分-配和回收的机:制;由于图像缓冲区会被不同的进程使用,Lgra还应该提供把缓冲区映射到特罡进程的机制;为了保证多个进程备,用于显示保存在其中的图像。模块的实现如下::代表。有关的详细信请参I考资料2丁丁匸匸_证可11丁石一二-PT-1的匸匸曲一片丁&_匚们门:小匚请参考资料。-U3Cqnpjsxprr匚匚石匸一jjdcj丁旨一Cpzufnsds11丁口匸丁也Tuf匸比丁ucToppLaotc的有序访问,必须提供锁机制;同时,模块,并提供了进程映射和锁机制。其中:会把代表的
5、缓冲区映射到调用者进程;执行相反的操作,即从调用者进程解除映射;会锁定缓冲区中的左上角为,宽为,高为的区域,并把该区域的起始地址保存在中;222.22.2.11.2.基类高(还是位于其中(wid)、设备中,设备中。它的两个方法图定.)、格式()、设备中。当和SZ+qeca匚oud(uqu它匚aotqrq)():AOrq+ruc匚匸ouQ(匚口口它匚QTq.f.rg):AOT-q41缓冲区类图:I义了缓冲区的基本属性,如起始地址()、宽用途(U:a)ge中,决定了缓冲区是位于+阳为衍1时,:其位于f设备:中j;否则位于T用于增加和减少引用计数,所以可以作为智能指针使用。绘图缓冲区表示绘图表面使用
6、的绘图缓冲区,它一般都是从设备分配的,即其存储区位于内存,并可以在进程间共享。由于所代表的缓冲区需要在应用程序进程和进程中共享,所以需要提供锁机制保证缓冲区的互斥访问,这是通过和方法实现的;由于应用程序每次更新的区域大小不固定,每次需要的缓冲区的大小就不同,所以,应该提供重新分配缓冲区存储空间的机制,这是通过方法实现的。各个方法介绍如下:用来锁定整个缓冲区,并把缓冲区的起始地址保存在变量中;用于解锁缓冲区;用来重新分配存储。同时,也继承于,表示它可以被串行化,这样它就能通过在不同进程之间传递,它实现了的、以及方法,用于处理串行化和反串行化。合成缓冲区表示保存合成结果的合成缓冲区。它没有在其父类
7、的基础2.2.20A+ee-)十有丁ou()()-nj(jrsrbjTcgrjsz:2b(jzsrtipTcpj7r6i+rruTCCyuqBO2匚(十丁oc)c)()sfcecx匚门匸日:2bjnzgcsjjS匚n呂戸匸石宫吕龙匚戸匸吕匚丁孑11匚BJTH忑耳UGE,丁丁口敢占匸罪席站+T=TTOCF&(j():qpnp_p+fi.iT0CK(J0:aotq+jocc(TT)()i=匚专匚匚-pjgt&3:ab-dr.oA:9jjocqAjcgp-EpDSA:LLUEpnELqEATCS匚瓦匸STUcpu忑xjis-ptagmtuqoftBrrsiLOnene-uiopf3:Bnisr.TO
8、p十dnenspnrez()()十rsdnirspncer()()x4qdnenBnGr.(-xjj()+己riGn気鸟佯良电&工.t1O+T.dFiTT.6BFiVeI.*1+g$dnE门吕E门t吕二l.pTI2nx9ceIisx-FfTtsTU匚曰工匸日匚日+的i重要G方门法说说明明如下:ntavevwewdw+保保存门在仃bu中f。为为了持兼构构体体中中的的一一一:函数TU匚W匚:EMUWAA+jiujocxv1L.o-r()+丁0忙L)门咅方匸壬白匚专ExswspnxqeATcgfffJTCGqeATGGPenrceiexpnrergXer.IIupexffGe:综上所述,的结构图可以
9、进一步细化为图所示:用于向队列中归还,即入队。绘图缓冲区队列(及其父类)用于描述一个需要的绘图缓冲区队列,注意区分两个,前者是上图中的类,而后者是上文所说的绘图表面。和在的基础上,将和两个函数封装成一个函数;将封装成函数。和说明如下:会从缓冲区队列获取并锁定一个缓冲区,并把这个缓冲区的的相关信息存储在中(包括缓冲区的长、宽、格式、用途以及起始地址),上层应用就能在这个缓冲区中绘图了。用于解锁并发布上面用获取的缓冲区,并通知刷新界面。这两个函数都是调用的和函数实现的。从类名可以看出,只是一个客户端,其服务端对应的是e其中包括缓冲区类型为的缓冲区队列(队列大小目前为2是一个对象,在中被初始化,每一
10、个绘图表面都对应一个,其中的缓冲区在需要的时候分配。和分别位于应用程序进程和进程,它们之间需要通过细信息,请参考资料4。代理,的进程间通信机制一一通过这个代理与方法会调用自身的来相互通信。关于的详是的交互。其中会通过综上所述,的结构图可以进一步细化为图所示:从中获取一个缓冲区并锁定,值得注意的是,因为中的缓冲区都是在进程中分配的,所以,在把缓冲区传综上所述,的结构图可以进一步细化为图所示:递给应用程序进程中的时,系统会把缓冲区映射到应用程序进程中。方法调用自身的其中会通过向归还缓冲区,之后,会通知更新图形界面。所包含的缓冲区最终会被会被用做的纹理,这也是和这样命名的原因。合成缓冲区队列用于描述
11、合成缓冲区队列。目前,其中是指向类型数组,表示缓冲区,目前数组大小是。它们的存储空间都来自于设备。是指向设备描述符的指针,使用它就能访问,一的和方法,从中分配存储,就是在初始化的时候,使用函数从中分配的。是指向设备描述符的指针,它也是在,一还对户中户定义的,使用它就能访问方法,从而向提交一个缓冲区,用于显示。和分别用来获取和归还缓冲区。其中,会从缓冲区中取出空闲的,最终会使用的方法,把综上所述,的结构图可以进一步细化为图所示:新的缓冲区提交给设备,用于显示。缓3冲区的使用绘图缓冲区的使用应用程序在初始化的时候,系统会为其每一个可视化界面创建一个绘图缓冲区队列,会调用的方法,通知建立于对应的对象
12、。对象在初始化的时候,会创建绘图需要的缓冲区队列,具体的,就是创建前文提及的对象,其中,就会初始化缓冲区队列。因为每次重绘需要的缓冲区的大小、格式等可能都会不一样,所以,缓冲区队列在初始化的时候并没有实际创建缓冲区对象。只有在需要时,才会使用获取一个,此时,才会创建相应的缓冲区对象,其中,会根据的需要,向模块申请综上所述,的结构图可以进一步细化为图所示:需要的存储区,这快缓冲区来自于。因为所在的应用程序和分配不在同一个进程中,所以就需要把中缓冲区的地址映射到应用程序进程中,这个是通过上述中的的实现的。综上所述,的结构图可以进一步细化为图所示:合成缓冲区的使用口。会在初始化的时候创建环境,是在使
13、用初始化与本地图形系统的接的绘图表面时,将综上所述,的结构图可以进一步细化为图所示:设置为绘图表面的缓冲区队列。其中的两个缓冲区会分别作为前台缓冲区(称为)和后台缓冲区(称为),其中,是正在被显示的缓冲区,是用于后台绘图的缓冲区。绘图完毕后,交换和,之前的成为新的,用于下一次绘图;之前的成为新的,其中的图像数据被显示在屏幕上。这就实现了一个双缓冲机制,这种机制可以避免产生显示画面的抖动和残缺。获取一个绘图缓冲区,作为,a区上;绘图完成后使用在为准备绘图环境时,使用,之后所绘制的图像信息就保存在这个缓冲交换缓冲区时,会使用将入队,在中,会调用综上所述,的结构图可以进一步细化为图所示:模块中的函数
14、将与交换,这样中,的,图,像,信其息显示在屏幕;之后,又会使用获综上所述,的结构图可以进一步细化为图所示:取一个新的绘图缓冲区作为新的,用于的下一次绘制。综上所述,的结构图可以进一步细化为图所示:PUGPUGPUGPU而且,不论是用软件方式绘制,还是硬件加速绘制,它们最终都会把绘而且,不论是用软件方式绘制,还是硬件加速绘制,它们最终都会把绘了的负担,导致图形界面卡顿、系统整体不流畅。从之后,开始使用绘制控件,同时也保留了。这样,在保证兼容性的前提下,可以发挥的作用,加速图形系统的运行效率。当一个组件需要重绘时,这些可视化控件的绘制都是从的方法开始的,其可以简化为:其中,就是使用绘制,而使用绘制
15、。在使用S绘制时,系统会调用2会会2节会中)2的Su,从获取一个缓冲区,该缓冲区的信息存储在绘,中,;,之后,将这个缓冲区作为的画布(具体类型为)的绘图设备。之后,调用绘图,绘图结果就保存在上述的缓冲区中。之后,使用,将保存有绘制结果的缓冲区重新放入中的缓冲区队列中,并通知重新合成界面。其中,又会使用完成上述功能。如果打开了硬件加速(可以在应用程序的中设置),就会使用,通过加速绘图。是。它在初始化的时候,会初始化并创建绘图表面,并建立画板,和软件绘制方式不同,此处使用的画布的具体类型为,在其中绘制图像会被加速。在创建绘图表面的时候,会调用,这个函数会检查第三个参数的类型,只有第三个是或者类型的
16、才可以,也就是说,目前,只有继承了或者的控件才能被加速,一般的空间不能使用加速。如果类型正确,那么,该函数就会调用,这个函数返回的就是节中的绘图缓冲区队列,之后,就会把作为的绘图表面,而且,不论是用软件方式绘制,还是硬件加速绘制,它们最终都会把绘而且,不论是用软件方式绘制,还是硬件加速绘制,它们最终都会把绘的绘图结果就会保存在其中。由节对即内存中,并受Su所以,最终使用的分析可知,其中的缓冲区都是的管理。绘图的结果保存在内存中,并在调用向提交重绘请求。保存有绘制结果的缓冲区放入表面就是于Su,是使用S区,之后,所以会使用而且没有重写类型的,位于的时候,把的绘图继承会调用绘图表面的的缓冲区队列中。根据上文,此处完成缓冲区提交,由于,所以,和使用软件绘制一样,最终都提交保存有绘制结果的缓冲就会叠加并输出这些缓冲区。222222222.22.2.3.21.2.3.3.2.13.2.23.2.33.2.4x2G,P(r2四、四、示例程序为了更清楚的说明和的交互关系和使用方法,下面的附件中附带了一个简单的示例程序,其中,会在屏幕上显示0-这910个数字,然后退出程序。程序用语言实现,其中会使用从锁定并获取一块缓冲区,然后,使用在这块缓冲区中绘制图像,最后使用提交缓冲区并请求重绘界面。只要把附件中的文件解压并放到源代码的目录下,然后使用编译就可得到可执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025管理人员岗前安全培训考试试题及答案考点提分
- 2025厂级安全培训考试试题附参考答案(考试直接用)
- 2025年工厂安全培训考试试题及答案高清版
- 2025年建筑工程劳务分包合同范本
- 2025终止租赁合同协议书范本
- 2025二手商业店铺买卖合同范本
- 2025建筑工程混凝土购销合同
- 2025租赁经营合同(3)新版:全面优化与合作方共赢策略
- 2025年钻采装备项目建议书
- 2025精英企业合同协议
- 连云港2025年连云港市赣榆区事业单位招聘31人笔试历年参考题库附带答案详解
- 8.1薪火相传的传统美德 课件-2024-2025学年统编版道德与法治七年级下册
- 湖北省武汉市2025届高中毕业生四月调研考试语文试卷及答案(武汉四调)
- 食堂负面清单管理制度
- 2025年安徽省示范高中皖北协作区第27届联考 生物学(含解析)
- 2025年度专业技术人员继续教育公需科目考试题(附答案)
- 2025年中考语文《教材字音、字形》梳理
- 2024年上半年教资科目一试题
- 施工员顶岗实习报告范文
- 毽球知到智慧树章节测试课后答案2024年秋武汉职业技术学院
- 雾化吸入疗法合理用药专家共识(2024版)课件
评论
0/150
提交评论