客游
千年狐狸
千年狐狸
  • UID5736
  • 注册日期2005-05-06
  • 最后登录2012-10-09
  • 发帖数1363
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:9431回复:31

minefield升级到cairo1.2.0,速度提升很大

楼主#
更多 发布于:2006-07-17 13:24
3.0a1的核心cairo升级至1.2.0,具体性能提升参见下面邮件列表
From: Carl Worth <cworth@cworth.org>
To: cairo-announce@cairographics.org
Cc: gnome-announce-list@gnome.org
Subject: [cairo-announce] cairo release 1.2.0 now available

A new cairo release 1.2.0 is now available from:

        http://cairographics.org/releases/cairo-1.2.0.tar.gz

    which can be verified with:

        http://cairographics.org/releases/cairo-1.2.0.tar.gz.sha1
        c5da7f89cdd3782102357f99a47f516d11661e92  cairo-1.2.0.tar.gz

        http://cairographics.org/releases/cairo-1.2.0.tar.gz.sha1.asc
        (signed by Carl Worth)

  Additionally, a git clone of the source tree:

        git clone git://git.cairographics.org/git/cairo

    will include a signed 1.2.0 tag which points to a commit named:
        61404bd5022b913f58ecda8dc9e8922b4fc6f80b

    which can be verified with:
        git verify-tag 1.2.0

    and can be checked out with a command such as:
        git checkout -b build 1.2.0

We are very pleased to announce this release, the first major update
to cairo since the original 1.0 release 10 months ago. Compared to
cairo 1.0, the 1.2 release doubles the number of supported backends,
adding PDF, PostScript, and SVG backends to the previous xlib, win32
and image backends.

As with all of cairo's major releases, cairo 1.2 retains both source
and binary compatibility with the cairo 1.0 series. Programs compiled
for cairo 1.0 should run with cairo 1.2 without requiring any
modification.

I want to personally express my congratulations and admiration to
everyone on the cairo team. This includes authors of code,
contributors on the cairo mailing list, and users who have submitted
bug reports and suggestions. This release has been a huge effort, and
its high quality is due to the contributions of dozens of
people---many more than are mentioned below. So thank you!

I would also like to thank everyone for their patience during this
long and uncertain release process. I imagine some people may have
thought cairo 1.2 would never appear as date after projected date
slipped by. I should express particular thanks to Behdad Esfahbod
without whom the release still wouldn't be done, nor would it be
nearly as good, (many documentation updates, good catches of bad
mistakes that almost got frozen in the release, etc). Thanks Behdad!

What's new in cairo 1.2 compared to 1.0
=======================================
New, supported backends (PDF, PostScript, and SVG)
--------------------------------------------------
The major theme of the 1.2 release is new PDF, PostScript and SVG
backends for cairo. Unlike the 1.0 series, in the 1.2 series these
backends are not marked as experimental and are now fully supported,
(that is, they will now have the same API stability guarantees as the
rest of the library).

These new backends form an integral part of the new printing support
that will soon be released as part of GTK+ 2.10.

Earlier, experimental versions of the PDF and PostScript backends used
image fallbacks exclusively, which was obviously unsatisfactory for
many uses. In contrast, the PDF backend in the cairo 1.2.0 release
will emit vectorized output for all operations drawn with the default
OVER operator, even when the drawing includes translucence. The
PostScript backend emits vectorized output as long as there is no
translucency. The SVG backend can handle basically anything with
vector output, (particularly if the user selects SVG 1.2 output).

And as always, with any supported cairo backend, the backends should
work fine with any possible cairo operations, (through image
fallbacks). In 1.2.0, when a fallback is necessary on any page, it
renders the entire page as a fallback. It is expected that future
releases will fallback more gracefully and use images only for the
minimum region necessary.

