cairo 1.6.1-x86-mswin32 → 1.7.0-x86-mswin32
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.
- data/ChangeLog +285 -0
- data/NEWS +33 -0
- data/README +15 -4
- data/Rakefile +3 -0
- data/cairo/bin/libcairo-2.dll +0 -0
- data/cairo/bin/libpng12-0.dll +0 -0
- data/cairo/include/{libpng13/png.h → png.h} +285 -135
- data/cairo/include/{libpng13/pngconf.h → pngconf.h} +116 -72
- data/cairo/lib/cairo.lib +0 -0
- data/cairo/lib/libcairo.dll.a +0 -0
- data/cairo/lib/libpng.def +361 -371
- data/cairo/lib/libpng.lib +0 -0
- data/cairo/lib/libpng12.dll.a +0 -0
- data/cairo/lib/pkgconfig/cairo-pdf.pc +1 -1
- data/cairo/lib/pkgconfig/cairo-png.pc +2 -2
- data/cairo/lib/pkgconfig/cairo-ps.pc +1 -1
- data/cairo/lib/pkgconfig/cairo-svg.pc +1 -1
- data/cairo/lib/pkgconfig/cairo-win32-font.pc +1 -1
- data/cairo/lib/pkgconfig/cairo-win32.pc +1 -1
- data/cairo/lib/pkgconfig/cairo.pc +2 -2
- data/cairo/lib/pkgconfig/libpng.pc +10 -14
- data/cairo/lib/pkgconfig/libpng12.pc +10 -0
- data/cairo/make/{cairo-1.6.4-1.sh → cairo-1.6.4-2.sh} +3 -3
- data/cairo/make/libpng-1.2.29.sh +35 -0
- data/cairo/manifest/cairo-1.6.4-2.mft +6 -0
- data/cairo/manifest/{cairo-dev-1.6.4-1.mft → cairo-dev-1.6.4-2.mft} +2 -2
- data/cairo/manifest/libpng-1.2.29.mft +2 -0
- data/cairo/manifest/libpng-dev-1.2.29.mft +12 -0
- data/cairo/share/doc/{cairo-1.6.4-1 → cairo-1.6.4-2}/COPYING +0 -0
- data/cairo/share/doc/{cairo-1.6.4-1 → cairo-1.6.4-2}/COPYING-LGPL-2.1 +0 -0
- data/cairo/share/doc/{cairo-1.6.4-1 → cairo-1.6.4-2}/COPYING-MPL-1.1 +0 -0
- data/cairo/share/man/man3/libpng.3 +3680 -0
- data/cairo/share/man/man3/libpngpf.3 +274 -0
- data/cairo/share/man/man5/png.5 +74 -0
- data/doc/en/cairo-antialias.html +0 -3
- data/doc/en/cairo-clip-not-representable-error.html +0 -3
- data/doc/en/cairo-color-base.html +0 -3
- data/doc/en/cairo-color-cmyk.html +0 -3
- data/doc/en/cairo-color-hsv.html +0 -3
- data/doc/en/cairo-color-rgb.html +0 -3
- data/doc/en/cairo-color-x11.html +0 -3
- data/doc/en/cairo-color.html +0 -3
- data/doc/en/cairo-content.html +0 -3
- data/doc/en/cairo-context-blur.html +0 -3
- data/doc/en/cairo-context-circle.html +0 -3
- data/doc/en/cairo-context-color.html +0 -3
- data/doc/en/cairo-context-path.html +0 -3
- data/doc/en/cairo-context-rectangle.html +0 -3
- data/doc/en/cairo-context-triangle.html +0 -3
- data/doc/en/cairo-context.html +119 -102
- data/doc/en/cairo-error.html +0 -3
- data/doc/en/cairo-extend.html +0 -3
- data/doc/en/cairo-file-not-found.html +0 -3
- data/doc/en/cairo-fill-rule.html +0 -3
- data/doc/en/cairo-filter.html +0 -3
- data/doc/en/cairo-font-extents.html +67 -12
- data/doc/en/cairo-font-face.html +0 -3
- data/doc/en/cairo-font-options.html +26 -14
- data/doc/en/cairo-font-slant.html +0 -3
- data/doc/en/cairo-font-type-mismatch.html +47 -0
- data/doc/en/cairo-font-weight.html +0 -3
- data/doc/en/cairo-format.html +0 -3
- data/doc/en/cairo-glyph.html +0 -3
- data/doc/en/cairo-gradient-pattern.html +0 -3
- data/doc/en/cairo-hint-metrics.html +0 -3
- data/doc/en/cairo-hint-style.html +0 -3
- data/doc/en/cairo-image-surface.html +0 -3
- data/doc/en/cairo-invalid-clusters.html +47 -0
- data/doc/en/cairo-invalid-content-error.html +0 -3
- data/doc/en/cairo-invalid-dash-error.html +0 -3
- data/doc/en/cairo-invalid-dsc-comment-error.html +0 -3
- data/doc/en/cairo-invalid-format-error.html +0 -3
- data/doc/en/cairo-invalid-index-error.html +0 -3
- data/doc/en/cairo-invalid-matrix-error.html +0 -3
- data/doc/en/cairo-invalid-path-data-error.html +0 -3
- data/doc/en/cairo-invalid-pop-group-error.html +0 -3
- data/doc/en/cairo-invalid-restore-error.html +0 -3
- data/doc/en/cairo-invalid-slant.html +47 -0
- data/doc/en/cairo-invalid-status-error.html +0 -3
- data/doc/en/cairo-invalid-stride-error.html +0 -3
- data/doc/en/cairo-invalid-string-error.html +0 -3
- data/doc/en/cairo-invalid-visual-error.html +0 -3
- data/doc/en/cairo-invalid-weight.html +47 -0
- data/doc/en/cairo-lcd-filter.html +39 -0
- data/doc/en/cairo-line-cap.html +0 -3
- data/doc/en/cairo-line-join.html +0 -3
- data/doc/en/cairo-linear-pattern.html +0 -3
- data/doc/en/cairo-matrix.html +43 -41
- data/doc/en/cairo-negative-count.html +47 -0
- data/doc/en/cairo-no-current-point-error.html +0 -3
- data/doc/en/cairo-null-pointer-error.html +0 -3
- data/doc/en/cairo-operator.html +0 -3
- data/doc/en/cairo-paper-parse-error.html +0 -3
- data/doc/en/cairo-paper-unknown-paper-name.html +0 -3
- data/doc/en/cairo-paper-unknown-unit.html +0 -3
- data/doc/en/cairo-paper-unrecognized-paper-description.html +0 -3
- data/doc/en/cairo-paper.html +0 -3
- data/doc/en/cairo-path-close-path.html +0 -3
- data/doc/en/cairo-path-curve-to.html +0 -3
- data/doc/en/cairo-path-data-type.html +0 -3
- data/doc/en/cairo-path-data.html +0 -3
- data/doc/en/cairo-path-line-to.html +0 -3
- data/doc/en/cairo-path-move-to.html +0 -3
- data/doc/en/cairo-path.html +0 -3
- data/doc/en/cairo-pattern-type-mismatch-error.html +0 -3
- data/doc/en/cairo-pattern.html +0 -3
- data/doc/en/cairo-pdf-surface.html +0 -3
- data/doc/en/cairo-point.html +0 -3
- data/doc/en/cairo-ps-level.html +0 -3
- data/doc/en/cairo-ps-surface.html +0 -3
- data/doc/en/cairo-quartz-image-surface.html +0 -3
- data/doc/en/cairo-quartz-surface.html +0 -3
- data/doc/en/cairo-radial-pattern.html +0 -3
- data/doc/en/cairo-read-error.html +0 -3
- data/doc/en/cairo-rectangle.html +0 -3
- data/doc/en/cairo-scaled-font.html +13 -6
- data/doc/en/cairo-solid-pattern.html +0 -3
- data/doc/en/cairo-subpixel-order.html +0 -3
- data/doc/en/cairo-surface-finished-error.html +0 -3
- data/doc/en/cairo-surface-pattern.html +0 -3
- data/doc/en/cairo-surface-type-mismatch-error.html +0 -3
- data/doc/en/cairo-surface.html +22 -15
- data/doc/en/cairo-svg-surface.html +0 -3
- data/doc/en/cairo-svg-version.html +0 -3
- data/doc/en/cairo-temp-file-error.html +0 -3
- data/doc/en/cairo-text-cluster.html +84 -0
- data/doc/en/cairo-text-extents.html +78 -13
- data/doc/en/cairo-toy-font-face.html +67 -0
- data/doc/en/cairo-user-font-error.html +47 -0
- data/doc/en/cairo-user-font-face-text-to-glyphs-data.html +94 -0
- data/doc/en/cairo-user-font-face.html +72 -0
- data/doc/en/cairo-user-font-immutable.html +47 -0
- data/doc/en/cairo-win32-printing-surface.html +0 -3
- data/doc/en/cairo-win32-surface.html +0 -3
- data/doc/en/cairo-write-error.html +0 -3
- data/doc/en/cairo.html +92 -80
- data/doc/en/index.html +327 -240
- data/doc/ja/cairo-clip-not-representable-error.html +1 -1
- data/doc/ja/cairo-color-base.html +1 -1
- data/doc/ja/cairo-color-cmyk.html +9 -9
- data/doc/ja/cairo-color-hsv.html +8 -8
- data/doc/ja/cairo-color-rgb.html +9 -9
- data/doc/ja/cairo-color.html +8 -8
- data/doc/ja/cairo-context-circle.html +1 -1
- data/doc/ja/cairo-context-color.html +1 -1
- data/doc/ja/cairo-context-path.html +2 -2
- data/doc/ja/cairo-context.html +435 -342
- data/doc/ja/cairo-font-extents.html +69 -15
- data/doc/ja/cairo-font-face.html +3 -3
- data/doc/ja/cairo-font-options.html +37 -12
- data/doc/ja/cairo-font-slant.html +1 -1
- data/doc/ja/cairo-font-type-mismatch.html +52 -0
- data/doc/ja/cairo-glyph.html +5 -5
- data/doc/ja/cairo-gradient-pattern.html +6 -6
- data/doc/ja/cairo-image-surface.html +8 -8
- data/doc/ja/cairo-invalid-clusters.html +55 -0
- data/doc/ja/cairo-invalid-restore-error.html +1 -1
- data/doc/ja/cairo-invalid-slant.html +57 -0
- data/doc/ja/cairo-invalid-weight.html +57 -0
- data/doc/ja/cairo-lcd-filter.html +63 -0
- data/doc/ja/cairo-line-join.html +1 -1
- data/doc/ja/cairo-linear-pattern.html +2 -2
- data/doc/ja/cairo-matrix.html +35 -24
- data/doc/ja/cairo-negative-count.html +52 -0
- data/doc/ja/cairo-paper-unknown-paper-name.html +2 -2
- data/doc/ja/cairo-paper-unknown-unit.html +2 -2
- data/doc/ja/cairo-paper-unrecognized-paper-description.html +1 -1
- data/doc/ja/cairo-paper.html +12 -12
- data/doc/ja/cairo-path-close-path.html +1 -1
- data/doc/ja/cairo-path-curve-to.html +1 -1
- data/doc/ja/cairo-path-data.html +8 -8
- data/doc/ja/cairo-path-line-to.html +1 -1
- data/doc/ja/cairo-path-move-to.html +1 -1
- data/doc/ja/cairo-path.html +21 -21
- data/doc/ja/cairo-pattern.html +4 -4
- data/doc/ja/cairo-pdf-surface.html +2 -2
- data/doc/ja/cairo-point.html +5 -5
- data/doc/ja/cairo-ps-level.html +2 -2
- data/doc/ja/cairo-ps-surface.html +6 -6
- data/doc/ja/cairo-quartz-image-surface.html +2 -2
- data/doc/ja/cairo-quartz-surface.html +3 -3
- data/doc/ja/cairo-radial-pattern.html +2 -2
- data/doc/ja/cairo-rectangle.html +5 -5
- data/doc/ja/cairo-scaled-font.html +53 -17
- data/doc/ja/cairo-solid-pattern.html +3 -3
- data/doc/ja/cairo-surface-pattern.html +2 -2
- data/doc/ja/cairo-surface.html +58 -36
- data/doc/ja/cairo-svg-surface.html +4 -4
- data/doc/ja/cairo-svg-version.html +2 -2
- data/doc/ja/cairo-text-cluster.html +102 -0
- data/doc/ja/cairo-text-extents.html +84 -22
- data/doc/ja/cairo-toy-font-face.html +107 -0
- data/doc/ja/cairo-user-font-error.html +55 -0
- data/doc/ja/cairo-user-font-face-text-to-glyphs-data.html +155 -0
- data/doc/ja/cairo-user-font-face.html +268 -0
- data/doc/ja/cairo-user-font-immutable.html +54 -0
- data/doc/ja/cairo-win32-printing-surface.html +3 -3
- data/doc/ja/cairo-win32-surface.html +4 -4
- data/doc/ja/cairo.html +110 -77
- data/doc/ja/index.html +292 -205
- data/extconf.rb +3 -1
- data/misc/update-colors.rb +0 -0
- data/pkg-config.rb +54 -28
- data/samples/agg/aa_test.rb +0 -0
- data/samples/blur.rb +0 -0
- data/samples/png.rb +0 -0
- data/samples/scalable.rb +0 -0
- data/samples/text-on-path.rb +0 -0
- data/samples/text2.rb +0 -0
- data/src/cairo.def +8 -0
- data/src/cairo.so +0 -0
- data/src/lib/cairo.rb +12 -7
- data/src/lib/cairo/constants.rb +1 -0
- data/src/libruby-cairo.a +0 -0
- data/src/rb_cairo.c +25 -3
- data/src/rb_cairo.h +29 -18
- data/src/rb_cairo_constants.c +39 -10
- data/src/rb_cairo_context.c +156 -15
- data/src/rb_cairo_exception.c +143 -3
- data/src/rb_cairo_font_extents.c +81 -6
- data/src/rb_cairo_font_face.c +646 -4
- data/src/rb_cairo_font_options.c +24 -2
- data/src/rb_cairo_glyph.c +5 -3
- data/src/rb_cairo_matrix.c +17 -1
- data/src/rb_cairo_pattern.c +4 -4
- data/src/rb_cairo_private.c +169 -5
- data/src/rb_cairo_private.h +45 -3
- data/src/rb_cairo_scaled_font.c +61 -3
- data/src/rb_cairo_surface.c +174 -59
- data/src/rb_cairo_text_cluster.c +151 -0
- data/src/rb_cairo_text_extents.c +85 -2
- data/test-unit/Rakefile +30 -0
- data/test-unit/bin/testrb +5 -0
- data/test-unit/lib/test/unit.rb +280 -0
- data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
- data/test-unit/lib/test/unit/assertions.rb +722 -0
- data/test-unit/lib/test/unit/attribute.rb +125 -0
- data/test-unit/lib/test/unit/autorunner.rb +254 -0
- data/test-unit/lib/test/unit/collector.rb +43 -0
- data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
- data/test-unit/lib/test/unit/collector/dir.rb +108 -0
- data/test-unit/lib/test/unit/collector/load.rb +135 -0
- data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
- data/test-unit/lib/test/unit/color.rb +61 -0
- data/test-unit/lib/test/unit/diff.rb +524 -0
- data/test-unit/lib/test/unit/error.rb +124 -0
- data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
- data/test-unit/lib/test/unit/failure.rb +110 -0
- data/test-unit/lib/test/unit/fixture.rb +185 -0
- data/test-unit/lib/test/unit/notification.rb +125 -0
- data/test-unit/lib/test/unit/omission.rb +143 -0
- data/test-unit/lib/test/unit/pending.rb +146 -0
- data/test-unit/lib/test/unit/priority.rb +146 -0
- data/test-unit/lib/test/unit/runner/console.rb +46 -0
- data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
- data/test-unit/lib/test/unit/testcase.rb +281 -0
- data/test-unit/lib/test/unit/testresult.rb +89 -0
- data/test-unit/lib/test/unit/testsuite.rb +110 -0
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +195 -0
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
- data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
- data/test-unit/lib/test/unit/util/observable.rb +90 -0
- data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
- data/test-unit/lib/test/unit/version.rb +7 -0
- data/test-unit/sample/adder.rb +13 -0
- data/test-unit/sample/subtracter.rb +12 -0
- data/test-unit/sample/tc_adder.rb +18 -0
- data/test-unit/sample/tc_subtracter.rb +18 -0
- data/test-unit/sample/ts_examples.rb +7 -0
- data/test-unit/test/collector/test_descendant.rb +135 -0
- data/test-unit/test/collector/test_dir.rb +406 -0
- data/test-unit/test/collector/test_load.rb +333 -0
- data/test-unit/test/collector/test_objectspace.rb +98 -0
- data/test-unit/test/run-test.rb +13 -0
- data/test-unit/test/test_assertions.rb +693 -0
- data/test-unit/test/test_attribute.rb +86 -0
- data/test-unit/test/test_color.rb +37 -0
- data/test-unit/test/test_diff.rb +477 -0
- data/test-unit/test/test_emacs_runner.rb +60 -0
- data/test-unit/test/test_error.rb +26 -0
- data/test-unit/test/test_failure.rb +33 -0
- data/test-unit/test/test_fixture.rb +252 -0
- data/test-unit/test/test_notification.rb +33 -0
- data/test-unit/test/test_omission.rb +81 -0
- data/test-unit/test/test_pending.rb +70 -0
- data/test-unit/test/test_priority.rb +89 -0
- data/test-unit/test/test_testcase.rb +430 -0
- data/test-unit/test/test_testresult.rb +113 -0
- data/test-unit/test/test_testsuite.rb +129 -0
- data/test-unit/test/testunit_test_util.rb +14 -0
- data/test-unit/test/ui/test_testrunmediator.rb +20 -0
- data/test-unit/test/util/test_backtracefilter.rb +41 -0
- data/test-unit/test/util/test_observable.rb +102 -0
- data/test-unit/test/util/test_procwrapper.rb +36 -0
- data/test/cairo-test-utils.rb +18 -0
- data/test/run-test.rb +14 -1
- data/test/test_constants.rb +19 -0
- data/test/test_context.rb +117 -0
- data/test/test_exception.rb +27 -0
- data/test/test_font_extents.rb +36 -0
- data/test/test_font_face.rb +244 -0
- data/test/test_font_options.rb +32 -0
- data/test/test_pkg_config.rb +3 -2
- data/test/test_scaled_font.rb +34 -0
- data/test/test_surface.rb +41 -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 +47 -0
- metadata +129 -109
- data/cairo/bin/libpng13.dll +0 -0
- data/cairo/lib/libpng13.dll.a +0 -0
- data/cairo/lib/pkgconfig/libpng13.pc +0 -14
- data/cairo/manifest/cairo-1.6.4-1.mft +0 -6
- data/cairo/manifest/libpng-dev-1.2.8.mft +0 -7
- data/doc/en/cairo-antialias.rd +0 -16
- data/doc/en/cairo-clip-not-representable-error.rd +0 -17
- data/doc/en/cairo-color-base.rd +0 -38
- data/doc/en/cairo-color-cmyk.rd +0 -107
- data/doc/en/cairo-color-hsv.rd +0 -91
- data/doc/en/cairo-color-rgb.rd +0 -95
- data/doc/en/cairo-color-x11.rd +0 -151
- data/doc/en/cairo-color.rd +0 -213
- data/doc/en/cairo-content.rd +0 -15
- data/doc/en/cairo-context-blur.rd +0 -15
- data/doc/en/cairo-context-circle.rd +0 -15
- data/doc/en/cairo-context-color.rd +0 -15
- data/doc/en/cairo-context-path.rd +0 -19
- data/doc/en/cairo-context-rectangle.rd +0 -15
- data/doc/en/cairo-context-triangle.rd +0 -15
- data/doc/en/cairo-context.rd +0 -491
- data/doc/en/cairo-error.rd +0 -16
- data/doc/en/cairo-extend.rd +0 -16
- data/doc/en/cairo-file-not-found.rd +0 -17
- data/doc/en/cairo-fill-rule.rd +0 -14
- data/doc/en/cairo-filter.rd +0 -18
- data/doc/en/cairo-font-extents.rd +0 -40
- data/doc/en/cairo-font-face.rd +0 -14
- data/doc/en/cairo-font-options.rd +0 -94
- data/doc/en/cairo-font-slant.rd +0 -15
- data/doc/en/cairo-font-weight.rd +0 -14
- data/doc/en/cairo-format.rd +0 -22
- data/doc/en/cairo-glyph.rd +0 -62
- data/doc/en/cairo-gradient-pattern.rd +0 -41
- data/doc/en/cairo-hint-metrics.rd +0 -15
- data/doc/en/cairo-hint-style.rd +0 -17
- data/doc/en/cairo-image-surface.rd +0 -47
- data/doc/en/cairo-invalid-content-error.rd +0 -17
- data/doc/en/cairo-invalid-dash-error.rd +0 -17
- data/doc/en/cairo-invalid-dsc-comment-error.rd +0 -17
- data/doc/en/cairo-invalid-format-error.rd +0 -17
- data/doc/en/cairo-invalid-index-error.rd +0 -17
- data/doc/en/cairo-invalid-matrix-error.rd +0 -17
- data/doc/en/cairo-invalid-path-data-error.rd +0 -17
- data/doc/en/cairo-invalid-pop-group-error.rd +0 -17
- data/doc/en/cairo-invalid-restore-error.rd +0 -17
- data/doc/en/cairo-invalid-status-error.rd +0 -17
- data/doc/en/cairo-invalid-stride-error.rd +0 -17
- data/doc/en/cairo-invalid-string-error.rd +0 -17
- data/doc/en/cairo-invalid-visual-error.rd +0 -17
- data/doc/en/cairo-line-cap.rd +0 -15
- data/doc/en/cairo-line-join.rd +0 -15
- data/doc/en/cairo-linear-pattern.rd +0 -28
- data/doc/en/cairo-matrix.rd +0 -186
- data/doc/en/cairo-no-current-point-error.rd +0 -17
- data/doc/en/cairo-null-pointer-error.rd +0 -17
- data/doc/en/cairo-operator.rd +0 -26
- data/doc/en/cairo-paper-parse-error.rd +0 -17
- data/doc/en/cairo-paper-unknown-paper-name.rd +0 -30
- data/doc/en/cairo-paper-unknown-unit.rd +0 -30
- data/doc/en/cairo-paper-unrecognized-paper-description.rd +0 -30
- data/doc/en/cairo-paper.rd +0 -141
- data/doc/en/cairo-path-close-path.rd +0 -21
- data/doc/en/cairo-path-curve-to.rd +0 -21
- data/doc/en/cairo-path-data-type.rd +0 -16
- data/doc/en/cairo-path-data.rd +0 -62
- data/doc/en/cairo-path-line-to.rd +0 -21
- data/doc/en/cairo-path-move-to.rd +0 -21
- data/doc/en/cairo-path.rd +0 -109
- data/doc/en/cairo-pattern-type-mismatch-error.rd +0 -17
- data/doc/en/cairo-pattern.rd +0 -62
- data/doc/en/cairo-pdf-surface.rd +0 -27
- data/doc/en/cairo-point.rd +0 -42
- data/doc/en/cairo-ps-level.rd +0 -24
- data/doc/en/cairo-ps-surface.rd +0 -55
- data/doc/en/cairo-quartz-image-surface.rd +0 -27
- data/doc/en/cairo-quartz-surface.rd +0 -27
- data/doc/en/cairo-radial-pattern.rd +0 -28
- data/doc/en/cairo-read-error.rd +0 -17
- data/doc/en/cairo-rectangle.rd +0 -54
- data/doc/en/cairo-scaled-font.rd +0 -50
- data/doc/en/cairo-solid-pattern.rd +0 -31
- data/doc/en/cairo-subpixel-order.rd +0 -17
- data/doc/en/cairo-surface-finished-error.rd +0 -17
- data/doc/en/cairo-surface-pattern.rd +0 -27
- data/doc/en/cairo-surface-type-mismatch-error.rd +0 -17
- data/doc/en/cairo-surface.rd +0 -72
- data/doc/en/cairo-svg-surface.rd +0 -44
- data/doc/en/cairo-svg-version.rd +0 -24
- data/doc/en/cairo-temp-file-error.rd +0 -17
- data/doc/en/cairo-text-extents.rd +0 -44
- data/doc/en/cairo-win32-printing-surface.rd +0 -27
- data/doc/en/cairo-win32-surface.rd +0 -31
- data/doc/en/cairo-write-error.rd +0 -17
- data/doc/en/cairo.rd +0 -95
- data/doc/en/index.rd +0 -1051
- data/samples/agg/aa_demo.rb +0 -47
data/src/rb_cairo_font_options.c
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date:
|
6
|
+
* $Date: 2008-08-17 07:21:42 $
|
7
7
|
*
|
8
|
-
* Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
|
8
|
+
* Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
|
9
9
|
*
|
10
10
|
* This file is made available under the same terms as Ruby
|
11
11
|
*
|
@@ -160,6 +160,22 @@ cr_options_get_hint_metrics (VALUE self)
|
|
160
160
|
return INT2NUM (cairo_font_options_get_hint_metrics (_SELF (self)));
|
161
161
|
}
|
162
162
|
|
163
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
164
|
+
static VALUE
|
165
|
+
cr_options_set_lcd_filter (VALUE self, VALUE lcd_filter)
|
166
|
+
{
|
167
|
+
cairo_font_options_set_lcd_filter (_SELF (self),
|
168
|
+
RVAL2CRLCDFILTER (lcd_filter));
|
169
|
+
return self;
|
170
|
+
}
|
171
|
+
|
172
|
+
static VALUE
|
173
|
+
cr_options_get_lcd_filter (VALUE self)
|
174
|
+
{
|
175
|
+
return INT2NUM (cairo_font_options_get_lcd_filter (_SELF (self)));
|
176
|
+
}
|
177
|
+
#endif
|
178
|
+
|
163
179
|
|
164
180
|
void
|
165
181
|
Init_cairo_font_options (void)
|
@@ -192,6 +208,12 @@ Init_cairo_font_options (void)
|
|
192
208
|
cr_options_set_hint_metrics, 1);
|
193
209
|
rb_define_method (rb_cCairo_FontOptions, "hint_metrics",
|
194
210
|
cr_options_get_hint_metrics, 0);
|
211
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
212
|
+
rb_define_method (rb_cCairo_FontOptions, "set_lcd_filter",
|
213
|
+
cr_options_set_lcd_filter, 1);
|
214
|
+
rb_define_method (rb_cCairo_FontOptions, "lcd_filter",
|
215
|
+
cr_options_get_lcd_filter, 0);
|
216
|
+
#endif
|
195
217
|
|
196
218
|
RB_CAIRO_DEF_SETTERS (rb_cCairo_FontOptions);
|
197
219
|
}
|
data/src/rb_cairo_glyph.c
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date:
|
6
|
+
* $Date: 2008-08-16 08:16:39 $
|
7
7
|
*
|
8
8
|
* Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
|
9
9
|
* Copyright 2004-2005 MenTaLguY <mental@rydia.com>
|
@@ -37,7 +37,7 @@ cr_glyph_free (void *ptr)
|
|
37
37
|
{
|
38
38
|
if (ptr)
|
39
39
|
{
|
40
|
-
|
40
|
+
xfree (ptr);
|
41
41
|
}
|
42
42
|
}
|
43
43
|
|
@@ -46,7 +46,9 @@ rb_cairo_glyph_to_ruby_object (cairo_glyph_t *glyph)
|
|
46
46
|
{
|
47
47
|
if (glyph)
|
48
48
|
{
|
49
|
-
cairo_glyph_t *new_glyph
|
49
|
+
cairo_glyph_t *new_glyph;
|
50
|
+
|
51
|
+
new_glyph = ALLOC (cairo_glyph_t);
|
50
52
|
*new_glyph = *glyph;
|
51
53
|
return Data_Wrap_Struct (rb_cCairo_Glyph, NULL, cr_glyph_free, new_glyph);
|
52
54
|
}
|
data/src/rb_cairo_matrix.c
CHANGED
@@ -3,8 +3,9 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date:
|
6
|
+
* $Date: 2008-08-14 12:37:50 $
|
7
7
|
*
|
8
|
+
* Copyright 2006-2008 Kouhei Sutou <kou@cozmixng.org>
|
8
9
|
* Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
|
9
10
|
* Copyright 2004-2005 MenTaLguY <mental@rydia.com>
|
10
11
|
*
|
@@ -18,6 +19,8 @@
|
|
18
19
|
|
19
20
|
VALUE rb_cCairo_Matrix;
|
20
21
|
|
22
|
+
static ID cr_id_equal;
|
23
|
+
|
21
24
|
#define _SELF (RVAL2CRMATRIX(self))
|
22
25
|
|
23
26
|
cairo_matrix_t *
|
@@ -295,10 +298,22 @@ cr_matrix_to_s(VALUE self)
|
|
295
298
|
return ret;
|
296
299
|
}
|
297
300
|
|
301
|
+
static VALUE
|
302
|
+
cr_matrix_equal (VALUE self, VALUE other)
|
303
|
+
{
|
304
|
+
if (!rb_cairo__is_kind_of (other, rb_cCairo_Matrix))
|
305
|
+
return Qfalse;
|
306
|
+
|
307
|
+
return rb_funcall (cr_matrix_to_a (self),
|
308
|
+
cr_id_equal, 1,
|
309
|
+
cr_matrix_to_a (other));
|
310
|
+
}
|
298
311
|
|
299
312
|
void
|
300
313
|
Init_cairo_matrix (void)
|
301
314
|
{
|
315
|
+
cr_id_equal = rb_intern ("==");
|
316
|
+
|
302
317
|
rb_cCairo_Matrix =
|
303
318
|
rb_define_class_under (rb_mCairo, "Matrix", rb_cObject);
|
304
319
|
|
@@ -344,6 +359,7 @@ Init_cairo_matrix (void)
|
|
344
359
|
rb_define_method (rb_cCairo_Matrix, "set", cr_matrix_set, 6);
|
345
360
|
rb_define_method (rb_cCairo_Matrix, "to_a", cr_matrix_to_a, 0);
|
346
361
|
rb_define_method (rb_cCairo_Matrix, "to_s", cr_matrix_to_s, 0);
|
362
|
+
rb_define_method (rb_cCairo_Matrix, "==", cr_matrix_equal, 1);
|
347
363
|
|
348
364
|
|
349
365
|
RB_CAIRO_DEF_SETTERS (rb_cCairo_Matrix);
|
data/src/rb_cairo_pattern.c
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date:
|
6
|
+
* $Date: 2008-06-12 10:59:54 $
|
7
7
|
*
|
8
8
|
* Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
|
9
9
|
* Copyright 2004-2005 MenTaLguY <mental@rydia.com>
|
@@ -137,10 +137,10 @@ cr_solid_pattern_initialize (int argc, VALUE *argv, VALUE self)
|
|
137
137
|
}
|
138
138
|
|
139
139
|
if (n == 1 && rb_cairo__is_kind_of (red, rb_cArray) &&
|
140
|
-
(
|
140
|
+
(RARRAY_LEN (red) == 3 || RARRAY_LEN (red) == 4))
|
141
141
|
{
|
142
142
|
VALUE ary = red;
|
143
|
-
n =
|
143
|
+
n = RARRAY_LEN (ary);
|
144
144
|
|
145
145
|
red = rb_ary_entry (ary, 0);
|
146
146
|
green = rb_ary_entry (ary, 1);
|
@@ -247,7 +247,7 @@ cr_gradient_pattern_add_color_stop_generic (int argc, VALUE *argv, VALUE self)
|
|
247
247
|
if (n == 2 && rb_cairo__is_kind_of (red, rb_cArray))
|
248
248
|
{
|
249
249
|
VALUE ary = red;
|
250
|
-
n =
|
250
|
+
n = RARRAY_LEN (ary) + 1;
|
251
251
|
|
252
252
|
red = rb_ary_entry (ary, 0);
|
253
253
|
green = rb_ary_entry (ary, 1);
|
data/src/rb_cairo_private.c
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date:
|
6
|
+
* $Date: 2008-08-17 07:21:42 $
|
7
7
|
*
|
8
|
-
* Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
|
8
|
+
* Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
|
9
9
|
*
|
10
10
|
* This file is made available under the same terms as Ruby
|
11
11
|
*
|
@@ -14,7 +14,11 @@
|
|
14
14
|
#include "rb_cairo.h"
|
15
15
|
#include "rb_cairo_private.h"
|
16
16
|
|
17
|
-
static ID
|
17
|
+
static ID cr_id_normalize_const_name;
|
18
|
+
static ID cr_id_objects;
|
19
|
+
static ID cr_id_dup;
|
20
|
+
static ID cr_id_inspect;
|
21
|
+
static ID cr_id_exit_application;
|
18
22
|
|
19
23
|
VALUE
|
20
24
|
rb_cairo__float_array (double *values, unsigned count)
|
@@ -50,7 +54,8 @@ rb_cairo__const_get (VALUE name, const char *prefix)
|
|
50
54
|
char *const_name, *normalized_name;
|
51
55
|
size_t prefix_len, normalized_name_len;
|
52
56
|
|
53
|
-
rb_normalized_name = rb_funcall (rb_mCairo,
|
57
|
+
rb_normalized_name = rb_funcall (rb_mCairo,
|
58
|
+
cr_id_normalize_const_name, 1, name);
|
54
59
|
normalized_name = RVAL2CSTR (rb_normalized_name);
|
55
60
|
|
56
61
|
prefix_len = strlen (prefix);
|
@@ -70,9 +75,168 @@ rb_cairo__is_kind_of (VALUE object, VALUE klass)
|
|
70
75
|
return RVAL2CBOOL (rb_obj_is_kind_of (object, klass));
|
71
76
|
}
|
72
77
|
|
78
|
+
rb_cairo__object_holder_t *
|
79
|
+
rb_cairo__object_holder_new (VALUE klass, VALUE object)
|
80
|
+
{
|
81
|
+
rb_cairo__object_holder_t *holder;
|
82
|
+
|
83
|
+
holder = ALLOC(rb_cairo__object_holder_t);
|
84
|
+
rb_cairo__gc_guard_add (klass, object);
|
85
|
+
holder->object = object;
|
86
|
+
return holder;
|
87
|
+
}
|
88
|
+
|
89
|
+
void
|
90
|
+
rb_cairo__object_holder_free (VALUE klass, void *ptr)
|
91
|
+
{
|
92
|
+
rb_cairo__object_holder_t *holder = ptr;
|
93
|
+
|
94
|
+
if (!NIL_P (holder->object))
|
95
|
+
rb_cairo__gc_guard_remove (klass, holder->object);
|
96
|
+
|
97
|
+
xfree (holder);
|
98
|
+
}
|
99
|
+
|
100
|
+
void
|
101
|
+
rb_cairo__initialize_gc_guard_holder_class (VALUE klass)
|
102
|
+
{
|
103
|
+
rb_ivar_set (klass, cr_id_objects, rb_hash_new ());
|
104
|
+
}
|
105
|
+
|
106
|
+
void
|
107
|
+
rb_cairo__gc_guard_add (VALUE klass, VALUE object)
|
108
|
+
{
|
109
|
+
rb_hash_aset (rb_ivar_get (klass, cr_id_objects), object, Qnil);
|
110
|
+
}
|
111
|
+
|
112
|
+
void
|
113
|
+
rb_cairo__gc_guard_remove (VALUE klass, VALUE object)
|
114
|
+
{
|
115
|
+
rb_hash_delete (rb_ivar_get (klass, cr_id_objects), object);
|
116
|
+
}
|
117
|
+
|
118
|
+
VALUE
|
119
|
+
rb_cairo__gc_guarded_objects (VALUE klass)
|
120
|
+
{
|
121
|
+
return rb_funcall (rb_ivar_get (klass, cr_id_objects), cr_id_dup, 0);
|
122
|
+
}
|
123
|
+
|
124
|
+
const char *
|
125
|
+
rb_cairo__inspect (VALUE object)
|
126
|
+
{
|
127
|
+
VALUE inspected;
|
128
|
+
|
129
|
+
inspected = rb_funcall (object, cr_id_inspect, 0);
|
130
|
+
return RSTRING_PTR (inspected);
|
131
|
+
}
|
132
|
+
|
133
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
134
|
+
VALUE
|
135
|
+
rb_cairo__glyphs_to_ruby_object (cairo_glyph_t *glyphs, int num_glyphs)
|
136
|
+
{
|
137
|
+
int i;
|
138
|
+
VALUE rb_glyphs;
|
139
|
+
|
140
|
+
rb_glyphs = rb_ary_new2 (num_glyphs);
|
141
|
+
for (i = 0; i < num_glyphs; i++)
|
142
|
+
{
|
143
|
+
RARRAY_PTR (rb_glyphs)[i] = CRGLYPH2RVAL (glyphs + i);
|
144
|
+
}
|
145
|
+
|
146
|
+
return rb_glyphs;
|
147
|
+
}
|
148
|
+
|
149
|
+
void
|
150
|
+
rb_cairo__glyphs_from_ruby_object (VALUE rb_glyphs,
|
151
|
+
cairo_glyph_t **glyphs, int *num_glyphs)
|
152
|
+
{
|
153
|
+
int i, len;
|
154
|
+
|
155
|
+
if (NIL_P (rb_glyphs))
|
156
|
+
{
|
157
|
+
*num_glyphs = -1;
|
158
|
+
return;
|
159
|
+
}
|
160
|
+
|
161
|
+
len = RARRAY_LEN (rb_glyphs);
|
162
|
+
if (*num_glyphs < len)
|
163
|
+
*glyphs = cairo_glyph_allocate (len);
|
164
|
+
*num_glyphs = len;
|
165
|
+
for (i = 0; i < len; i++)
|
166
|
+
{
|
167
|
+
cairo_glyph_t *glyph;
|
168
|
+
|
169
|
+
glyph = *glyphs + i;
|
170
|
+
*glyph = *(RVAL2CRGLYPH (RARRAY_PTR (rb_glyphs)[i]));
|
171
|
+
}
|
172
|
+
}
|
173
|
+
|
174
|
+
VALUE
|
175
|
+
rb_cairo__text_clusters_to_ruby_object (cairo_text_cluster_t *clusters,
|
176
|
+
int num_clusters)
|
177
|
+
{
|
178
|
+
int i;
|
179
|
+
VALUE rb_clusters;
|
180
|
+
|
181
|
+
rb_clusters = rb_ary_new2 (num_clusters);
|
182
|
+
for (i = 0; i < num_clusters; i++)
|
183
|
+
{
|
184
|
+
RARRAY_PTR (rb_clusters)[i] = CRTEXTCLUSTER2RVAL (clusters + i);
|
185
|
+
}
|
186
|
+
|
187
|
+
return rb_clusters;
|
188
|
+
}
|
189
|
+
|
190
|
+
void
|
191
|
+
rb_cairo__text_clusters_from_ruby_object (VALUE rb_clusters,
|
192
|
+
cairo_text_cluster_t **clusters,
|
193
|
+
int *num_clusters)
|
194
|
+
{
|
195
|
+
int i, len;
|
196
|
+
|
197
|
+
if (NIL_P (rb_clusters))
|
198
|
+
{
|
199
|
+
*num_clusters = -1;
|
200
|
+
return;
|
201
|
+
}
|
202
|
+
|
203
|
+
len = RARRAY_LEN (rb_clusters);
|
204
|
+
if (*num_clusters < len)
|
205
|
+
*clusters = cairo_text_cluster_allocate (len);
|
206
|
+
*num_clusters = len;
|
207
|
+
for (i = 0; i < len; i++)
|
208
|
+
{
|
209
|
+
cairo_text_cluster_t *cluster;
|
210
|
+
|
211
|
+
cluster = *clusters + i;
|
212
|
+
*cluster = *(RVAL2CRTEXTCLUSTER (RARRAY_PTR (rb_clusters)[i]));
|
213
|
+
}
|
214
|
+
}
|
215
|
+
#endif
|
216
|
+
|
217
|
+
VALUE
|
218
|
+
rb_cairo__invoke_callback (cr_callback_func_t func, VALUE data)
|
219
|
+
{
|
220
|
+
int state = 0;
|
221
|
+
VALUE result, exception;
|
222
|
+
|
223
|
+
result = rb_protect (func, data, &state);
|
224
|
+
if (state)
|
225
|
+
{
|
226
|
+
exception = RB_ERRINFO;
|
227
|
+
if (exception)
|
228
|
+
rb_funcall (rb_mCairo, cr_id_exit_application, 2,
|
229
|
+
exception, INT2NUM (EXIT_FAILURE));
|
230
|
+
}
|
231
|
+
return result;
|
232
|
+
}
|
73
233
|
|
74
234
|
void
|
75
235
|
Init_cairo_private (void)
|
76
236
|
{
|
77
|
-
|
237
|
+
cr_id_normalize_const_name = rb_intern ("normalize_const_name");
|
238
|
+
cr_id_objects = rb_intern ("objects");
|
239
|
+
cr_id_dup = rb_intern ("dup");
|
240
|
+
cr_id_inspect = rb_intern ("inspect");
|
241
|
+
cr_id_exit_application = rb_intern ("exit_application");
|
78
242
|
}
|
data/src/rb_cairo_private.h
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date: 2008-
|
6
|
+
* $Date: 2008-08-17 07:21:42 $
|
7
7
|
*
|
8
|
-
* Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
|
8
|
+
* Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
|
9
9
|
*
|
10
10
|
* This file is made available under the same terms as Ruby
|
11
11
|
*
|
@@ -17,6 +17,8 @@
|
|
17
17
|
#define CR_TRUE 1
|
18
18
|
#define CR_FALSE 0
|
19
19
|
|
20
|
+
#define CAIRO_INT_STATUS_UNSUPPORTED 100
|
21
|
+
|
20
22
|
#define CSTR2RVAL(str) rb_str_new2(str)
|
21
23
|
#define RVAL2CSTR(str) StringValueCStr(str)
|
22
24
|
|
@@ -27,6 +29,14 @@
|
|
27
29
|
# define RSTRING_LEN(string) (RSTRING(string)->len)
|
28
30
|
#endif
|
29
31
|
|
32
|
+
#ifndef RARRAY_PTR
|
33
|
+
# define RARRAY_PTR(array) (RARRAY(array)->ptr)
|
34
|
+
#endif
|
35
|
+
|
36
|
+
#ifndef RARRAY_LEN
|
37
|
+
# define RARRAY_LEN(array) (RARRAY(array)->len)
|
38
|
+
#endif
|
39
|
+
|
30
40
|
#ifdef HAVE_RB_ERRINFO
|
31
41
|
# define RB_ERRINFO (rb_errinfo())
|
32
42
|
#else
|
@@ -49,12 +59,13 @@ extern void Init_cairo_scaled_font (void);
|
|
49
59
|
extern void Init_cairo_text_extents (void);
|
50
60
|
extern void Init_cairo_pattern (void);
|
51
61
|
extern void Init_cairo_glyph (void);
|
62
|
+
extern void Init_cairo_text_cluster (void);
|
52
63
|
|
53
64
|
#define RB_CAIRO__GLYPHS_TO_ARRAY(rb_array, glyphs, length) \
|
54
65
|
do \
|
55
66
|
{ \
|
56
67
|
Check_Type (rb_array, T_ARRAY); \
|
57
|
-
length =
|
68
|
+
length = RARRAY_LEN (rb_array); \
|
58
69
|
glyphs = ALLOCA_N (cairo_glyph_t, length); \
|
59
70
|
\
|
60
71
|
if (!glyphs) \
|
@@ -69,4 +80,35 @@ void rb_cairo__glyphs_to_array (VALUE rb_array, cairo_glyph_t *glyphs, int lengt
|
|
69
80
|
VALUE rb_cairo__const_get (VALUE name, const char *prefix);
|
70
81
|
cairo_bool_t rb_cairo__is_kind_of (VALUE object, VALUE klass);
|
71
82
|
|
83
|
+
typedef struct rb_cairo__object_holder {
|
84
|
+
VALUE object;
|
85
|
+
} rb_cairo__object_holder_t;
|
86
|
+
|
87
|
+
rb_cairo__object_holder_t *rb_cairo__object_holder_new (VALUE klass, VALUE object);
|
88
|
+
void rb_cairo__object_holder_free (VALUE klass, void *ptr);
|
89
|
+
|
90
|
+
|
91
|
+
void rb_cairo__initialize_gc_guard_holder_class (VALUE klass);
|
92
|
+
void rb_cairo__gc_guard_add (VALUE klass, VALUE object);
|
93
|
+
void rb_cairo__gc_guard_remove (VALUE klass, VALUE object);
|
94
|
+
VALUE rb_cairo__gc_guarded_objects (VALUE klass);
|
95
|
+
|
96
|
+
const char *rb_cairo__inspect (VALUE object);
|
97
|
+
|
98
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
99
|
+
VALUE rb_cairo__glyphs_to_ruby_object (cairo_glyph_t *glyphs, int num_glyphs);
|
100
|
+
void rb_cairo__glyphs_from_ruby_object (VALUE rb_glyphs,
|
101
|
+
cairo_glyph_t **glyphs, int *num_glyphs);
|
102
|
+
VALUE rb_cairo__text_clusters_to_ruby_object (cairo_text_cluster_t *clusters,
|
103
|
+
int num_clusters);
|
104
|
+
void rb_cairo__text_clusters_from_ruby_object (VALUE rb_clusters,
|
105
|
+
cairo_text_cluster_t **clusters,
|
106
|
+
int *num_clusters);
|
107
|
+
#endif
|
108
|
+
|
109
|
+
cairo_status_t rb_cairo__exception_to_status (VALUE exception);
|
110
|
+
|
111
|
+
typedef VALUE (*cr_callback_func_t) (VALUE user_data);
|
112
|
+
VALUE rb_cairo__invoke_callback (cr_callback_func_t func, VALUE user_data);
|
113
|
+
|
72
114
|
#endif
|
data/src/rb_cairo_scaled_font.c
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date:
|
6
|
+
* $Date: 2008-08-16 08:34:19 $
|
7
7
|
*
|
8
|
-
* Copyright 2005 Kouhei Sutou <kou@cozmixng.org>
|
8
|
+
* Copyright 2005-2008 Kouhei Sutou <kou@cozmixng.org>
|
9
9
|
*
|
10
10
|
* This file is made available under the same terms as Ruby
|
11
11
|
*
|
@@ -114,6 +114,42 @@ cr_scaled_font_glyph_extents (VALUE self, VALUE rb_glyphs)
|
|
114
114
|
return CRTEXTEXTENTS2RVAL (&extents);
|
115
115
|
}
|
116
116
|
|
117
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
118
|
+
static VALUE
|
119
|
+
cr_scaled_font_text_to_glyphs (VALUE self, VALUE rb_x, VALUE rb_y, VALUE rb_utf8)
|
120
|
+
{
|
121
|
+
double x, y;
|
122
|
+
const char *utf8;
|
123
|
+
int utf8_len;
|
124
|
+
cairo_glyph_t *glyphs = NULL;
|
125
|
+
int num_glyphs;
|
126
|
+
cairo_text_cluster_t *clusters = NULL;
|
127
|
+
int num_clusters;
|
128
|
+
cairo_bool_t backward;
|
129
|
+
cairo_status_t status;
|
130
|
+
VALUE rb_glyphs, rb_clusters;
|
131
|
+
|
132
|
+
x = NUM2DBL (rb_x);
|
133
|
+
y = NUM2DBL (rb_y);
|
134
|
+
utf8 = RSTRING_PTR (rb_utf8);
|
135
|
+
utf8_len = RSTRING_LEN (rb_utf8);
|
136
|
+
|
137
|
+
status = cairo_scaled_font_text_to_glyphs (_SELF (self),
|
138
|
+
x, y, utf8, utf8_len,
|
139
|
+
&glyphs, &num_glyphs,
|
140
|
+
&clusters, &num_clusters,
|
141
|
+
&backward);
|
142
|
+
rb_cairo_check_status (status);
|
143
|
+
|
144
|
+
rb_glyphs = rb_cairo__glyphs_to_ruby_object (glyphs, num_glyphs);
|
145
|
+
cairo_glyph_free (glyphs);
|
146
|
+
rb_clusters = rb_cairo__text_clusters_to_ruby_object (clusters, num_clusters);
|
147
|
+
cairo_text_cluster_free (clusters);
|
148
|
+
|
149
|
+
return rb_ary_new3 (3, rb_glyphs, rb_clusters, CBOOL2RVAL (backward));
|
150
|
+
}
|
151
|
+
#endif
|
152
|
+
|
117
153
|
static VALUE
|
118
154
|
cr_scaled_font_get_font_face (VALUE self)
|
119
155
|
{
|
@@ -144,13 +180,27 @@ cr_scaled_font_get_ctm (VALUE self)
|
|
144
180
|
static VALUE
|
145
181
|
cr_scaled_font_get_font_options (VALUE self)
|
146
182
|
{
|
147
|
-
cairo_font_options_t *options
|
183
|
+
cairo_font_options_t *options;
|
184
|
+
|
185
|
+
options = cairo_font_options_create();
|
148
186
|
cairo_scaled_font_get_font_options (_SELF (self), options);
|
149
187
|
cr_scaled_font_check_status (_SELF (self));
|
150
188
|
rb_cairo_check_status (cairo_font_options_status (options));
|
151
189
|
return CRFONTOPTIONS2RVAL (options);
|
152
190
|
}
|
153
191
|
|
192
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
193
|
+
static VALUE
|
194
|
+
cr_scaled_font_get_scale_matrix (VALUE self)
|
195
|
+
{
|
196
|
+
cairo_matrix_t matrix;
|
197
|
+
|
198
|
+
cairo_scaled_font_get_scale_matrix (_SELF (self), &matrix);
|
199
|
+
cr_scaled_font_check_status (_SELF (self));
|
200
|
+
return CRMATRIX2RVAL (&matrix);
|
201
|
+
}
|
202
|
+
#endif
|
203
|
+
|
154
204
|
void
|
155
205
|
Init_cairo_scaled_font (void)
|
156
206
|
{
|
@@ -167,6 +217,10 @@ Init_cairo_scaled_font (void)
|
|
167
217
|
cr_scaled_font_text_extents, 1);
|
168
218
|
rb_define_method (rb_cCairo_ScaledFont, "glyph_extents",
|
169
219
|
cr_scaled_font_glyph_extents, 1);
|
220
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
221
|
+
rb_define_method (rb_cCairo_ScaledFont, "text_to_glyphs",
|
222
|
+
cr_scaled_font_text_to_glyphs, 3);
|
223
|
+
#endif
|
170
224
|
rb_define_method (rb_cCairo_ScaledFont, "font_face",
|
171
225
|
cr_scaled_font_get_font_face, 0);
|
172
226
|
rb_define_method (rb_cCairo_ScaledFont, "font_matrix",
|
@@ -174,4 +228,8 @@ Init_cairo_scaled_font (void)
|
|
174
228
|
rb_define_method (rb_cCairo_ScaledFont, "ctm", cr_scaled_font_get_ctm, 0);
|
175
229
|
rb_define_method (rb_cCairo_ScaledFont, "font_options",
|
176
230
|
cr_scaled_font_get_font_options, 0);
|
231
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
232
|
+
rb_define_method (rb_cCairo_ScaledFont, "scale_matrix",
|
233
|
+
cr_scaled_font_get_scale_matrix, 0);
|
234
|
+
#endif
|
177
235
|
}
|