Cairo: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (Reverted edits by 87.230.73.34 (Talk); changed back to last version by Sj)
No edit summary
 
(7 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{ WikipediaSummary | wikipage=http://en.wikipedia.org/wiki/Cairo_(graphics) | summary=
{{WikipediaContent}}<font size="-1">
; [http://en.wikipedia.org/wiki/Cairo_(graphics) Wikipedia] : '''cairo''' is a [http://en.wikipedia.org/wiki/Free_software free software] graphics library with multiple backends that provides a [http://en.wikipedia.org/wiki/Vector_graphics vector] based device-independent [http://en.wikipedia.org/wiki/Application_programming_interface API] for [http://en.wikipedia.org/wiki/Software_developer software developers]. Currently, it has backends that support output to the [http://en.wikipedia.org/wiki/X_Window_System X Window System], [http://en.wikipedia.org/wiki/Win32 Win32] [http://en.wikipedia.org/wiki/Graphics_Device_Interface GDI], [http://en.wikipedia.org/wiki/Quartz_(graphics_layer) Quartz], the [http://en.wikipedia.org/wiki/BeOS BeOS] API, [http://en.wikipedia.org/wiki/OpenGL OpenGL] contexts (via [http://en.wikipedia.org/wiki/Glitz glitz]), local image buffers, [http://en.wikipedia.org/wiki/PNG PNG] files, [http://en.wikipedia.org/wiki/Portable_document_format PDF], [http://en.wikipedia.org/wiki/PostScript PostScript] and [http://en.wikipedia.org/wiki/Scalable_Vector_Graphics SVG] files. cairo is designed to use [http://en.wikipedia.org/wiki/Hardware_acceleration hardware acceleration] when available.
'''Cairo''' is a [http://en.wikipedia.org/wiki/Free_software free software] graphics library with multiple backends that provides a [http://en.wikipedia.org/wiki/Vector_graphics vector] based device-independent [http://en.wikipedia.org/wiki/Application_programming_interface API] for [http://en.wikipedia.org/wiki/Software_developer software developers]. Currently, it has backends that support output to the [http://en.wikipedia.org/wiki/X_Window_System X Window System], [http://en.wikipedia.org/wiki/Win32 Win32] [http://en.wikipedia.org/wiki/Graphics_Device_Interface GDI], [http://en.wikipedia.org/wiki/Quartz_(graphics_layer) Quartz], the [http://en.wikipedia.org/wiki/BeOS BeOS] API, [http://en.wikipedia.org/wiki/OpenGL OpenGL] contexts (via [http://en.wikipedia.org/wiki/Glitz glitz]), local image buffers, [http://en.wikipedia.org/wiki/PNG PNG] files, [http://en.wikipedia.org/wiki/Portable_document_format PDF], [http://en.wikipedia.org/wiki/PostScript PostScript] and [http://en.wikipedia.org/wiki/Scalable_Vector_Graphics SVG] files. cairo is designed to use [http://en.wikipedia.org/wiki/Hardware_acceleration hardware acceleration] when available.


: Although written in [http://en.wikipedia.org/wiki/C_(programming_language) C], there are [http://en.wikipedia.org/wiki/Language_binding bindings] for using the cairo graphics library from many other programming languages, including [http://en.wikipedia.org/wiki/C%2B%2B C++], [http://en.wikipedia.org/wiki/C_Sharp C#], [http://en.wikipedia.org/wiki/Common_Lisp Common Lisp], [http://en.wikipedia.org/wiki/Haskell_(programming_language) Haskell], [http://en.wikipedia.org/wiki/Java_(programming_language) Java], [http://en.wikipedia.org/wiki/Python_(programming_language) Python], [http://en.wikipedia.org/wiki/Perl Perl], [http://en.wikipedia.org/wiki/Ruby_programming_language Ruby], [http://en.wikipedia.org/wiki/Smalltalk Smalltalk], [http://en.wikipedia.org/wiki/Factor_(programming_language) Factor] and [http://cairographics.org/bindings several others].</font>
Although written in [http://en.wikipedia.org/wiki/C_(programming_language) C], there are [http://en.wikipedia.org/wiki/Language_binding bindings] for using the cairo graphics library from many other programming languages, including [http://en.wikipedia.org/wiki/C%2B%2B C++], [http://en.wikipedia.org/wiki/C_Sharp C#], [http://en.wikipedia.org/wiki/Common_Lisp Common Lisp], [http://en.wikipedia.org/wiki/Haskell_(programming_language) Haskell], [http://en.wikipedia.org/wiki/Java_(programming_language) Java], [http://en.wikipedia.org/wiki/Python_(programming_language) Python], [http://en.wikipedia.org/wiki/Perl Perl], [http://en.wikipedia.org/wiki/Ruby_programming_language Ruby], [http://en.wikipedia.org/wiki/Smalltalk Smalltalk], [http://en.wikipedia.org/wiki/Factor_(programming_language) Factor] and [http://cairographics.org/bindings several others].}}
----


Website: http://cairographics.org/
Website: http://cairographics.org/


[http://cairographics.org/documentation Cairo] is a 2D graphics library that provides a unified imaging model for screen and printer. It takes advantage of hardware acceleration where available. Here is some of the software on OLPC that uses Cairo as a graphics back-end:
----
* the [[GTK]] GUI of [[Sugar]]
* the [[Evince]] document viewer library used by the [[Read]] activity
* the [[XULRunner]] Mozilla runtime used by the [[Browse]] activity
* the librsvg library used by [[Sugar]] to render [[SVG]] icons.


There is a [http://cairographics.org/pycairo low-level Python module] that allows applications programmers to use the Cairo canvas to full effect. This is in addition to the GTK+ API layer above Cairo.
[http://cairographics.org/documentation Cairo] is a 2D graphics library that provides a unified imaging model for screen and printer. It takes advantage of hardware acceleration where available. Currently, the GTK+ GUI uses Cairo as its backend. In addition there is a lot of work being done to create a fully compliant [[SVG]] renderer on top of Cairo.

There is a [http://cairographics.org/pycairo low level Python module] that allows applications programmers to use the Cairo canvas to full effect. This is in addition to the GTK+ API which is just a layer over top of Cairo.


The pycairo source can be helpful. Eg,
The pycairo source can be helpful. Eg,
http://webcvs.cairographics.org/pycairo/cairo/pycairo-context.c?view=markup
http://webcvs.cairographics.org/pycairo/cairo/pycairo-context.c?view=markup
==Improvements for XO-1s==
* See this [http://www.mail-archive.com/devel@lists.laptop.org/msg23920.html discussion thread].



----
[[Category:Developers]]
[[Category:Developers]]
[[Category:Python]]
[[Category:Python]]

Latest revision as of 12:04, 28 June 2010

Wikipedia
Cairo is a free software graphics library with multiple backends that provides a vector based device-independent API for software developers. Currently, it has backends that support output to the X Window System, Win32 GDI, Quartz, the BeOS API, OpenGL contexts (via glitz), local image buffers, PNG files, PDF, PostScript and SVG files. cairo is designed to use hardware acceleration when available. Although written in C, there are bindings for using the cairo graphics library from many other programming languages, including C++, C#, Common Lisp, Haskell, Java, Python, Perl, Ruby, Smalltalk, Factor and several others.

This article contains content from a Wikipedia article which is licensed under the GNU Free Documentation License.


Website: http://cairographics.org/

Cairo is a 2D graphics library that provides a unified imaging model for screen and printer. It takes advantage of hardware acceleration where available. Here is some of the software on OLPC that uses Cairo as a graphics back-end:

There is a low-level Python module that allows applications programmers to use the Cairo canvas to full effect. This is in addition to the GTK+ API layer above Cairo.

The pycairo source can be helpful. Eg, http://webcvs.cairographics.org/pycairo/cairo/pycairo-context.c?view=markup

Improvements for XO-1s



Merge-arrows.gif
It has been suggested that this article or section be merged with places that link here should by all rights use wikipedia links. (Discuss)