Text support in these backends has seen a tremendous amount of
work. At a minimum, text will be rendered as paths in any of the
backends, (assuming no other operations force a fallback). And in the
PDF and PostScript backends, both type1 and TrueType fonts will be
directly embedded in the output file. This results in higher-quality
previews and better performance. Note however, that due to a known bug
in the PDF backend, it is not currently possible to use a PDF viewer
to select text in a PDF file generated by cairo. It is anticipated
that this shortcoming will be addressed shortly in a subsequent
release.

New, experimental backends (beos and directfb)
----------------------------------------------
The 1.2.0 release includes two new backends that did not exist in the
1.0 series:

        * beos backend
        * directfb backend

These are experimental still, (as are the existing xcb, glitz, and
quartz backends), meaning we don't yet guarantee they are fully
functional, (not yet passing the entire test suite), nor are we
guaranteeing strong API compatibility into the future.

But please feel free to experiment with these backends and give use
feedback, or help us to improve them.

Group rendering API
-------------------
The long-awaited group-rendering support is now available with the
following function calls:

        cairo_push_group
        cairo_push_group_with_content
        cairo_pop_group
        cairo_pop_group_to_source
        cairo_get_group_target

This API provides a much more convenient mechanism for doing rendering
to an intermediate surface without the need to manually create a
temporary cairo_surface_t and a temporary cairo_t and clean them up
afterwards.

Backend-specific pkg-config files
---------------------------------
In addition to the original cairo.pc file, cairo will also now install
a pkg-config files for each configured backend, (for example
cairo-pdf.pc, cairo-svg.pc, cairo-xlib.pc, cairo-win32.pc, etc.) this
also includes optional font backends (such as cairo-ft.pc) and the
optional png functionality (cairo-png.pc).

These new pkg-config files should be very convenient for allowing
cairo-using code to easily check for the existing of optional
functionality in cairo without having to write complex rules to grub
through cairo header files or the compiled library looking for
symbols.

Help for drawing disconnected circles
-------------------------------------
A new path-construction function was added which clears the current
point in preparation for a new sub path. This makes it much easier to
use cairo_arc to draw a circular arc that is not connected to the
current path:

        cairo_new_sub_path

Degenerate paths for easier "dots"
----------------------------------
Degenerate paths are now consistently handled in a manner similar to
the PDF specification. This means that round caps can now be used to
easily draw circles (move_to, close_path, stroke), or dotted lines,
(set_dash with a 0 length for on segments).

The following function been added to complement
cairo_surface_set_device_offset:

        cairo_surface_set_fallback_resolution
        cairo_surface_get_content
        cairo_debug_reset_static_data
        cairo_surface_get_device_offset

Type querying functions
-----------------------
There are new get_type functions for querying sub-types of object:

        cairo_surface_get_type
        cairo_pattern_get_type
        cairo_font_face_get_type
        cairo_scaled_font_get_type

Scaled font query/convenience functions
---------------------------------------
More convenience in working with cairo_scaled_font_t with new getter
functions:

        cairo_scaled_font_get_font_face
        cairo_scaled_font_get_font_matrix
        cairo_scaled_font_get_ctm
        cairo_scaled_font_get_font_options

As well as a convenience function for setting a scaled font into a
cairo context:

        cairo_set_scaled_font

and a function to allow text extents to be queried directly from a
scaled font, (without requiring a cairo_surface_t or a cairo_t):

        cairo_scaled_font_text_extents

These new scaled font functions were motivated by the needs of the
pango library.

image backend
-------------
It is now possible to obtain access to the image data of any image
surface with the following new functions:

        cairo_image_surface_get_data
        cairo_image_surface_get_format
        cairo_image_surface_get_stride

xlib backend
------------
Fix potentially big performance bug by making xlib's create_similar
try harder to create a pixmap of a depth matching that of the screen.

Add the following functions to allow the user to extract all the
details of the underlying Xlib drawable from an xlib surface:

        cairo_xlib_surface_get_display
        cairo_xlib_surface_get_drawable
        cairo_xlib_surface_get_screen
        cairo_xlib_surface_get_visual
        cairo_xlib_surface_get_width
        cairo_xlib_surface_get_height
        cairo_xlib_surface_get_depth

