现在 Longhorn 直接跑在 DirectX 上,是不是和 Cairo + glitz 相当? cvs 了一个 pixman + cairo,似乎改变很大啊,楼主贴的例子中间的函数声明和数据结构全变了。
难道我搞错了? 0.4 版本的 snapshot 是可以编译的。似乎 cvs 版本的接口命名方式变了,好了不少。
path 不知道可不可以译成轨迹。 下面的 Hello World 代码可以在 2005.4.06 的 cairo 和 pixman 下编译通过,Fedora Core 3,gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)。反正可以跑,有没有 memory leak 不知道。
开源就是好啊,否则这种一点文档都没有的东西,根本不可能用起来。
大家都来动手写 Cairo 程序吧 8)
#include <stdio.h>
#include <cairo.h>
#include <cairo-png.h>
int main()
{
FILE *fp = fopen("hw.png", "w");
cairo_t *cr = cairo_create();
cairo_set_target_image_no_data(cr, CAIRO_FORMAT_ARGB32, 200, 100);
cairo_select_font(cr, "Serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_scale_font(cr, 32.0);
cairo_set_rgb_color(cr, 0.0, 0.3, 1.0);
cairo_move_to(cr, 10.0, 50.0);
cairo_show_text(cr, "Hello World");
cairo_surface_write_png (cairo_get_target_surface (cr), fp);
cairo_destroy(cr);
fclose(fp);
}
我和charlesw早就在看了。 还有我 linux图形系统效率低最大的原因就是x,现在用cairo还是输出到xlib,效率上会不会打折扣?
另,xorg正计划重写xlib,叫XBC吧,如果以后cairo跳出x,统一输出到glitz-》opengl,是不是XBC里的关于绘图的东西都可以去掉了?那样的话所有2D/3D都直接输出到有硬件加速能力的opengl,X只管其他资源的管理/调配,linux图形系统的效率可以大大提高。呵呵,是不是太理想化了? linux图形系统效率低最大的原因就是x,现在用cairo还是输出到xlib,效率上会不会打折扣?
另,xorg正计划重写xlib,叫XBC吧,如果以后cairo跳出x,统一输出到glitz-》opengl,是不是XBC里的关于绘图的东西都可以去掉了?那样的话所有2D/3D都直接输出到有硬件加速能力的opengl,X只管其他资源的管理/调配,linux图形系统的效率可以大大提高。呵呵,是不是太理想化了?
好像是XCB
顶起来!不错的文章! QT4已经正式release了,好像没有提到他的Aurth 绘图系统有用cairo,不过输出和cairo很像,在X11下,可以输出到XRender/OPENGL/POST SCRIPT/image. 最近我也接触到了cairo图形库,但是因为是新手,对这个图形库了解的不多,有好多的问题。
请问哪位高人了解cairo中带的pixman这个东西,我只是知道他是一个像素处理库,cairo里面基于像素处理的功能是调用的pixman里面的函数。
但是里面有不少结构我看不大懂,一些成员我不知道是做什么用的,请高人指点。
我很想知道pixman_image结构里面的成员都是做什么的,尤其是alphaMap和clientClip是做什么的,我设计出来的例子里面,它们总是指向NULL,难道只是一个保留的接口吗???
求高手指点,非常感谢!!! linux图形系统效率低最大的原因就是x,现在用cairo还是输出到xlib,效率上会不会打折扣?
另,xorg正计划重写xlib,叫XBC吧,如果以后cairo跳出x,统一输出到glitz-》opengl,是不是XBC里的关于绘图的东西都可以去掉了?那样的话所有2D/3D都直接输出到有硬件加速能力的opengl,X只管其他资源的管理/调配,linux图形系统的效率可以大大提高。呵呵,是不是太理想化了?
我对X也不太清楚。
不过一直怀疑X这么复杂(可能因此也付出了效率代价)是不是有必要。
有几个人会用到这种复杂的通讯方式。
真希望有个象windows一样快速迅捷的界面。
回复 1# cjacker 的帖子
感谢版主的分享!经测试,cairo效率相对于GDI+确实存在一些差距,即使使用了硬件加速。
不过,能够设计出OpenOffice等如此级别的软件,并且最近并入GTK+,相信在不久的未来,cairo将拥有更为广阔的发展前景,同意版主的见解。
然而,目前开发的系统很多都是基于位图像素点操作的,处理的也是.bmp文件,而cairo基于矢量设计概念在与原有程序的接口对接上出现了一些问题,看到有人说要引入gtk+库并接上运行时。。。
不知有没有很好的方法既使用cairo又可以操作.bmp的像素点?