Jump to content

Cairo: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Ak120 (talk | contribs)
mNo edit summary
Line 2: Line 2:
Cairo is an open source two dimensional graphics kernel written in [[C]] that simplifies the development of common 2D graphics tasks in addition to facilitating cross platform development as the library is available for a number of operating systems, including Mac OS X, [[Microsoft Windows]] and most [[UNIX]] like systems. It is designed more for application graphics than games and suchlike, but can be used to a degree for almost any graphics task that does not require 3D support.
Cairo is an open source two dimensional graphics kernel written in [[C]] that simplifies the development of common 2D graphics tasks in addition to facilitating cross platform development as the library is available for a number of operating systems, including Mac OS X, [[Microsoft Windows]] and most [[UNIX]] like systems. It is designed more for application graphics than games and suchlike, but can be used to a degree for almost any graphics task that does not require 3D support.


Cairo is conceptually similar to the graphic libraries that were derived from the old Xerox graphic engines such as [[Graphical Environment Manager]] and Display [[Postscript]], it mimics normal Postscript (non-Display) to such as degree that it is possible to use it as a sort of an Postscript output device and it even has support for manipulation of TrueType fonts and support for [[PDF]] output.
Cairo is conceptually similar to the graphic libraries that were derived from the old Xerox graphic engines such as [[Graphical Environment Manager]] and Display PostScript, it mimics normal [[PostScript]] to such as degree that it is possible to use it as a sort of an PostScript output device and it even has support for manipulation of TrueType fonts and support for [[PDF]] output.


===Pixman===
===Pixman===
Line 10: Line 10:
Although Cairo is a C library, it is delivered on OS/2 as a DLL that can be accessed from any language, but on top of that bindings have been developed for [[Ada]], [[C++]], [[Common Lisp]], [[Harbour]], [[Haskell]], [[Java]], [[Lua]], Nickle, Objective Caml; [[Perl]], [[PHP]], [[Prolog]], [[Python]], [[Ruby]], [[Scheme]], [[Smalltalk]] and Vala.
Although Cairo is a C library, it is delivered on OS/2 as a DLL that can be accessed from any language, but on top of that bindings have been developed for [[Ada]], [[C++]], [[Common Lisp]], [[Harbour]], [[Haskell]], [[Java]], [[Lua]], Nickle, Objective Caml; [[Perl]], [[PHP]], [[Prolog]], [[Python]], [[Ruby]], [[Scheme]], [[Smalltalk]] and Vala.


Pixman on the other hand is a classic C library and would need compiler support if it is to be used from another language or have bindings expressly written for it, at this point in time we are only aware of [[Python]] bindings for Pixman and even that does not support all of the features the library has to offer. Some of the low level features are accessible via Cairo however.
Pixman on the other hand is a classic C library and would need compiler support if it is to be used from another language or have bindings expressly written for it. At this point in time we are only aware of [[Python]] bindings for Pixman and even that does not support all of the features the library has to offer. Some of the low level features are accessible via Cairo however.