win32 backend
-------------
Performance improvements by preferring GDI over pixman rendering when possible.
Fixes for text rendering.

Add a new function to create a font_face for an HFONT:

        cairo_win32_font_face_create_for_hfont

PostScript backend
------------------
We anticipate that with cairo 1.2, toolkits will begin to use cairo
for printing on systems that use PostScript as the spool format. To
support this use case, we have added 4 new function calls that are
specific to the PostScript backend:

        cairo_ps_surface_set_size
        cairo_ps_surface_dsc_comment
        cairo_ps_surface_dsc_begin_setup
        cairo_ps_surface_dsc_begin_page_setup

These functions allow variation of the page size/orientation from one
page to the next in the PostScript output. They also allow the toolkit
to provide per-document and per-page printer control options in a
device-independent way, (for example, by using PPD options and
emitting them as DSC comments into the PostScript output). This should
allow toolkits to provide very fine-grained control of many options
available in printers, (media size, media type, tray selection, etc.).

PDF backend
-----------
The PDF backend also provides capability for per-page size changes,
with the following API:

        cairo_pdf_surface_set_size

There has been a lot of interest in adding additional PDF-specific API
for inserting various kinds of meta-data or other structure into the
PDF output. We have avoided this in 1.2.0 since we don't yet know
exactly what the interface should look like. If you have interest or
knowledge in this area, please share your ideas with us.

SVG backend
-----------
Unlike some earlier, experimental versions of the SVG backend, the SVG
backend in cairo 1.2.0 does not have any dependency on the libxml2
library.

The SVG backend provides flexibility with regard to what version of
SVG it targets. It will target SVG 1.1 by default, which will require
image fallbacks for some of the "fancier" cairo compositing
operators. Or with the following new function calls:

        cairo_svg_surface_restrict_to_version
        cairo_svg_get_versions
        cairo_svg_version_to_string

it can be made to target SVG 1.2 in which there is native support for
these compositing operators.

Optimizations and bug fixes
---------------------------
Shortly after the 1.0 maintenance series branched off the mainline
there was a major rework of the cairo font internals. This should
provide some good performance benefits, but it's also another area
people should look at closely for potential regressions, (thanks to
Federico Mena-Quintero for already pointing out a problem with bitmap
fonts containing a very large number of glyphs).

There has not yet been any widespread, systematic optimization of
cairo, but various performance improvements have been made, (and some
of them are fairly significant). So if some things seem faster than
1.0 then things are good. If there are any performance regressions
compared to 1.0 then there is a real problem and we would like to hear
about that.

Now that 1.2.0 is done, the major focus of the cairo project over the
next few months will be on performance and optimization. We are very
interested in benchmarks demonstrating cairo call sequences that are
of interest to users. Please send your benchmarks to the cairo mailing
list for inclusion in an upcoming automated performance regression
testing environment. Ideally benchmarks should run for a (fairly
short), fixed amount of time, terminate, and print a single number.

There has been a huge number of bug fixes---too many to mention in
detail. Again, things should be better, and never worse compared to
1.0. Please let us know if your testing shows otherwise.

What's new in cairo 1.2.0 compared to 1.1.10
============================================
There has been one API addition since the cairo 1.1.10 snapshot:

        cairo_xlib_surface_get_width
        cairo_xlib_surface_get_height

There's also a new feature without any API change:

        Dots can now be drawn by using CAIRO_LINE_CAP_ROUND with
        degenerate sub-paths, (cairo_move_to() followed by either
        cairo_close_path() or a cairo_line_to() to the same location).

