VREGDIIntroduction沃勤网络科技(上海)有限公司V1.0本文对VRE平台图形设备接口作了介绍。文档编号第2页版本记录版本日期作者更改说明1.02009.8.1方军创建文档编号第3页目录1前言...........................................................................................................41.1目的..................................................................................................41.2范围..................................................................................................41.3术语..................................................................................................42简介...........................................................................................................42.1组成结构...........................................................................................42.1.1LCD.........................................................................................52.1.2层............................................................................................52.1.3画布.........................................................................................52.1.4裁剪.........................................................................................52.1.5基本图形.................................................................................52.1.6图像.........................................................................................52.1.7字符.........................................................................................52.2数据流图...........................................................................................53数据结构....................................................................................................64宏定义........................................................................................................75全局变量....................................................................................................86功能函数....................................................................................................86.1LCD操作...........................................................................................86.2层......................................................................................................86.3画布................................................................................................116.4裁剪................................................................................................116.5基本图形.........................................................................................126.6图像................................................................................................156.7字符操作.........................................................................................176.8其他................................................................................................187开发示例..................................................................................................197.1层....................................................................................................197.2画布................................................................................................217.3图像................................................................................................227.4字符................................................................................................23文档编号第4页1前言1.1目的本文对VRE平台图形设备接口做了详细的说明,并给出了部分接口的使用示例,以方便程序员开发,第一次接触VRE的程序员遇到问题时可查阅本文。1.2范围本指南适用于VRE2.0版本平台。1.3术语VREVirtualRuntimeEnvironment,虚拟运行环境。GDIGraphicDeviceInterface,图形设备接口MTKMediaTek,台湾联发科技的缩写。ARMAdvancedRISCMachine,设计RISC微处理器的英国公司,在手机市场上占有90%以上的份额。ADSARMDevelopmentSuite,ARM公司提供的开发套件。APIApplicationProgramInterface。SDKSoftwareDevelopmentKit。2简介VREGraphicDeviceInterface(GDI)是一个包含底层图形接口的库,上层应用通过GDI接口来访问LCD显示器。2.1组成结构GDI包含LCD、层、画布、裁剪区、基本图形、图像、字符七个部分。GraphicDeviceInterface层字符画布裁剪基本图形图像LCD图2.1GDI组成文档编号第5页2.1.1LCDLCD屏幕部分包括获取主屏幕大小、屏幕缓冲格式等功能。2.1.2层层是对屏幕的模拟,VRE支持两个层。VRE两层系统可以根据用户设定融合两层。第一层(基层)与硬件屏幕完全重合,位置大小都一致。第二层用户可以设置透明度等操作,两层以指定透明度融合。2.1.3画布画布是虚拟设备,是与物理屏幕无关的一块内存区域,程序员通过画布绘制复杂图像,完成后拷贝到层上完成图像的输出。画布向程序员提供了离屏绘制复杂图像的能力。2.1.4裁剪裁剪是对目标绘制区域的一个限制。当往层或者画布进行绘制时,常常需要限定目标的有效区域,落在有效区域内的像素点才绘制,否则不进行绘制。设置裁剪区的目的是减小目标更新的区域,加速刷屏。VRE裁剪区为一个全局裁剪区,当目标区域变更时需要主要裁剪区的重置。2.1.5基本图形基本图形包括常用的2D图形绘制接口,如点、线、矩形、圆角矩形、椭圆、填充矩形、填充圆角矩形、填充椭圆。2.1.6图像图像部分包括图像解码、图像操作两部分。解码部分VRE支持GIF、BMP、JPEG以及PNG等多种格式的图片。操作部分包括了获取图像属性、矩形区域绘制、半透明绘制、旋转、镜像等操作。2.1.7字符字符部分包括文字输出接口以及常用的字符辅助接口。2.2数据流图VRE图形系统数据流图如图2.2VREGDI数据流图所示。1)基本图形和字符串可以直接绘制到层和画布。2)多帧GIF图片解码后生成一个画布,该画布包含多帧解码后的图像数据。3)画布之间可以相互绘制。这个有个限制,多帧的GIF图片加载后产生一个画布,往这个画布进行绘制时,数据都绘制到第一帧图片上。4)画布数据通过图形绘制接口绘制到层上。5)层上数据通过刷屏接口直接刷到LCD上。文档编号第6页在图形输出、文字输出、图像绘制过程中都涉及到裁剪区的限制。图片解码画布层LCD基本图形字符刷屏图形输出图形输出字符输出字符输出图像绘制画布图像绘制图2.2VREGDI数据流图3数据结构/***裁剪区*/typedefstructclip_rect{VMINT16left;/*裁剪区左边界坐标(裁剪区包含坐标所在列)*/VMINT16top;/*裁剪区上边界坐标(裁剪区包含坐标所在行)*/VMINT16right;/*裁剪区右边界坐标(裁剪区包含坐标所在列)*/VMINT16bottom;/*裁剪区下边界坐标(裁剪区包含坐标所在行)*/VMBYTEflag;/*0该裁剪区无效,1该裁剪区有效*/}clip_rect;/***IMG单帧结构体*/structframe_prop{VMUINT8flag;/*图片标志位*/VMUINT16left;/*图片左上角与图片逻辑框架左侧偏移量*/VMUINT16top;/*图片左上角与图片逻辑框架上侧偏移量*/VMUINT16width;/*图片宽*/VMUINT16height;/*图片高*/V