本文共 851 字,大约阅读时间需要 2 分钟。
CEGL库简介
一 概述
CEGL又名CEGraph,是一个基于GAPI的高速WinCE平台的图形渲染库。使用C++开发,采用双缓存技术,支持直接的帧缓存。由于基于自己的图形渲染架构,其渲染速度要快于GDI。
目前CEGL支持如下一些功能:
l 全屏 (只支持全屏)
l 具体像素点绘制
l 直线、水平线、垂直线绘制
l 折线绘制
l 多边形绘制
l 矩形绘制
l 填充矩形(支持alpha混合)
l 填充多边形
l 图片绘制 (支持Bmp,Gif,Jpg 格式,支持alpha混合)
l 文本绘制 (自带字库, 支持中文, 也可以使用GDI实现文字绘制)
二 核心功能介绍
通过调用GAPI实现了全屏。
对于上面的核心功能,所有的几何体绘制基本都是通过一系列绘制算法,直接对于GAPI提供的帧缓存进行像素填充。
图片绘制功能相对复杂些,调用了IMGDECMP.DLL中的函数来装载像素数据,并创建一个DIB位图来保存数据为一个BMP图像,再将数据拷贝到另一内存区域中(pBitmapBuffer)。之后的操作就是内存数据的选择性拷贝。
CEGL对于主要的GDI对象进行了封装,包括Bitmap,Brush,Font,Pen及抽象的GDIObject。
对于文本的显示,采用了两套方案:一种使用早期的位图字体格式,实现内置的基于像素的文本显示,支持中文;另一种使用GDI作为中介,将文字绘制到位图中再提取像素信息到显示缓存中。
三 功能总结
总体来说,直接实现了主要的几何体绘制操作,但对于几何体绘制中的效率可以进一步优化和改进;对于图形绘制功能得到增强,支持更多的图形格式;对于最为困难的字体显示问题,由于TrueTypeFont的显示比较复杂,没有内部实现,同时没有增强字体的显示特性,如支持角度旋转等,不过可以采用Freetype库来增强其功能。
四 部分扩展思路
(一)全屏和窗口的全面支持
当GAPI获取全屏之后,对于窗口消息(按钮、菜单等)其实依然支持。所以当实现真正的全屏时要屏蔽相关消息
转载地址:http://eqwqb.baihongyu.com/