And at least the following bugs have been fixed:

 6759  fontconfig option AntiAlias doesn't work in cairo 1.1.2
 6955  Some characters aren't displayed when using xlib (cache u...
 7268  positive device_offset values don't work as source
 * PDF emit_glyph function needs to support bitmapped glyphs
 * PS emit_glyph function needs to support bitmapped glyphs
 * SVG emit_glyph function needs to support bitmapped glyphs
 * PDF: minefield page one is falling back unnecessarily
 * PS/PDF: Fix broken placement for vertical glyphs
 * PS: Fix to not draw BUTT-capped zero-length dash segments
 * Do device offset before float->fixed conversion
   http://bugzilla.gnome.org/show_bug.cgi?id=332266
 * PS: Fix source surfaces with transformations
 * PS: Fix to not draw BUTT-capped degnerate sub-paths
 * PS: Don't walk off end of array when printing "~>"
 * Fix some memory leaks in the test suite rig
 * SVG: Fix memory leak when using cairo_mask
 * Fix EXTEND_REFLECT and EXTEND_PAD to not crash (though these are
   still not yet fully implemented for surface patterns).

试用了一下,速度提升很大。pdf打开速度很快,资源调用方面也有所改善。
elisha
千年狐狸
千年狐狸
  • UID5901
  • 注册日期2005-05-12
  • 最后登录2017-11-15
  • 发帖数1436
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
1楼#
发布于:2006-07-17 13:24
195
我是退出后就直接用任务管理器关闭。
回到原帖
me2

And so at last the beast fell and the unbelievers rejoiced.
But all was not lost, for from the ash rose a great bird.
The bird gazed down upon the unbelievers and cast fire
and thunder upon them.For the beast had been
reborn with its strength renewed, and the
followers of Mammon cowered in horror.



from The Book of Mozilla, 7:15
195
195
千年狐狸
千年狐狸
  • UID3920
  • 注册日期2005-03-12
  • 最后登录2023-01-15
  • 发帖数1123
  • 经验50枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
  • 社区居民
  • 忠实会员
2楼#
发布于:2006-07-17 13:24
elisha:好吧,3.0a1需要1-5分钟才能退出,而且期间cpu占用100%回到原帖

我是退出后就直接用任务管理器关闭。
elisha
千年狐狸
千年狐狸
  • UID5901
  • 注册日期2005-05-12
  • 最后登录2017-11-15
  • 发帖数1436
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
3楼#
发布于:2006-07-17 13:24
好吧,3.0a1需要1-5分钟才能退出,而且期间cpu占用100%

And so at last the beast fell and the unbelievers rejoiced.
But all was not lost, for from the ash rose a great bird.
The bird gazed down upon the unbelievers and cast fire
and thunder upon them.For the beast had been
reborn with its strength renewed, and the
followers of Mammon cowered in horror.



from The Book of Mozilla, 7:15
opentiss
千年狐狸
千年狐狸
  • UID16
  • 注册日期2004-11-21
  • 最后登录2024-02-23
  • 发帖数3371
  • 经验65枚
  • 威望1点
  • 贡献值34点
  • 好评度13点
  • 社区居民
  • 忠实会员
4楼#
发布于:2006-07-17 13:24
CooB:我跑的这个版本至今还没有非正常退出呢。

仅仅是裸跑
回到原帖


我也能正常退出,看来俺的RP没有太大问题了
Blogger
Give Up GitHub!

欢迎使用 Areditors

sntp -P no -r 210.72.145.44
CooB
千年狐狸
千年狐狸
  • UID2829
  • 注册日期2005-02-06
  • 最后登录2023-05-23
  • 发帖数2176
  • 经验140枚
  • 威望0点
  • 贡献值18点
  • 好评度3点
  • 社区居民
  • 忠实会员
5楼#
发布于:2006-07-17 13:24
我跑的这个版本至今还没有非正常退出呢。

仅仅是裸跑
195
195
千年狐狸
千年狐狸
  • UID3920
  • 注册日期2005-03-12
  • 最后登录2023-01-15
  • 发帖数1123
  • 经验50枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
  • 社区居民
  • 忠实会员
6楼#
发布于:2006-07-17 13:24
连斩首行动都说了?
3.0a1真的那么迷人?
opentiss
千年狐狸
千年狐狸
  • UID16
  • 注册日期2004-11-21
  • 最后登录2024-02-23
  • 发帖数3371
  • 经验65枚
  • 威望1点
  • 贡献值34点
  • 好评度13点
  • 社区居民
  • 忠实会员