===Projects that use Cairo===
===Projects that use Cairo===
Best known would be the Mozilla Gecko engine used by several programs.
Best known would be the Mozilla Gecko engine used by several programs.
==API Documentation==
* [https://www.cairographics.org/manual/ Cairo API reference manual]


==Versions==
==Versions==
* Last known version: [ftp://ftp.netlabs.org/pub/Cairo/cairo-1.6.4-os2-bin.exe Cairo 1.6.4.1] (2016-05-26) (Toolkit can be [ftp://ftp.netlabs.org/pub/Cairo/cairo-1.6.4-os2-dev.zip found here])
* Last known version: [ftp://ftp.netlabs.org/pub/Cairo/cairo-1.6.4-os2-bin.exe Cairo 1.6.4.1] (2016-05-26) (Toolkit can be [ftp://ftp.netlabs.org/pub/Cairo/cairo-1.6.4-os2-dev.zip found here])
* Alternate version: [http://rpm.netlabs.org/release/00/zip/cairo-1_12_18-2_oc00.zip Cairo 1.12.18] (2016-05-26) - For legacy projects.
* Alternate version: [http://rpm.netlabs.org/release/00/zip/cairo-1_12_18-2_oc00.zip Cairo 1.12.18] (2016-05-26) - For legacy projects.
==Links & publications==
* [https://www.cairographics.org/ Cairo homepage]
* [http://pixman.org Pixman homepage]
* [https://lists.freedesktop.org/mailman/listinfo/pixman Pixman mailing list & archive]
* [http://wse2005.warpevents.eu/Presentations/Presentations/DEV07_Doodle_meets_Kairo.zip Cairo Presentation] - From [[Warpstock]] Europe 2005


==Licence==
==Licence==
Line 38: Line 29:
* [[Peter Weilbacher]] (Original OS/2 port/backend)
* [[Peter Weilbacher]] (Original OS/2 port/backend)
* [[Dmitriy Kuminov]] (OS/2 port contributor)
* [[Dmitriy Kuminov]] (OS/2 port contributor)
* [[Doodle]] - Current OS/2 port maintainer)
* [[Doodle]] (OS/2 port maintainer)
 
==Links==
* [https://www.cairographics.org/ Cairo homepage]
* [https://www.cairographics.org/manual/ Cairo API reference manual]
* [http://pixman.org Pixman homepage]
* [https://lists.freedesktop.org/mailman/listinfo/pixman Pixman mailing list & archive]
* [http://wse2005.warpevents.eu/Presentations/Presentations/DEV07_Doodle_meets_Kairo.zip Cairo Presentation] - From [[Warpstock]] Europe 2005


[[Category:C Libraries]][[Category:Graphical libraries and kernels]]
[[Category:C Libraries]][[Category:Graphical libraries and kernels]]

Revision as of 18:45, 3 October 2018

Cairo is an open source two dimensional graphics kernel written in C that simplifies the development of common 2D graphics tasks in addition to facilitating cross platform development as the library is available for a number of operating systems, including Mac OS X, Microsoft Windows and most UNIX like systems. It is designed more for application graphics than games and suchlike, but can be used to a degree for almost any graphics task that does not require 3D support.

Cairo is conceptually similar to the graphic libraries that were derived from the old Xerox graphic engines such as Graphical Environment Manager and Display PostScript, it mimics normal PostScript to such as degree that it is possible to use it as a sort of an PostScript output device and it even has support for manipulation of TrueType fonts and support for PDF output.

Pixman

Cairo itself is built upon another C library known as Pixman that provides low-level functions for pixel by pixel manipulation including image compositing and trapezoid rasterization. The library was originally developed for X.org but is now mainly maintained by the people behind Cairo and you can fetch generic releases of the Pixman source code from the Cairo homepage although if you intend to use it for OS/2 it is recommended that you extract Pixman from the OS/2 Cairo source release.

Cairo & Pixman bindings

Although Cairo is a C library, it is delivered on OS/2 as a DLL that can be accessed from any language, but on top of that bindings have been developed for Ada, C++, Common Lisp, Harbour, Haskell, Java, Lua, Nickle, Objective Caml; Perl, PHP, Prolog, Python, Ruby, Scheme, Smalltalk and Vala.

Pixman on the other hand is a classic C library and would need compiler support if it is to be used from another language or have bindings expressly written for it. At this point in time we are only aware of Python bindings for Pixman and even that does not support all of the features the library has to offer. Some of the low level features are accessible via Cairo however.

Projects that use Cairo

Best known would be the Mozilla Gecko engine used by several programs.

Versions

Licence

Authors

  • Carl Worth (Original author)
  • Keith Packard (Original author)
  • Bryce Harrington et al.
  • Peter Weilbacher (Original OS/2 port/backend)
  • Dmitriy Kuminov (OS/2 port contributor)
  • Doodle (OS/2 port maintainer)

Links