diff options
| author | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-05-01 15:24:06 +0000 |
|---|---|---|
| committer | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2008-05-01 15:24:06 +0000 |
| commit | 131e42891d997225616ae1b2cb74543c6a4e7a79 (patch) | |
| tree | 93f9003610e20b9f09e84b7ecfd530f0f8b74ef3 /packages/cairo | |
| parent | 9c52fca94745b3b447f960c028e1d95ad7e153e0 (diff) | |
| download | fpc-131e42891d997225616ae1b2cb74543c6a4e7a79.tar.gz | |
* Updated header translations from Luiz. Now should work for win32 too
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@10854 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/cairo')
| -rw-r--r-- | packages/cairo/Makefile | 267 | ||||
| -rw-r--r-- | packages/cairo/Makefile.fpc | 18 | ||||
| -rw-r--r-- | packages/cairo/fpmake.pp | 25 | ||||
| -rw-r--r-- | packages/cairo/src/cairo.pp | 655 | ||||
| -rw-r--r-- | packages/cairo/src/cairoft.pp | 57 | ||||
| -rw-r--r-- | packages/cairo/src/cairowin32.pp | 46 | ||||
| -rw-r--r-- | packages/cairo/src/cairoxlib.pp | 47 |
7 files changed, 708 insertions, 407 deletions
diff --git a/packages/cairo/Makefile b/packages/cairo/Makefile index 12f7081320..f5cb512359 100644 --- a/packages/cairo/Makefile +++ b/packages/cairo/Makefile @@ -1,8 +1,8 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/03/24] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/05/01] # default: all -MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded +MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded BSDs = freebsd netbsd openbsd darwin UNIXs = linux $(BSDs) solaris qnx LIMIT83fs = go32v2 os2 emx watcom @@ -254,172 +254,175 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F override PACKAGE_NAME=cairo override PACKAGE_VERSION=2.0.4 ifeq ($(FULL_TARGET),i386-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),i386-go32v2) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-win32) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairowin32 endif ifeq ($(FULL_TARGET),i386-os2) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-freebsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),i386-beos) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-netbsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),i386-solaris) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),i386-qnx) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-netware) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-openbsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),i386-wdosx) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-darwin) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),i386-emx) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-watcom) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-netwlibc) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-wince) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),i386-symbian) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),m68k-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),m68k-freebsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),m68k-netbsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),m68k-amiga) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),m68k-atari) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),m68k-openbsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),m68k-palmos) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),m68k-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),powerpc-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),powerpc-netbsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),powerpc-amiga) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),powerpc-macos) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),powerpc-darwin) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),powerpc-morphos) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),powerpc-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),sparc-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),sparc-netbsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),sparc-solaris) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),sparc-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),x86_64-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),x86_64-freebsd) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),x86_64-darwin) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),x86_64-win64) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),x86_64-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),arm-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),arm-palmos) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft +endif +ifeq ($(FULL_TARGET),arm-darwin) +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),arm-wince) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),arm-gba) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),arm-nds) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),arm-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),arm-symbian) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),powerpc64-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),powerpc64-darwin) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),powerpc64-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),avr-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif ifeq ($(FULL_TARGET),armeb-linux) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft cairoxlib endif ifeq ($(FULL_TARGET),armeb-embedded) -override TARGET_UNITS+=cairo +override TARGET_UNITS+=cairo cairoft endif override INSTALL_FPCPACKAGE=y ifeq ($(FULL_TARGET),i386-linux) @@ -557,6 +560,9 @@ endif ifeq ($(FULL_TARGET),arm-palmos) override COMPILER_INCLUDEDIR+=src endif +ifeq ($(FULL_TARGET),arm-darwin) +override COMPILER_INCLUDEDIR+=src +endif ifeq ($(FULL_TARGET),arm-wince) override COMPILER_INCLUDEDIR+=src endif @@ -725,6 +731,9 @@ endif ifeq ($(FULL_TARGET),arm-palmos) override COMPILER_SOURCEDIR+=src tests endif +ifeq ($(FULL_TARGET),arm-darwin) +override COMPILER_SOURCEDIR+=src tests +endif ifeq ($(FULL_TARGET),arm-wince) override COMPILER_SOURCEDIR+=src tests endif @@ -1536,19 +1545,18 @@ else TAROPT=vz TAREXT=.tar.gz endif -override REQUIRE_PACKAGES=rtl x11 fcl-image +override REQUIRE_PACKAGES=rtl fcl-image ifeq ($(FULL_TARGET),i386-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),i386-go32v2) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1557,7 +1565,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-win32) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1568,7 +1575,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-os2) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1577,16 +1583,15 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-freebsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),i386-beos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1595,25 +1600,24 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),i386-solaris) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),i386-qnx) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1622,7 +1626,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-netware) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1631,16 +1634,15 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-openbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),i386-wdosx) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1649,16 +1651,15 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-darwin) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),i386-emx) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1667,7 +1668,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-watcom) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1676,7 +1676,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-netwlibc) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1685,7 +1684,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-wince) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1694,7 +1692,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1703,7 +1700,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),i386-symbian) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1712,34 +1708,33 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),m68k-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),m68k-freebsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),m68k-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),m68k-amiga) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1748,7 +1743,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),m68k-atari) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1757,16 +1751,15 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),m68k-openbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),m68k-palmos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1775,7 +1768,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),m68k-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1784,25 +1776,24 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),powerpc-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),powerpc-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),powerpc-amiga) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1811,7 +1802,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),powerpc-macos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1820,16 +1810,15 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),powerpc-darwin) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),powerpc-morphos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1838,7 +1827,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),powerpc-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1847,34 +1835,33 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),sparc-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),sparc-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),sparc-solaris) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),sparc-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1883,34 +1870,33 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),x86_64-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),x86_64-freebsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),x86_64-darwin) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),x86_64-win64) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1921,7 +1907,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),x86_64-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1930,25 +1915,32 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),arm-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),arm-palmos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 endif -ifeq ($(FULL_TARGET),arm-wince) +ifeq ($(FULL_TARGET),arm-darwin) REQUIRE_PACKAGES_RTL=1 +REQUIRE_PACKAGES_PASJPEG=1 +REQUIRE_PACKAGES_HASH=1 +REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_FCL-BASE=1 +REQUIRE_PACKAGES_FCL-IMAGE=1 REQUIRE_PACKAGES_X11=1 +endif +ifeq ($(FULL_TARGET),arm-wince) +REQUIRE_PACKAGES_RTL=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1957,7 +1949,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),arm-gba) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1966,7 +1957,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),arm-nds) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1975,7 +1965,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),arm-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1984,7 +1973,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),arm-symbian) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -1993,25 +1981,24 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),powerpc64-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),powerpc64-darwin) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),powerpc64-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -2020,7 +2007,6 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),avr-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -2029,16 +2015,15 @@ REQUIRE_PACKAGES_FCL-IMAGE=1 endif ifeq ($(FULL_TARGET),armeb-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 REQUIRE_PACKAGES_FCL-BASE=1 REQUIRE_PACKAGES_FCL-IMAGE=1 +REQUIRE_PACKAGES_X11=1 endif ifeq ($(FULL_TARGET),armeb-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_X11=1 REQUIRE_PACKAGES_PASJPEG=1 REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 @@ -2071,32 +2056,6 @@ ifdef UNITDIR_RTL override COMPILER_UNITDIR+=$(UNITDIR_RTL) endif endif -ifdef REQUIRE_PACKAGES_X11 -PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_X11),) -ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(TARGETSUFFIX)),) -UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(TARGETSUFFIX) -else -UNITDIR_X11=$(PACKAGEDIR_X11) -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_X11)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_X11) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_X11)/$(FPCMADE) -endif -else -PACKAGEDIR_X11= -UNITDIR_X11:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /x11/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_X11),) -UNITDIR_X11:=$(firstword $(UNITDIR_X11)) -else -UNITDIR_X11= -endif -endif -ifdef UNITDIR_X11 -override COMPILER_UNITDIR+=$(UNITDIR_X11) -endif -endif ifdef REQUIRE_PACKAGES_PASJPEG PACKAGEDIR_PASJPEG:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pasjpeg/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_PASJPEG),) @@ -2227,6 +2186,32 @@ ifdef UNITDIR_FCL-IMAGE override COMPILER_UNITDIR+=$(UNITDIR_FCL-IMAGE) endif endif +ifdef REQUIRE_PACKAGES_X11 +PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR)))))) +ifneq ($(PACKAGEDIR_X11),) +ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(TARGETSUFFIX)),) +UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(TARGETSUFFIX) +else +UNITDIR_X11=$(PACKAGEDIR_X11) +endif +ifdef CHECKDEPEND +$(PACKAGEDIR_X11)/$(FPCMADE): + $(MAKE) -C $(PACKAGEDIR_X11) $(FPCMADE) +override ALLDEPENDENCIES+=$(PACKAGEDIR_X11)/$(FPCMADE) +endif +else +PACKAGEDIR_X11= +UNITDIR_X11:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /x11/Package.fpc,$(UNITSDIR))))) +ifneq ($(UNITDIR_X11),) +UNITDIR_X11:=$(firstword $(UNITDIR_X11)) +else +UNITDIR_X11= +endif +endif +ifdef UNITDIR_X11 +override COMPILER_UNITDIR+=$(UNITDIR_X11) +endif +endif ifdef REQUIRE_PACKAGES_WINUNITS-BASE PACKAGEDIR_WINUNITS-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits-base/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_WINUNITS-BASE),) diff --git a/packages/cairo/Makefile.fpc b/packages/cairo/Makefile.fpc index 7a5cb421ae..fce8e25817 100644 --- a/packages/cairo/Makefile.fpc +++ b/packages/cairo/Makefile.fpc @@ -2,14 +2,28 @@ # Makefile.fpc for cairo # [require] -packages=x11 fcl-image +packages=fcl-image +#packages_win32= +packages_linux=x11 +packages_freebsd=x11 +packages_netbsd=x11 +packages_openbsd=x11 +packages_solaris=x11 +packages_darwin=x11 [package] name=cairo version=2.0.4 [target] -units=cairo +units=cairo cairoft +units_win32=cairowin32 +units_linux=cairoxlib +units_freebsd=cairoxlib +units_netbsd=cairoxlib +units_openbsd=cairoxlib +units_solaris=cairoxlib +units_darwin=cairoxlib [install] fpcpackage=y diff --git a/packages/cairo/fpmake.pp b/packages/cairo/fpmake.pp index 1e6085dcfc..9a57d75e2c 100644 --- a/packages/cairo/fpmake.pp +++ b/packages/cairo/fpmake.pp @@ -19,12 +19,29 @@ begin P.Version:='2.2.1'; P.SourcePath.Add('src'); - P.Dependencies.Add('x11'); + P.Dependencies.Add('x11',AllUnixOSes); P.Dependencies.Add('fcl-image'); - - T:=P.Targets.AddUnit('cairo.pp'); - + T:=P.Targets.AddUnit('cairo.pp'); + T:=P.Targets.AddUnit('cairoft.pp'); + with T.Dependencies do + begin + AddUnit('cairo'); + AddUnit('freetypeh'); + end; + T:=P.Targets.AddUnit('cairoxlib.pp',AllUnixOSes); + with T.Dependencies do + begin + AddUnit('cairo'); + AddUnit('xlib'); + AddUnit('xrender'); + end; + T:=P.Targets.AddUnit('cairowin32.pp',AllWindowOses); + with T.Dependencies do + begin + AddUnit('cairo'); + AddUnit('windows'); + end; {$ifndef ALLPACKAGES} Run; end; diff --git a/packages/cairo/src/cairo.pp b/packages/cairo/src/cairo.pp index 4d97d870ed..281f1e49c9 100644 --- a/packages/cairo/src/cairo.pp +++ b/packages/cairo/src/cairo.pp @@ -1,3 +1,5 @@ +unit Cairo; + (* cairo - a vector graphics library with display and print output * * Copyright © 2002 University of Southern California @@ -33,33 +35,27 @@ * * Contributor(s): * Carl D. Worth <cworth@cworth.org> - *) - - -(* * This FreePascal binding generated August 26, 2005 * by Jeffrey Pohlmeyer <yetanothergeek@yahoo.com> - *) + - Updated to cairo version 1.4 + - Grouped OS specific fuctions in separated units + - Organized the functions by group and ordered exactly as the c header + - Cleared parameter list syntax according to pascal standard + By Luiz Américo Pereira Câmara + October 2007 +*) -unit cairo; +{$mode ObjFpc} interface -uses x, xlib, xrender, freetypeh; -const - LIB_CAIRO='cairo'; - - CAIRO_HAS_FT_FONT = 1; - CAIRO_HAS_PNG_FUNCTIONS = 1; - CAIRO_HAS_XLIB_SURFACE = 1; +Uses CTypes; - CAIRO_VERSION_MAJOR = 1; - CAIRO_VERSION_MICRO = 0; - CAIRO_VERSION_MINOR = 0; - CAIRO_VERSION_STRING = '1.0.0'; +const + LIB_CAIRO = 'cairo'; {$IFDEF FPC} {$PACKRECORDS C} @@ -186,10 +182,10 @@ type cairo_extend_t = ( CAIRO_EXTEND_NONE, CAIRO_EXTEND_REPEAT, - CAIRO_EXTEND_REFLECT + CAIRO_EXTEND_REFLECT, + CAIRO_EXTEND_PAD ); - cairo_filter_t = ( CAIRO_FILTER_FAST, CAIRO_FILTER_GOOD, @@ -199,19 +195,51 @@ type CAIRO_FILTER_GAUSSIAN ); + cairo_font_type_t = ( + CAIRO_FONT_TYPE_TOY, + CAIRO_FONT_TYPE_FT, + CAIRO_FONT_TYPE_WIN32, + CAIRO_FONT_TYPE_ATSUI + ); + + cairo_pattern_type_t = ( + CAIRO_PATTERN_TYPE_SOLID, + CAIRO_PATTERN_TYPE_SURFACE, + CAIRO_PATTERN_TYPE_LINEAR, + CAIRO_PATTERN_TYPE_RADIAL + ); + + cairo_surface_type_t = ( + CAIRO_SURFACE_TYPE_IMAGE, + CAIRO_SURFACE_TYPE_PDF, + CAIRO_SURFACE_TYPE_PS, + CAIRO_SURFACE_TYPE_XLIB, + CAIRO_SURFACE_TYPE_XCB, + CAIRO_SURFACE_TYPE_GLITZ, + CAIRO_SURFACE_TYPE_QUARTZ, + CAIRO_SURFACE_TYPE_WIN32, + CAIRO_SURFACE_TYPE_BEOS, + CAIRO_SURFACE_TYPE_DIRECTFB, + CAIRO_SURFACE_TYPE_SVG, + CAIRO_SURFACE_TYPE_OS2 + ); + + cairo_svg_version_t = ( + CAIRO_SVG_VERSION_1_1, + CAIRO_SVG_VERSION_1_2 + ); + pcairo_svg_version_t = ^cairo_svg_version_t; + ppcairo_svg_version_t = pcairo_svg_version_t; - - FcPattern=pointer; - - PFcPattern = ^FcPattern; Pcairo_surface_t = ^cairo_surface_t; + PPcairo_surface_t = ^Pcairo_surface_t; Pcairo_t = ^cairo_t; Pcairo_pattern_t = ^cairo_pattern_t; Pcairo_font_options_t = ^cairo_font_options_t; Pcairo_font_face_t = ^cairo_font_face_t; Pcairo_scaled_font_t = ^cairo_scaled_font_t; Pcairo_bool_t = ^cairo_bool_t; - cairo_bool_t = longint; + cairo_bool_t = LongInt; Pcairo_matrix_t = ^cairo_matrix_t; Pcairo_user_data_key_t = ^cairo_user_data_key_t; Pcairo_glyph_t = ^cairo_glyph_t; @@ -220,10 +248,12 @@ type Pcairo_path_data_type_t = ^cairo_path_data_type_t; Pcairo_path_data_t = ^cairo_path_data_t; Pcairo_path_t = ^cairo_path_t; + Pcairo_rectangle_t = ^cairo_rectangle_t; + Pcairo_rectangle_list_t =^cairo_rectangle_list_t; - cairo_destroy_func_t = procedure (data:pointer); cdecl; - cairo_write_func_t = function (closure:pointer; data:Pbyte; length:dword):cairo_status_t; cdecl; - cairo_read_func_t = function (closure:pointer; data:Pbyte; length:dword):cairo_status_t; cdecl; + cairo_destroy_func_t = procedure (data: Pointer); cdecl; + cairo_write_func_t = function (closure: Pointer; data: PByte; length: LongWord): cairo_status_t; cdecl; + cairo_read_func_t = function (closure: Pointer; data: PByte; length: LongWord): cairo_status_t; cdecl; cairo_t = record {OPAQUE} end; cairo_surface_t = record {OPAQUE} end; @@ -232,270 +262,375 @@ type cairo_font_face_t = record {OPAQUE} end; cairo_font_options_t = record {OPAQUE} end; - cairo_matrix_t = record - xx : double; - yx : double; - xy : double; - yy : double; - x0 : double; - y0 : double; + xx : Double; + yx : Double; + xy : Double; + yy : Double; + x0 : Double; + y0 : Double; end; cairo_user_data_key_t = record - unused : longint; + unused : LongInt; end; cairo_glyph_t = record - index : dword; - x : double; - y : double; + index : LongWord; + x : Double; + y : Double; end; cairo_text_extents_t = record - x_bearing : double; - y_bearing : double; - width : double; - height : double; - x_advance : double; - y_advance : double; + x_bearing : Double; + y_bearing : Double; + width : Double; + height : Double; + x_advance : Double; + y_advance : Double; end; cairo_font_extents_t = record - ascent : double; - descent : double; - height : double; - max_x_advance : double; - max_y_advance : double; + ascent : Double; + descent : Double; + height : Double; + max_x_advance : Double; + max_y_advance : Double; end; - cairo_path_data_t = record - case longint of + case LongInt of 0 : ( header : record _type : cairo_path_data_type_t; - length : longint; + length : LongInt; end ); 1 : ( point : record - x : double; - y : double; + x : Double; + y : Double; end ); end; cairo_path_t = record status : cairo_status_t; data : Pcairo_path_data_t; - num_data : longint; + num_data : LongInt; end; - - -function cairo_create(target:Pcairo_surface_t):Pcairo_t; cdecl; external LIB_CAIRO; -function cairo_reference(cr:Pcairo_t):Pcairo_t; cdecl; external LIB_CAIRO; -procedure cairo_destroy(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_save(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_restore(cr:Pcairo_t); cdecl; external LIB_CAIRO; - -procedure cairo_set_operator(cr:Pcairo_t; op:cairo_operator_t); cdecl; external LIB_CAIRO; -procedure cairo_set_source(cr:Pcairo_t; source:Pcairo_pattern_t); cdecl; external LIB_CAIRO; -procedure cairo_set_source_rgb(cr:Pcairo_t; red:double; green:double; blue:double); cdecl; external LIB_CAIRO; -procedure cairo_set_source_rgba(cr:Pcairo_t; red:double; green:double; blue:double; alpha:double); cdecl; external LIB_CAIRO; -procedure cairo_set_source_surface(cr:Pcairo_t; surface:Pcairo_surface_t; x:double; y:double); cdecl; external LIB_CAIRO; -procedure cairo_set_tolerance(cr:Pcairo_t; tolerance:double); cdecl; external LIB_CAIRO; -procedure cairo_set_antialias(cr:Pcairo_t; antialias:cairo_antialias_t); cdecl; external LIB_CAIRO; -procedure cairo_set_fill_rule(cr:Pcairo_t; fill_rule:cairo_fill_rule_t); cdecl; external LIB_CAIRO; -procedure cairo_set_line_width(cr:Pcairo_t; width:double); cdecl; external LIB_CAIRO; -procedure cairo_set_line_cap(cr:Pcairo_t; line_cap:cairo_line_cap_t); cdecl; external LIB_CAIRO; -procedure cairo_set_line_join(cr:Pcairo_t; line_join:cairo_line_join_t); cdecl; external LIB_CAIRO; -procedure cairo_set_dash(cr:Pcairo_t; dashes:Pdouble; num_dashes:longint; offset:double); cdecl; external LIB_CAIRO; -procedure cairo_set_miter_limit(cr:Pcairo_t; limit:double); cdecl; external LIB_CAIRO; - -procedure cairo_translate(cr:Pcairo_t; tx:double; ty:double); cdecl; external LIB_CAIRO; -procedure cairo_scale(cr:Pcairo_t; sx:double; sy:double); cdecl; external LIB_CAIRO; -procedure cairo_rotate(cr:Pcairo_t; angle:double); cdecl; external LIB_CAIRO; -procedure cairo_transform(cr:Pcairo_t; matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; - -procedure cairo_set_matrix(cr:Pcairo_t; matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -procedure cairo_identity_matrix(cr:Pcairo_t); cdecl; external LIB_CAIRO; - -procedure cairo_user_to_device(cr:Pcairo_t; x:Pdouble; y:Pdouble); cdecl; external LIB_CAIRO; -procedure cairo_user_to_device_distance(cr:Pcairo_t; dx:Pdouble; dy:Pdouble); cdecl; external LIB_CAIRO; -procedure cairo_device_to_user(cr:Pcairo_t; x:Pdouble; y:Pdouble); cdecl; external LIB_CAIRO; -procedure cairo_device_to_user_distance(cr:Pcairo_t; dx:Pdouble; dy:Pdouble); cdecl; external LIB_CAIRO; - -procedure cairo_new_path(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_move_to(cr:Pcairo_t; x:double; y:double); cdecl; external LIB_CAIRO; -procedure cairo_line_to(cr:Pcairo_t; x:double; y:double); cdecl; external LIB_CAIRO; -procedure cairo_curve_to(cr:Pcairo_t; x1:double; y1:double; x2:double; y2:double; x3:double; y3:double); cdecl; external LIB_CAIRO; -procedure cairo_arc(cr:Pcairo_t; xc:double; yc:double; radius:double; angle1:double; angle2:double); cdecl; external LIB_CAIRO; -procedure cairo_arc_negative(cr:Pcairo_t; xc:double; yc:double; radius:double; angle1:double; angle2:double); cdecl; external LIB_CAIRO; -procedure cairo_rel_move_to(cr:Pcairo_t; dx:double; dy:double); cdecl; external LIB_CAIRO; -procedure cairo_rel_line_to(cr:Pcairo_t; dx:double; dy:double); cdecl; external LIB_CAIRO; -procedure cairo_rel_curve_to(cr:Pcairo_t; dx1:double; dy1:double; dx2:double; dy2:double; dx3:double; dy3:double); cdecl; external LIB_CAIRO; -procedure cairo_rectangle(cr:Pcairo_t; x:double; y:double; width:double; height:double); cdecl; external LIB_CAIRO; -procedure cairo_close_path(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_paint(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_paint_with_alpha(cr:Pcairo_t; alpha:double); cdecl; external LIB_CAIRO; - -procedure cairo_mask(cr:Pcairo_t; pattern:Pcairo_pattern_t); cdecl; external LIB_CAIRO; -procedure cairo_mask_surface(cr:Pcairo_t; surface:Pcairo_surface_t; surface_x:double; surface_y:double); cdecl; external LIB_CAIRO; - -procedure cairo_stroke(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_stroke_preserve(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_fill(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_fill_preserve(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_copy_page(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_show_page(cr:Pcairo_t); cdecl; external LIB_CAIRO; -function cairo_in_stroke(cr:Pcairo_t; x:double; y:double):cairo_bool_t; cdecl; external LIB_CAIRO; -function cairo_in_fill(cr:Pcairo_t; x:double; y:double):cairo_bool_t; cdecl; external LIB_CAIRO; -procedure cairo_stroke_extents(cr:Pcairo_t; x1:Pdouble; y1:Pdouble; x2:Pdouble; y2:Pdouble); cdecl; external LIB_CAIRO; -procedure cairo_fill_extents(cr:Pcairo_t; x1:Pdouble; y1:Pdouble; x2:Pdouble; y2:Pdouble); cdecl; external LIB_CAIRO; -procedure cairo_reset_clip(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_clip(cr:Pcairo_t); cdecl; external LIB_CAIRO; -procedure cairo_clip_preserve(cr:Pcairo_t); cdecl; external LIB_CAIRO; - -function cairo_font_options_create:Pcairo_font_options_t; cdecl; external LIB_CAIRO; -function cairo_font_options_copy(original:Pcairo_font_options_t):Pcairo_font_options_t; cdecl; external LIB_CAIRO; -procedure cairo_font_options_destroy(options:Pcairo_font_options_t); cdecl; external LIB_CAIRO; -function cairo_font_options_status(options:Pcairo_font_options_t):cairo_status_t; cdecl; external LIB_CAIRO; -procedure cairo_font_options_merge(options:Pcairo_font_options_t; other:Pcairo_font_options_t); cdecl; external LIB_CAIRO; -function cairo_font_options_equal(options:Pcairo_font_options_t; other:Pcairo_font_options_t):cairo_bool_t; cdecl; external LIB_CAIRO; -function cairo_font_options_hash(options:Pcairo_font_options_t):dword; cdecl; external LIB_CAIRO; -procedure cairo_font_options_set_antialias(options:Pcairo_font_options_t; antialias:cairo_antialias_t); cdecl; external LIB_CAIRO; -function cairo_font_options_get_antialias(options:Pcairo_font_options_t):cairo_antialias_t; cdecl; external LIB_CAIRO; -procedure cairo_font_options_set_subpixel_order(options:Pcairo_font_options_t; subpixel_order:cairo_subpixel_order_t); cdecl; external LIB_CAIRO; -function cairo_font_options_get_subpixel_order(options:Pcairo_font_options_t):cairo_subpixel_order_t; cdecl; external LIB_CAIRO; -procedure cairo_font_options_set_hint_style(options:Pcairo_font_options_t; hint_style:cairo_hint_style_t); cdecl; external LIB_CAIRO; -function cairo_font_options_get_hint_style(options:Pcairo_font_options_t):cairo_hint_style_t; cdecl; external LIB_CAIRO; -procedure cairo_font_options_set_hint_metrics(options:Pcairo_font_options_t; hint_metrics:cairo_hint_metrics_t); cdecl; external LIB_CAIRO; -function cairo_font_options_get_hint_metrics(options:Pcairo_font_options_t):cairo_hint_metrics_t; cdecl; external LIB_CAIRO; -procedure cairo_select_font_face(cr:Pcairo_t; family:Pchar; slant:cairo_font_slant_t; weight:cairo_font_weight_t); cdecl; external LIB_CAIRO; -procedure cairo_set_font_size(cr:Pcairo_t; size:double); cdecl; external LIB_CAIRO; -procedure cairo_set_font_matrix(cr:Pcairo_t; matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -procedure cairo_get_font_matrix(cr:Pcairo_t; matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -procedure cairo_set_font_options(cr:Pcairo_t; options:Pcairo_font_options_t); cdecl; external LIB_CAIRO; -procedure cairo_get_font_options(cr:Pcairo_t; options:Pcairo_font_options_t); cdecl; external LIB_CAIRO; -procedure cairo_show_text(cr:Pcairo_t; utf8:Pchar); cdecl; external LIB_CAIRO; -procedure cairo_show_glyphs(cr:Pcairo_t; glyphs:Pcairo_glyph_t; num_glyphs:longint); cdecl; external LIB_CAIRO; -function cairo_get_font_face(cr:Pcairo_t):Pcairo_font_face_t; cdecl; external LIB_CAIRO; -procedure cairo_font_extents(cr:Pcairo_t; extents:Pcairo_font_extents_t); cdecl; external LIB_CAIRO; -procedure cairo_set_font_face(cr:Pcairo_t; font_face:Pcairo_font_face_t); cdecl; external LIB_CAIRO; -procedure cairo_text_extents(cr:Pcairo_t; utf8:Pchar; extents:Pcairo_text_extents_t); cdecl; external LIB_CAIRO; -procedure cairo_glyph_extents(cr:Pcairo_t; glyphs:Pcairo_glyph_t; num_glyphs:longint; extents:Pcairo_text_extents_t); cdecl; external LIB_CAIRO; -procedure cairo_text_path(cr:Pcairo_t; utf8:Pchar); cdecl; external LIB_CAIRO; -procedure cairo_glyph_path(cr:Pcairo_t; glyphs:Pcairo_glyph_t; num_glyphs:longint); cdecl; external LIB_CAIRO; -function cairo_font_face_reference(font_face:Pcairo_font_face_t):Pcairo_font_face_t; cdecl; external LIB_CAIRO; -procedure cairo_font_face_destroy(font_face:Pcairo_font_face_t); cdecl; external LIB_CAIRO; -function cairo_font_face_status(font_face:Pcairo_font_face_t):cairo_status_t; cdecl; external LIB_CAIRO; -function cairo_font_face_get_user_data(font_face:Pcairo_font_face_t; key:Pcairo_user_data_key_t):pointer; cdecl; external LIB_CAIRO; -function cairo_font_face_set_user_data(font_face:Pcairo_font_face_t; key:Pcairo_user_data_key_t; user_data:pointer; destroy:cairo_destroy_func_t):cairo_status_t; cdecl; external LIB_CAIRO; -function cairo_scaled_font_create(font_face:Pcairo_font_face_t; font_matrix:Pcairo_matrix_t; ctm:Pcairo_matrix_t; options:Pcairo_font_options_t):Pcairo_scaled_font_t; cdecl; external LIB_CAIRO; -function cairo_scaled_font_reference(scaled_font:Pcairo_scaled_font_t):Pcairo_scaled_font_t; cdecl; external LIB_CAIRO; -procedure cairo_scaled_font_destroy(scaled_font:Pcairo_scaled_font_t); cdecl; external LIB_CAIRO; -function cairo_scaled_font_status(scaled_font:Pcairo_scaled_font_t):cairo_status_t; cdecl; external LIB_CAIRO; -procedure cairo_scaled_font_extents(scaled_font:Pcairo_scaled_font_t; extents:Pcairo_font_extents_t); cdecl; external LIB_CAIRO; -procedure cairo_scaled_font_glyph_extents(scaled_font:Pcairo_scaled_font_t; glyphs:Pcairo_glyph_t; num_glyphs:longint; extents:Pcairo_text_extents_t); cdecl; external LIB_CAIRO; - -function cairo_get_operator(cr:Pcairo_t):cairo_operator_t; cdecl; external LIB_CAIRO; -function cairo_get_source(cr:Pcairo_t):Pcairo_pattern_t; cdecl; external LIB_CAIRO; -function cairo_get_tolerance(cr:Pcairo_t):double; cdecl; external LIB_CAIRO; -function cairo_get_antialias(cr:Pcairo_t):cairo_antialias_t; cdecl; external LIB_CAIRO; -procedure cairo_get_current_point(cr:Pcairo_t; x:Pdouble; y:Pdouble); cdecl; external LIB_CAIRO; -function cairo_get_fill_rule(cr:Pcairo_t):cairo_fill_rule_t; cdecl; external LIB_CAIRO; -function cairo_get_line_width(cr:Pcairo_t):double; cdecl; external LIB_CAIRO; -function cairo_get_line_cap(cr:Pcairo_t):cairo_line_cap_t; cdecl; external LIB_CAIRO; -function cairo_get_line_join(cr:Pcairo_t):cairo_line_join_t; cdecl; external LIB_CAIRO; -function cairo_get_miter_limit(cr:Pcairo_t):double; cdecl; external LIB_CAIRO; -procedure cairo_get_matrix(cr:Pcairo_t; matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -function cairo_get_target(cr:Pcairo_t):Pcairo_surface_t; cdecl; external LIB_CAIRO; -function cairo_copy_path(cr:Pcairo_t):Pcairo_path_t; cdecl; external LIB_CAIRO; -function cairo_copy_path_flat(cr:Pcairo_t):Pcairo_path_t; cdecl; external LIB_CAIRO; -procedure cairo_append_path(cr:Pcairo_t; path:Pcairo_path_t); cdecl; external LIB_CAIRO; -procedure cairo_path_destroy(path:Pcairo_path_t); cdecl; external LIB_CAIRO; -function cairo_status(cr:Pcairo_t):cairo_status_t; cdecl; external LIB_CAIRO; -function cairo_status_to_string(status:cairo_status_t):Pchar; cdecl; external LIB_CAIRO; - -function cairo_surface_create_similar(other:Pcairo_surface_t; content:cairo_content_t; width:longint; height:longint):Pcairo_surface_t; cdecl; external LIB_CAIRO; -function cairo_surface_reference(surface:Pcairo_surface_t):Pcairo_surface_t; cdecl; external LIB_CAIRO; -procedure cairo_surface_destroy(surface:Pcairo_surface_t); cdecl; external LIB_CAIRO; -function cairo_surface_status(surface:Pcairo_surface_t):cairo_status_t; cdecl; external LIB_CAIRO; -procedure cairo_surface_finish(surface:Pcairo_surface_t); cdecl; external LIB_CAIRO; -function cairo_surface_write_to_png(surface:Pcairo_surface_t; filename:Pchar):cairo_status_t; cdecl; external LIB_CAIRO; -function cairo_surface_write_to_png_stream(surface:Pcairo_surface_t; write_func:cairo_write_func_t; closure:pointer):cairo_status_t; cdecl; external LIB_CAIRO; -function cairo_surface_get_user_data(surface:Pcairo_surface_t; key:Pcairo_user_data_key_t):pointer; cdecl; external LIB_CAIRO; -function cairo_surface_set_user_data(surface:Pcairo_surface_t; key:Pcairo_user_data_key_t; user_data:pointer; destroy:cairo_destroy_func_t):cairo_status_t; cdecl; external LIB_CAIRO; -procedure cairo_surface_get_font_options(surface:Pcairo_surface_t; options:Pcairo_font_options_t); cdecl; external LIB_CAIRO; -procedure cairo_surface_flush(surface:Pcairo_surface_t); cdecl; external LIB_CAIRO; -procedure cairo_surface_mark_dirty(surface:Pcairo_surface_t); cdecl; external LIB_CAIRO; -procedure cairo_surface_mark_dirty_rectangle(surface:Pcairo_surface_t; x:longint; y:longint; width:longint; height:longint); cdecl; external LIB_CAIRO; -procedure cairo_surface_set_device_offset(surface:Pcairo_surface_t; x_offset:double; y_offset:double); cdecl; external LIB_CAIRO; - -function cairo_image_surface_create(format:cairo_format_t; width:longint; height:longint):Pcairo_surface_t; cdecl; external LIB_CAIRO; -function cairo_image_surface_create_for_data(data:Pbyte; format:cairo_format_t; width:longint; height:longint; stride:longint):Pcairo_surface_t; cdecl; external LIB_CAIRO; -function cairo_image_surface_get_width(surface:Pcairo_surface_t):longint; cdecl; external LIB_CAIRO; -function cairo_image_surface_get_height(surface:Pcairo_surface_t):longint; cdecl; external LIB_CAIRO; -function cairo_image_surface_create_from_png(filename:Pchar):Pcairo_surface_t; cdecl; external LIB_CAIRO; -function cairo_image_surface_create_from_png_stream(read_func:cairo_read_func_t; closure:pointer):Pcairo_surface_t; cdecl; external LIB_CAIRO; - -function cairo_pattern_create_rgb(red:double; green:double; blue:double):Pcairo_pattern_t; cdecl; external LIB_CAIRO; -function cairo_pattern_create_rgba(red:double; green:double; blue:double; alpha:double):Pcairo_pattern_t; cdecl; external LIB_CAIRO; -function cairo_pattern_create_for_surface(surface:Pcairo_surface_t):Pcairo_pattern_t; cdecl; external LIB_CAIRO; -function cairo_pattern_create_linear(x0:double; y0:double; x1:double; y1:double):Pcairo_pattern_t; cdecl; external LIB_CAIRO; -function cairo_pattern_create_radial(cx0:double; cy0:double; radius0:double; cx1:double; cy1:double; radius1:double):Pcairo_pattern_t; cdecl; external LIB_CAIRO; -function cairo_pattern_reference(pattern:Pcairo_pattern_t):Pcairo_pattern_t; cdecl; external LIB_CAIRO; -procedure cairo_pattern_destroy(pattern:Pcairo_pattern_t); cdecl; external LIB_CAIRO; -function cairo_pattern_status(pattern:Pcairo_pattern_t):cairo_status_t; cdecl; external LIB_CAIRO; -procedure cairo_pattern_add_color_stop_rgb(pattern:Pcairo_pattern_t; offset:double; red:double; green:double; blue:double); cdecl; external LIB_CAIRO; -procedure cairo_pattern_add_color_stop_rgba(pattern:Pcairo_pattern_t; offset:double; red:double; green:double; blue:double; alpha:double); cdecl; external LIB_CAIRO; -procedure cairo_pattern_set_matrix(pattern:Pcairo_pattern_t; matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -procedure cairo_pattern_get_matrix(pattern:Pcairo_pattern_t; matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -procedure cairo_pattern_set_extend(pattern:Pcairo_pattern_t; extend:cairo_extend_t); cdecl; external LIB_CAIRO; -function cairo_pattern_get_extend(pattern:Pcairo_pattern_t):cairo_extend_t; cdecl; external LIB_CAIRO; -procedure cairo_pattern_set_filter(pattern:Pcairo_pattern_t; filter:cairo_filter_t); cdecl; external LIB_CAIRO; -function cairo_pattern_get_filter(pattern:Pcairo_pattern_t):cairo_filter_t; cdecl; external LIB_CAIRO; - -procedure cairo_matrix_init(matrix:Pcairo_matrix_t; xx:double; yx:double; xy:double; yy:double; x0:double; y0:double); cdecl; external LIB_CAIRO; -procedure cairo_matrix_init_identity(matrix:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -procedure cairo_matrix_init_translate(matrix:Pcairo_matrix_t; tx:double; ty:double); cdecl; external LIB_CAIRO; -procedure cairo_matrix_init_scale(matrix:Pcairo_matrix_t; sx:double; sy:double); cdecl; external LIB_CAIRO; -procedure cairo_matrix_init_rotate(matrix:Pcairo_matrix_t; radians:double); cdecl; external LIB_CAIRO; -procedure cairo_matrix_translate(matrix:Pcairo_matrix_t; tx:double; ty:double); cdecl; external LIB_CAIRO; -procedure cairo_matrix_scale(matrix:Pcairo_matrix_t; sx:double; sy:double); cdecl; external LIB_CAIRO; -procedure cairo_matrix_rotate(matrix:Pcairo_matrix_t; radians:double); cdecl; external LIB_CAIRO; -function cairo_matrix_invert(matrix:Pcairo_matrix_t):cairo_status_t; cdecl; external LIB_CAIRO; -procedure cairo_matrix_multiply(result:Pcairo_matrix_t; a:Pcairo_matrix_t; b:Pcairo_matrix_t); cdecl; external LIB_CAIRO; -procedure cairo_matrix_transform_distance(matrix:Pcairo_matrix_t; dx:Pdouble; dy:Pdouble); cdecl; external LIB_CAIRO; -procedure cairo_matrix_transform_point(matrix:Pcairo_matrix_t; x:Pdouble; y:Pdouble); cdecl; external LIB_CAIRO; - -function cairo_xlib_surface_create(dpy:PDisplay; drawable:TDrawable; visual:PVisual; width:longint; height:longint):Pcairo_surface_t; cdecl; external LIB_CAIRO; -function cairo_xlib_surface_create_for_bitmap(dpy:PDisplay; bitmap:TPixmap; screen:PScreen; width:longint; height:longint):Pcairo_surface_t; cdecl; external LIB_CAIRO; -procedure cairo_xlib_surface_set_size(surface:Pcairo_surface_t; width:longint; height:longint); cdecl; external LIB_CAIRO; -procedure cairo_xlib_surface_set_drawable(surface:Pcairo_surface_t; drawable:TDrawable; width:longint; height:longint); cdecl; external LIB_CAIRO; -function cairo_xlib_surface_create_with_xrender_format(dpy:PDisplay; drawable:TDrawable; screen:PScreen; format:PXRenderPictFormat; width:longint; height:longint):Pcairo_surface_t; cdecl; external LIB_CAIRO; - -function cairo_ft_font_face_create_for_pattern(pattern:PFcPattern):Pcairo_font_face_t; cdecl; external LIB_CAIRO; -procedure cairo_ft_font_options_substitute(options:Pcairo_font_options_t; pattern:PFcPattern); cdecl; external LIB_CAIRO; -function cairo_ft_font_face_create_for_ft_face(face:TFT_Face; load_flags:longint):Pcairo_font_face_t; cdecl; external LIB_CAIRO; -function cairo_ft_scaled_font_lock_face(scaled_font:Pcairo_scaled_font_t):TFT_Face; cdecl; external LIB_CAIRO; -procedure cairo_ft_scaled_font_unlock_face(scaled_font:Pcairo_scaled_font_t); cdecl; external LIB_CAIRO; - -// These two functions renamed *_get_* to avoid collision... -function cairo_get_version:longint; cdecl; external LIB_CAIRO name 'cairo_version'; -function cairo_get_version_string:Pchar; cdecl; external LIB_CAIRO name 'cairo_version_string'; - -function CAIRO_VERSION : longint; -function CAIRO_VERSION_ENCODE(major,minor,micro : longint) : longint; + + cairo_rectangle_t = record + x, y, width, height: Double; + end; + + cairo_rectangle_list_t = record + status: cairo_status_t; + rectangles: Pcairo_rectangle_t; + num_rectangles: LongInt; + end; + +function cairo_version: LongInt; cdecl; external LIB_CAIRO; +function cairo_version_string: PChar; cdecl; external LIB_CAIRO; +//Helper function to retrieve decoded version +procedure cairo_version(out major, minor, micro: LongInt); + +(* Functions for manipulating state objects *) + +function cairo_create(target: Pcairo_surface_t): Pcairo_t; cdecl; external LIB_CAIRO; +function cairo_reference(cr: Pcairo_t): Pcairo_t; cdecl; external LIB_CAIRO; +procedure cairo_destroy(cr: Pcairo_t); cdecl; external LIB_CAIRO; +function cairo_get_reference_count(cr: Pcairo_t): LongWord; cdecl; external LIB_CAIRO; +function cairo_get_user_data(cr: Pcairo_t; key: Pcairo_user_data_key_t): pointer; cdecl; external LIB_CAIRO; +function cairo_set_user_data(cr: PCairo_t; key: Pcairo_user_data_key_t; user_data: Pointer; destroy: cairo_destroy_func_t): cairo_status_t; cdecl; external LIB_CAIRO; +procedure cairo_save(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_restore(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_push_group (cr: PCairo_t); cdecl; external LIB_CAIRO; +procedure cairo_push_group_with_content (cr: PCairo_t; content: cairo_content_t); cdecl; external LIB_CAIRO; +function cairo_pop_group (cr: PCairo_t): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +procedure cairo_pop_group_to_source (cr: PCairo_t); cdecl; external LIB_CAIRO; + +(* Modify state *) + +procedure cairo_set_operator(cr: Pcairo_t; op: cairo_operator_t); cdecl; external LIB_CAIRO; +procedure cairo_set_source(cr: Pcairo_t; source: Pcairo_pattern_t); cdecl; external LIB_CAIRO; +procedure cairo_set_source_rgb(cr: Pcairo_t; red, green, blue: Double); cdecl; external LIB_CAIRO; +procedure cairo_set_source_rgba(cr: Pcairo_t; red, green, blue, alpha: Double); cdecl; external LIB_CAIRO; +procedure cairo_set_source_surface(cr: Pcairo_t; surface: Pcairo_surface_t; x, y: Double); cdecl; external LIB_CAIRO; +procedure cairo_set_tolerance(cr: Pcairo_t; tolerance: Double); cdecl; external LIB_CAIRO; +procedure cairo_set_antialias(cr: Pcairo_t; antialias: cairo_antialias_t); cdecl; external LIB_CAIRO; +procedure cairo_set_fill_rule(cr: Pcairo_t; fill_rule: cairo_fill_rule_t); cdecl; external LIB_CAIRO; +procedure cairo_set_line_width(cr: Pcairo_t; width: Double); cdecl; external LIB_CAIRO; +procedure cairo_set_line_cap(cr: Pcairo_t; line_cap: cairo_line_cap_t); cdecl; external LIB_CAIRO; +procedure cairo_set_line_join(cr: Pcairo_t; line_join: cairo_line_join_t); cdecl; external LIB_CAIRO; +procedure cairo_set_dash(cr: Pcairo_t; dashes: PDouble; num_dashes: LongInt; offset: Double); cdecl; external LIB_CAIRO; +procedure cairo_set_miter_limit(cr: Pcairo_t; limit: Double); cdecl; external LIB_CAIRO; +procedure cairo_translate(cr: Pcairo_t; tx, ty: Double); cdecl; external LIB_CAIRO; +procedure cairo_scale(cr: Pcairo_t; sx, sy: Double); cdecl; external LIB_CAIRO; +procedure cairo_rotate(cr: Pcairo_t; angle: Double); cdecl; external LIB_CAIRO; +procedure cairo_transform(cr: Pcairo_t; matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_set_matrix(cr: Pcairo_t; matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_identity_matrix(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_user_to_device(cr: Pcairo_t; x, y: PDouble); cdecl; external LIB_CAIRO; +procedure cairo_user_to_device_distance(cr: Pcairo_t; dx, dy: PDouble); cdecl; external LIB_CAIRO; +procedure cairo_device_to_user(cr: Pcairo_t; x, y: PDouble); cdecl; external LIB_CAIRO; +procedure cairo_device_to_user_distance(cr: Pcairo_t; dx, dy: PDouble); cdecl; external LIB_CAIRO; + +(* Path creation functions *) + +procedure cairo_new_path(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_move_to(cr: Pcairo_t; x, y: Double); cdecl; external LIB_CAIRO; +procedure cairo_new_sub_path(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_line_to(cr: Pcairo_t; x, y: Double); cdecl; external LIB_CAIRO; +procedure cairo_curve_to(cr: Pcairo_t; x1, y1, x2, y2, x3, y3: Double); cdecl; external LIB_CAIRO; +procedure cairo_arc(cr: Pcairo_t; xc, yc, radius, angle1, angle2: Double); cdecl; external LIB_CAIRO; +procedure cairo_arc_negative(cr: Pcairo_t; xc, yc, radius, angle1, angle2: Double); cdecl; external LIB_CAIRO; +procedure cairo_rel_move_to(cr: Pcairo_t; dx, dy: Double); cdecl; external LIB_CAIRO; +procedure cairo_rel_line_to(cr: Pcairo_t; dx, dy: Double); cdecl; external LIB_CAIRO; +procedure cairo_rel_curve_to(cr: Pcairo_t; dx1, dy1, dx2, dy2, dx3, dy3: Double); cdecl; external LIB_CAIRO; +procedure cairo_rectangle(cr: Pcairo_t; x, y, width, height: Double); cdecl; external LIB_CAIRO; +procedure cairo_close_path(cr: Pcairo_t); cdecl; external LIB_CAIRO; + +(* Painting functions *) + +procedure cairo_paint(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_paint_with_alpha(cr: Pcairo_t; alpha: Double); cdecl; external LIB_CAIRO; +procedure cairo_mask(cr: Pcairo_t; pattern: Pcairo_pattern_t); cdecl; external LIB_CAIRO; +procedure cairo_mask_surface(cr: Pcairo_t; surface: Pcairo_surface_t; surface_x, surface_y: Double); cdecl; external LIB_CAIRO; +procedure cairo_stroke(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_stroke_preserve(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_fill(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_fill_preserve(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_copy_page(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_show_page(cr: Pcairo_t); cdecl; external LIB_CAIRO; + +(* Insideness testing *) + +function cairo_in_stroke(cr: Pcairo_t; x, y: Double): cairo_bool_t; cdecl; external LIB_CAIRO; +function cairo_in_fill(cr: Pcairo_t; x, y: Double): cairo_bool_t; cdecl; external LIB_CAIRO; + +(* Rectangular extents *) + +procedure cairo_stroke_extents(cr: Pcairo_t; x1, y1, x2, y2: PDouble); cdecl; external LIB_CAIRO; +procedure cairo_fill_extents(cr: Pcairo_t; x1, y1, x2, y2: PDouble); cdecl; external LIB_CAIRO; + +(* Clipping *) + +procedure cairo_reset_clip(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_clip(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_clip_preserve(cr: Pcairo_t); cdecl; external LIB_CAIRO; +procedure cairo_clip_extents(cr: Pcairo_t; x1, y1, x2, y2: PDouble); cdecl; external LIB_CAIRO; +function cairo_copy_clip_rectangle_list(cr: Pcairo_t): Pcairo_rectangle_list_t; cdecl; external LIB_CAIRO; +procedure cairo_rectangle_list_destroy(rectangle_list: Pcairo_rectangle_list_t); cdecl; external LIB_CAIRO; + +(* Font/Text functions *) + +function cairo_font_options_create: Pcairo_font_options_t; cdecl; external LIB_CAIRO; +function cairo_font_options_copy(original: Pcairo_font_options_t): Pcairo_font_options_t; cdecl; external LIB_CAIRO; +procedure cairo_font_options_destroy(options: Pcairo_font_options_t); cdecl; external LIB_CAIRO; +function cairo_font_options_status(options: Pcairo_font_options_t): cairo_status_t; cdecl; external LIB_CAIRO; +procedure cairo_font_options_merge(options, other: Pcairo_font_options_t); cdecl; external LIB_CAIRO; +function cairo_font_options_equal(options, other: Pcairo_font_options_t): cairo_bool_t; cdecl; external LIB_CAIRO; +function cairo_font_options_hash(options: Pcairo_font_options_t): LongWord; cdecl; external LIB_CAIRO; +procedure cairo_font_options_set_antialias(options: Pcairo_font_options_t; antialias: cairo_antialias_t); cdecl; external LIB_CAIRO; +function cairo_font_options_get_antialias(options: Pcairo_font_options_t): cairo_antialias_t; cdecl; external LIB_CAIRO; +procedure cairo_font_options_set_subpixel_order(options: Pcairo_font_options_t; subpixel_order: cairo_subpixel_order_t); cdecl; external LIB_CAIRO; +function cairo_font_options_get_subpixel_order(options: Pcairo_font_options_t): cairo_subpixel_order_t; cdecl; external LIB_CAIRO; +procedure cairo_font_options_set_hint_style(options: Pcairo_font_options_t; hint_style: cairo_hint_style_t); cdecl; external LIB_CAIRO; +function cairo_font_options_get_hint_style(options: Pcairo_font_options_t): cairo_hint_style_t; cdecl; external LIB_CAIRO; +procedure cairo_font_options_set_hint_metrics(options: Pcairo_font_options_t; hint_metrics: cairo_hint_metrics_t); cdecl; external LIB_CAIRO; +function cairo_font_options_get_hint_metrics(options: Pcairo_font_options_t): cairo_hint_metrics_t; cdecl; external LIB_CAIRO; + +(* This interface is for dealing with text as text, not caring about the + font object inside the the cairo_t. *) + +procedure cairo_select_font_face(cr: Pcairo_t; family: Pchar; slant: cairo_font_slant_t; weight: cairo_font_weight_t); cdecl; external LIB_CAIRO; +procedure cairo_set_font_size(cr: Pcairo_t; size: Double); cdecl; external LIB_CAIRO; +procedure cairo_set_font_matrix(cr: Pcairo_t; matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_get_font_matrix(cr: Pcairo_t; matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_set_font_options(cr: Pcairo_t; options: Pcairo_font_options_t); cdecl; external LIB_CAIRO; +procedure cairo_get_font_options(cr: Pcairo_t; options: Pcairo_font_options_t); cdecl; external LIB_CAIRO; +procedure cairo_set_font_face(cr: Pcairo_t; font_face: Pcairo_font_face_t); cdecl; external LIB_CAIRO; +function cairo_get_font_face(cr: Pcairo_t): Pcairo_font_face_t; cdecl; external LIB_CAIRO; +procedure cairo_set_scaled_font(cr: PCairo_t; scaled_font:Pcairo_scaled_font_t); cdecl; external LIB_CAIRO; +function cairo_get_scaled_font(cr: Pcairo_t): Pcairo_scaled_font_t; cdecl; external LIB_CAIRO; +procedure cairo_show_text(cr: Pcairo_t; utf8: Pchar); cdecl; external LIB_CAIRO; +procedure cairo_show_glyphs(cr: Pcairo_t; glyphs: Pcairo_glyph_t; num_glyphs: LongInt); cdecl; external LIB_CAIRO; +procedure cairo_text_path(cr: Pcairo_t; utf8: Pchar); cdecl; external LIB_CAIRO; +procedure cairo_glyph_path(cr: Pcairo_t; glyphs: Pcairo_glyph_t; num_glyphs: LongInt); cdecl; external LIB_CAIRO; +procedure cairo_text_extents(cr: Pcairo_t; utf8: Pchar; extents: Pcairo_text_extents_t); cdecl; external LIB_CAIRO; +procedure cairo_glyph_extents(cr: Pcairo_t; glyphs: Pcairo_glyph_t; num_glyphs: LongInt; extents: Pcairo_text_extents_t); cdecl; external LIB_CAIRO; +procedure cairo_font_extents(cr: Pcairo_t; extents: Pcairo_font_extents_t); cdecl; external LIB_CAIRO; + +(* Generic identifier for a font style *) + +function cairo_font_face_reference(font_face: Pcairo_font_face_t): Pcairo_font_face_t; cdecl; external LIB_CAIRO; +procedure cairo_font_face_destroy(font_face: Pcairo_font_face_t); cdecl; external LIB_CAIRO; +function cairo_font_face_get_reference_count (font_face: Pcairo_font_face_t): LongWord; cdecl; external LIB_CAIRO; +function cairo_font_face_status(font_face: Pcairo_font_face_t): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_font_face_get_type(font_face: Pcairo_font_face_t): cairo_font_type_t; cdecl; external LIB_CAIRO; +function cairo_font_face_get_user_data(font_face: Pcairo_font_face_t; key: Pcairo_user_data_key_t): pointer; cdecl; external LIB_CAIRO; +function cairo_font_face_set_user_data(font_face: Pcairo_font_face_t; key: Pcairo_user_data_key_t; user_data: pointer; destroy: cairo_destroy_func_t): cairo_status_t; cdecl; external LIB_CAIRO; + +(* Portable interface to general font features *) + +function cairo_scaled_font_create(font_face: Pcairo_font_face_t; font_matrix: Pcairo_matrix_t; ctm: Pcairo_matrix_t; options: Pcairo_font_options_t): Pcairo_scaled_font_t; cdecl; external LIB_CAIRO; +function cairo_scaled_font_reference(scaled_font: Pcairo_scaled_font_t): Pcairo_scaled_font_t; cdecl; external LIB_CAIRO; +procedure cairo_scaled_font_destroy(scaled_font: Pcairo_scaled_font_t); cdecl; external LIB_CAIRO; +function cairo_scaled_font_get_reference_count (scaled_font: Pcairo_scaled_font_t): LongWord; cdecl; external LIB_CAIRO; +function cairo_scaled_font_status(scaled_font: Pcairo_scaled_font_t): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_scaled_font_get_type(scaled_font: Pcairo_scaled_font_t): cairo_font_type_t; cdecl; external LIB_CAIRO; +function cairo_scaled_font_get_user_data (scaled_font: Pcairo_scaled_font_t; key: Pcairo_user_data_key_t): Pointer; cdecl; external LIB_CAIRO; +function cairo_scaled_font_set_user_data (scaled_font: Pcairo_scaled_font_t; key: Pcairo_user_data_key_t; user_data: Pointer; destroy: cairo_destroy_func_t): cairo_status_t; cdecl; external LIB_CAIRO; +procedure cairo_scaled_font_extents(scaled_font: Pcairo_scaled_font_t; extents: Pcairo_font_extents_t); cdecl; external LIB_CAIRO; +procedure cairo_scaled_font_text_extents(scaled_font: Pcairo_scaled_font_t; utf8: PChar; extents: Pcairo_text_extents_t); cdecl; external LIB_CAIRO; +procedure cairo_scaled_font_glyph_extents(scaled_font: Pcairo_scaled_font_t; glyphs: Pcairo_glyph_t; num_glyphs: LongInt; extents: Pcairo_text_extents_t); cdecl; external LIB_CAIRO; +function cairo_scaled_font_get_font_face (scaled_font: Pcairo_scaled_font_t): Pcairo_font_face_t; cdecl; external LIB_CAIRO; +procedure cairo_scaled_font_get_font_matrix (scaled_font: Pcairo_scaled_font_t; font_matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_scaled_font_get_ctm (scaled_font: Pcairo_scaled_font_t; ctm: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_scaled_font_get_font_options (scaled_font: Pcairo_scaled_font_t; options: Pcairo_font_options_t); cdecl; external LIB_CAIRO; + +(* Query functions *) + +function cairo_get_operator(cr: Pcairo_t): cairo_operator_t; cdecl; external LIB_CAIRO; +function cairo_get_source(cr: Pcairo_t): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +function cairo_get_tolerance(cr: Pcairo_t): Double; cdecl; external LIB_CAIRO; +function cairo_get_antialias(cr: Pcairo_t): cairo_antialias_t; cdecl; external LIB_CAIRO; +procedure cairo_get_current_point(cr: Pcairo_t; x, y: PDouble); cdecl; external LIB_CAIRO; +function cairo_get_fill_rule(cr: Pcairo_t): cairo_fill_rule_t; cdecl; external LIB_CAIRO; +function cairo_get_line_width(cr: Pcairo_t): Double; cdecl; external LIB_CAIRO; +function cairo_get_line_cap(cr: Pcairo_t): cairo_line_cap_t; cdecl; external LIB_CAIRO; +function cairo_get_line_join(cr: Pcairo_t): cairo_line_join_t; cdecl; external LIB_CAIRO; +function cairo_get_miter_limit(cr: Pcairo_t): Double; cdecl; external LIB_CAIRO; +function cairo_get_dash_count(cr: Pcairo_t): LongInt; cdecl; external LIB_CAIRO; +procedure cairo_get_dash(cr: Pcairo_t; dashes, offset: PDouble); cdecl; external LIB_CAIRO; +procedure cairo_get_matrix(cr: Pcairo_t; matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +function cairo_get_target(cr: Pcairo_t): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_get_group_target(cr: Pcairo_t): Pcairo_surface_t; cdecl; external LIB_CAIRO; + +function cairo_copy_path(cr: Pcairo_t): Pcairo_path_t; cdecl; external LIB_CAIRO; +function cairo_copy_path_flat(cr: Pcairo_t): Pcairo_path_t; cdecl; external LIB_CAIRO; +procedure cairo_append_path(cr: Pcairo_t; path: Pcairo_path_t); cdecl; external LIB_CAIRO; +procedure cairo_path_destroy(path: Pcairo_path_t); cdecl; external LIB_CAIRO; + +(* Error status queries *) + +function cairo_status(cr: Pcairo_t): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_status_to_string(status: cairo_status_t): Pchar; cdecl; external LIB_CAIRO; + +(* Surface manipulation *) + +function cairo_surface_create_similar(other: Pcairo_surface_t; content: cairo_content_t; width, height: LongInt): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_surface_reference(surface: Pcairo_surface_t): Pcairo_surface_t; cdecl; external LIB_CAIRO; +procedure cairo_surface_finish(surface: Pcairo_surface_t); cdecl; external LIB_CAIRO; +procedure cairo_surface_destroy(surface: Pcairo_surface_t); cdecl; external LIB_CAIRO; +function cairo_surface_get_reference_count(surface: Pcairo_surface_t): LongWord; cdecl; external LIB_CAIRO; +function cairo_surface_status(surface: Pcairo_surface_t): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_surface_get_type(surface: Pcairo_surface_t): cairo_surface_type_t; cdecl; external LIB_CAIRO; +function cairo_surface_get_content(surface: Pcairo_surface_t): cairo_content_t; cdecl; external LIB_CAIRO; +function cairo_surface_write_to_png(surface: Pcairo_surface_t; filename: Pchar): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_surface_write_to_png_stream(surface: Pcairo_surface_t; write_func: cairo_write_func_t; closure: pointer): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_surface_get_user_data(surface: Pcairo_surface_t; key: Pcairo_user_data_key_t): pointer; cdecl; external LIB_CAIRO; +function cairo_surface_set_user_data(surface: Pcairo_surface_t; key: Pcairo_user_data_key_t; user_data: pointer; destroy: cairo_destroy_func_t): cairo_status_t; cdecl; external LIB_CAIRO; +procedure cairo_surface_get_font_options(surface: Pcairo_surface_t; options: Pcairo_font_options_t); cdecl; external LIB_CAIRO; +procedure cairo_surface_flush(surface: Pcairo_surface_t); cdecl; external LIB_CAIRO; +procedure cairo_surface_mark_dirty(surface: Pcairo_surface_t); cdecl; external LIB_CAIRO; +procedure cairo_surface_mark_dirty_rectangle(surface: Pcairo_surface_t; x, y, width, height: LongInt); cdecl; external LIB_CAIRO; +procedure cairo_surface_set_device_offset(surface: Pcairo_surface_t; x_offset, y_offset: Double); cdecl; external LIB_CAIRO; +procedure cairo_surface_get_device_offset(surface: Pcairo_surface_t; x_offset, y_offset: PDouble); cdecl; external LIB_CAIRO; +procedure cairo_surface_set_fallback_resolution(surface: Pcairo_surface_t; x_pixels_per_inch, y_pixels_per_inch: Double); cdecl; external LIB_CAIRO; + +(* Image-surface functions *) + +function cairo_image_surface_create(format: cairo_format_t; width, height: LongInt): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_image_surface_create_for_data(data: Pbyte; format: cairo_format_t; width, height, stride: LongInt): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_image_surface_get_data(surface: Pcairo_surface_t): PChar; cdecl; external LIB_CAIRO; +function cairo_image_surface_get_format(surface: Pcairo_surface_t): cairo_format_t; cdecl; external LIB_CAIRO; +function cairo_image_surface_get_width(surface: Pcairo_surface_t): LongInt; cdecl; external LIB_CAIRO; +function cairo_image_surface_get_height(surface: Pcairo_surface_t): LongInt; cdecl; external LIB_CAIRO; +function cairo_image_surface_get_stride(surface: Pcairo_surface_t): LongInt; cdecl; external LIB_CAIRO; +function cairo_image_surface_create_from_png(filename: Pchar): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_image_surface_create_from_png_stream(read_func: cairo_read_func_t; closure: pointer): Pcairo_surface_t; cdecl; external LIB_CAIRO; + +(* Pattern creation functions *) + +function cairo_pattern_create_rgb(red, green, blue: Double): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +function cairo_pattern_create_rgba(red, green, blue, alpha: Double): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +function cairo_pattern_create_for_surface(surface: Pcairo_surface_t): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +function cairo_pattern_create_linear(x0, y0, x1, y1: Double): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +function cairo_pattern_create_radial(cx0, cy0, radius0, cx1, cy1, radius1: Double): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +function cairo_pattern_reference(pattern: Pcairo_pattern_t): Pcairo_pattern_t; cdecl; external LIB_CAIRO; +procedure cairo_pattern_destroy(pattern: Pcairo_pattern_t); cdecl; external LIB_CAIRO; +function cairo_pattern_get_reference_count (pattern: Pcairo_pattern_t): LongWord; cdecl; external LIB_CAIRO; +function cairo_pattern_status(pattern: Pcairo_pattern_t): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_user_data (pattern: Pcairo_pattern_t; key: Pcairo_user_data_key_t): Pointer; cdecl; external LIB_CAIRO; +function cairo_pattern_set_user_data (pattern: Pcairo_pattern_t; key: Pcairo_user_data_key_t; user_data: Pointer; destroy: cairo_destroy_func_t): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_type(pattern: Pcairo_pattern_t): cairo_pattern_type_t; cdecl; external LIB_CAIRO; +procedure cairo_pattern_add_color_stop_rgb(pattern: Pcairo_pattern_t; offset, red, green, blue: Double); cdecl; external LIB_CAIRO; +procedure cairo_pattern_add_color_stop_rgba(pattern: Pcairo_pattern_t; offset, red, green, blue, alpha: Double); cdecl; external LIB_CAIRO; +procedure cairo_pattern_set_matrix(pattern: Pcairo_pattern_t; matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_pattern_get_matrix(pattern: Pcairo_pattern_t; matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_pattern_set_extend(pattern: Pcairo_pattern_t; extend: cairo_extend_t); cdecl; external LIB_CAIRO; +function cairo_pattern_get_extend(pattern: Pcairo_pattern_t): cairo_extend_t; cdecl; external LIB_CAIRO; +procedure cairo_pattern_set_filter(pattern: Pcairo_pattern_t; filter: cairo_filter_t); cdecl; external LIB_CAIRO; +function cairo_pattern_get_filter(pattern: Pcairo_pattern_t): cairo_filter_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_rgba (pattern: Pcairo_pattern_t; red, green, blue, alpha: PDouble): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_surface (pattern: Pcairo_pattern_t; surface: PPcairo_surface_t): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_color_stop_rgba(pattern: Pcairo_pattern_t; index: LongInt; offset, red, green, blue, alpha: PDouble):cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_color_stop_count(pattern: Pcairo_pattern_t; count: PLongInt):cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_linear_points (pattern: Pcairo_pattern_t; x0, y0, x1, y1: PDouble): cairo_status_t; cdecl; external LIB_CAIRO; +function cairo_pattern_get_radial_circles (pattern: Pcairo_pattern_t; x0, y0, r0, x1, y1, r1:PDouble): cairo_status_t; cdecl; external LIB_CAIRO; + +(* Matrix functions *) + +procedure cairo_matrix_init(matrix: Pcairo_matrix_t; xx, yx, xy, yy, x0, y0: Double); cdecl; external LIB_CAIRO; +procedure cairo_matrix_init_identity(matrix: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_matrix_init_translate(matrix: Pcairo_matrix_t; tx, ty: Double); cdecl; external LIB_CAIRO; +procedure cairo_matrix_init_scale(matrix: Pcairo_matrix_t; sx, sy: Double); cdecl; external LIB_CAIRO; +procedure cairo_matrix_init_rotate(matrix: Pcairo_matrix_t; radians: Double); cdecl; external LIB_CAIRO; +procedure cairo_matrix_translate(matrix: Pcairo_matrix_t; tx, ty: Double); cdecl; external LIB_CAIRO; +procedure cairo_matrix_scale(matrix: Pcairo_matrix_t; sx, sy: Double); cdecl; external LIB_CAIRO; +procedure cairo_matrix_rotate(matrix: Pcairo_matrix_t; radians: Double); cdecl; external LIB_CAIRO; +function cairo_matrix_invert(matrix: Pcairo_matrix_t): cairo_status_t; cdecl; external LIB_CAIRO; +procedure cairo_matrix_multiply(result, a, b: Pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_matrix_transform_distance(matrix: Pcairo_matrix_t; dx, dy: PDouble); cdecl; external LIB_CAIRO; +procedure cairo_matrix_transform_point(matrix: Pcairo_matrix_t; x, y: PDouble); cdecl; external LIB_CAIRO; + +(* PDF functions *) + +function cairo_pdf_surface_create(filename: PChar; width_in_points, height_in_points: Double): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_pdf_surface_create_for_stream(write_func: cairo_write_func_t; closure: Pointer; width_in_points, height_in_points: Double): Pcairo_surface_t; cdecl; external LIB_CAIRO; +procedure cairo_pdf_surface_set_size(surface: Pcairo_surface_t; width_in_points, height_in_points: Double); cdecl; external LIB_CAIRO; + +(* PS functions *) + +function cairo_ps_surface_create(filename: PChar; width_in_points, height_in_points: Double): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_ps_surface_create_for_stream(write_func: cairo_write_func_t; closure: Pointer; width_in_points, height_in_points: Double): Pcairo_surface_t; cdecl; external LIB_CAIRO; +procedure cairo_ps_surface_set_size(surface: Pcairo_surface_t; width_in_points, height_in_points: Double); cdecl; external LIB_CAIRO; +procedure cairo_ps_surface_dsc_comment(surface: Pcairo_surface_t; comment: PChar); cdecl; external LIB_CAIRO; +procedure cairo_ps_surface_dsc_begin_setup(surface: Pcairo_surface_t); cdecl; external LIB_CAIRO; +procedure cairo_ps_surface_dsc_begin_page_setup(surface: Pcairo_surface_t); cdecl; external LIB_CAIRO; + +(* SVG functions *) + +function cairo_svg_surface_create(filename: PChar; width_in_points, height_in_points: Double): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_svg_surface_create_for_stream(write_func: cairo_write_func_t; closure: Pointer; width_in_points, height_in_points: Double): Pcairo_surface_t; cdecl; external LIB_CAIRO; +procedure cairo_svg_surface_restrict_to_version(surface: Pcairo_surface_t; version: cairo_svg_version_t); cdecl; external LIB_CAIRO; + +procedure cairo_svg_get_versions(versions: ppcairo_svg_version_t;num_versions:pcint);cdecl; external LIB_CAIRO; +function cairo_svg_version_to_string(version: cairo_svg_version_t): PChar; cdecl; external LIB_CAIRO; + + +(* Functions to be used while debugging (not intended for use in production code) *) + +procedure cairo_debug_reset_static_data; cdecl; external LIB_CAIRO; implementation -function CAIRO_VERSION : longint; +procedure cairo_version(out major, minor, micro: LongInt); +var + version: LongInt; begin - CAIRO_VERSION:=CAIRO_VERSION_ENCODE(CAIRO_VERSION_MAJOR,CAIRO_VERSION_MINOR,CAIRO_VERSION_MICRO); + version := cairo_version; + major := version div 10000; + minor := (version mod (major * 10000)) div 100; + micro := (version mod ((major * 10000) + (minor * 100))); end; -function CAIRO_VERSION_ENCODE(major,minor,micro : longint) : longint; -begin - CAIRO_VERSION_ENCODE:=((major * 10000) + (minor * 100)) + (micro * 1); -end; - - end. diff --git a/packages/cairo/src/cairoft.pp b/packages/cairo/src/cairoft.pp new file mode 100644 index 0000000000..558bcf8720 --- /dev/null +++ b/packages/cairo/src/cairoft.pp @@ -0,0 +1,57 @@ +unit CairoFT; +{ + This file is part of the Free Pascal libraries. + Copyright (c) 2003-2008 by the Free Pascal development team + + Translation of cairo-ft.h + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + ********************************************************************** + +Based on: + + Original translation of cairo-ft.h by Jeffrey Pohlmeyer + updated to version 1.4 by Luiz Américo Pereira Câmara 2007 + +As per original authors wish, this file is dual licensed LGPL-MPL see the original file +cairo.pp for the full license. +} + +{$mode objfpc} + +interface + +uses + Cairo, freetypeh; + +type + //todo: properly define FcPattern: + //It will require translate FontConfig header + (* + typedef struct _XftPattern { + int num; + int size; + XftPatternElt *elts; + } XftPattern; + typedef FcPattern XftPattern; + *) + FcPattern = Pointer; + PFcPattern = ^FcPattern; + +function cairo_ft_font_face_create_for_pattern(pattern:PFcPattern):Pcairo_font_face_t; cdecl; external LIB_CAIRO; +procedure cairo_ft_font_options_substitute(options:Pcairo_font_options_t; pattern:PFcPattern); cdecl; external LIB_CAIRO; +function cairo_ft_font_face_create_for_ft_face(face:TFT_Face; load_flags:longint):Pcairo_font_face_t; cdecl; external LIB_CAIRO; +function cairo_ft_scaled_font_lock_face(scaled_font:Pcairo_scaled_font_t):TFT_Face; cdecl; external LIB_CAIRO; +procedure cairo_ft_scaled_font_unlock_face(scaled_font:Pcairo_scaled_font_t); cdecl; external LIB_CAIRO; + + +implementation + +end. + diff --git a/packages/cairo/src/cairowin32.pp b/packages/cairo/src/cairowin32.pp new file mode 100644 index 0000000000..71a6dda84c --- /dev/null +++ b/packages/cairo/src/cairowin32.pp @@ -0,0 +1,46 @@ +unit CairoWin32; +{ + This file is part of the Free Pascal libraries. + Copyright (c) 2003-2008 by the Free Pascal development team + + Translation of cairo-win32.h + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + ********************************************************************** + +Translation of cairo-win32.h version 1.4 by Luiz Américo Pereira Câmara 2007 + +For consistency with the other cairo header files, this file is dual +licensed LGPL-MPL see the file cairo.pp for the full license. +} + +{$mode ObjFpc} + +interface + +uses + Cairo, windows; + +function cairo_win32_surface_create(hdc: HDC): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_win32_surface_create_with_ddb(hdc: HDC; format: cairo_format_t; width, height: longint): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_win32_surface_create_with_dib(format: cairo_format_t; width, height: longint): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_win32_surface_get_dc(surface: pcairo_surface_t): HDC; cdecl; external LIB_CAIRO; +function cairo_win32_surface_get_image(surface: pcairo_surface_t): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_win32_font_face_create_for_logfontw(logfont: pLOGFONTW): Pcairo_font_face_t; cdecl; external LIB_CAIRO; +function cairo_win32_font_face_create_for_hfont(font: HFONT): Pcairo_font_face_t; cdecl; external LIB_CAIRO; +function cairo_win32_scaled_font_select_font(scaled_font: pcairo_scaled_font_t; hdc: HDC): cairo_status_t; cdecl; external LIB_CAIRO; +procedure cairo_win32_scaled_font_done_font(scaled_font: pcairo_scaled_font_t); cdecl; external LIB_CAIRO; +function cairo_win32_scaled_font_get_metrics_factor(scaled_font: pcairo_scaled_font_t): double; cdecl; external LIB_CAIRO; +procedure cairo_win32_scaled_font_get_logical_to_device(scaled_font: pcairo_scaled_font_t; logical_to_device: pcairo_matrix_t); cdecl; external LIB_CAIRO; +procedure cairo_win32_scaled_font_get_device_to_logical(scaled_font: pcairo_scaled_font_t; device_to_logical: pcairo_matrix_t); cdecl; external LIB_CAIRO; + +implementation + + +end. diff --git a/packages/cairo/src/cairoxlib.pp b/packages/cairo/src/cairoxlib.pp new file mode 100644 index 0000000000..f7d76b68b3 --- /dev/null +++ b/packages/cairo/src/cairoxlib.pp @@ -0,0 +1,47 @@ +unit CairoXlib; +{ + This file is part of the Free Pascal libraries. + Copyright (c) 2003-2008 by the Free Pascal development team + + Translation of cairo-ft.h + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + ********************************************************************** + + Translation of cairo-xlib.h version 1.4 + by Jeffrey Pohlmeyer + updated to version 1.4 by Luiz Américo Pereira Câmara 2007 + + As per original authors wish, this file is dual licensed LGPL-MPL see the original file + cairo.pp for the full license. +} + +{$mode ObjFpc} + +interface + +uses + Cairo, x, xlib, xrender; + +function cairo_xlib_surface_create(dpy: PDisplay; drawable: TDrawable; visual: PVisual; width, height: LongInt): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_create_for_bitmap(dpy: PDisplay; bitmap: TPixmap; screen: PScreen; width, height: LongInt): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_create_with_xrender_format(dpy: PDisplay; drawable: TDrawable; screen: PScreen; format: PXRenderPictFormat; width, height:LongInt): Pcairo_surface_t; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_get_depth(surface: Pcairo_surface_t): LongInt; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_get_display(surface: Pcairo_surface_t): PDisplay; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_get_drawable(surface: Pcairo_surface_t): TDrawable; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_get_height(surface: Pcairo_surface_t): LongInt; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_get_screen(surface: Pcairo_surface_t): PScreen; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_get_visual(surface: Pcairo_surface_t): PVisual; cdecl; external LIB_CAIRO; +function cairo_xlib_surface_get_width(surface: Pcairo_surface_t): LongInt; cdecl; external LIB_CAIRO; +procedure cairo_xlib_surface_set_size(surface: Pcairo_surface_t; width, height: LongInt); cdecl; external LIB_CAIRO; +procedure cairo_xlib_surface_set_drawable(surface: Pcairo_surface_t; drawable: TDrawable; width, height: LongInt); cdecl; external LIB_CAIRO; + +implementation + +end. |