7楼#
发布于:2006-07-17 13:24


统战一个心理变态难度很大


那我们就对其进行先发制人的打击或实施斩首吧,实现不行,提交到W3C进行表决
Blogger
Give Up GitHub!

欢迎使用 Areditors

sntp -P no -r 210.72.145.44
taizitju
千年狐狸
千年狐狸
  • UID10093
  • 注册日期2005-11-27
  • 最后登录2012-04-12
  • 发帖数3638
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2006-07-17 13:24
opentiss

算来abc给大家的第一印象比较不理想,导致其现在举步维艰,同情abc的同时,建议abc能够继续做一些对推广与促进FF有益的工作,祝今后大家和谐相处
回到原帖


统战一个心理变态难度很大
[color=orange][b]为新手服务[/b][/color]  [color=BLUE][b]快速解决问题传送门:[/b][/color][url=https://www.firefox.net.cn/newforum/viewtopic.php?t=22571][color=red][b]①Firefox初级教程(置顶帖)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/viewtopic.php?t=27478][color=red][b]②孟婆汤(清空profile工具)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/viewtopic.php?t=26765][color=red][b]③减肥茶(半淘汰)[/b][/color][/url]  [url=https://www.firefox.net.cn/newforum/search.php][color=red][b]④搜索论坛[/b][/color][/url]
hnstxx
千年狐狸
千年狐狸
  • UID1952
  • 注册日期2005-01-09
  • 最后登录2013-05-14
  • 发帖数4977
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2006-07-17 13:24
opentiss

算来abc给大家的第一印象比较不理想,导致其现在举步维艰,同情abc的同时,建议abc能够继续做一些对推广与促进FF有益的工作,祝今后大家和谐相处
回到原帖


看来你对abc还不了解,他是马桶粉丝,是不会跳出那个火坑的,至于继续做一些对推广与促进FF有益的工作,呵呵,希望吧。
MM:你是个外表冷酷,内心却很甜蜜的男人。
opentiss
千年狐狸
千年狐狸
  • UID16
  • 注册日期2004-11-21
  • 最后登录2024-02-23
  • 发帖数3371
  • 经验65枚
  • 威望1点
  • 贡献值34点
  • 好评度13点
  • 社区居民
  • 忠实会员
10楼#
发布于:2006-07-17 13:24
hnstxx:PS:abc@home
又找茬?
回到原帖


算来abc给大家的第一印象比较不理想,导致其现在举步维艰,同情abc的同时,建议abc能够继续做一些对推广与促进FF有益的工作,祝今后大家和谐相处
Blogger
Give Up GitHub!

欢迎使用 Areditors

sntp -P no -r 210.72.145.44
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
11楼#
发布于:2006-07-17 13:24
我现在也挺期待的,速度不一定,但是CPU应该会降下来吧,主要是现在在网上有时候图片多了,系统反应有点慢,特别是好多的GIF。
hnstxx
千年狐狸
千年狐狸
  • UID1952
  • 注册日期2005-01-09
  • 最后登录2013-05-14
  • 发帖数4977
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
12楼#
发布于:2006-07-17 13:24
PS:abc@home
又找茬?
MM:你是个外表冷酷,内心却很甜蜜的男人。
195
195
千年狐狸
千年狐狸
  • UID3920
  • 注册日期2005-03-12
  • 最后登录2023-01-15
  • 发帖数1123
  • 经验50枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
  • 社区居民
  • 忠实会员
13楼#
发布于:2006-07-17 13:24
也不知道为何,我用3.0a1总是无法完全退出。
非要TaskMgr终止。
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-03-21
  • 发帖数18482
  • 经验4836枚
  • 威望5点
  • 贡献值4316点
  • 好评度1115点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
14楼#
发布于:2006-07-17 13:24
呵呵

每个版本刚入手都是裸奔 比起装了扩展主题来说 当然是速度大增 资源占用大减了
Firefox More than meets your experience
上一页
游客

返回顶部