CEGL库简介
来源:互联网 发布:烽火通信 知乎 编辑:程序博客网 时间:2024/06/14 14:48
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获取全屏之后,对于窗口消息(按钮、菜单等)其实依然支持。所以当实现真正的全屏时要屏蔽相关消息
- CEGL库简介
- 动态连接库简介
- Tiger核心库简介
- Tiger核心库简介
- Boost库简介
- C/C++库简介。。。
- C++ Boost库简介
- C++ Boost库简介
- Tiger核心库简介
- Tiger核心库简介
- C++各类库简介
- C++ Boost库简介
- .NET类库简介
- 动态链接库简介
- C++ Boost库简介
- c++ Boost库简介
- glib库简介
- boost::preprocessor库简介
- 关于UTF8,UTF16,UTF32,UTF16-LE,UTF16-BE
- 网易的代理意见
- 一些时间相关操作
- (收藏)oracle函数
- IP Helper API 简介与设置网卡的IP地址
- CEGL库简介
- 用js取得服务器响应的头部信息
- JSP的效率和安全性比asp更高
- 枚举硬件设备
- 测试并优化基于软件的网络分析工具
- 有才华的人,别让自己枯竭了
- GAPI编程实践
- 如何识别阶段性顶部
- 精华:全面接触SQL语法