免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5657 | 回复: 5
打印 上一主题 下一主题

[zt]关于AGG的一些介绍 [复制链接]

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-03 17:42 |只看该作者 |倒序浏览
学习gnash的时候遇到agg相关的问题,查了些资料与大伙共享

介绍和推荐AGG
一、AGG是什么
    AGG,全名:Anti-Grain Geometry,是一个开源的、高效的2D图形库,它的网站:http://www.antigrain.com/

二、AGG的特点
    AGG的功能与GDI+的功能非常类似,但提供了比GDI+更灵活的编程接口,其产生的图形的质量也非常高,而且它是跨平台的,其宣传可以在非常多的操作系统上运行,我至少在Windows、Wince、Linux三个台平上测试通过。

三、AGG的功能
1、支持ALPHA、GAMMA等变色处理,以及用户自定义的变色处理;
2、支持任意2D图形变换;
3、支持SVG和PostScript描述,适于网上图形生成;
4、支持高质量的图形处理,支持反走样插值等高级功能;
5、支持任意方式的惭变色处理;
6、支持所有颜色格式;
7、支持对位图的多种处理;
8、支持直线的多种处理,类似于GDI+;
9、支持GPC,即通用多边形裁剪方法;
10、支持多种字体输出,包括汉字的处理;

四、AGG的使用
    在设计上,它是师出Boost库,在其中使用了大量的现代标准C++语言的语法规则,包括模板、仿函数等处理,但是为了能在更多的平台上使用,它并没有直接使用Boost和STL库,而是自己实现了部分STL功能。
    AGG将图形功能分为几个层次,每一层次都可以由用户自己改动和扩充,作为AGG的使用者,可以使用它的全部功能,也可以只使用它的部分功能;作为图形的接口,它允许用户在不同层次上对它进行访问。
    以下是一个典型的作图分层:
1、定义矢量作图源数据(其定义类似于PostScript);
2、提供变换管道(包括坐标变换,以及其它可能的数据变换);
3、将数据转为水平线光删化数据;
4、将数据转为带颜色格式的输出缓冲区数据;
5、输出位图或象素数组。
    AGG的设计定位是为其它开发工具提供工具,因此,其使用是灵活但不容易,但通过它提供的几十个例子,可以很容易地入门(但精通不是易事)。
    为了使用AGG,有两种方式,一种方式是直接使用它,一种方式是为它定义一个封装接口。现在网上有一些这方面的封装接口例子(比如说,定义一个仿GDI+ 的封装接口),可以在它的论坛上找到。本人也编写了一个封装类组,但主要是为了我的项目用的,以后我会提供一个更通用的封装类组。

五、使用AGG的软件
    我前段时间上网查2D图形功能,结果发现了许多库都是或多或少地使用了AGG,于是才对AGG感兴趣,我看中了它的跨平台性,以及运行速度和内存占用等。现在提供几个在内部使用AGG的比较有名的开源项目:
    Inkspace:一个跨平台的SVG编辑软件,部分使用了AGG的功能(还使用了ArtLib的功能,我以后会对ArtLib作介绍)。
    wxArt2d:一个基于Wxwindow的2D图形编辑软件,提供了AGG可以一种作图选择。
    vcf:一个C++框架库,使用AGG作为图形输出。
    这些库都可以到www.sf.net上找到。

评分

参与人数 1可用积分 +15 收起 理由
bitmilong + 15 精品文章

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2008-11-03 22:20 |只看该作者
好的,学习了

支持楼主

论坛徽章:
0
3 [报告]
发表于 2008-11-04 10:23 |只看该作者
又见识到新东西,学习了

论坛徽章:
0
4 [报告]
发表于 2009-04-20 13:40 |只看该作者

求助

说您研究过gnash很是激动奥。我还是个在校生,现在想移植gnash到ARM上,希望您能指点一下。比如:gnash分哪些模块,哪些代码与硬件相关,移植的话需要改动哪些地方呢,之类的问题!对您的帮助,将不胜感激!

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
5 [报告]
发表于 2009-04-20 14:00 |只看该作者
分为如下模块
libamf
libbase
libcore
libmedia
libnet
gui
主要在core里面
然后可参考flash官方文档提供的spec文档
芯片速度不够的话,还是打消gnash一直到arm上的念头吧
还有
gnash依赖的lib非常多,最好先去gnash官网上了解一下

论坛徽章:
0
6 [报告]
发表于 2009-07-08 15:52 |只看该作者

回复 #5 T-bagwell 的帖子

版主好,最近我也研究gnash,想请教gnash移植到ARM的一些问题。也不知道jnu_dashu 兄弟搞的怎么样了,大家一起研究一下呀,我的平台是beagle board,足够跑gnash了。谢谢。本人QQ:627955655,MSN:l.ibs@hotmail.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP