MTK的GUI系统还是有点意思的。其GUI一共分为三层。最底层为GDI库以及Pixtel库。中间一层为GUI层,提供基本的控件以及显示操作。最上一层为WGUI层,该层包含许多窗口模板,例如Category Screen。还包含了Draw Manager,以及Touch Screen。Touch Screen是一个比较特殊的存在。早期的MTK的GUI的触摸区域是以焦点控件来触发的,而现今大部分的触屏应用越来越丰富,而且触摸行为不定,故此不能再以过去的方式,故而新增加了Touch Screen专门来处理触屏事件。
GUI层,主要处理图形绘画(一些基本图形,如圆形,长方形等),图像显示(绘制各种格式图像),文本(文字的输出显示),填充(图形与图像的结合,或纯色的填充),控件(只负责控件的绘制,不负责交互)。GDI层,主要是调用硬件的方式来处理图形绘制,图像绘制,字体管理,以及LCD图层的管理。在MTK中,GUI与GDI有部分重叠,所以在设计代码的时候,有时候会跨越GUI层而直接用GDI的现象。MTK的GUI中采用了图层技术,图层的技术,主要是为了增强系统对于GUI特效的使用,以及显示速度的提升。对于屏幕中静态的元素(即不动以及不变的)绘画到一个缓存里面,把相对变化的元素画到另外一个缓存里面,当系统需要更新屏幕的时候,再把两个缓存叠加输出,这样的速度会大大的提升,因为其减少了一些重复元素的绘制过程。这里的缓存就是层的概念,MTK中层的叠加甚至会用到硬件加速,故此对于半透,精灵等特效的实现,都可以利用层的特色来完成。一般创建层的方法都是采用GDI接口(gdi_layer_create接口),但有一点要注意的是,创建层是需要消耗大量内存的,采用gdi_create_layer是消耗系统内存(一般情况下只能创建一到两层),如果需要用到多层,则采用gdi_layer_create_using_outside_memory接口,此时就可以申请用户空间的内存来创建图层。在运用图层的时候,任何时刻,只有一个图层是属于激活状态(也就是说此时所有的GDI以及GUI绘图操作都是在此图层上进行的),其余的图层都是未激活状态。系统有一个叫做基础图层,该图层与硬件屏幕的大小一致,而且在系统创建时候即创建。该图层在每次进入新窗口的时候,都会自动的变成激活状态。同一时刻,最多能合并四个层,一般由gdi_layer_set_blt_layer来指定哪些层合并,而且层作为参数的顺序决定了层的叠加顺序。第一个参数是放在最底层,最后一个参数是放在最上层。图层的合并可以调用两个函数:gui_BLT_double_buffer或则gdi_layer_blt。在引入图层系统后,图形以及图像等绘画的坐标系,不再以硬件屏幕的左上角为起点,而是以图层的左上角为起点。故此,在图层绘制的时候,图形的左上角位置必须减去图层左上角在屏幕的坐标来使图形能在图层上正确的显示。图层的透明处理,必须先把图层刷成一个纯色,然后指定该纯色为透明色,则图层就变成了透明图层。图层要实现一定程度的通透效果,可以通过gdi_layer_set_opacity来设置通透的程度(0完全透明,255不透明)。在图层上绘画,还必须注意有效区域的设置,有效区域的设置是一直生效的,故此每次设置以后,使用完毕后,最好Reset一下(gdi_layer_reset_clip)。最为重要的一点是,图层在使用完毕后,记得一定要释放图层。调用gdi_layer_free函数。有时候,在某些函数中,也许会有多次的即使刷新动作,为了更有效的显示,可以采用对图层进行上锁的行为,这样可以有效的避免刷新的无用重复,即在所有绘制动作都在图层上进行完毕后,才真正的刷到屏幕上。在上锁与解锁之间的所有更新都无效,只有在解锁后,刷新屏幕才有效,故此可以让所有的绘制动作在上锁与解锁之间进行。
MTK的GUI控件算比较全,控件上的使用稍微有点麻烦,但是离不开三点,就是创建,设置和显示。创建,一般的情况下就是申请一个结构,然后把此结构传给具体控件的创建函数。一般情况下,很多时候都会用全局的定义好的结构,而不是动态申请一个新的结构。在MTK的控件函数中,有一些要注意的是,一把create开头的函数,是创建与设置并行的函数,也就是说,传入的结构体此时是一部分填好数据的。
WGUI层中的touch screen的主要流程:当触摸事件到达的时候,Touch Screen模块会调用当前模板的控件集信息,然后逐个询问这些控件是否需要处理该事件,如果控件有回应,则把控制权交给该控件来处理。
WGUI的Draw Manager是一个比较流行的窗口显示机制,以前Java的layout,到现在的Android都有类似的机制。DM(Draw Manager简称)的主要工作方式前面已经提过了,接着来说说控件集中控件类型的描述。第一种是控制类型控件,该类型不是用来显示的,而是用来控制显示的。例如:DM_BASE_LAYER_START 表明是激活基础层,DM_BASE_LAYER_END表明结束基础层处于激活状态。所有在这两个Flag中间的控件都会在基础层上进行绘制。DM_NEW_LAYER_START 和 DM_NEW_LAYER_END是表明创建 一个新层,所有在这两个Flag之间的绘制都在此层上绘制。第二种就是标准的控件类型,如菜单,编辑框,Tab页等。最后一种就是扩展控件类型,如提示框,背景等。如果屏幕上有地方是需要用户自行绘制的话,则可以设置DM_CATEGORY_CONTROLLED_AREA标志,此时遇到此标志时候,系统会让用户自行绘制由这个标志定义的区间。在使用此方法前,必须注册用户自己的函数(此函数就是绘制该区域的函数)。
MTK的GUI系统还是有点意思的。其GUI一共分为三层。最底层为GDI库以及Pixtel库。中间一层为GUI层,提供基本的控件以及显示操作。最上一层为WGUI层,该层包含许多窗口模板,例如Category Screen。还包含了Draw Manager,以及Touch Screen。Touch Screen是一个比较特殊的存在。早期的MTK的GUI的触摸区域是以焦点控件来触发的,而现今大部分的触屏
#软硬件协同仿真——硬件加速
软硬件协同仿真——硬件加速1. 仿真验证方法1.1 软件仿真(Software Simulation)1.2 协同模拟 (Co-Simulation)1.3 协同仿真 (Co-Emulation)1.4 三种仿真技术对比2. 硬件加速实现方法2.1 专用硬件Emulator2.2 硬件加速方式2.3 硬件加速实现方法
王宏伟,孙宇明,李铀,唐柳. 一种软件联合FPGA硬件仿真加速系统设计[C]//.2020中国航空工业技术装备工程协会年会论文集.[出版者不详],202
不多说,增加一条默认系统提速的方法:
diff --git a/device/mediatek/mt6797/init.mt6797.rc b/device/mediatek/mt6797/init.mt6797.rc
index b3f88cf..85510d9 100755
--- a/device/mediatek/mt6797/init.mt6797.rc
+++ b/device/me...
GUI
是
图形
用户接口,指的是用户和计算机有一个操作界面,用户在这个界面上的操作都是可见的;
GDI
是
图形
设备接口,指的是有
图形
编程有关的一系列接口,包括了绘图的所有元素,例如画笔,画刷,调色盘,矩形等所有和绘图有关的东西。这些都被MFC封装在CDC类中,这个类包含了所有的绘图函数。
转载于:https://www.cnblogs.com/beauty/archive/2010/07/07...
[DESCRIPTION]
在测试手机各项功能过程中,经常会遇到概率性复现“屏幕画花了,界面画错乱了等绘制异常问题”,而且概率还非常小;
这类问题请不要直接提交eService,而是先请测试人员及工程师保留住测试现场,然后根据此条FAQ的步骤进行排查;
通常贵司提交问题的时候所提供的资料太少,无法直接定位问题,与其提交了eService之后再又去花时间复现,不如在复现问题的当下,就先按
1、开发环境:ssm框架;内含Mysql数据库;JSP技术
2、该资源包括项目的全部源码,下载可以直接使用!
3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。
4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
资源包主要包含以下内容:
ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。
数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。
详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。
项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。
毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。