cairo 1.14.0-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of cairo might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/AUTHORS +7 -0
- data/COPYING +59 -0
- data/GPL +340 -0
- data/Gemfile +5 -0
- data/NEWS +429 -0
- data/README.rdoc +120 -0
- data/Rakefile +620 -0
- data/ext/cairo/cairo.def +140 -0
- data/ext/cairo/depend +3 -0
- data/ext/cairo/extconf.rb +202 -0
- data/ext/cairo/rb_cairo.c +111 -0
- data/ext/cairo/rb_cairo.h +348 -0
- data/ext/cairo/rb_cairo_constants.c +673 -0
- data/ext/cairo/rb_cairo_context.c +1741 -0
- data/ext/cairo/rb_cairo_device.c +475 -0
- data/ext/cairo/rb_cairo_exception.c +446 -0
- data/ext/cairo/rb_cairo_font_extents.c +200 -0
- data/ext/cairo/rb_cairo_font_face.c +726 -0
- data/ext/cairo/rb_cairo_font_options.c +197 -0
- data/ext/cairo/rb_cairo_glyph.c +161 -0
- data/ext/cairo/rb_cairo_io.c +166 -0
- data/ext/cairo/rb_cairo_io.h +44 -0
- data/ext/cairo/rb_cairo_matrix.c +366 -0
- data/ext/cairo/rb_cairo_path.c +459 -0
- data/ext/cairo/rb_cairo_pattern.c +1192 -0
- data/ext/cairo/rb_cairo_private.c +255 -0
- data/ext/cairo/rb_cairo_private.h +129 -0
- data/ext/cairo/rb_cairo_rectangle.c +83 -0
- data/ext/cairo/rb_cairo_region.c +385 -0
- data/ext/cairo/rb_cairo_scaled_font.c +235 -0
- data/ext/cairo/rb_cairo_surface.c +2284 -0
- data/ext/cairo/rb_cairo_text_cluster.c +151 -0
- data/ext/cairo/rb_cairo_text_extents.c +221 -0
- data/lib/2.0/cairo.so +0 -0
- data/lib/2.1/cairo.so +0 -0
- data/lib/2.2/cairo.so +0 -0
- data/lib/cairo.rb +154 -0
- data/lib/cairo/color.rb +267 -0
- data/lib/cairo/colors.rb +656 -0
- data/lib/cairo/constants.rb +24 -0
- data/lib/cairo/context.rb +29 -0
- data/lib/cairo/context/blur.rb +45 -0
- data/lib/cairo/context/circle.rb +9 -0
- data/lib/cairo/context/color.rb +11 -0
- data/lib/cairo/context/path.rb +117 -0
- data/lib/cairo/context/rectangle.rb +33 -0
- data/lib/cairo/context/triangle.rb +12 -0
- data/lib/cairo/device.rb +13 -0
- data/lib/cairo/paper.rb +183 -0
- data/lib/cairo/papers.rb +65 -0
- data/lib/cairo/path.rb +15 -0
- data/lib/cairo/pattern.rb +12 -0
- data/lib/cairo/point.rb +7 -0
- data/lib/cairo/surface.rb +13 -0
- data/samples/agg/aa_test.rb +304 -0
- data/samples/blur.rb +46 -0
- data/samples/pac-nomralize.rb +170 -0
- data/samples/pac-tee.rb +170 -0
- data/samples/pac.rb +98 -0
- data/samples/png.rb +44 -0
- data/samples/scalable.rb +55 -0
- data/samples/text-on-path.rb +59 -0
- data/samples/text2.rb +130 -0
- data/test/cairo-test-utils.rb +44 -0
- data/test/run-test.rb +29 -0
- data/test/test_color.rb +17 -0
- data/test/test_constants.rb +27 -0
- data/test/test_context.rb +105 -0
- data/test/test_exception.rb +36 -0
- data/test/test_font_extents.rb +36 -0
- data/test/test_font_face.rb +257 -0
- data/test/test_font_options.rb +13 -0
- data/test/test_image_surface.rb +28 -0
- data/test/test_paper.rb +81 -0
- data/test/test_quartz_image_surface.rb +13 -0
- data/test/test_raster_source_pattern.rb +162 -0
- data/test/test_recording_surface.rb +19 -0
- data/test/test_region.rb +102 -0
- data/test/test_scaled_font.rb +34 -0
- data/test/test_script_device.rb +46 -0
- data/test/test_script_surface.rb +13 -0
- data/test/test_surface.rb +61 -0
- data/test/test_tee_surface.rb +32 -0
- data/test/test_text_cluster.rb +32 -0
- data/test/test_text_extents.rb +40 -0
- data/test/test_text_to_glyphs_data.rb +51 -0
- data/test/test_xml_device.rb +22 -0
- data/test/test_xml_surface.rb +34 -0
- data/vendor/local/bin/fc-cache.exe +0 -0
- data/vendor/local/bin/fc-cat.exe +0 -0
- data/vendor/local/bin/fc-list.exe +0 -0
- data/vendor/local/bin/fc-match.exe +0 -0
- data/vendor/local/bin/fc-pattern.exe +0 -0
- data/vendor/local/bin/fc-query.exe +0 -0
- data/vendor/local/bin/fc-scan.exe +0 -0
- data/vendor/local/bin/fc-validate.exe +0 -0
- data/vendor/local/bin/freetype-config +163 -0
- data/vendor/local/bin/libcairo-2.dll +0 -0
- data/vendor/local/bin/libcairo-gobject-2.dll +0 -0
- data/vendor/local/bin/libcairo-script-interpreter-2.dll +0 -0
- data/vendor/local/bin/libfontconfig-1.dll +0 -0
- data/vendor/local/bin/libfreetype-6.dll +0 -0
- data/vendor/local/bin/libgcc_s_seh-1.dll +0 -0
- data/vendor/local/bin/libpixman-1-0.dll +0 -0
- data/vendor/local/bin/libpng-config +127 -0
- data/vendor/local/bin/libpng16-16.dll +0 -0
- data/vendor/local/bin/libpng16-config +127 -0
- data/vendor/local/bin/libstdc++-6.dll +0 -0
- data/vendor/local/bin/libwinpthread-1.dll +0 -0
- data/vendor/local/bin/libxml2-2.dll +0 -0
- data/vendor/local/bin/png-fix-itxt.exe +0 -0
- data/vendor/local/bin/pngfix.exe +0 -0
- data/vendor/local/bin/xml2-config +106 -0
- data/vendor/local/bin/xmlcatalog.exe +0 -0
- data/vendor/local/bin/xmllint.exe +0 -0
- data/vendor/local/bin/zlib1.dll +0 -0
- data/vendor/local/etc/fonts/conf.d/10-scale-bitmap-fonts.conf +81 -0
- data/vendor/local/etc/fonts/conf.d/20-unhint-small-vera.conf +48 -0
- data/vendor/local/etc/fonts/conf.d/30-metric-aliases.conf +546 -0
- data/vendor/local/etc/fonts/conf.d/30-urw-aliases.conf +24 -0
- data/vendor/local/etc/fonts/conf.d/40-nonlatin.conf +231 -0
- data/vendor/local/etc/fonts/conf.d/45-latin.conf +189 -0
- data/vendor/local/etc/fonts/conf.d/49-sansserif.conf +21 -0
- data/vendor/local/etc/fonts/conf.d/50-user.conf +15 -0
- data/vendor/local/etc/fonts/conf.d/51-local.conf +6 -0
- data/vendor/local/etc/fonts/conf.d/60-latin.conf +70 -0
- data/vendor/local/etc/fonts/conf.d/65-fonts-persian.conf +419 -0
- data/vendor/local/etc/fonts/conf.d/65-nonlatin.conf +196 -0
- data/vendor/local/etc/fonts/conf.d/69-unifont.conf +28 -0
- data/vendor/local/etc/fonts/conf.d/80-delicious.conf +19 -0
- data/vendor/local/etc/fonts/conf.d/90-synthetic.conf +64 -0
- data/vendor/local/etc/fonts/conf.d/README +23 -0
- data/vendor/local/etc/fonts/fonts.conf +155 -0
- data/vendor/local/include/cairo/cairo-deprecated.h +123 -0
- data/vendor/local/include/cairo/cairo-features.h +31 -0
- data/vendor/local/include/cairo/cairo-ft.h +118 -0
- data/vendor/local/include/cairo/cairo-gobject.h +192 -0
- data/vendor/local/include/cairo/cairo-pdf.h +94 -0
- data/vendor/local/include/cairo/cairo-ps.h +116 -0
- data/vendor/local/include/cairo/cairo-script-interpreter.h +124 -0
- data/vendor/local/include/cairo/cairo-script.h +98 -0
- data/vendor/local/include/cairo/cairo-svg.h +84 -0
- data/vendor/local/include/cairo/cairo-version.h +8 -0
- data/vendor/local/include/cairo/cairo-win32.h +112 -0
- data/vendor/local/include/cairo/cairo.h +3153 -0
- data/vendor/local/include/fontconfig/fcfreetype.h +59 -0
- data/vendor/local/include/fontconfig/fcprivate.h +124 -0
- data/vendor/local/include/fontconfig/fontconfig.h +1010 -0
- data/vendor/local/include/freetype2/config/ftconfig.h +706 -0
- data/vendor/local/include/freetype2/config/ftheader.h +832 -0
- data/vendor/local/include/freetype2/config/ftmodule.h +20 -0
- data/vendor/local/include/freetype2/config/ftoption.h +846 -0
- data/vendor/local/include/freetype2/config/ftstdlib.h +174 -0
- data/vendor/local/include/freetype2/freetype.h +4076 -0
- data/vendor/local/include/freetype2/ft2build.h +42 -0
- data/vendor/local/include/freetype2/ftadvanc.h +182 -0
- data/vendor/local/include/freetype2/ftautoh.h +402 -0
- data/vendor/local/include/freetype2/ftbbox.h +102 -0
- data/vendor/local/include/freetype2/ftbdf.h +210 -0
- data/vendor/local/include/freetype2/ftbitmap.h +227 -0
- data/vendor/local/include/freetype2/ftbzip2.h +102 -0
- data/vendor/local/include/freetype2/ftcache.h +1057 -0
- data/vendor/local/include/freetype2/ftcffdrv.h +254 -0
- data/vendor/local/include/freetype2/ftchapters.h +121 -0
- data/vendor/local/include/freetype2/ftcid.h +166 -0
- data/vendor/local/include/freetype2/fterrdef.h +249 -0
- data/vendor/local/include/freetype2/fterrors.h +198 -0
- data/vendor/local/include/freetype2/ftgasp.h +128 -0
- data/vendor/local/include/freetype2/ftglyph.h +620 -0
- data/vendor/local/include/freetype2/ftgxval.h +358 -0
- data/vendor/local/include/freetype2/ftgzip.h +149 -0
- data/vendor/local/include/freetype2/ftimage.h +1322 -0
- data/vendor/local/include/freetype2/ftincrem.h +353 -0
- data/vendor/local/include/freetype2/ftlcdfil.h +251 -0
- data/vendor/local/include/freetype2/ftlist.h +277 -0
- data/vendor/local/include/freetype2/ftlzw.h +99 -0
- data/vendor/local/include/freetype2/ftmac.h +274 -0
- data/vendor/local/include/freetype2/ftmm.h +377 -0
- data/vendor/local/include/freetype2/ftmodapi.h +641 -0
- data/vendor/local/include/freetype2/ftmoderr.h +194 -0
- data/vendor/local/include/freetype2/ftotval.h +203 -0
- data/vendor/local/include/freetype2/ftoutln.h +572 -0
- data/vendor/local/include/freetype2/ftpfr.h +172 -0
- data/vendor/local/include/freetype2/ftrender.h +238 -0
- data/vendor/local/include/freetype2/ftsizes.h +159 -0
- data/vendor/local/include/freetype2/ftsnames.h +200 -0
- data/vendor/local/include/freetype2/ftstroke.h +751 -0
- data/vendor/local/include/freetype2/ftsynth.h +81 -0
- data/vendor/local/include/freetype2/ftsystem.h +347 -0
- data/vendor/local/include/freetype2/fttrigon.h +350 -0
- data/vendor/local/include/freetype2/ftttdrv.h +170 -0
- data/vendor/local/include/freetype2/fttypes.h +598 -0
- data/vendor/local/include/freetype2/ftwinfnt.h +275 -0
- data/vendor/local/include/freetype2/ftxf86.h +83 -0
- data/vendor/local/include/freetype2/t1tables.h +662 -0
- data/vendor/local/include/freetype2/ttnameid.h +1237 -0
- data/vendor/local/include/freetype2/tttables.h +787 -0
- data/vendor/local/include/freetype2/tttags.h +111 -0
- data/vendor/local/include/freetype2/ttunpat.h +59 -0
- data/vendor/local/include/libpng16/png.h +3276 -0
- data/vendor/local/include/libpng16/pngconf.h +644 -0
- data/vendor/local/include/libpng16/pnglibconf.h +208 -0
- data/vendor/local/include/libxml2/libxml/DOCBparser.h +96 -0
- data/vendor/local/include/libxml2/libxml/HTMLparser.h +306 -0
- data/vendor/local/include/libxml2/libxml/HTMLtree.h +147 -0
- data/vendor/local/include/libxml2/libxml/SAX.h +173 -0
- data/vendor/local/include/libxml2/libxml/SAX2.h +178 -0
- data/vendor/local/include/libxml2/libxml/c14n.h +126 -0
- data/vendor/local/include/libxml2/libxml/catalog.h +182 -0
- data/vendor/local/include/libxml2/libxml/chvalid.h +230 -0
- data/vendor/local/include/libxml2/libxml/debugXML.h +217 -0
- data/vendor/local/include/libxml2/libxml/dict.h +80 -0
- data/vendor/local/include/libxml2/libxml/encoding.h +240 -0
- data/vendor/local/include/libxml2/libxml/entities.h +151 -0
- data/vendor/local/include/libxml2/libxml/globals.h +509 -0
- data/vendor/local/include/libxml2/libxml/hash.h +233 -0
- data/vendor/local/include/libxml2/libxml/list.h +137 -0
- data/vendor/local/include/libxml2/libxml/nanoftp.h +163 -0
- data/vendor/local/include/libxml2/libxml/nanohttp.h +81 -0
- data/vendor/local/include/libxml2/libxml/parser.h +1241 -0
- data/vendor/local/include/libxml2/libxml/parserInternals.h +644 -0
- data/vendor/local/include/libxml2/libxml/pattern.h +100 -0
- data/vendor/local/include/libxml2/libxml/relaxng.h +217 -0
- data/vendor/local/include/libxml2/libxml/schemasInternals.h +958 -0
- data/vendor/local/include/libxml2/libxml/schematron.h +142 -0
- data/vendor/local/include/libxml2/libxml/threads.h +84 -0
- data/vendor/local/include/libxml2/libxml/tree.h +1310 -0
- data/vendor/local/include/libxml2/libxml/uri.h +94 -0
- data/vendor/local/include/libxml2/libxml/valid.h +458 -0
- data/vendor/local/include/libxml2/libxml/xinclude.h +129 -0
- data/vendor/local/include/libxml2/libxml/xlink.h +189 -0
- data/vendor/local/include/libxml2/libxml/xmlIO.h +366 -0
- data/vendor/local/include/libxml2/libxml/xmlautomata.h +146 -0
- data/vendor/local/include/libxml2/libxml/xmlerror.h +945 -0
- data/vendor/local/include/libxml2/libxml/xmlexports.h +162 -0
- data/vendor/local/include/libxml2/libxml/xmlmemory.h +224 -0
- data/vendor/local/include/libxml2/libxml/xmlmodule.h +57 -0
- data/vendor/local/include/libxml2/libxml/xmlreader.h +428 -0
- data/vendor/local/include/libxml2/libxml/xmlregexp.h +222 -0
- data/vendor/local/include/libxml2/libxml/xmlsave.h +88 -0
- data/vendor/local/include/libxml2/libxml/xmlschemas.h +246 -0
- data/vendor/local/include/libxml2/libxml/xmlschemastypes.h +151 -0
- data/vendor/local/include/libxml2/libxml/xmlstring.h +140 -0
- data/vendor/local/include/libxml2/libxml/xmlunicode.h +202 -0
- data/vendor/local/include/libxml2/libxml/xmlversion.h +489 -0
- data/vendor/local/include/libxml2/libxml/xmlwriter.h +488 -0
- data/vendor/local/include/libxml2/libxml/xpath.h +557 -0
- data/vendor/local/include/libxml2/libxml/xpathInternals.h +632 -0
- data/vendor/local/include/libxml2/libxml/xpointer.h +114 -0
- data/vendor/local/include/pixman-1/pixman-version.h +50 -0
- data/vendor/local/include/pixman-1/pixman.h +1111 -0
- data/vendor/local/include/png.h +3276 -0
- data/vendor/local/include/pngconf.h +644 -0
- data/vendor/local/include/pnglibconf.h +208 -0
- data/vendor/local/include/zconf.h +511 -0
- data/vendor/local/include/zlib.h +1768 -0
- data/vendor/local/lib/cmake/libxml2/libxml2-config.cmake +50 -0
- data/vendor/local/lib/fontconfig.def +207 -0
- data/vendor/local/lib/libcairo-gobject.a +0 -0
- data/vendor/local/lib/libcairo-gobject.dll.a +0 -0
- data/vendor/local/lib/libcairo-gobject.la +41 -0
- data/vendor/local/lib/libcairo-script-interpreter.a +0 -0
- data/vendor/local/lib/libcairo-script-interpreter.dll.a +0 -0
- data/vendor/local/lib/libcairo-script-interpreter.la +41 -0
- data/vendor/local/lib/libcairo.a +0 -0
- data/vendor/local/lib/libcairo.dll.a +0 -0
- data/vendor/local/lib/libcairo.la +41 -0
- data/vendor/local/lib/libfontconfig.dll.a +0 -0
- data/vendor/local/lib/libfontconfig.la +41 -0
- data/vendor/local/lib/libfreetype.a +0 -0
- data/vendor/local/lib/libfreetype.dll.a +0 -0
- data/vendor/local/lib/libfreetype.la +41 -0
- data/vendor/local/lib/libpixman-1.a +0 -0
- data/vendor/local/lib/libpixman-1.dll.a +0 -0
- data/vendor/local/lib/libpixman-1.la +41 -0
- data/vendor/local/lib/libpng.a +0 -0
- data/vendor/local/lib/libpng.dll.a +0 -0
- data/vendor/local/lib/libpng.la +41 -0
- data/vendor/local/lib/libpng16.a +0 -0
- data/vendor/local/lib/libpng16.dll.a +0 -0
- data/vendor/local/lib/libpng16.la +41 -0
- data/vendor/local/lib/libxml2.a +0 -0
- data/vendor/local/lib/libxml2.dll.a +0 -0
- data/vendor/local/lib/libxml2.la +41 -0
- data/vendor/local/lib/libz.a +0 -0
- data/vendor/local/lib/libz.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/cairo-fc.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-ft.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-gobject.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-pdf.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-png.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-ps.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-script.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-svg.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-win32-font.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo-win32.pc +12 -0
- data/vendor/local/lib/pkgconfig/cairo.pc +13 -0
- data/vendor/local/lib/pkgconfig/fontconfig.pc +18 -0
- data/vendor/local/lib/pkgconfig/freetype2.pc +14 -0
- data/vendor/local/lib/pkgconfig/libpng.pc +11 -0
- data/vendor/local/lib/pkgconfig/libpng16.pc +11 -0
- data/vendor/local/lib/pkgconfig/libxml-2.0.pc +13 -0
- data/vendor/local/lib/pkgconfig/pixman-1.pc +11 -0
- data/vendor/local/lib/pkgconfig/zlib.pc +13 -0
- data/vendor/local/lib/xml2Conf.sh +8 -0
- data/vendor/local/share/aclocal/freetype2.m4 +194 -0
- data/vendor/local/share/aclocal/libxml.m4 +188 -0
- data/vendor/local/share/doc/libxml2-2.9.2/Copyright +23 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/testHTML.c +880 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/testSAX.c +1198 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/testXPath.c +229 -0
- data/vendor/local/share/doc/libxml2-2.9.2/examples/xmllint.c +3801 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/DOM.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/FAQ.html +299 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/Libxml2-Logo-180x168.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/Libxml2-Logo-90x34.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/encoding.html +217 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/examples.xml +751 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/examples.xsl +174 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/book1.html +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/home.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/index.html +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/left.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-DOCBparser.html +51 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-HTMLparser.html +184 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-HTMLtree.html +73 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-SAX.html +125 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-SAX2.html +128 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-c14n.html +38 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-catalog.html +142 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-chvalid.html +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-debugXML.html +120 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-dict.html +58 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-encoding.html +124 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-entities.html +79 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-globals.html +152 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-hash.html +116 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-lib.html +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-list.html +120 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-nanoftp.html +94 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-nanohttp.html +65 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-parser.html +559 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-parserInternals.html +322 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-pattern.html +76 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-relaxng.html +162 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-schemasInternals.html +373 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-schematron.html +81 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-threads.html +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-tree.html +990 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-uri.html +73 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-valid.html +289 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xinclude.html +59 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xlink.html +82 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlIO.html +212 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlautomata.html +85 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlerror.html +865 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlexports.html +20 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlmemory.html +107 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlmodule.html +38 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlreader.html +330 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlregexp.html +143 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlsave.html +60 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlschemas.html +185 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlschemastypes.html +123 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlstring.html +108 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlunicode.html +512 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlversion.html +63 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xmlwriter.html +261 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xpath.html +316 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xpathInternals.html +394 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xpointer.html +83 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/libxml-xzlib.html +16 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/right.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/html/up.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/index.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io1.c +166 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io1.res +5 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io2.c +58 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/io2.res +2 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/libxml.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse1.c +56 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse2.c +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse3.c +60 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/parse4.c +143 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader1.c +107 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader1.res +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader2.c +122 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader3.c +120 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader3.res +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader4.c +122 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/reader4.res +3 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/redhat.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/smallfootonly.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/structure.gif +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/test1.xml +1 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/test2.xml +13 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/test3.xml +39 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/testWriter.c +1198 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree1.c +94 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree1.res +4 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree2.c +118 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tree2.res +18 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tst.xml +7 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apa.html +8 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apb.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apc.html +82 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apd.html +76 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ape.html +78 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apf.html +67 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/apg.html +75 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/aph.html +76 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/api.html +4 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s02.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s03.html +47 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s04.html +54 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s05.html +55 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s06.html +35 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s07.html +30 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s08.html +38 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ar01s09.html +63 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/blank.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/1.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/10.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/2.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/3.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/4.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/5.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/6.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/7.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/8.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/callouts/9.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/caution.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/draft.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/home.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/important.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/next.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/note.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/prev.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/tip.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/toc-blank.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/toc-minus.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/toc-plus.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/up.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/images/warning.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includeaddattribute.c +64 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includeaddkeyword.c +75 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includeconvert.c +73 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includegetattribute.c +72 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includekeyword.c +79 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/includexpath.c +74 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/index.html +14 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/ix01.html +1 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/tutorial/xmltutorial.pdf +1336 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/w3c.png +0 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/writer.xml +2 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xml.html +5995 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath1.c +250 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath1.res +5 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath2.c +190 -0
- data/vendor/local/share/doc/libxml2-2.9.2/html/xpath2.res +30 -0
- data/vendor/local/share/fontconfig/conf.avail/10-autohint.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-no-sub-pixel.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf +81 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/10-unhinted.conf +14 -0
- data/vendor/local/share/fontconfig/conf.avail/11-lcdfilter-default.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/11-lcdfilter-light.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/20-unhint-small-vera.conf +48 -0
- data/vendor/local/share/fontconfig/conf.avail/25-unhint-nonlatin.conf +128 -0
- data/vendor/local/share/fontconfig/conf.avail/30-metric-aliases.conf +546 -0
- data/vendor/local/share/fontconfig/conf.avail/30-urw-aliases.conf +24 -0
- data/vendor/local/share/fontconfig/conf.avail/40-nonlatin.conf +231 -0
- data/vendor/local/share/fontconfig/conf.avail/45-latin.conf +189 -0
- data/vendor/local/share/fontconfig/conf.avail/49-sansserif.conf +21 -0
- data/vendor/local/share/fontconfig/conf.avail/50-user.conf +15 -0
- data/vendor/local/share/fontconfig/conf.avail/51-local.conf +6 -0
- data/vendor/local/share/fontconfig/conf.avail/60-latin.conf +70 -0
- data/vendor/local/share/fontconfig/conf.avail/65-fonts-persian.conf +419 -0
- data/vendor/local/share/fontconfig/conf.avail/65-khmer.conf +16 -0
- data/vendor/local/share/fontconfig/conf.avail/65-nonlatin.conf +196 -0
- data/vendor/local/share/fontconfig/conf.avail/69-unifont.conf +28 -0
- data/vendor/local/share/fontconfig/conf.avail/70-no-bitmaps.conf +12 -0
- data/vendor/local/share/fontconfig/conf.avail/70-yes-bitmaps.conf +12 -0
- data/vendor/local/share/fontconfig/conf.avail/80-delicious.conf +19 -0
- data/vendor/local/share/fontconfig/conf.avail/90-synthetic.conf +64 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-errors.html +122 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-fonts.html +53 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-memory.html +123 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-overloading.html +121 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-path.html +117 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-patterns.html +75 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-return-values.html +120 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-streams.html +92 -0
- data/vendor/local/share/gtk-doc/html/cairo/bindings-surfaces.html +93 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Error-handling.html +397 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +428 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +452 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html +342 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-PNG-Support.html +315 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Paths.html +1194 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html +577 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html +129 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html +197 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Raster-Sources.html +600 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html +226 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Regions.html +810 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +302 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Script-Surfaces.html +360 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Transformations.html +394 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Types.html +156 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-User-Fonts.html +677 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Version-Information.html +342 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +326 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +280 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-XCB-Surfaces.html +527 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html +535 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-XLib-XRender-Backend.html +170 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-device-t.html +636 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +380 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html +653 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html +559 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html +2231 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html +956 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +1637 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-cairo-t.html +2695 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-drawing.html +53 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-fonts.html +53 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-support.html +44 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-surfaces.html +74 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo-text.html +1138 -0
- data/vendor/local/share/gtk-doc/html/cairo/cairo.devhelp2 +747 -0
- data/vendor/local/share/gtk-doc/html/cairo/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.10.html +177 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.12.html +193 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.2.html +179 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.4.html +123 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.6.html +107 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-1.8.html +128 -0
- data/vendor/local/share/gtk-doc/html/cairo/index-all.html +1122 -0
- data/vendor/local/share/gtk-doc/html/cairo/index.html +157 -0
- data/vendor/local/share/gtk-doc/html/cairo/index.sgml +833 -0
- data/vendor/local/share/gtk-doc/html/cairo/language-bindings.html +73 -0
- data/vendor/local/share/gtk-doc/html/cairo/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/cairo/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/cairo/style.css +266 -0
- data/vendor/local/share/gtk-doc/html/cairo/up.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/general.html +38 -0
- data/vendor/local/share/gtk-doc/html/libxml2/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/index.html +67 -0
- data/vendor/local/share/gtk-doc/html/libxml2/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-DOCBparser.html +138 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-HTMLparser.html +373 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-HTMLtree.html +172 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-SAX.html +243 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-SAX2.html +247 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-c14n.html +91 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-catalog.html +278 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-chvalid.html +241 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-debugXML.html +225 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-dict.html +134 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-encoding.html +218 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-entities.html +166 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-globals.html +383 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-hash.html +214 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-list.html +226 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-nanoftp.html +187 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-nanohttp.html +142 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-parser.html +766 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-parserInternals.html +688 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-pattern.html +166 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-relaxng.html +278 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-schemasInternals.html +860 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-schematron.html +166 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-threads.html +161 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-tree.html +1597 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-uri.html +154 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-valid.html +528 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xinclude.html +169 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xlink.html +160 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlIO.html +347 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlautomata.html +176 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlerror.html +953 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlexports.html +87 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlmemory.html +186 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlmodule.html +97 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlreader.html +565 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlregexp.html +280 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlsave.html +133 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlschemas.html +314 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlschemastypes.html +237 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlstring.html +217 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlunicode.html +887 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlversion.html +292 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xmlwriter.html +479 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpath.html +542 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpathInternals.html +787 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2-xpointer.html +171 -0
- data/vendor/local/share/gtk-doc/html/libxml2/libxml2.devhelp +3573 -0
- data/vendor/local/share/gtk-doc/html/libxml2/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/libxml2/style.css +66 -0
- data/vendor/local/share/gtk-doc/html/libxml2/up.png +0 -0
- data/vendor/local/share/license/cairo/AUTHORS +115 -0
- data/vendor/local/share/license/cairo/COPYING +33 -0
- data/vendor/local/share/license/cairo/COPYING-LGPL-2.1 +510 -0
- data/vendor/local/share/license/cairo/COPYING-MPL-1.1 +470 -0
- data/vendor/local/share/license/cairo/README +204 -0
- data/vendor/local/share/license/cairo/README.win32 +66 -0
- data/vendor/local/share/license/fontconfig/AUTHORS +3 -0
- data/vendor/local/share/license/fontconfig/COPYING +28 -0
- data/vendor/local/share/license/fontconfig/README +1484 -0
- data/vendor/local/share/license/freetype/README +83 -0
- data/vendor/local/share/license/freetype/README.git +50 -0
- data/vendor/local/share/license/libpng/README +215 -0
- data/vendor/local/share/license/libxml2/AUTHORS +5 -0
- data/vendor/local/share/license/libxml2/COPYING +23 -0
- data/vendor/local/share/license/libxml2/README +39 -0
- data/vendor/local/share/license/libxml2/README.tests +39 -0
- data/vendor/local/share/license/pixman/AUTHORS +0 -0
- data/vendor/local/share/license/pixman/COPYING +42 -0
- data/vendor/local/share/license/pixman/README +116 -0
- data/vendor/local/share/license/zlib/README +115 -0
- data/vendor/local/share/man/man1/freetype-config.1 +108 -0
- data/vendor/local/share/man/man1/xml2-config.1 +30 -0
- data/vendor/local/share/man/man1/xmlcatalog.1 +340 -0
- data/vendor/local/share/man/man1/xmllint.1 +647 -0
- data/vendor/local/share/man/man3/libpng.3 +6217 -0
- data/vendor/local/share/man/man3/libpngpf.3 +18 -0
- data/vendor/local/share/man/man3/libxml.3 +71 -0
- data/vendor/local/share/man/man5/png.5 +74 -0
- data/vendor/local/share/xml/fontconfig/fonts.dtd +233 -0
- metadata +774 -0
@@ -0,0 +1,1741 @@
|
|
1
|
+
/* -*- c-file-style: "gnu"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Ruby Cairo Binding
|
4
|
+
*
|
5
|
+
* $Author: kou $
|
6
|
+
* $Date: 2008-09-26 13:52:08 $
|
7
|
+
*
|
8
|
+
* Copyright 2005-2014 Kouhei Sutou <kou@cozmixng.org>
|
9
|
+
* Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
|
10
|
+
* Copyright 2004-2005 MenTaLguY <mental@rydia.com>
|
11
|
+
*
|
12
|
+
* This file is made available under the same terms as Ruby
|
13
|
+
*
|
14
|
+
*/
|
15
|
+
|
16
|
+
#include "rb_cairo.h"
|
17
|
+
#include "rb_cairo_private.h"
|
18
|
+
#include "rb_cairo_io.h"
|
19
|
+
|
20
|
+
#ifdef HAVE_RUBY_ST_H
|
21
|
+
# include <ruby/st.h>
|
22
|
+
#else
|
23
|
+
# include <st.h>
|
24
|
+
#endif
|
25
|
+
|
26
|
+
VALUE rb_cCairo_Context;
|
27
|
+
|
28
|
+
static ID cr_id_surface, cr_id_source;
|
29
|
+
static ID cr_id_plus, cr_id_minus, cr_id_multi, cr_id_div;
|
30
|
+
static cairo_user_data_key_t cr_object_holder_key;
|
31
|
+
|
32
|
+
#define _SELF (RVAL2CRCONTEXT(self))
|
33
|
+
|
34
|
+
static VALUE cr_get_current_point (VALUE self);
|
35
|
+
|
36
|
+
static inline void
|
37
|
+
cr_check_status (cairo_t *context)
|
38
|
+
{
|
39
|
+
rb_cairo_check_status (cairo_status (context));
|
40
|
+
}
|
41
|
+
|
42
|
+
/* Functions for manipulating state objects */
|
43
|
+
cairo_t *
|
44
|
+
rb_cairo_context_from_ruby_object (VALUE obj)
|
45
|
+
{
|
46
|
+
cairo_t *context;
|
47
|
+
if (!rb_cairo__is_kind_of (obj, rb_cCairo_Context))
|
48
|
+
{
|
49
|
+
rb_raise (rb_eTypeError, "not a cairo graphics context");
|
50
|
+
}
|
51
|
+
Data_Get_Struct (obj, cairo_t, context);
|
52
|
+
if (!context)
|
53
|
+
rb_cairo_check_status (CAIRO_STATUS_NULL_POINTER);
|
54
|
+
return context;
|
55
|
+
}
|
56
|
+
|
57
|
+
static rb_cairo__object_holder_t *
|
58
|
+
cr_object_holder_new (VALUE object)
|
59
|
+
{
|
60
|
+
return rb_cairo__object_holder_new (rb_cCairo_Context, object);
|
61
|
+
}
|
62
|
+
|
63
|
+
static void
|
64
|
+
cr_object_holder_free (void *ptr)
|
65
|
+
{
|
66
|
+
rb_cairo__object_holder_free (rb_cCairo_Context, ptr);
|
67
|
+
}
|
68
|
+
|
69
|
+
static void
|
70
|
+
cr_context_free (void *ptr)
|
71
|
+
{
|
72
|
+
if (ptr)
|
73
|
+
{
|
74
|
+
cairo_destroy ((cairo_t *) ptr);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
VALUE
|
79
|
+
rb_cairo_context_to_ruby_object (cairo_t *cr)
|
80
|
+
{
|
81
|
+
if (cr)
|
82
|
+
{
|
83
|
+
cairo_reference (cr);
|
84
|
+
return Data_Wrap_Struct (rb_cCairo_Context, NULL, cr_context_free, cr);
|
85
|
+
}
|
86
|
+
else
|
87
|
+
{
|
88
|
+
return Qnil;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
static VALUE
|
93
|
+
cr_allocate (VALUE klass)
|
94
|
+
{
|
95
|
+
return Data_Wrap_Struct (klass, NULL, cr_context_free, NULL);
|
96
|
+
}
|
97
|
+
|
98
|
+
static void
|
99
|
+
cr_set_user_data (cairo_t *cr, const cairo_user_data_key_t *key,
|
100
|
+
void *user_data, cairo_destroy_func_t destroy)
|
101
|
+
{
|
102
|
+
#if CAIRO_CHECK_VERSION(1, 4, 0)
|
103
|
+
cairo_set_user_data (cr, key, user_data, destroy);
|
104
|
+
#else
|
105
|
+
cairo_surface_t *surface;
|
106
|
+
surface = cairo_get_target (cr);
|
107
|
+
cairo_surface_set_user_data (surface, key, user_data, destroy);
|
108
|
+
#endif
|
109
|
+
}
|
110
|
+
|
111
|
+
static VALUE
|
112
|
+
cr_destroy (VALUE self)
|
113
|
+
{
|
114
|
+
cairo_t *cr;
|
115
|
+
|
116
|
+
cr = _SELF;
|
117
|
+
cr_set_user_data (cr, &cr_object_holder_key, NULL, NULL);
|
118
|
+
cairo_destroy (cr);
|
119
|
+
|
120
|
+
DATA_PTR (self) = NULL;
|
121
|
+
return Qnil;
|
122
|
+
}
|
123
|
+
|
124
|
+
static VALUE
|
125
|
+
cr_destroy_with_destroy_check (VALUE self)
|
126
|
+
{
|
127
|
+
if (DATA_PTR (self))
|
128
|
+
cr_destroy (self);
|
129
|
+
return Qnil;
|
130
|
+
}
|
131
|
+
|
132
|
+
static VALUE
|
133
|
+
cr_s_wrap (VALUE self, VALUE pointer)
|
134
|
+
{
|
135
|
+
VALUE result;
|
136
|
+
VALUE rb_cr;
|
137
|
+
cairo_t *cr;
|
138
|
+
|
139
|
+
if (NIL_P (rb_cairo__cFFIPointer))
|
140
|
+
{
|
141
|
+
rb_raise (rb_eNotImpError,
|
142
|
+
"%s: FFI::Pointer is required",
|
143
|
+
rb_id2name (rb_frame_this_func ()));
|
144
|
+
}
|
145
|
+
|
146
|
+
if (!RTEST (rb_obj_is_kind_of (pointer, rb_cairo__cFFIPointer)))
|
147
|
+
{
|
148
|
+
rb_raise (rb_eArgError,
|
149
|
+
"must be FFI::Pointer: %s",
|
150
|
+
rb_cairo__inspect (pointer));
|
151
|
+
}
|
152
|
+
|
153
|
+
{
|
154
|
+
VALUE rb_cr_address;
|
155
|
+
rb_cr_address = rb_funcall (pointer, rb_intern ("address"), 0);
|
156
|
+
cr = NUM2PTR (rb_cr_address);
|
157
|
+
cr_check_status (cr);
|
158
|
+
}
|
159
|
+
|
160
|
+
rb_cr = rb_obj_alloc (self);
|
161
|
+
cairo_reference (cr);
|
162
|
+
DATA_PTR (rb_cr) = cr;
|
163
|
+
rb_ivar_set (rb_cr, cr_id_surface, Qnil);
|
164
|
+
|
165
|
+
if (rb_block_given_p ())
|
166
|
+
{
|
167
|
+
result = rb_ensure (rb_yield, rb_cr, cr_destroy_with_destroy_check, rb_cr);
|
168
|
+
}
|
169
|
+
else
|
170
|
+
{
|
171
|
+
result = rb_cr;
|
172
|
+
}
|
173
|
+
|
174
|
+
return result;
|
175
|
+
}
|
176
|
+
|
177
|
+
static VALUE
|
178
|
+
cr_initialize (VALUE self, VALUE target)
|
179
|
+
{
|
180
|
+
cairo_t *cr;
|
181
|
+
VALUE result = Qnil;
|
182
|
+
|
183
|
+
cr = cairo_create (RVAL2CRSURFACE (target));
|
184
|
+
cr_check_status (cr);
|
185
|
+
rb_ivar_set (self, cr_id_surface, target);
|
186
|
+
rb_ivar_set (self, cr_id_source, Qnil);
|
187
|
+
if (rb_ivar_defined (target, rb_cairo__io_id_output))
|
188
|
+
cr_set_user_data (cr,
|
189
|
+
&cr_object_holder_key,
|
190
|
+
cr_object_holder_new (self),
|
191
|
+
cr_object_holder_free);
|
192
|
+
DATA_PTR (self) = cr;
|
193
|
+
if (rb_block_given_p ())
|
194
|
+
result = rb_ensure (rb_yield, self, cr_destroy_with_destroy_check, self);
|
195
|
+
return result;
|
196
|
+
}
|
197
|
+
|
198
|
+
static VALUE
|
199
|
+
cr_to_ptr (VALUE self)
|
200
|
+
{
|
201
|
+
if (NIL_P (rb_cairo__cFFIPointer))
|
202
|
+
return Qnil;
|
203
|
+
|
204
|
+
return rb_funcall (rb_cairo__cFFIPointer, rb_intern ("new"),
|
205
|
+
1, PTR2NUM (_SELF));
|
206
|
+
}
|
207
|
+
|
208
|
+
|
209
|
+
static VALUE
|
210
|
+
cr_restore (VALUE self)
|
211
|
+
{
|
212
|
+
cairo_restore (_SELF);
|
213
|
+
cr_check_status (_SELF);
|
214
|
+
return Qnil;
|
215
|
+
}
|
216
|
+
|
217
|
+
static VALUE
|
218
|
+
cr_save (VALUE self)
|
219
|
+
{
|
220
|
+
VALUE result = Qnil;
|
221
|
+
cairo_save (_SELF);
|
222
|
+
cr_check_status (_SELF);
|
223
|
+
if (rb_block_given_p ())
|
224
|
+
{
|
225
|
+
result = rb_ensure (rb_yield, self, cr_restore, self);
|
226
|
+
}
|
227
|
+
return result;
|
228
|
+
}
|
229
|
+
|
230
|
+
static VALUE
|
231
|
+
cr_pop_group (VALUE self)
|
232
|
+
{
|
233
|
+
VALUE rb_pattern;
|
234
|
+
cairo_pattern_t *pattern;
|
235
|
+
|
236
|
+
pattern = cairo_pop_group (_SELF);
|
237
|
+
cr_check_status (_SELF);
|
238
|
+
rb_pattern = CRPATTERN2RVAL (pattern);
|
239
|
+
cairo_pattern_destroy (pattern);
|
240
|
+
return rb_pattern;
|
241
|
+
}
|
242
|
+
|
243
|
+
static VALUE
|
244
|
+
cr_pop_group_to_source (VALUE self)
|
245
|
+
{
|
246
|
+
cairo_pop_group_to_source (_SELF);
|
247
|
+
cr_check_status (_SELF);
|
248
|
+
return Qnil;
|
249
|
+
}
|
250
|
+
|
251
|
+
static VALUE
|
252
|
+
cr_pop_group_generic (int argc, VALUE *argv, VALUE self)
|
253
|
+
{
|
254
|
+
VALUE to_source;
|
255
|
+
rb_scan_args (argc, argv, "01", &to_source);
|
256
|
+
if (RVAL2CBOOL (to_source))
|
257
|
+
return cr_pop_group_to_source (self);
|
258
|
+
else
|
259
|
+
return cr_pop_group (self);
|
260
|
+
}
|
261
|
+
|
262
|
+
static VALUE
|
263
|
+
cr_push_group (int argc, VALUE *argv, VALUE self)
|
264
|
+
{
|
265
|
+
VALUE result = Qnil;
|
266
|
+
VALUE content, pop_to_source;
|
267
|
+
rb_scan_args (argc, argv, "02", &content, &pop_to_source);
|
268
|
+
|
269
|
+
if (NIL_P(content))
|
270
|
+
cairo_push_group (_SELF);
|
271
|
+
else
|
272
|
+
cairo_push_group_with_content (_SELF, RVAL2CRCONTENT(content));
|
273
|
+
cr_check_status (_SELF);
|
274
|
+
|
275
|
+
if (rb_block_given_p ())
|
276
|
+
{
|
277
|
+
int state = 0;
|
278
|
+
|
279
|
+
if (NIL_P (pop_to_source))
|
280
|
+
pop_to_source = Qtrue;
|
281
|
+
|
282
|
+
result = rb_protect (rb_yield, self, &state);
|
283
|
+
if (cairo_status(_SELF) == CAIRO_STATUS_SUCCESS)
|
284
|
+
{
|
285
|
+
if (RVAL2CBOOL (pop_to_source))
|
286
|
+
cr_pop_group_to_source (self);
|
287
|
+
else
|
288
|
+
result = cr_pop_group (self);
|
289
|
+
}
|
290
|
+
|
291
|
+
if (state)
|
292
|
+
rb_jump_tag (state);
|
293
|
+
}
|
294
|
+
|
295
|
+
return result;
|
296
|
+
}
|
297
|
+
|
298
|
+
|
299
|
+
/* Modify state */
|
300
|
+
static VALUE
|
301
|
+
cr_set_operator (VALUE self, VALUE operator)
|
302
|
+
{
|
303
|
+
cairo_set_operator (_SELF, RVAL2CROPERATOR (operator));
|
304
|
+
cr_check_status (_SELF);
|
305
|
+
return self;
|
306
|
+
}
|
307
|
+
|
308
|
+
static VALUE
|
309
|
+
cr_set_source_rgb (int argc, VALUE *argv, VALUE self)
|
310
|
+
{
|
311
|
+
VALUE red, green, blue;
|
312
|
+
int n;
|
313
|
+
|
314
|
+
n = rb_scan_args (argc, argv, "12", &red, &green, &blue);
|
315
|
+
|
316
|
+
if (n == 1 && rb_cairo__is_kind_of (red, rb_cArray))
|
317
|
+
{
|
318
|
+
VALUE ary = red;
|
319
|
+
n = RARRAY_LEN (ary);
|
320
|
+
red = rb_ary_entry (ary, 0);
|
321
|
+
green = rb_ary_entry (ary, 1);
|
322
|
+
blue = rb_ary_entry (ary, 2);
|
323
|
+
}
|
324
|
+
|
325
|
+
if (n == 3)
|
326
|
+
{
|
327
|
+
cairo_set_source_rgb (_SELF,
|
328
|
+
NUM2DBL (red),
|
329
|
+
NUM2DBL (green),
|
330
|
+
NUM2DBL (blue));
|
331
|
+
}
|
332
|
+
else
|
333
|
+
{
|
334
|
+
VALUE inspected_arg = rb_inspect (rb_ary_new4 (argc, argv));
|
335
|
+
rb_raise (rb_eArgError,
|
336
|
+
"invalid RGB: %s (expect "
|
337
|
+
"(red, green, blue) or ([red, green, blue]))",
|
338
|
+
StringValuePtr (inspected_arg));
|
339
|
+
}
|
340
|
+
cr_check_status (_SELF);
|
341
|
+
rb_ivar_set (self, cr_id_source, Qnil);
|
342
|
+
return self;
|
343
|
+
}
|
344
|
+
|
345
|
+
static VALUE
|
346
|
+
cr_set_source_rgba (int argc, VALUE *argv, VALUE self)
|
347
|
+
{
|
348
|
+
VALUE red, green, blue, alpha;
|
349
|
+
int n;
|
350
|
+
|
351
|
+
n = rb_scan_args (argc, argv, "13", &red, &green, &blue, &alpha);
|
352
|
+
|
353
|
+
if (n == 1 && rb_cairo__is_kind_of (red, rb_cArray))
|
354
|
+
{
|
355
|
+
VALUE ary = red;
|
356
|
+
n = RARRAY_LEN (ary);
|
357
|
+
red = rb_ary_entry (ary, 0);
|
358
|
+
green = rb_ary_entry (ary, 1);
|
359
|
+
blue = rb_ary_entry (ary, 2);
|
360
|
+
alpha = rb_ary_entry (ary, 3);
|
361
|
+
}
|
362
|
+
|
363
|
+
if (n == 3)
|
364
|
+
{
|
365
|
+
cairo_set_source_rgb (_SELF,
|
366
|
+
NUM2DBL (red),
|
367
|
+
NUM2DBL (green),
|
368
|
+
NUM2DBL (blue));
|
369
|
+
}
|
370
|
+
else if (n == 4)
|
371
|
+
{
|
372
|
+
cairo_set_source_rgba (_SELF,
|
373
|
+
NUM2DBL (red),
|
374
|
+
NUM2DBL (green),
|
375
|
+
NUM2DBL (blue),
|
376
|
+
NUM2DBL (alpha));
|
377
|
+
}
|
378
|
+
else
|
379
|
+
{
|
380
|
+
VALUE inspected_arg = rb_inspect (rb_ary_new4 (argc, argv));
|
381
|
+
rb_raise (rb_eArgError,
|
382
|
+
"invalid RGB%s: %s (expect "
|
383
|
+
"(red, green, blue), (red, green, blue, alpha), "
|
384
|
+
"([red, green, blue]) or ([red, green, blue, alpha]))",
|
385
|
+
n == 4 ? "A" : "",
|
386
|
+
StringValuePtr (inspected_arg));
|
387
|
+
}
|
388
|
+
cr_check_status (_SELF);
|
389
|
+
rb_ivar_set (self, cr_id_source, Qnil);
|
390
|
+
return self;
|
391
|
+
}
|
392
|
+
|
393
|
+
static VALUE
|
394
|
+
cr_set_source_surface (VALUE self, VALUE surface, VALUE width, VALUE height)
|
395
|
+
{
|
396
|
+
cairo_set_source_surface (_SELF,
|
397
|
+
RVAL2CRSURFACE (surface),
|
398
|
+
NUM2DBL (width),
|
399
|
+
NUM2DBL (height));
|
400
|
+
cr_check_status (_SELF);
|
401
|
+
rb_ivar_set (self, cr_id_source, Qnil);
|
402
|
+
return self;
|
403
|
+
}
|
404
|
+
|
405
|
+
static VALUE
|
406
|
+
cr_set_source (VALUE self, VALUE pattern)
|
407
|
+
{
|
408
|
+
cairo_set_source (_SELF, RVAL2CRPATTERN (pattern));
|
409
|
+
cr_check_status (_SELF);
|
410
|
+
rb_ivar_set (self, cr_id_source, pattern);
|
411
|
+
return self;
|
412
|
+
}
|
413
|
+
|
414
|
+
static VALUE
|
415
|
+
cr_set_source_generic (int argc, VALUE *argv, VALUE self)
|
416
|
+
{
|
417
|
+
VALUE arg1, arg2, arg3, arg4;
|
418
|
+
int n;
|
419
|
+
|
420
|
+
n = rb_scan_args (argc, argv, "13", &arg1, &arg2, &arg3, &arg4);
|
421
|
+
|
422
|
+
if (n == 1 && rb_cairo__is_kind_of (arg1, rb_cArray))
|
423
|
+
{
|
424
|
+
return cr_set_source_rgba (argc, argv, self);
|
425
|
+
}
|
426
|
+
else if (n == 1 && rb_cairo__is_kind_of (arg1, rb_cCairo_Surface))
|
427
|
+
{
|
428
|
+
return cr_set_source_surface (self, arg1,
|
429
|
+
rb_float_new (0),
|
430
|
+
rb_float_new (0));
|
431
|
+
}
|
432
|
+
else if (n == 1)
|
433
|
+
{
|
434
|
+
return cr_set_source (self, arg1);
|
435
|
+
}
|
436
|
+
else if (n == 3 && rb_cairo__is_kind_of (arg1, rb_cCairo_Surface))
|
437
|
+
{
|
438
|
+
return cr_set_source_surface (self, arg1, arg2, arg3);
|
439
|
+
}
|
440
|
+
else if (n == 3 || n == 4)
|
441
|
+
{
|
442
|
+
return cr_set_source_rgba (argc, argv, self);
|
443
|
+
}
|
444
|
+
else
|
445
|
+
{
|
446
|
+
rb_raise (rb_eArgError,
|
447
|
+
"invalid argument (expect "
|
448
|
+
"(red, green, blue), (red, green, blue, alpha), "
|
449
|
+
"([red, green, blue]), ([red, green, blue, alpha]), "
|
450
|
+
"(surface), (pattern) or (surface, x, y))");
|
451
|
+
}
|
452
|
+
}
|
453
|
+
|
454
|
+
static VALUE
|
455
|
+
cr_set_tolerance (VALUE self, VALUE tolerance)
|
456
|
+
{
|
457
|
+
cairo_set_tolerance (_SELF, NUM2DBL (tolerance));
|
458
|
+
cr_check_status (_SELF);
|
459
|
+
return self;
|
460
|
+
}
|
461
|
+
|
462
|
+
static VALUE
|
463
|
+
cr_set_antialias(VALUE self, VALUE antialias)
|
464
|
+
{
|
465
|
+
cairo_set_antialias(_SELF, RVAL2CRANTIALIAS (antialias));
|
466
|
+
cr_check_status(_SELF);
|
467
|
+
return self;
|
468
|
+
}
|
469
|
+
|
470
|
+
static VALUE
|
471
|
+
cr_set_fill_rule (VALUE self, VALUE rule)
|
472
|
+
{
|
473
|
+
cairo_set_fill_rule (_SELF, RVAL2CRFILLRULE (rule));
|
474
|
+
cr_check_status (_SELF);
|
475
|
+
return self;
|
476
|
+
}
|
477
|
+
|
478
|
+
static VALUE
|
479
|
+
cr_set_line_width (VALUE self, VALUE width)
|
480
|
+
{
|
481
|
+
cairo_set_line_width (_SELF, NUM2DBL (width));
|
482
|
+
return self;
|
483
|
+
}
|
484
|
+
|
485
|
+
static VALUE
|
486
|
+
cr_set_line_cap (VALUE self, VALUE cap)
|
487
|
+
{
|
488
|
+
cairo_set_line_cap (_SELF, RVAL2CRLINECAP (cap));
|
489
|
+
cr_check_status (_SELF);
|
490
|
+
return self;
|
491
|
+
}
|
492
|
+
|
493
|
+
static VALUE
|
494
|
+
cr_set_line_join (VALUE self, VALUE join)
|
495
|
+
{
|
496
|
+
cairo_set_line_join (_SELF, RVAL2CRLINEJOIN (join));
|
497
|
+
cr_check_status (_SELF);
|
498
|
+
return self;
|
499
|
+
}
|
500
|
+
|
501
|
+
static VALUE
|
502
|
+
cr_set_dash (int argc, VALUE *argv, VALUE self)
|
503
|
+
{
|
504
|
+
VALUE dash_array, rb_offset;
|
505
|
+
double offset;
|
506
|
+
cairo_bool_t is_num;
|
507
|
+
|
508
|
+
rb_scan_args(argc, argv, "11", &dash_array, &rb_offset);
|
509
|
+
|
510
|
+
is_num = rb_cairo__is_kind_of (dash_array, rb_cNumeric);
|
511
|
+
if (!(NIL_P (dash_array) || is_num))
|
512
|
+
{
|
513
|
+
Check_Type (dash_array, T_ARRAY);
|
514
|
+
}
|
515
|
+
|
516
|
+
if (NIL_P (rb_offset))
|
517
|
+
offset = 0.0;
|
518
|
+
else
|
519
|
+
offset = NUM2DBL (rb_offset);
|
520
|
+
|
521
|
+
if (is_num)
|
522
|
+
{
|
523
|
+
double values[1];
|
524
|
+
values[0] = NUM2DBL (dash_array);
|
525
|
+
cairo_set_dash (_SELF, values, 1, offset);
|
526
|
+
}
|
527
|
+
else if (NIL_P (dash_array) || RARRAY_LEN (dash_array) == 0)
|
528
|
+
{
|
529
|
+
cairo_set_dash (_SELF, NULL, 0, offset);
|
530
|
+
}
|
531
|
+
else
|
532
|
+
{
|
533
|
+
int i, length;
|
534
|
+
double *values;
|
535
|
+
length = RARRAY_LEN (dash_array);
|
536
|
+
values = ALLOCA_N (double, length);
|
537
|
+
if (!values)
|
538
|
+
{
|
539
|
+
rb_cairo_check_status (CAIRO_STATUS_NO_MEMORY);
|
540
|
+
}
|
541
|
+
for (i = 0; i < length; i++)
|
542
|
+
{
|
543
|
+
values[i] = NUM2DBL (RARRAY_PTR (dash_array)[i]);
|
544
|
+
}
|
545
|
+
cairo_set_dash (_SELF, values, length, offset);
|
546
|
+
}
|
547
|
+
|
548
|
+
cr_check_status (_SELF);
|
549
|
+
return self;
|
550
|
+
}
|
551
|
+
|
552
|
+
static VALUE
|
553
|
+
cr_set_miter_limit (VALUE self, VALUE limit)
|
554
|
+
{
|
555
|
+
cairo_set_miter_limit (_SELF, NUM2DBL (limit));
|
556
|
+
cr_check_status (_SELF);
|
557
|
+
return self;
|
558
|
+
}
|
559
|
+
|
560
|
+
static VALUE
|
561
|
+
cr_translate (VALUE self, VALUE tx, VALUE ty)
|
562
|
+
{
|
563
|
+
cairo_translate (_SELF, NUM2DBL (tx), NUM2DBL (ty));
|
564
|
+
cr_check_status (_SELF);
|
565
|
+
return self;
|
566
|
+
}
|
567
|
+
|
568
|
+
static VALUE
|
569
|
+
cr_scale (VALUE self, VALUE sx, VALUE sy)
|
570
|
+
{
|
571
|
+
cairo_scale (_SELF, NUM2DBL (sx), NUM2DBL (sy));
|
572
|
+
cr_check_status (_SELF);
|
573
|
+
return self;
|
574
|
+
}
|
575
|
+
|
576
|
+
static VALUE
|
577
|
+
cr_rotate (VALUE self, VALUE radians)
|
578
|
+
{
|
579
|
+
cairo_rotate (_SELF, NUM2DBL (radians));
|
580
|
+
cr_check_status (_SELF);
|
581
|
+
return self;
|
582
|
+
}
|
583
|
+
|
584
|
+
static VALUE
|
585
|
+
cr_transform (VALUE self, VALUE matrix)
|
586
|
+
{
|
587
|
+
cairo_transform (_SELF, RVAL2CRMATRIX (matrix));
|
588
|
+
cr_check_status (_SELF);
|
589
|
+
return self;
|
590
|
+
}
|
591
|
+
|
592
|
+
static VALUE
|
593
|
+
cr_set_matrix (VALUE self, VALUE matrix)
|
594
|
+
{
|
595
|
+
cairo_set_matrix (_SELF, RVAL2CRMATRIX (matrix));
|
596
|
+
cr_check_status (_SELF);
|
597
|
+
return self;
|
598
|
+
}
|
599
|
+
|
600
|
+
static VALUE
|
601
|
+
cr_identity_matrix (VALUE self)
|
602
|
+
{
|
603
|
+
cairo_identity_matrix (_SELF);
|
604
|
+
cr_check_status (_SELF);
|
605
|
+
return self;
|
606
|
+
}
|
607
|
+
|
608
|
+
static VALUE
|
609
|
+
cr_user_to_device (VALUE self, VALUE x, VALUE y)
|
610
|
+
{
|
611
|
+
double pair[2];
|
612
|
+
pair[0] = NUM2DBL (x);
|
613
|
+
pair[1] = NUM2DBL (y);
|
614
|
+
cairo_user_to_device (_SELF, pair, pair + 1);
|
615
|
+
cr_check_status (_SELF);
|
616
|
+
return rb_cairo__float_array (pair, 2);
|
617
|
+
}
|
618
|
+
|
619
|
+
static VALUE
|
620
|
+
cr_user_to_device_distance (VALUE self, VALUE dx, VALUE dy)
|
621
|
+
{
|
622
|
+
double pair[2];
|
623
|
+
pair[0] = NUM2DBL (dx);
|
624
|
+
pair[1] = NUM2DBL (dy);
|
625
|
+
cairo_user_to_device_distance (_SELF, pair, pair + 1);
|
626
|
+
cr_check_status (_SELF);
|
627
|
+
return rb_cairo__float_array (pair, 2);
|
628
|
+
}
|
629
|
+
|
630
|
+
static VALUE
|
631
|
+
cr_device_to_user (VALUE self, VALUE x, VALUE y)
|
632
|
+
{
|
633
|
+
double pair[2];
|
634
|
+
pair[0] = NUM2DBL (x);
|
635
|
+
pair[1] = NUM2DBL (y);
|
636
|
+
cairo_device_to_user (_SELF, pair, pair + 1);
|
637
|
+
cr_check_status (_SELF);
|
638
|
+
return rb_cairo__float_array (pair, 2);
|
639
|
+
}
|
640
|
+
|
641
|
+
static VALUE
|
642
|
+
cr_device_to_user_distance (VALUE self, VALUE dx, VALUE dy)
|
643
|
+
{
|
644
|
+
double pair[2];
|
645
|
+
pair[0] = NUM2DBL (dx);
|
646
|
+
pair[1] = NUM2DBL (dy);
|
647
|
+
cairo_device_to_user_distance (_SELF, pair, pair + 1);
|
648
|
+
cr_check_status (_SELF);
|
649
|
+
return rb_cairo__float_array (pair, 2);
|
650
|
+
}
|
651
|
+
|
652
|
+
|
653
|
+
/* Path creation functions */
|
654
|
+
static VALUE
|
655
|
+
cr_new_path (VALUE self)
|
656
|
+
{
|
657
|
+
cairo_new_path (_SELF);
|
658
|
+
cr_check_status (_SELF);
|
659
|
+
return self;
|
660
|
+
}
|
661
|
+
|
662
|
+
static VALUE
|
663
|
+
cr_move_to (VALUE self, VALUE x, VALUE y)
|
664
|
+
{
|
665
|
+
cairo_move_to (_SELF, NUM2DBL (x), NUM2DBL (y));
|
666
|
+
cr_check_status (_SELF);
|
667
|
+
return self;
|
668
|
+
}
|
669
|
+
|
670
|
+
static VALUE
|
671
|
+
cr_new_sub_path (VALUE self)
|
672
|
+
{
|
673
|
+
cairo_new_sub_path (_SELF);
|
674
|
+
cr_check_status (_SELF);
|
675
|
+
return self;
|
676
|
+
}
|
677
|
+
|
678
|
+
static VALUE
|
679
|
+
cr_line_to (VALUE self, VALUE x, VALUE y)
|
680
|
+
{
|
681
|
+
cairo_line_to (_SELF, NUM2DBL (x), NUM2DBL (y));
|
682
|
+
cr_check_status (_SELF);
|
683
|
+
return self;
|
684
|
+
}
|
685
|
+
|
686
|
+
static VALUE
|
687
|
+
cr_curve_to (VALUE self, VALUE x1, VALUE y1,
|
688
|
+
VALUE x2, VALUE y2, VALUE x3, VALUE y3)
|
689
|
+
{
|
690
|
+
cairo_curve_to (_SELF, NUM2DBL (x1), NUM2DBL (y1),
|
691
|
+
NUM2DBL (x2), NUM2DBL (y2), NUM2DBL (x3), NUM2DBL (y3));
|
692
|
+
cr_check_status (_SELF);
|
693
|
+
return self;
|
694
|
+
}
|
695
|
+
|
696
|
+
static VALUE
|
697
|
+
cr_quadratic_curve_to (VALUE self, VALUE x1, VALUE y1, VALUE x2, VALUE y2)
|
698
|
+
{
|
699
|
+
VALUE current_point, x0, y0, cx1, cy1, cx2, cy2;
|
700
|
+
|
701
|
+
current_point = cr_get_current_point (self);
|
702
|
+
x0 = RARRAY_PTR (current_point)[0];
|
703
|
+
y0 = RARRAY_PTR (current_point)[1];
|
704
|
+
|
705
|
+
/* cx1 = x0 + 2 * ((x1 - x0) / 3.0) */
|
706
|
+
cx1 = rb_funcall (x0, cr_id_plus, 1,
|
707
|
+
rb_funcall (INT2NUM(2), cr_id_multi, 1,
|
708
|
+
rb_funcall (rb_funcall (x1, cr_id_minus, 1, x0),
|
709
|
+
cr_id_div, 1, rb_float_new (3.0))));
|
710
|
+
/* cy1 = y0 + 2 * ((y1 - y0) / 3.0) */
|
711
|
+
cy1 = rb_funcall (y0, cr_id_plus, 1,
|
712
|
+
rb_funcall (INT2NUM(2), cr_id_multi, 1,
|
713
|
+
rb_funcall (rb_funcall (y1, cr_id_minus, 1, y0),
|
714
|
+
cr_id_div, 1, rb_float_new (3.0))));
|
715
|
+
/* cx2 = cx1 + (x2 - x0) / 3.0 */
|
716
|
+
cx2 = rb_funcall (cx1, cr_id_plus, 1,
|
717
|
+
rb_funcall (rb_funcall (x2, cr_id_minus, 1, x0),
|
718
|
+
cr_id_div, 1, rb_float_new (3.0)));
|
719
|
+
/* cy2 = cy1 + (y2 - y0) / 3.0 */
|
720
|
+
cy2 = rb_funcall (cy1, cr_id_plus, 1,
|
721
|
+
rb_funcall (rb_funcall (y2, cr_id_minus, 1, y0),
|
722
|
+
cr_id_div, 1, rb_float_new (3.0)));
|
723
|
+
return cr_curve_to (self, cx1, cy1, cx2, cy2, x2, y2);
|
724
|
+
}
|
725
|
+
|
726
|
+
static VALUE
|
727
|
+
cr_curve_to_generic (int argc, VALUE *argv, VALUE self)
|
728
|
+
{
|
729
|
+
VALUE x1, y1, x2, y2, x3, y3;
|
730
|
+
|
731
|
+
rb_scan_args (argc, argv, "42", &x1, &y1, &x2, &y2, &x3, &y3);
|
732
|
+
|
733
|
+
if (!(argc == 4 || argc == 6))
|
734
|
+
{
|
735
|
+
VALUE inspected_arg = rb_inspect (rb_ary_new4 (argc, argv));
|
736
|
+
rb_raise (rb_eArgError,
|
737
|
+
"invalid argument: %s (expect "
|
738
|
+
"(x1, y1, x2, y2) (quadratic) or "
|
739
|
+
"(x1, y1, x2, y2, x3, y3) (cubic))",
|
740
|
+
StringValuePtr (inspected_arg));
|
741
|
+
}
|
742
|
+
|
743
|
+
if (argc == 4)
|
744
|
+
return cr_quadratic_curve_to (self, x1, y1, x2, y2);
|
745
|
+
else
|
746
|
+
return cr_curve_to (self, x1, y1, x2, y2, x3, y3);
|
747
|
+
}
|
748
|
+
|
749
|
+
static VALUE
|
750
|
+
cr_arc (VALUE self, VALUE xc, VALUE yc, VALUE radius,
|
751
|
+
VALUE angle1, VALUE angle2)
|
752
|
+
{
|
753
|
+
cairo_arc (_SELF, NUM2DBL (xc), NUM2DBL (yc), NUM2DBL (radius),
|
754
|
+
NUM2DBL (angle1), NUM2DBL (angle2));
|
755
|
+
cr_check_status (_SELF);
|
756
|
+
return self;
|
757
|
+
}
|
758
|
+
|
759
|
+
static VALUE
|
760
|
+
cr_arc_negative (VALUE self, VALUE xc, VALUE yc, VALUE radius,
|
761
|
+
VALUE angle1, VALUE angle2)
|
762
|
+
{
|
763
|
+
cairo_arc_negative (_SELF, NUM2DBL (xc), NUM2DBL (yc), NUM2DBL (radius),
|
764
|
+
NUM2DBL (angle1), NUM2DBL (angle2));
|
765
|
+
cr_check_status (_SELF);
|
766
|
+
return self;
|
767
|
+
}
|
768
|
+
|
769
|
+
static VALUE
|
770
|
+
cr_rel_move_to (VALUE self, VALUE x, VALUE y)
|
771
|
+
{
|
772
|
+
cairo_rel_move_to (_SELF, NUM2DBL (x), NUM2DBL (y));
|
773
|
+
cr_check_status (_SELF);
|
774
|
+
return self;
|
775
|
+
}
|
776
|
+
|
777
|
+
static VALUE
|
778
|
+
cr_rel_line_to (VALUE self, VALUE x, VALUE y)
|
779
|
+
{
|
780
|
+
cairo_rel_line_to (_SELF, NUM2DBL (x), NUM2DBL (y));
|
781
|
+
cr_check_status (_SELF);
|
782
|
+
return self;
|
783
|
+
}
|
784
|
+
|
785
|
+
static VALUE
|
786
|
+
cr_rel_curve_to (VALUE self, VALUE dx1, VALUE dy1,
|
787
|
+
VALUE dx2, VALUE dy2, VALUE dx3, VALUE dy3)
|
788
|
+
{
|
789
|
+
cairo_rel_curve_to (_SELF, NUM2DBL (dx1), NUM2DBL (dy1),
|
790
|
+
NUM2DBL (dx2), NUM2DBL (dy2),
|
791
|
+
NUM2DBL (dx3), NUM2DBL (dy3));
|
792
|
+
cr_check_status (_SELF);
|
793
|
+
return self;
|
794
|
+
}
|
795
|
+
|
796
|
+
static VALUE
|
797
|
+
cr_rel_quadratic_curve_to (VALUE self, VALUE dx1, VALUE dy1,
|
798
|
+
VALUE dx2, VALUE dy2)
|
799
|
+
{
|
800
|
+
VALUE current_point, x0, y0;
|
801
|
+
|
802
|
+
current_point = cr_get_current_point (self);
|
803
|
+
x0 = RARRAY_PTR (current_point)[0];
|
804
|
+
y0 = RARRAY_PTR (current_point)[1];
|
805
|
+
return cr_quadratic_curve_to (self,
|
806
|
+
rb_funcall (dx1, cr_id_plus, 1, x0),
|
807
|
+
rb_funcall (dy1, cr_id_plus, 1, y0),
|
808
|
+
rb_funcall (dx2, cr_id_plus, 1, x0),
|
809
|
+
rb_funcall (dy2, cr_id_plus, 1, y0));
|
810
|
+
}
|
811
|
+
|
812
|
+
static VALUE
|
813
|
+
cr_rel_curve_to_generic (int argc, VALUE *argv, VALUE self)
|
814
|
+
{
|
815
|
+
VALUE dx1, dy1, dx2, dy2, dx3, dy3;
|
816
|
+
|
817
|
+
rb_scan_args (argc, argv, "42", &dx1, &dy1, &dx2, &dy2, &dx3, &dy3);
|
818
|
+
|
819
|
+
if (!(argc == 4 || argc == 6))
|
820
|
+
{
|
821
|
+
VALUE inspected_arg = rb_inspect (rb_ary_new4 (argc, argv));
|
822
|
+
rb_raise (rb_eArgError,
|
823
|
+
"invalid argument: %s (expect "
|
824
|
+
"(dx1, dy1, dx2, dy2) (quadratic) or "
|
825
|
+
"(dx1, dy1, dx2, dy2, dx3, dy3) (cubic))",
|
826
|
+
StringValuePtr (inspected_arg));
|
827
|
+
}
|
828
|
+
|
829
|
+
if (argc == 4)
|
830
|
+
return cr_rel_quadratic_curve_to (self, dx1, dy1, dx2, dy2);
|
831
|
+
else
|
832
|
+
return cr_rel_curve_to (self, dx1, dy1, dx2, dy2, dx3, dy3);
|
833
|
+
}
|
834
|
+
|
835
|
+
static VALUE
|
836
|
+
cr_rectangle (VALUE self, VALUE x, VALUE y, VALUE width, VALUE height)
|
837
|
+
{
|
838
|
+
cairo_rectangle (_SELF, NUM2DBL (x), NUM2DBL (y),
|
839
|
+
NUM2DBL (width), NUM2DBL (height));
|
840
|
+
cr_check_status (_SELF);
|
841
|
+
return self;
|
842
|
+
}
|
843
|
+
|
844
|
+
static VALUE
|
845
|
+
cr_close_path (VALUE self)
|
846
|
+
{
|
847
|
+
cairo_close_path (_SELF);
|
848
|
+
cr_check_status (_SELF);
|
849
|
+
return self;
|
850
|
+
}
|
851
|
+
|
852
|
+
#if CAIRO_CHECK_VERSION(1, 5, 8)
|
853
|
+
static VALUE
|
854
|
+
cr_path_extents (VALUE self)
|
855
|
+
{
|
856
|
+
double x1, y1, x2, y2;
|
857
|
+
cairo_path_extents (_SELF, &x1, &y1, &x2, &y2);
|
858
|
+
cr_check_status (_SELF);
|
859
|
+
return rb_ary_new3 (4,
|
860
|
+
rb_float_new(x1), rb_float_new(y1),
|
861
|
+
rb_float_new(x2), rb_float_new(y2));
|
862
|
+
}
|
863
|
+
#endif
|
864
|
+
|
865
|
+
/* Painting functions */
|
866
|
+
static VALUE
|
867
|
+
cr_paint (VALUE self)
|
868
|
+
{
|
869
|
+
cairo_paint (_SELF);
|
870
|
+
cr_check_status (_SELF);
|
871
|
+
return self;
|
872
|
+
}
|
873
|
+
|
874
|
+
static VALUE
|
875
|
+
cr_paint_with_alpha (VALUE self, VALUE alpha)
|
876
|
+
{
|
877
|
+
cairo_paint_with_alpha (_SELF, NUM2DBL (alpha));
|
878
|
+
cr_check_status (_SELF);
|
879
|
+
return self;
|
880
|
+
}
|
881
|
+
|
882
|
+
static VALUE
|
883
|
+
cr_paint_generic(int argc, VALUE *argv, VALUE self)
|
884
|
+
{
|
885
|
+
VALUE alpha;
|
886
|
+
int n;
|
887
|
+
|
888
|
+
n = rb_scan_args (argc, argv, "01", &alpha);
|
889
|
+
|
890
|
+
if (n == 0 || (n == 1 && NIL_P (alpha)))
|
891
|
+
{
|
892
|
+
return cr_paint (self);
|
893
|
+
}
|
894
|
+
if (n == 1)
|
895
|
+
{
|
896
|
+
return cr_paint_with_alpha (self, alpha);
|
897
|
+
}
|
898
|
+
else
|
899
|
+
{
|
900
|
+
rb_raise (rb_eArgError,
|
901
|
+
"invalid argument (expect () or (alpha))");
|
902
|
+
}
|
903
|
+
}
|
904
|
+
|
905
|
+
static VALUE
|
906
|
+
cr_mask(VALUE self, VALUE pattern)
|
907
|
+
{
|
908
|
+
cairo_mask (_SELF, RVAL2CRPATTERN (pattern));
|
909
|
+
cr_check_status (_SELF);
|
910
|
+
return self;
|
911
|
+
}
|
912
|
+
|
913
|
+
static VALUE
|
914
|
+
cr_mask_surface (VALUE self, VALUE surface, VALUE x, VALUE y)
|
915
|
+
{
|
916
|
+
cairo_mask_surface (_SELF, RVAL2CRSURFACE (surface),
|
917
|
+
NUM2DBL (x), NUM2DBL (y));
|
918
|
+
cr_check_status (_SELF);
|
919
|
+
return self;
|
920
|
+
}
|
921
|
+
|
922
|
+
static VALUE
|
923
|
+
cr_mask_generic (int argc, VALUE *argv, VALUE self)
|
924
|
+
{
|
925
|
+
VALUE arg1, arg2, arg3;
|
926
|
+
int n;
|
927
|
+
|
928
|
+
n = rb_scan_args (argc, argv, "12", &arg1, &arg2, &arg3);
|
929
|
+
|
930
|
+
if (n == 1)
|
931
|
+
{
|
932
|
+
return cr_mask (self, arg1);
|
933
|
+
}
|
934
|
+
else if (n == 3)
|
935
|
+
{
|
936
|
+
return cr_mask_surface (self, arg1, arg2, arg3);
|
937
|
+
}
|
938
|
+
else
|
939
|
+
{
|
940
|
+
rb_raise (rb_eArgError,
|
941
|
+
"invalid argument (expect (pattern) or (surface, x, y))");
|
942
|
+
}
|
943
|
+
}
|
944
|
+
|
945
|
+
static VALUE
|
946
|
+
cr_stroke (int argc, VALUE *argv, VALUE self)
|
947
|
+
{
|
948
|
+
VALUE preserve;
|
949
|
+
|
950
|
+
rb_scan_args (argc, argv, "01", &preserve);
|
951
|
+
|
952
|
+
if (rb_block_given_p ())
|
953
|
+
{
|
954
|
+
cr_new_path (self);
|
955
|
+
rb_yield (self);
|
956
|
+
}
|
957
|
+
|
958
|
+
if (RVAL2CBOOL (preserve))
|
959
|
+
cairo_stroke_preserve (_SELF);
|
960
|
+
else
|
961
|
+
cairo_stroke (_SELF);
|
962
|
+
|
963
|
+
cr_check_status (_SELF);
|
964
|
+
return self;
|
965
|
+
}
|
966
|
+
|
967
|
+
static VALUE
|
968
|
+
cr_fill (int argc, VALUE *argv, VALUE self)
|
969
|
+
{
|
970
|
+
VALUE preserve;
|
971
|
+
|
972
|
+
rb_scan_args (argc, argv, "01", &preserve);
|
973
|
+
|
974
|
+
if (rb_block_given_p ())
|
975
|
+
{
|
976
|
+
cr_new_path (self);
|
977
|
+
rb_yield (self);
|
978
|
+
}
|
979
|
+
|
980
|
+
if (RVAL2CBOOL (preserve))
|
981
|
+
cairo_fill_preserve (_SELF);
|
982
|
+
else
|
983
|
+
cairo_fill (_SELF);
|
984
|
+
|
985
|
+
cr_check_status (_SELF);
|
986
|
+
return self;
|
987
|
+
}
|
988
|
+
|
989
|
+
|
990
|
+
static VALUE
|
991
|
+
cr_copy_page (VALUE self)
|
992
|
+
{
|
993
|
+
cairo_copy_page (_SELF);
|
994
|
+
cr_check_status (_SELF);
|
995
|
+
return self;
|
996
|
+
}
|
997
|
+
|
998
|
+
static VALUE
|
999
|
+
cr_show_page (VALUE self)
|
1000
|
+
{
|
1001
|
+
cairo_show_page (_SELF);
|
1002
|
+
cr_check_status (_SELF);
|
1003
|
+
return self;
|
1004
|
+
}
|
1005
|
+
|
1006
|
+
/* Insideness testing */
|
1007
|
+
static VALUE
|
1008
|
+
cr_in_stroke (VALUE self, VALUE x, VALUE y)
|
1009
|
+
{
|
1010
|
+
if (rb_block_given_p ())
|
1011
|
+
{
|
1012
|
+
cr_new_path (self);
|
1013
|
+
rb_yield (self);
|
1014
|
+
}
|
1015
|
+
return CBOOL2RVAL (cairo_in_stroke (_SELF, NUM2DBL (x), NUM2DBL (y)));
|
1016
|
+
}
|
1017
|
+
|
1018
|
+
static VALUE
|
1019
|
+
cr_in_fill (VALUE self, VALUE x, VALUE y)
|
1020
|
+
{
|
1021
|
+
if (rb_block_given_p ())
|
1022
|
+
{
|
1023
|
+
cr_new_path (self);
|
1024
|
+
rb_yield (self);
|
1025
|
+
}
|
1026
|
+
return CBOOL2RVAL (cairo_in_fill (_SELF, NUM2DBL (x), NUM2DBL (y)));
|
1027
|
+
}
|
1028
|
+
|
1029
|
+
#if CAIRO_CHECK_VERSION(1, 10, 0)
|
1030
|
+
static VALUE
|
1031
|
+
cr_in_clip (VALUE self, VALUE x, VALUE y)
|
1032
|
+
{
|
1033
|
+
if (rb_block_given_p ())
|
1034
|
+
{
|
1035
|
+
cr_new_path (self);
|
1036
|
+
rb_yield (self);
|
1037
|
+
}
|
1038
|
+
return CBOOL2RVAL (cairo_in_clip (_SELF, NUM2DBL (x), NUM2DBL (y)));
|
1039
|
+
}
|
1040
|
+
#endif
|
1041
|
+
|
1042
|
+
/* Rectangular extents */
|
1043
|
+
static VALUE
|
1044
|
+
cr_stroke_extents (VALUE self)
|
1045
|
+
{
|
1046
|
+
double extents[4];
|
1047
|
+
if (rb_block_given_p ())
|
1048
|
+
{
|
1049
|
+
cr_new_path (self);
|
1050
|
+
rb_yield (self);
|
1051
|
+
}
|
1052
|
+
cairo_stroke_extents (_SELF, extents, extents + 1, extents + 2, extents + 3);
|
1053
|
+
return rb_cairo__float_array (extents, 4);
|
1054
|
+
}
|
1055
|
+
|
1056
|
+
static VALUE
|
1057
|
+
cr_fill_extents (VALUE self)
|
1058
|
+
{
|
1059
|
+
double extents[4];
|
1060
|
+
if (rb_block_given_p ())
|
1061
|
+
{
|
1062
|
+
cr_new_path (self);
|
1063
|
+
rb_yield (self);
|
1064
|
+
}
|
1065
|
+
cairo_fill_extents (_SELF, extents, extents + 1, extents + 2, extents + 3);
|
1066
|
+
return rb_cairo__float_array (extents, 4);
|
1067
|
+
}
|
1068
|
+
|
1069
|
+
/* Clipping */
|
1070
|
+
static VALUE
|
1071
|
+
cr_reset_clip (VALUE self)
|
1072
|
+
{
|
1073
|
+
cairo_reset_clip (_SELF);
|
1074
|
+
cr_check_status (_SELF);
|
1075
|
+
return self;
|
1076
|
+
}
|
1077
|
+
|
1078
|
+
static VALUE
|
1079
|
+
cr_clip (int argc, VALUE *argv, VALUE self)
|
1080
|
+
{
|
1081
|
+
VALUE preserve;
|
1082
|
+
|
1083
|
+
rb_scan_args(argc, argv, "01", &preserve);
|
1084
|
+
|
1085
|
+
if (rb_block_given_p ())
|
1086
|
+
{
|
1087
|
+
cr_new_path (self);
|
1088
|
+
rb_yield (self);
|
1089
|
+
}
|
1090
|
+
|
1091
|
+
if (RVAL2CBOOL (preserve))
|
1092
|
+
cairo_clip_preserve(_SELF);
|
1093
|
+
else
|
1094
|
+
cairo_clip (_SELF);
|
1095
|
+
|
1096
|
+
cr_check_status (_SELF);
|
1097
|
+
return self;
|
1098
|
+
}
|
1099
|
+
|
1100
|
+
#if CAIRO_CHECK_VERSION(1, 3, 0)
|
1101
|
+
static VALUE
|
1102
|
+
cr_clip_extents (VALUE self)
|
1103
|
+
{
|
1104
|
+
double x1, y1, x2, y2;
|
1105
|
+
cairo_clip_extents (_SELF, &x1, &y1, &x2, &y2);
|
1106
|
+
cr_check_status (_SELF);
|
1107
|
+
return rb_ary_new3 (4,
|
1108
|
+
rb_float_new (x1), rb_float_new (y1),
|
1109
|
+
rb_float_new (x2), rb_float_new (y2));
|
1110
|
+
}
|
1111
|
+
|
1112
|
+
static VALUE
|
1113
|
+
cr_clip_rectangle_list (VALUE self)
|
1114
|
+
{
|
1115
|
+
VALUE rb_rectangles;
|
1116
|
+
cairo_rectangle_list_t *rectangles;
|
1117
|
+
int i;
|
1118
|
+
|
1119
|
+
rectangles = cairo_copy_clip_rectangle_list (_SELF);
|
1120
|
+
rb_cairo_check_status (rectangles->status);
|
1121
|
+
|
1122
|
+
rb_rectangles = rb_ary_new2 (rectangles->num_rectangles);
|
1123
|
+
for (i = 0; i < rectangles->num_rectangles; i++) {
|
1124
|
+
VALUE argv[4];
|
1125
|
+
cairo_rectangle_t rectangle = rectangles->rectangles[i];
|
1126
|
+
|
1127
|
+
argv[0] = rb_float_new (rectangle.x);
|
1128
|
+
argv[1] = rb_float_new (rectangle.y);
|
1129
|
+
argv[2] = rb_float_new (rectangle.width);
|
1130
|
+
argv[3] = rb_float_new (rectangle.height);
|
1131
|
+
rb_ary_push (rb_rectangles,
|
1132
|
+
rb_class_new_instance (4, argv, rb_cCairo_Rectangle));
|
1133
|
+
}
|
1134
|
+
cairo_rectangle_list_destroy (rectangles);
|
1135
|
+
|
1136
|
+
return rb_rectangles;
|
1137
|
+
}
|
1138
|
+
#endif
|
1139
|
+
|
1140
|
+
/* Font/Text functions */
|
1141
|
+
static VALUE
|
1142
|
+
cr_select_font_face (int argc, VALUE *argv, VALUE self)
|
1143
|
+
{
|
1144
|
+
VALUE rb_family, rb_slant, rb_weight;
|
1145
|
+
const char *family;
|
1146
|
+
cairo_font_slant_t slant;
|
1147
|
+
cairo_font_weight_t weight;
|
1148
|
+
|
1149
|
+
rb_scan_args(argc, argv, "03", &rb_family, &rb_slant, &rb_weight);
|
1150
|
+
|
1151
|
+
if (NIL_P (rb_family))
|
1152
|
+
{
|
1153
|
+
family = "";
|
1154
|
+
}
|
1155
|
+
else if (rb_cairo__is_kind_of (rb_family, rb_cString))
|
1156
|
+
{
|
1157
|
+
family = RSTRING_PTR (rb_family);
|
1158
|
+
}
|
1159
|
+
else if (rb_cairo__is_kind_of (rb_family, rb_cSymbol))
|
1160
|
+
{
|
1161
|
+
family = rb_id2name (SYM2ID (rb_family));
|
1162
|
+
}
|
1163
|
+
else
|
1164
|
+
{
|
1165
|
+
rb_raise (rb_eArgError,
|
1166
|
+
"family name should be nil, String or Symbol: %s",
|
1167
|
+
rb_cairo__inspect (rb_family));
|
1168
|
+
}
|
1169
|
+
|
1170
|
+
if (NIL_P (rb_slant))
|
1171
|
+
slant = CAIRO_FONT_SLANT_NORMAL;
|
1172
|
+
else
|
1173
|
+
slant = RVAL2CRFONTSLANT (rb_slant);
|
1174
|
+
|
1175
|
+
if (NIL_P (rb_weight))
|
1176
|
+
weight = CAIRO_FONT_WEIGHT_NORMAL;
|
1177
|
+
else
|
1178
|
+
weight = RVAL2CRFONTWEIGHT (rb_weight);
|
1179
|
+
|
1180
|
+
cairo_select_font_face (_SELF, family, slant, weight);
|
1181
|
+
cr_check_status (_SELF);
|
1182
|
+
return self;
|
1183
|
+
}
|
1184
|
+
|
1185
|
+
static VALUE
|
1186
|
+
cr_set_font_size (VALUE self, VALUE scale)
|
1187
|
+
{
|
1188
|
+
cairo_set_font_size (_SELF, NUM2DBL (scale));
|
1189
|
+
cr_check_status (_SELF);
|
1190
|
+
return self;
|
1191
|
+
}
|
1192
|
+
|
1193
|
+
static VALUE
|
1194
|
+
cr_set_font_matrix (VALUE self, VALUE matrix)
|
1195
|
+
{
|
1196
|
+
cairo_set_font_matrix (_SELF, RVAL2CRMATRIX (matrix));
|
1197
|
+
cr_check_status (_SELF);
|
1198
|
+
return self;
|
1199
|
+
}
|
1200
|
+
|
1201
|
+
static VALUE
|
1202
|
+
cr_get_font_matrix (VALUE self)
|
1203
|
+
{
|
1204
|
+
cairo_matrix_t matrix;
|
1205
|
+
cairo_get_font_matrix (_SELF, &matrix);
|
1206
|
+
cr_check_status (_SELF);
|
1207
|
+
return CRMATRIX2RVAL (&matrix);
|
1208
|
+
}
|
1209
|
+
|
1210
|
+
static VALUE
|
1211
|
+
cr_set_font_options (VALUE self, VALUE options)
|
1212
|
+
{
|
1213
|
+
cairo_set_font_options (_SELF, RVAL2CRFONTOPTIONS (options));
|
1214
|
+
cr_check_status (_SELF);
|
1215
|
+
return self;
|
1216
|
+
}
|
1217
|
+
|
1218
|
+
static VALUE
|
1219
|
+
cr_get_font_options (VALUE self)
|
1220
|
+
{
|
1221
|
+
cairo_font_options_t *options = cairo_font_options_create ();
|
1222
|
+
rb_cairo_check_status (cairo_font_options_status (options));
|
1223
|
+
cairo_get_font_options (_SELF, options);
|
1224
|
+
rb_cairo_check_status (cairo_font_options_status (options));
|
1225
|
+
return CRFONTOPTIONS2RVAL (options);
|
1226
|
+
}
|
1227
|
+
|
1228
|
+
static VALUE
|
1229
|
+
cr_set_scaled_font (VALUE self, VALUE scaled_font)
|
1230
|
+
{
|
1231
|
+
cairo_set_scaled_font (_SELF, RVAL2CRSCALEDFONT (scaled_font));
|
1232
|
+
cr_check_status (_SELF);
|
1233
|
+
return self;
|
1234
|
+
}
|
1235
|
+
|
1236
|
+
#if CAIRO_CHECK_VERSION(1, 3, 16)
|
1237
|
+
static VALUE
|
1238
|
+
cr_get_scaled_font (VALUE self)
|
1239
|
+
{
|
1240
|
+
return CRSCALEDFONT2RVAL (cairo_get_scaled_font (_SELF));
|
1241
|
+
}
|
1242
|
+
#endif
|
1243
|
+
|
1244
|
+
static VALUE
|
1245
|
+
cr_show_text (VALUE self, VALUE utf8)
|
1246
|
+
{
|
1247
|
+
cairo_show_text (_SELF, RVAL2CSTR (utf8));
|
1248
|
+
cr_check_status (_SELF);
|
1249
|
+
return self;
|
1250
|
+
}
|
1251
|
+
|
1252
|
+
static VALUE
|
1253
|
+
cr_show_glyphs (VALUE self, VALUE rb_glyphs)
|
1254
|
+
{
|
1255
|
+
int count;
|
1256
|
+
cairo_glyph_t *glyphs;
|
1257
|
+
|
1258
|
+
RB_CAIRO__GLYPHS_TO_ARRAY (rb_glyphs, glyphs, count);
|
1259
|
+
cairo_show_glyphs (_SELF, glyphs, count);
|
1260
|
+
cr_check_status (_SELF);
|
1261
|
+
return self;
|
1262
|
+
}
|
1263
|
+
|
1264
|
+
#if CAIRO_CHECK_VERSION(1, 8, 0)
|
1265
|
+
static VALUE
|
1266
|
+
cr_show_text_glyphs (VALUE self, VALUE rb_utf8, VALUE rb_glyphs,
|
1267
|
+
VALUE rb_clusters, VALUE rb_cluster_flags)
|
1268
|
+
{
|
1269
|
+
cairo_t *cr;
|
1270
|
+
const char *utf8;
|
1271
|
+
int utf8_len;
|
1272
|
+
cairo_glyph_t *glyphs = NULL;
|
1273
|
+
int num_glyphs = 0;
|
1274
|
+
cairo_text_cluster_t *clusters = NULL;
|
1275
|
+
int num_clusters = 0;
|
1276
|
+
cairo_text_cluster_flags_t cluster_flags;
|
1277
|
+
|
1278
|
+
cr = _SELF;
|
1279
|
+
utf8 = RSTRING_PTR (rb_utf8);
|
1280
|
+
utf8_len = RSTRING_LEN (rb_utf8);
|
1281
|
+
rb_cairo__glyphs_from_ruby_object (rb_glyphs, &glyphs, &num_glyphs);
|
1282
|
+
rb_cairo__text_clusters_from_ruby_object (rb_clusters,
|
1283
|
+
&clusters, &num_clusters);
|
1284
|
+
cluster_flags = RVAL2CRTEXTCLUSTERFLAGS (rb_cluster_flags);
|
1285
|
+
cairo_show_text_glyphs (cr, utf8, utf8_len,
|
1286
|
+
glyphs, num_glyphs,
|
1287
|
+
clusters, num_clusters,
|
1288
|
+
cluster_flags);
|
1289
|
+
if (glyphs)
|
1290
|
+
cairo_glyph_free (glyphs);
|
1291
|
+
if (clusters)
|
1292
|
+
cairo_text_cluster_free (clusters);
|
1293
|
+
|
1294
|
+
return self;
|
1295
|
+
}
|
1296
|
+
#endif
|
1297
|
+
|
1298
|
+
static VALUE
|
1299
|
+
cr_get_font_face (VALUE self)
|
1300
|
+
{
|
1301
|
+
cairo_font_face_t *face;
|
1302
|
+
|
1303
|
+
face = cairo_get_font_face (_SELF);
|
1304
|
+
rb_cairo_check_status (cairo_font_face_status (face));
|
1305
|
+
return CRFONTFACE2RVAL (face);
|
1306
|
+
}
|
1307
|
+
|
1308
|
+
static VALUE
|
1309
|
+
cr_font_extents (VALUE self)
|
1310
|
+
{
|
1311
|
+
cairo_font_extents_t extents;
|
1312
|
+
cairo_font_extents (_SELF, &extents);
|
1313
|
+
cr_check_status (_SELF);
|
1314
|
+
return CRFONTEXTENTS2RVAL (&extents);
|
1315
|
+
}
|
1316
|
+
|
1317
|
+
static VALUE
|
1318
|
+
cr_set_font_face (VALUE self, VALUE face)
|
1319
|
+
{
|
1320
|
+
cairo_set_font_face (_SELF, NIL_P (face) ? NULL : RVAL2CRFONTFACE (face));
|
1321
|
+
cr_check_status (_SELF);
|
1322
|
+
return self;
|
1323
|
+
}
|
1324
|
+
|
1325
|
+
static VALUE
|
1326
|
+
cr_text_extents (VALUE self, VALUE utf8)
|
1327
|
+
{
|
1328
|
+
cairo_text_extents_t extents;
|
1329
|
+
cairo_text_extents (_SELF, StringValuePtr (utf8), &extents);
|
1330
|
+
cr_check_status (_SELF);
|
1331
|
+
return CRTEXTEXTENTS2RVAL (&extents);
|
1332
|
+
}
|
1333
|
+
|
1334
|
+
static VALUE
|
1335
|
+
cr_glyph_extents (VALUE self, VALUE rb_glyphs)
|
1336
|
+
{
|
1337
|
+
cairo_text_extents_t extents;
|
1338
|
+
cairo_glyph_t *glyphs;
|
1339
|
+
int length;
|
1340
|
+
|
1341
|
+
RB_CAIRO__GLYPHS_TO_ARRAY (rb_glyphs, glyphs, length);
|
1342
|
+
cairo_glyph_extents (_SELF, glyphs, length, &extents);
|
1343
|
+
cr_check_status (_SELF);
|
1344
|
+
return CRTEXTEXTENTS2RVAL (&extents);
|
1345
|
+
}
|
1346
|
+
|
1347
|
+
static VALUE
|
1348
|
+
cr_text_path (VALUE self, VALUE utf8)
|
1349
|
+
{
|
1350
|
+
cairo_text_path (_SELF, StringValuePtr (utf8));
|
1351
|
+
cr_check_status (_SELF);
|
1352
|
+
return self;
|
1353
|
+
}
|
1354
|
+
|
1355
|
+
static VALUE
|
1356
|
+
cr_glyph_path (VALUE self, VALUE rb_glyphs)
|
1357
|
+
{
|
1358
|
+
int count;
|
1359
|
+
cairo_glyph_t *glyphs;
|
1360
|
+
|
1361
|
+
RB_CAIRO__GLYPHS_TO_ARRAY (rb_glyphs, glyphs, count);
|
1362
|
+
cairo_glyph_path (_SELF, glyphs, count);
|
1363
|
+
cr_check_status (_SELF);
|
1364
|
+
|
1365
|
+
return self;
|
1366
|
+
}
|
1367
|
+
|
1368
|
+
/* Query functions */
|
1369
|
+
static VALUE
|
1370
|
+
cr_get_operator (VALUE self)
|
1371
|
+
{
|
1372
|
+
return INT2FIX (cairo_get_operator (_SELF));
|
1373
|
+
}
|
1374
|
+
|
1375
|
+
static VALUE
|
1376
|
+
cr_get_source (VALUE self)
|
1377
|
+
{
|
1378
|
+
VALUE rb_source = Qnil;
|
1379
|
+
cairo_pattern_t *source;
|
1380
|
+
source = cairo_get_source (_SELF);
|
1381
|
+
|
1382
|
+
if (source)
|
1383
|
+
{
|
1384
|
+
rb_cairo_check_status (cairo_pattern_status (source));
|
1385
|
+
rb_source = rb_ivar_get (self, cr_id_source);
|
1386
|
+
if (NIL_P (rb_source) || RVAL2CRPATTERN (rb_source) != source)
|
1387
|
+
{
|
1388
|
+
rb_source = CRPATTERN2RVAL (source);
|
1389
|
+
rb_ivar_set (self, cr_id_source, rb_source);
|
1390
|
+
}
|
1391
|
+
}
|
1392
|
+
else
|
1393
|
+
{
|
1394
|
+
rb_source = Qnil;
|
1395
|
+
rb_ivar_set (self, cr_id_source, rb_source);
|
1396
|
+
}
|
1397
|
+
|
1398
|
+
return rb_source;
|
1399
|
+
}
|
1400
|
+
|
1401
|
+
static VALUE
|
1402
|
+
cr_get_tolerance (VALUE self)
|
1403
|
+
{
|
1404
|
+
return rb_float_new (cairo_get_tolerance (_SELF));
|
1405
|
+
}
|
1406
|
+
|
1407
|
+
static VALUE
|
1408
|
+
cr_get_antialias(VALUE self)
|
1409
|
+
{
|
1410
|
+
return INT2NUM (cairo_get_antialias (_SELF));
|
1411
|
+
}
|
1412
|
+
|
1413
|
+
#if CAIRO_CHECK_VERSION(1, 5, 10)
|
1414
|
+
static VALUE
|
1415
|
+
cr_has_current_point(VALUE self)
|
1416
|
+
{
|
1417
|
+
return RTEST (cairo_has_current_point (_SELF));
|
1418
|
+
}
|
1419
|
+
#endif
|
1420
|
+
|
1421
|
+
static VALUE
|
1422
|
+
cr_get_current_point (VALUE self)
|
1423
|
+
{
|
1424
|
+
double point[2];
|
1425
|
+
cairo_get_current_point (_SELF, point, point + 1);
|
1426
|
+
return rb_cairo__float_array (point, 2);
|
1427
|
+
}
|
1428
|
+
|
1429
|
+
static VALUE
|
1430
|
+
cr_get_fill_rule (VALUE self)
|
1431
|
+
{
|
1432
|
+
return INT2FIX (cairo_get_fill_rule (_SELF));
|
1433
|
+
}
|
1434
|
+
|
1435
|
+
static VALUE
|
1436
|
+
cr_get_line_width (VALUE self)
|
1437
|
+
{
|
1438
|
+
return rb_float_new (cairo_get_line_width (_SELF));
|
1439
|
+
}
|
1440
|
+
|
1441
|
+
static VALUE
|
1442
|
+
cr_get_line_cap (VALUE self)
|
1443
|
+
{
|
1444
|
+
return INT2FIX (cairo_get_line_cap (_SELF));
|
1445
|
+
}
|
1446
|
+
|
1447
|
+
static VALUE
|
1448
|
+
cr_get_line_join (VALUE self)
|
1449
|
+
{
|
1450
|
+
return INT2FIX (cairo_get_line_join (_SELF));
|
1451
|
+
}
|
1452
|
+
|
1453
|
+
static VALUE
|
1454
|
+
cr_get_miter_limit (VALUE self)
|
1455
|
+
{
|
1456
|
+
return rb_float_new (cairo_get_miter_limit (_SELF));
|
1457
|
+
}
|
1458
|
+
|
1459
|
+
#if CAIRO_CHECK_VERSION(1, 3, 0)
|
1460
|
+
static VALUE
|
1461
|
+
cr_get_dash_count (VALUE self)
|
1462
|
+
{
|
1463
|
+
return INT2NUM (cairo_get_dash_count (_SELF));
|
1464
|
+
}
|
1465
|
+
|
1466
|
+
static VALUE
|
1467
|
+
cr_get_dash (VALUE self)
|
1468
|
+
{
|
1469
|
+
int count;
|
1470
|
+
double *dashes, offset;
|
1471
|
+
|
1472
|
+
count = cairo_get_dash_count (_SELF);
|
1473
|
+
dashes = ALLOCA_N (double, count);
|
1474
|
+
cairo_get_dash (_SELF, dashes, &offset);
|
1475
|
+
|
1476
|
+
return rb_ary_new3 (2,
|
1477
|
+
rb_cairo__float_array (dashes, count),
|
1478
|
+
rb_float_new (offset));
|
1479
|
+
}
|
1480
|
+
#endif
|
1481
|
+
|
1482
|
+
static VALUE
|
1483
|
+
cr_get_matrix (VALUE self)
|
1484
|
+
{
|
1485
|
+
cairo_matrix_t matrix;
|
1486
|
+
cairo_get_matrix (_SELF, &matrix);
|
1487
|
+
cr_check_status (_SELF);
|
1488
|
+
return CRMATRIX2RVAL (&matrix);
|
1489
|
+
}
|
1490
|
+
|
1491
|
+
static VALUE
|
1492
|
+
cr_get_target (VALUE self)
|
1493
|
+
{
|
1494
|
+
cairo_surface_t *surface;
|
1495
|
+
VALUE rb_surface = Qnil;
|
1496
|
+
|
1497
|
+
surface = cairo_get_target (_SELF);
|
1498
|
+
rb_cairo_check_status (cairo_surface_status (surface));
|
1499
|
+
|
1500
|
+
if (RTEST (rb_ivar_defined (self, cr_id_surface)))
|
1501
|
+
rb_surface = rb_ivar_get (self, cr_id_surface);
|
1502
|
+
if (NIL_P (rb_surface) || RVAL2CRSURFACE (rb_surface) != surface)
|
1503
|
+
{
|
1504
|
+
rb_surface = CRSURFACE2RVAL (surface);
|
1505
|
+
rb_ivar_set (self, cr_id_surface, rb_surface);
|
1506
|
+
}
|
1507
|
+
|
1508
|
+
return rb_surface;
|
1509
|
+
}
|
1510
|
+
|
1511
|
+
static VALUE
|
1512
|
+
cr_get_group_target (VALUE self)
|
1513
|
+
{
|
1514
|
+
cairo_surface_t *surface;
|
1515
|
+
|
1516
|
+
surface = cairo_get_group_target (_SELF);
|
1517
|
+
if (!surface)
|
1518
|
+
return Qnil;
|
1519
|
+
rb_cairo_check_status (cairo_surface_status (surface));
|
1520
|
+
return CRSURFACE2RVAL (surface);
|
1521
|
+
}
|
1522
|
+
|
1523
|
+
/* Paths */
|
1524
|
+
static VALUE
|
1525
|
+
cr_copy_path (VALUE self)
|
1526
|
+
{
|
1527
|
+
cairo_path_t *path;
|
1528
|
+
|
1529
|
+
path = cairo_copy_path (_SELF);
|
1530
|
+
rb_cairo_check_status (path->status);
|
1531
|
+
return CRPATH2RVAL (path);
|
1532
|
+
}
|
1533
|
+
|
1534
|
+
static VALUE
|
1535
|
+
cr_copy_path_flat (VALUE self)
|
1536
|
+
{
|
1537
|
+
cairo_path_t *path;
|
1538
|
+
|
1539
|
+
path = cairo_copy_path_flat (_SELF);
|
1540
|
+
rb_cairo_check_status (path->status);
|
1541
|
+
return CRPATH2RVAL (path);
|
1542
|
+
}
|
1543
|
+
|
1544
|
+
static VALUE
|
1545
|
+
cr_copy_append_path (VALUE self, VALUE path)
|
1546
|
+
{
|
1547
|
+
cairo_append_path (_SELF, RVAL2CRPATH (path));
|
1548
|
+
cr_check_status (_SELF);
|
1549
|
+
return self;
|
1550
|
+
}
|
1551
|
+
|
1552
|
+
static int
|
1553
|
+
cr_destroy_all_guarded_contexts_at_end_iter (VALUE key, VALUE value, VALUE data)
|
1554
|
+
{
|
1555
|
+
cr_destroy (key);
|
1556
|
+
return ST_CONTINUE;
|
1557
|
+
}
|
1558
|
+
|
1559
|
+
static void
|
1560
|
+
cr_destroy_all_guarded_contexts_at_end (VALUE data)
|
1561
|
+
{
|
1562
|
+
rb_hash_foreach (rb_cairo__gc_guarded_objects (rb_cCairo_Context),
|
1563
|
+
cr_destroy_all_guarded_contexts_at_end_iter,
|
1564
|
+
Qnil);
|
1565
|
+
}
|
1566
|
+
|
1567
|
+
void
|
1568
|
+
Init_cairo_context (void)
|
1569
|
+
{
|
1570
|
+
cr_id_surface = rb_intern ("surface");
|
1571
|
+
cr_id_source = rb_intern ("source");
|
1572
|
+
|
1573
|
+
cr_id_plus = rb_intern ("+");
|
1574
|
+
cr_id_minus = rb_intern ("-");
|
1575
|
+
cr_id_multi = rb_intern ("*");
|
1576
|
+
cr_id_div = rb_intern ("/");
|
1577
|
+
|
1578
|
+
rb_cCairo_Context =
|
1579
|
+
rb_define_class_under (rb_mCairo, "Context", rb_cObject);
|
1580
|
+
|
1581
|
+
rb_define_alloc_func (rb_cCairo_Context, cr_allocate);
|
1582
|
+
|
1583
|
+
rb_cairo__initialize_gc_guard_holder_class (rb_cCairo_Context);
|
1584
|
+
rb_set_end_proc(cr_destroy_all_guarded_contexts_at_end, Qnil);
|
1585
|
+
|
1586
|
+
/* For integrate other libraries such as a FFI based library. */
|
1587
|
+
rb_define_singleton_method (rb_cCairo_Context, "wrap", cr_s_wrap, 1);
|
1588
|
+
|
1589
|
+
/* Functions for manipulating state objects */
|
1590
|
+
rb_define_method (rb_cCairo_Context, "initialize", cr_initialize, 1);
|
1591
|
+
rb_define_method (rb_cCairo_Context, "destroy", cr_destroy, 0);
|
1592
|
+
|
1593
|
+
rb_define_method (rb_cCairo_Context, "save", cr_save, 0);
|
1594
|
+
rb_define_method (rb_cCairo_Context, "restore", cr_restore, 0);
|
1595
|
+
rb_define_method (rb_cCairo_Context, "push_group", cr_push_group, -1);
|
1596
|
+
rb_define_method (rb_cCairo_Context, "pop_group", cr_pop_group_generic, -1);
|
1597
|
+
rb_define_method (rb_cCairo_Context, "pop_group_to_source",
|
1598
|
+
cr_pop_group_to_source, 0);
|
1599
|
+
|
1600
|
+
/* Modify state */
|
1601
|
+
rb_define_method (rb_cCairo_Context, "set_operator", cr_set_operator, 1);
|
1602
|
+
rb_define_method (rb_cCairo_Context, "set_source", cr_set_source_generic, -1);
|
1603
|
+
rb_define_method (rb_cCairo_Context, "set_source_rgb",
|
1604
|
+
cr_set_source_rgb, -1);
|
1605
|
+
rb_define_method (rb_cCairo_Context, "set_source_rgba",
|
1606
|
+
cr_set_source_rgba, -1);
|
1607
|
+
rb_define_method (rb_cCairo_Context, "set_tolerance", cr_set_tolerance, 1);
|
1608
|
+
rb_define_method (rb_cCairo_Context, "set_antialias", cr_set_antialias, 1);
|
1609
|
+
rb_define_method (rb_cCairo_Context, "set_fill_rule", cr_set_fill_rule, 1);
|
1610
|
+
rb_define_method (rb_cCairo_Context, "set_line_width", cr_set_line_width, 1);
|
1611
|
+
rb_define_method (rb_cCairo_Context, "set_line_cap", cr_set_line_cap, 1);
|
1612
|
+
rb_define_method (rb_cCairo_Context, "set_line_join", cr_set_line_join, 1);
|
1613
|
+
rb_define_method (rb_cCairo_Context, "set_dash", cr_set_dash, -1);
|
1614
|
+
rb_define_method (rb_cCairo_Context, "set_miter_limit",
|
1615
|
+
cr_set_miter_limit, 1);
|
1616
|
+
|
1617
|
+
rb_define_method (rb_cCairo_Context, "translate", cr_translate, 2);
|
1618
|
+
rb_define_method (rb_cCairo_Context, "scale", cr_scale, 2);
|
1619
|
+
rb_define_method (rb_cCairo_Context, "rotate", cr_rotate, 1);
|
1620
|
+
rb_define_method (rb_cCairo_Context, "transform", cr_transform, 1);
|
1621
|
+
|
1622
|
+
rb_define_method (rb_cCairo_Context, "set_matrix", cr_set_matrix, 1);
|
1623
|
+
rb_define_method (rb_cCairo_Context, "identity_matrix",
|
1624
|
+
cr_identity_matrix, 0);
|
1625
|
+
rb_define_method (rb_cCairo_Context, "user_to_device", cr_user_to_device, 2);
|
1626
|
+
rb_define_method (rb_cCairo_Context, "user_to_device_distance",
|
1627
|
+
cr_user_to_device_distance, 2);
|
1628
|
+
rb_define_method (rb_cCairo_Context, "device_to_user", cr_device_to_user, 2);
|
1629
|
+
rb_define_method (rb_cCairo_Context, "device_to_user_distance",
|
1630
|
+
cr_device_to_user_distance, 2);
|
1631
|
+
|
1632
|
+
/* Path creation functions */
|
1633
|
+
rb_define_method (rb_cCairo_Context, "new_path", cr_new_path, 0);
|
1634
|
+
rb_define_method (rb_cCairo_Context, "move_to", cr_move_to, 2);
|
1635
|
+
rb_define_method (rb_cCairo_Context, "new_sub_path", cr_new_sub_path, 0);
|
1636
|
+
rb_define_method (rb_cCairo_Context, "line_to", cr_line_to, 2);
|
1637
|
+
rb_define_method (rb_cCairo_Context, "curve_to", cr_curve_to_generic, -1);
|
1638
|
+
rb_define_method (rb_cCairo_Context, "arc", cr_arc, 5);
|
1639
|
+
rb_define_method (rb_cCairo_Context, "arc_negative", cr_arc_negative, 5);
|
1640
|
+
rb_define_method (rb_cCairo_Context, "rel_move_to", cr_rel_move_to, 2);
|
1641
|
+
rb_define_method (rb_cCairo_Context, "rel_line_to", cr_rel_line_to, 2);
|
1642
|
+
rb_define_method (rb_cCairo_Context, "rel_curve_to",
|
1643
|
+
cr_rel_curve_to_generic, -1);
|
1644
|
+
rb_define_method (rb_cCairo_Context, "rectangle", cr_rectangle, 4);
|
1645
|
+
rb_define_method (rb_cCairo_Context, "close_path", cr_close_path, 0);
|
1646
|
+
#if CAIRO_CHECK_VERSION(1, 5, 8)
|
1647
|
+
rb_define_method (rb_cCairo_Context, "path_extents", cr_path_extents, 0);
|
1648
|
+
#endif
|
1649
|
+
|
1650
|
+
/* Painting functions */
|
1651
|
+
rb_define_method (rb_cCairo_Context, "paint", cr_paint_generic, -1);
|
1652
|
+
rb_define_method (rb_cCairo_Context, "mask", cr_mask_generic, -1);
|
1653
|
+
rb_define_method (rb_cCairo_Context, "stroke", cr_stroke, -1);
|
1654
|
+
rb_define_method (rb_cCairo_Context, "fill", cr_fill, -1);
|
1655
|
+
rb_define_method (rb_cCairo_Context, "copy_page", cr_copy_page, 0);
|
1656
|
+
rb_define_method (rb_cCairo_Context, "show_page", cr_show_page, 0);
|
1657
|
+
|
1658
|
+
/* Insideness testing */
|
1659
|
+
rb_define_method (rb_cCairo_Context, "in_stroke?", cr_in_stroke, 2);
|
1660
|
+
rb_define_method (rb_cCairo_Context, "in_fill?", cr_in_fill, 2);
|
1661
|
+
#if CAIRO_CHECK_VERSION(1, 10, 0)
|
1662
|
+
rb_define_method (rb_cCairo_Context, "in_clip?", cr_in_clip, 2);
|
1663
|
+
#endif
|
1664
|
+
|
1665
|
+
/* Rectangular extents */
|
1666
|
+
rb_define_method (rb_cCairo_Context, "stroke_extents", cr_stroke_extents, 0);
|
1667
|
+
rb_define_method (rb_cCairo_Context, "fill_extents", cr_fill_extents, 0);
|
1668
|
+
|
1669
|
+
/* Clipping */
|
1670
|
+
rb_define_method (rb_cCairo_Context, "reset_clip", cr_reset_clip, 0);
|
1671
|
+
rb_define_method (rb_cCairo_Context, "clip", cr_clip, -1);
|
1672
|
+
#if CAIRO_CHECK_VERSION(1, 3, 0)
|
1673
|
+
rb_define_method (rb_cCairo_Context, "clip_extents", cr_clip_extents, 0);
|
1674
|
+
rb_define_method (rb_cCairo_Context, "clip_rectangle_list",
|
1675
|
+
cr_clip_rectangle_list, 0);
|
1676
|
+
#endif
|
1677
|
+
|
1678
|
+
/* Font/Text functions */
|
1679
|
+
rb_define_method (rb_cCairo_Context, "select_font_face",
|
1680
|
+
cr_select_font_face, -1);
|
1681
|
+
rb_define_method (rb_cCairo_Context, "set_font_size", cr_set_font_size, 1);
|
1682
|
+
rb_define_method (rb_cCairo_Context, "set_font_matrix",
|
1683
|
+
cr_set_font_matrix, 1);
|
1684
|
+
rb_define_method (rb_cCairo_Context, "font_matrix", cr_get_font_matrix, 0);
|
1685
|
+
rb_define_method (rb_cCairo_Context, "set_font_options",
|
1686
|
+
cr_set_font_options, 1);
|
1687
|
+
rb_define_method (rb_cCairo_Context, "font_options", cr_get_font_options, 0);
|
1688
|
+
rb_define_method (rb_cCairo_Context, "set_font_face", cr_set_font_face, 1);
|
1689
|
+
rb_define_method (rb_cCairo_Context, "font_face", cr_get_font_face, 0);
|
1690
|
+
rb_define_method (rb_cCairo_Context, "set_scaled_font",
|
1691
|
+
cr_set_scaled_font, 1);
|
1692
|
+
#if CAIRO_CHECK_VERSION(1, 3, 16)
|
1693
|
+
rb_define_method (rb_cCairo_Context, "scaled_font", cr_get_scaled_font, 0);
|
1694
|
+
#endif
|
1695
|
+
rb_define_method (rb_cCairo_Context, "show_text", cr_show_text, 1);
|
1696
|
+
rb_define_method (rb_cCairo_Context, "show_glyphs", cr_show_glyphs, 1);
|
1697
|
+
#if CAIRO_CHECK_VERSION(1, 8, 0)
|
1698
|
+
rb_define_method (rb_cCairo_Context, "show_text_glyphs",
|
1699
|
+
cr_show_text_glyphs, 4);
|
1700
|
+
#endif
|
1701
|
+
rb_define_method (rb_cCairo_Context, "text_path", cr_text_path, 1);
|
1702
|
+
rb_define_method (rb_cCairo_Context, "glyph_path", cr_glyph_path, 1);
|
1703
|
+
rb_define_method (rb_cCairo_Context, "text_extents", cr_text_extents, 1);
|
1704
|
+
rb_define_method (rb_cCairo_Context, "glyph_extents", cr_glyph_extents, 1);
|
1705
|
+
rb_define_method (rb_cCairo_Context, "font_extents", cr_font_extents, 0);
|
1706
|
+
|
1707
|
+
/* Query functions */
|
1708
|
+
rb_define_method (rb_cCairo_Context, "operator", cr_get_operator, 0);
|
1709
|
+
rb_define_method (rb_cCairo_Context, "source", cr_get_source, 0);
|
1710
|
+
rb_define_method (rb_cCairo_Context, "tolerance", cr_get_tolerance, 0);
|
1711
|
+
rb_define_method (rb_cCairo_Context, "antialias", cr_get_antialias, 0);
|
1712
|
+
#if CAIRO_CHECK_VERSION(1, 5, 10)
|
1713
|
+
rb_define_method (rb_cCairo_Context, "have_current_point?",
|
1714
|
+
cr_has_current_point, 0);
|
1715
|
+
rb_define_alias (rb_cCairo_Context,
|
1716
|
+
"has_current_point?", "have_current_point?");
|
1717
|
+
#endif
|
1718
|
+
rb_define_method (rb_cCairo_Context, "current_point",
|
1719
|
+
cr_get_current_point, 0);
|
1720
|
+
rb_define_method (rb_cCairo_Context, "fill_rule", cr_get_fill_rule, 0);
|
1721
|
+
rb_define_method (rb_cCairo_Context, "line_width", cr_get_line_width, 0);
|
1722
|
+
rb_define_method (rb_cCairo_Context, "line_cap", cr_get_line_cap, 0);
|
1723
|
+
rb_define_method (rb_cCairo_Context, "line_join", cr_get_line_join, 0);
|
1724
|
+
rb_define_method (rb_cCairo_Context, "miter_limit", cr_get_miter_limit, 0);
|
1725
|
+
#if CAIRO_CHECK_VERSION(1, 3, 0)
|
1726
|
+
rb_define_method (rb_cCairo_Context, "dash_count", cr_get_dash_count, 0);
|
1727
|
+
rb_define_method (rb_cCairo_Context, "dash", cr_get_dash, 0);
|
1728
|
+
#endif
|
1729
|
+
rb_define_method (rb_cCairo_Context, "matrix", cr_get_matrix, 0);
|
1730
|
+
rb_define_method (rb_cCairo_Context, "target", cr_get_target, 0);
|
1731
|
+
rb_define_method (rb_cCairo_Context, "group_target", cr_get_group_target, 0);
|
1732
|
+
|
1733
|
+
/* Paths */
|
1734
|
+
rb_define_method (rb_cCairo_Context, "copy_path", cr_copy_path, 0);
|
1735
|
+
rb_define_method (rb_cCairo_Context, "copy_path_flat", cr_copy_path_flat, 0);
|
1736
|
+
rb_define_method (rb_cCairo_Context, "append_path", cr_copy_append_path, 1);
|
1737
|
+
|
1738
|
+
rb_define_method (rb_cCairo_Context, "to_ptr", cr_to_ptr, 0);
|
1739
|
+
|
1740
|
+
RB_CAIRO_DEF_SETTERS (rb_cCairo_Context);
|
1741
|
+
}
|