cairo 1.6.3 → 1.7.0
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 +206 -0
- data/NEWS +13 -0
- data/README +10 -3
- data/Rakefile +3 -2
- data/doc/en/cairo-antialias.html +0 -3
- data/doc/en/cairo-clip-not-representable-error.html +1 -4
- data/doc/en/cairo-color-base.html +0 -3
- data/doc/en/cairo-color-cmyk.html +1 -4
- data/doc/en/cairo-color-hsv.html +137 -0
- data/doc/en/cairo-color-rgb.html +142 -0
- data/doc/en/cairo-color-x11.html +173 -0
- data/doc/en/cairo-color.html +238 -0
- data/doc/en/cairo-content.html +37 -0
- data/doc/en/cairo-context-blur.html +39 -0
- data/doc/en/cairo-context-circle.html +39 -0
- data/doc/en/cairo-context-color.html +39 -0
- data/doc/en/cairo-context-path.html +44 -0
- data/doc/en/cairo-context-rectangle.html +0 -3
- data/doc/en/cairo-context-triangle.html +39 -0
- data/doc/en/cairo-context.html +124 -107
- data/doc/en/cairo-error.html +44 -0
- data/doc/en/cairo-extend.html +38 -0
- data/doc/en/cairo-file-not-found.html +1 -4
- data/doc/en/cairo-fill-rule.html +36 -0
- data/doc/en/cairo-filter.html +0 -3
- data/doc/en/cairo-font-extents.html +129 -0
- data/doc/en/cairo-font-face.html +38 -0
- data/doc/en/cairo-font-options.html +154 -0
- 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 +99 -0
- data/doc/en/cairo-gradient-pattern.html +74 -0
- data/doc/en/cairo-hint-metrics.html +37 -0
- data/doc/en/cairo-hint-style.html +0 -3
- data/doc/en/cairo-image-surface.html +82 -0
- data/doc/en/cairo-invalid-clusters.html +47 -0
- data/doc/en/cairo-invalid-content-error.html +47 -0
- data/doc/en/cairo-invalid-dash-error.html +0 -3
- data/doc/en/cairo-invalid-dsc-comment-error.html +47 -0
- data/doc/en/cairo-invalid-format-error.html +47 -0
- data/doc/en/cairo-invalid-index-error.html +47 -0
- data/doc/en/cairo-invalid-matrix-error.html +0 -3
- data/doc/en/cairo-invalid-path-data-error.html +47 -0
- data/doc/en/cairo-invalid-pop-group-error.html +1 -4
- data/doc/en/cairo-invalid-restore-error.html +47 -0
- data/doc/en/cairo-invalid-slant.html +47 -0
- data/doc/en/cairo-invalid-status-error.html +47 -0
- data/doc/en/cairo-invalid-stride-error.html +0 -3
- data/doc/en/cairo-invalid-string-error.html +47 -0
- data/doc/en/cairo-invalid-visual-error.html +47 -0
- 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 +37 -0
- data/doc/en/cairo-line-join.html +37 -0
- data/doc/en/cairo-linear-pattern.html +60 -0
- data/doc/en/cairo-matrix.html +259 -0
- data/doc/en/cairo-negative-count.html +47 -0
- data/doc/en/cairo-no-current-point-error.html +47 -0
- 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 +66 -0
- data/doc/en/cairo-paper-unknown-unit.html +66 -0
- data/doc/en/cairo-paper-unrecognized-paper-description.html +1 -4
- data/doc/en/cairo-paper.html +0 -3
- data/doc/en/cairo-path-close-path.html +49 -0
- data/doc/en/cairo-path-curve-to.html +1 -4
- 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 +1 -4
- data/doc/en/cairo-path-move-to.html +1 -4
- data/doc/en/cairo-path.html +0 -3
- data/doc/en/cairo-pattern-type-mismatch-error.html +47 -0
- data/doc/en/cairo-pattern.html +0 -3
- data/doc/en/cairo-pdf-surface.html +1 -4
- data/doc/en/cairo-point.html +0 -3
- data/doc/en/cairo-ps-level.html +49 -0
- data/doc/en/cairo-ps-surface.html +1 -4
- data/doc/en/cairo-quartz-image-surface.html +57 -0
- data/doc/en/cairo-quartz-surface.html +1 -4
- data/doc/en/cairo-radial-pattern.html +60 -0
- data/doc/en/cairo-read-error.html +47 -0
- data/doc/en/cairo-rectangle.html +0 -3
- data/doc/en/cairo-scaled-font.html +94 -0
- data/doc/en/cairo-solid-pattern.html +62 -0
- data/doc/en/cairo-subpixel-order.html +0 -3
- data/doc/en/cairo-surface-finished-error.html +1 -4
- data/doc/en/cairo-surface-pattern.html +0 -3
- data/doc/en/cairo-surface-type-mismatch-error.html +47 -0
- data/doc/en/cairo-surface.html +22 -15
- data/doc/en/cairo-svg-surface.html +77 -0
- data/doc/en/cairo-svg-version.html +0 -3
- data/doc/en/cairo-temp-file-error.html +47 -0
- data/doc/en/cairo-text-cluster.html +84 -0
- data/doc/en/cairo-text-extents.html +144 -0
- 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 +57 -0
- data/doc/en/cairo-win32-surface.html +62 -0
- data/doc/en/cairo-write-error.html +47 -0
- data/doc/en/cairo.html +92 -80
- data/doc/en/index.html +1076 -989
- 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 +1 -0
- data/src/cairo.def +8 -0
- data/src/lib/cairo.rb +12 -7
- data/src/lib/cairo/constants.rb +1 -0
- data/src/rb_cairo.c +25 -3
- data/src/rb_cairo.h +22 -1
- data/src/rb_cairo_constants.c +24 -1
- data/src/rb_cairo_context.c +147 -6
- 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_private.c +169 -5
- data/src/rb_cairo_private.h +36 -2
- data/src/rb_cairo_scaled_font.c +61 -3
- data/src/rb_cairo_surface.c +77 -52
- 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 +13 -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 +156 -175
- data/doc/en/cairo-antialias.rbl +0 -8
- data/doc/en/cairo-antialias.rd +0 -16
- data/doc/en/cairo-antialias.rdc +0 -16
- data/doc/en/cairo-clip-not-representable-error.rbl +0 -4
- data/doc/en/cairo-clip-not-representable-error.rd +0 -17
- data/doc/en/cairo-clip-not-representable-error.rdc +0 -17
- data/doc/en/cairo-color-base.rbl +0 -11
- data/doc/en/cairo-color-base.rd +0 -38
- data/doc/en/cairo-color-base.rdc +0 -38
- data/doc/en/cairo-color-cmyk.rbl +0 -28
- data/doc/en/cairo-color-cmyk.rd +0 -107
- data/doc/en/cairo-color-cmyk.rdc +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.rbl +0 -5
- data/doc/en/cairo-context-rectangle.rd +0 -15
- data/doc/en/cairo-context-rectangle.rdc +0 -15
- data/doc/en/cairo-context-triangle.rd +0 -15
- data/doc/en/cairo-context.rbl +0 -123
- data/doc/en/cairo-context.rd +0 -491
- data/doc/en/cairo-context.rdc +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.rbl +0 -4
- data/doc/en/cairo-file-not-found.rd +0 -17
- data/doc/en/cairo-file-not-found.rdc +0 -17
- data/doc/en/cairo-fill-rule.rd +0 -14
- data/doc/en/cairo-filter.rbl +0 -10
- data/doc/en/cairo-filter.rd +0 -18
- data/doc/en/cairo-filter.rdc +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.rbl +0 -7
- data/doc/en/cairo-font-slant.rd +0 -15
- data/doc/en/cairo-font-slant.rdc +0 -15
- data/doc/en/cairo-font-weight.rbl +0 -6
- data/doc/en/cairo-font-weight.rd +0 -14
- data/doc/en/cairo-font-weight.rdc +0 -14
- data/doc/en/cairo-format.rbl +0 -10
- data/doc/en/cairo-format.rd +0 -22
- data/doc/en/cairo-format.rdc +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.rbl +0 -9
- data/doc/en/cairo-hint-style.rd +0 -17
- data/doc/en/cairo-hint-style.rdc +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.rbl +0 -4
- data/doc/en/cairo-invalid-dash-error.rd +0 -17
- data/doc/en/cairo-invalid-dash-error.rdc +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.rbl +0 -4
- data/doc/en/cairo-invalid-matrix-error.rd +0 -17
- data/doc/en/cairo-invalid-matrix-error.rdc +0 -17
- data/doc/en/cairo-invalid-path-data-error.rd +0 -17
- data/doc/en/cairo-invalid-pop-group-error.rbl +0 -4
- data/doc/en/cairo-invalid-pop-group-error.rd +0 -17
- data/doc/en/cairo-invalid-pop-group-error.rdc +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.rbl +0 -4
- data/doc/en/cairo-invalid-stride-error.rd +0 -17
- data/doc/en/cairo-invalid-stride-error.rdc +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.rbl +0 -4
- data/doc/en/cairo-null-pointer-error.rd +0 -17
- data/doc/en/cairo-null-pointer-error.rdc +0 -17
- data/doc/en/cairo-operator.rbl +0 -18
- data/doc/en/cairo-operator.rd +0 -26
- data/doc/en/cairo-operator.rdc +0 -26
- data/doc/en/cairo-paper-parse-error.rbl +0 -4
- data/doc/en/cairo-paper-parse-error.rd +0 -17
- data/doc/en/cairo-paper-parse-error.rdc +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.rbl +0 -8
- data/doc/en/cairo-paper-unrecognized-paper-description.rd +0 -30
- data/doc/en/cairo-paper-unrecognized-paper-description.rdc +0 -30
- data/doc/en/cairo-paper.rbl +0 -76
- data/doc/en/cairo-paper.rd +0 -141
- data/doc/en/cairo-paper.rdc +0 -141
- data/doc/en/cairo-path-close-path.rd +0 -21
- data/doc/en/cairo-path-curve-to.rbl +0 -6
- data/doc/en/cairo-path-curve-to.rd +0 -21
- data/doc/en/cairo-path-curve-to.rdc +0 -21
- data/doc/en/cairo-path-data-type.rbl +0 -8
- data/doc/en/cairo-path-data-type.rd +0 -16
- data/doc/en/cairo-path-data-type.rdc +0 -16
- data/doc/en/cairo-path-data.rbl +0 -17
- data/doc/en/cairo-path-data.rd +0 -62
- data/doc/en/cairo-path-data.rdc +0 -62
- data/doc/en/cairo-path-line-to.rbl +0 -6
- data/doc/en/cairo-path-line-to.rd +0 -21
- data/doc/en/cairo-path-line-to.rdc +0 -21
- data/doc/en/cairo-path-move-to.rbl +0 -6
- data/doc/en/cairo-path-move-to.rd +0 -21
- data/doc/en/cairo-path-move-to.rdc +0 -21
- data/doc/en/cairo-path.rbl +0 -32
- data/doc/en/cairo-path.rd +0 -109
- data/doc/en/cairo-path.rdc +0 -109
- data/doc/en/cairo-pattern-type-mismatch-error.rd +0 -17
- data/doc/en/cairo-pattern.rbl +0 -17
- data/doc/en/cairo-pattern.rd +0 -62
- data/doc/en/cairo-pattern.rdc +0 -62
- data/doc/en/cairo-pdf-surface.rbl +0 -8
- data/doc/en/cairo-pdf-surface.rd +0 -27
- data/doc/en/cairo-pdf-surface.rdc +0 -27
- data/doc/en/cairo-point.rbl +0 -12
- data/doc/en/cairo-point.rd +0 -42
- data/doc/en/cairo-point.rdc +0 -42
- data/doc/en/cairo-ps-level.rd +0 -24
- data/doc/en/cairo-ps-surface.rbl +0 -15
- data/doc/en/cairo-ps-surface.rd +0 -55
- data/doc/en/cairo-ps-surface.rdc +0 -55
- data/doc/en/cairo-quartz-image-surface.rd +0 -27
- data/doc/en/cairo-quartz-surface.rbl +0 -8
- data/doc/en/cairo-quartz-surface.rd +0 -27
- data/doc/en/cairo-quartz-surface.rdc +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.rbl +0 -15
- data/doc/en/cairo-rectangle.rd +0 -54
- data/doc/en/cairo-rectangle.rdc +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.rbl +0 -9
- data/doc/en/cairo-subpixel-order.rd +0 -17
- data/doc/en/cairo-subpixel-order.rdc +0 -17
- data/doc/en/cairo-surface-finished-error.rbl +0 -4
- data/doc/en/cairo-surface-finished-error.rd +0 -17
- data/doc/en/cairo-surface-finished-error.rdc +0 -17
- data/doc/en/cairo-surface-pattern.rbl +0 -8
- data/doc/en/cairo-surface-pattern.rd +0 -27
- data/doc/en/cairo-surface-pattern.rdc +0 -27
- data/doc/en/cairo-surface-type-mismatch-error.rd +0 -17
- data/doc/en/cairo-surface.rbl +0 -19
- data/doc/en/cairo-surface.rd +0 -72
- data/doc/en/cairo-surface.rdc +0 -72
- data/doc/en/cairo-svg-surface.rd +0 -44
- data/doc/en/cairo-svg-version.rbl +0 -9
- data/doc/en/cairo-svg-version.rd +0 -24
- data/doc/en/cairo-svg-version.rdc +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.rbl +0 -80
- data/doc/en/cairo.rd +0 -95
- data/doc/en/cairo.rdc +0 -95
- data/doc/en/index.rbl +0 -1
- data/doc/en/index.rd +0 -1051
- data/doc/en/index.rdc +0 -1051
- data/samples/agg/aa_demo.rb +0 -47
- data/src/lib/cairo/table.rb +0 -29
data/extconf.rb
CHANGED
data/src/cairo.def
CHANGED
@@ -16,11 +16,15 @@ EXPORTS
|
|
16
16
|
rb_cCairo_LinearPattern DATA
|
17
17
|
rb_cCairo_RadialPattern DATA
|
18
18
|
rb_cCairo_FontFace DATA
|
19
|
+
rb_cCairo_ToyFontFace DATA
|
20
|
+
rb_cCairo_UserFontFace DATA
|
21
|
+
rb_cCairo_UserFontFace_TextToGlyphsData DATA
|
19
22
|
rb_cCairo_FontExtents DATA
|
20
23
|
rb_cCairo_FontOptions DATA
|
21
24
|
rb_cCairo_ScaledFont DATA
|
22
25
|
rb_cCairo_TextExtents DATA
|
23
26
|
rb_cCairo_Glyph DATA
|
27
|
+
rb_cCairo_TextCluster DATA
|
24
28
|
rb_cCairo_Surface DATA
|
25
29
|
rb_cCairo_ImageSurface DATA
|
26
30
|
rb_cCairo_PDFSurface DATA
|
@@ -48,6 +52,7 @@ EXPORTS
|
|
48
52
|
rb_mCairo_Filter DATA
|
49
53
|
rb_mCairo_SVGVersion DATA
|
50
54
|
rb_mCairo_PSLevel DATA
|
55
|
+
rb_mCairo_LCDFilter DATA
|
51
56
|
|
52
57
|
rb_mCairo_Color DATA
|
53
58
|
rb_cCairo_Color_Base DATA
|
@@ -73,6 +78,8 @@ EXPORTS
|
|
73
78
|
rb_cairo_text_extents_to_ruby_object
|
74
79
|
rb_cairo_glyph_from_ruby_object
|
75
80
|
rb_cairo_glyph_to_ruby_object
|
81
|
+
rb_cairo_text_cluster_from_ruby_object
|
82
|
+
rb_cairo_text_cluster_to_ruby_object
|
76
83
|
rb_cairo_surface_from_ruby_object
|
77
84
|
rb_cairo_surface_to_ruby_object
|
78
85
|
rb_cairo_surface_to_ruby_object_with_destroy
|
@@ -93,4 +100,5 @@ EXPORTS
|
|
93
100
|
rb_cairo_filter_from_ruby_object
|
94
101
|
rb_cairo_svg_version_from_ruby_object
|
95
102
|
rb_cairo_ps_level_from_ruby_object
|
103
|
+
rb_cairo_lcd_filter_from_ruby_object
|
96
104
|
rb_cairo_check_status
|
data/src/lib/cairo.rb
CHANGED
@@ -45,14 +45,19 @@ require 'cairo/constants'
|
|
45
45
|
module Cairo
|
46
46
|
class << self
|
47
47
|
undef __add_one_arg_setter
|
48
|
-
end
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
49
|
+
def bindings_version
|
50
|
+
major, minor, micro, tag = BINDINGS_VERSION
|
51
|
+
version = [major, minor, micro].join('.')
|
52
|
+
version << "-#{tag}" if tag
|
53
|
+
version
|
54
|
+
end
|
55
|
+
|
56
|
+
def exit_application(exception, status)
|
57
|
+
puts("#{exception.class}: #{exception}")
|
58
|
+
puts(exception.backtrace)
|
59
|
+
exit(status)
|
60
|
+
end
|
56
61
|
end
|
57
62
|
|
58
63
|
class Surface
|
data/src/lib/cairo/constants.rb
CHANGED
data/src/rb_cairo.c
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date: 2008-
|
6
|
+
* $Date: 2008-08-16 08:16:39 $
|
7
7
|
*
|
8
|
-
* Copyright 2006-
|
8
|
+
* Copyright 2006-2008 Kouhei Sutou <kou@cozmixng.org>
|
9
9
|
* Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
|
10
10
|
* Copyright 2004-2005 MenTaLguY <mental@rydia.com>
|
11
11
|
*
|
@@ -27,6 +27,24 @@ rb_cairo_def_setters (VALUE klass)
|
|
27
27
|
rb_funcall (rb_mCairo, id__add_one_arg_setter, 1, klass);
|
28
28
|
}
|
29
29
|
|
30
|
+
static VALUE
|
31
|
+
rb_cairo_satisfied_version (int argc, VALUE *argv, VALUE self)
|
32
|
+
{
|
33
|
+
VALUE major, minor, micro;
|
34
|
+
|
35
|
+
rb_scan_args (argc, argv, "21", &major, &minor, µ);
|
36
|
+
|
37
|
+
if (NIL_P (micro))
|
38
|
+
micro = UINT2NUM (0);
|
39
|
+
|
40
|
+
return CBOOL2RVAL (CAIRO_VERSION_MAJOR > NUM2UINT(major) ||
|
41
|
+
(CAIRO_VERSION_MAJOR == NUM2UINT(major) &&
|
42
|
+
CAIRO_VERSION_MINOR > NUM2UINT(minor)) ||
|
43
|
+
(CAIRO_VERSION_MAJOR == NUM2UINT(major) &&
|
44
|
+
CAIRO_VERSION_MINOR == NUM2UINT(minor) &&
|
45
|
+
CAIRO_VERSION_MICRO >= NUM2UINT(micro)));
|
46
|
+
}
|
47
|
+
|
30
48
|
void
|
31
49
|
Init_cairo ()
|
32
50
|
{
|
@@ -58,7 +76,10 @@ Init_cairo ()
|
|
58
76
|
|
59
77
|
rb_define_const (rb_mCairo, "BINDINGS_VERSION",
|
60
78
|
rb_ary_new3 (4,
|
61
|
-
INT2FIX (1), INT2FIX (
|
79
|
+
INT2FIX (1), INT2FIX (7), INT2FIX (0), Qnil));
|
80
|
+
|
81
|
+
rb_define_module_function (rb_mCairo, "satisfied_version?",
|
82
|
+
rb_cairo_satisfied_version, -1);
|
62
83
|
|
63
84
|
rb_mCairo_Color = rb_const_get (rb_mCairo, rb_intern ("Color"));
|
64
85
|
rb_cCairo_Color_Base = rb_const_get (rb_mCairo_Color, rb_intern ("Base"));
|
@@ -79,4 +100,5 @@ Init_cairo ()
|
|
79
100
|
Init_cairo_text_extents ();
|
80
101
|
Init_cairo_pattern ();
|
81
102
|
Init_cairo_glyph ();
|
103
|
+
Init_cairo_text_cluster ();
|
82
104
|
}
|
data/src/rb_cairo.h
CHANGED
@@ -3,8 +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 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
|
*
|
@@ -83,6 +84,9 @@ RB_CAIRO_VAR VALUE rb_cCairo_GradientPattern;
|
|
83
84
|
RB_CAIRO_VAR VALUE rb_cCairo_LinearPattern;
|
84
85
|
RB_CAIRO_VAR VALUE rb_cCairo_RadialPattern;
|
85
86
|
RB_CAIRO_VAR VALUE rb_cCairo_FontFace;
|
87
|
+
RB_CAIRO_VAR VALUE rb_cCairo_ToyFontFace;
|
88
|
+
RB_CAIRO_VAR VALUE rb_cCairo_UserFontFace;
|
89
|
+
RB_CAIRO_VAR VALUE rb_cCairo_UserFontFace_TextToGlyphsData;
|
86
90
|
RB_CAIRO_VAR VALUE rb_cCairo_FontExtents;
|
87
91
|
RB_CAIRO_VAR VALUE rb_cCairo_FontOptions;
|
88
92
|
RB_CAIRO_VAR VALUE rb_cCairo_ScaledFont;
|
@@ -119,6 +123,9 @@ RB_CAIRO_VAR VALUE rb_mCairo_PatternType;
|
|
119
123
|
RB_CAIRO_VAR VALUE rb_mCairo_Extend;
|
120
124
|
RB_CAIRO_VAR VALUE rb_mCairo_Filter;
|
121
125
|
RB_CAIRO_VAR VALUE rb_mCairo_SVGVersion;
|
126
|
+
RB_CAIRO_VAR VALUE rb_mCairo_PSLevel;
|
127
|
+
RB_CAIRO_VAR VALUE rb_mCairo_LCDFilter;
|
128
|
+
RB_CAIRO_VAR VALUE rb_mCairo_SVGVersion;
|
122
129
|
RB_CAIRO_VAR VALUE rb_mCairo_Color;
|
123
130
|
RB_CAIRO_VAR VALUE rb_cCairo_Color_Base;
|
124
131
|
RB_CAIRO_VAR VALUE rb_cCairo_Paper;
|
@@ -154,6 +161,9 @@ RB_CAIRO_VAR VALUE rb_cCairo_Paper;
|
|
154
161
|
#define RVAL2CRGLYPH(obj) (rb_cairo_glyph_from_ruby_object(obj))
|
155
162
|
#define CRGLYPH2RVAL(glyph) (rb_cairo_glyph_to_ruby_object(glyph))
|
156
163
|
|
164
|
+
#define RVAL2CRTEXTCLUSTER(obj) (rb_cairo_text_cluster_from_ruby_object(obj))
|
165
|
+
#define CRTEXTCLUSTER2RVAL(cluster) (rb_cairo_text_cluster_to_ruby_object(cluster))
|
166
|
+
|
157
167
|
#define RVAL2CRSURFACE(obj) (rb_cairo_surface_from_ruby_object(obj))
|
158
168
|
#define CRSURFACE2RVAL(surface) (rb_cairo_surface_to_ruby_object(surface))
|
159
169
|
#define CRSURFACE2RVAL_WITH_DESTROY(surface) \
|
@@ -189,6 +199,11 @@ VALUE rb_cairo_text_extents_to_ruby_object (cairo_text_extents
|
|
189
199
|
cairo_glyph_t *rb_cairo_glyph_from_ruby_object (VALUE obj);
|
190
200
|
VALUE rb_cairo_glyph_to_ruby_object (cairo_glyph_t *glyph);
|
191
201
|
|
202
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
203
|
+
cairo_text_cluster_t *rb_cairo_text_cluster_from_ruby_object (VALUE obj);
|
204
|
+
VALUE rb_cairo_text_cluster_to_ruby_object (cairo_text_cluster_t *cluster);
|
205
|
+
#endif
|
206
|
+
|
192
207
|
cairo_surface_t *rb_cairo_surface_from_ruby_object (VALUE obj);
|
193
208
|
VALUE rb_cairo_surface_to_ruby_object (cairo_surface_t *surface);
|
194
209
|
VALUE rb_cairo_surface_to_ruby_object_with_destroy
|
@@ -218,6 +233,9 @@ VALUE rb_cairo_surface_to_ruby_object_with_destroy
|
|
218
233
|
#define RVAL2CRPSLEVEL(obj) (rb_cairo_ps_level_from_ruby_object(obj))
|
219
234
|
# endif
|
220
235
|
#endif
|
236
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
237
|
+
#define RVAL2CRLCDFILTER(obj) (rb_cairo_lcd_filter_from_ruby_object(obj))
|
238
|
+
#endif
|
221
239
|
|
222
240
|
cairo_operator_t rb_cairo_operator_from_ruby_object (VALUE obj);
|
223
241
|
cairo_antialias_t rb_cairo_antialias_from_ruby_object (VALUE obj);
|
@@ -242,6 +260,9 @@ cairo_svg_version_t rb_cairo_svg_version_from_ruby_object (VALUE obj);
|
|
242
260
|
cairo_ps_level_t rb_cairo_ps_level_from_ruby_object (VALUE obj);
|
243
261
|
# endif
|
244
262
|
#endif
|
263
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
264
|
+
cairo_lcd_filter_t rb_cairo_lcd_filter_from_ruby_object (VALUE obj);
|
265
|
+
#endif
|
245
266
|
|
246
267
|
void rb_cairo_check_status (cairo_status_t status);
|
247
268
|
|
data/src/rb_cairo_constants.c
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date: 2008-
|
6
|
+
* $Date: 2008-08-13 12:27:39 $
|
7
7
|
*
|
8
8
|
* Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
|
9
9
|
* Copyright 2004-2005 MenTaLguY <mental@rydia.com>
|
@@ -33,6 +33,7 @@ VALUE rb_mCairo_Extend;
|
|
33
33
|
VALUE rb_mCairo_Filter;
|
34
34
|
VALUE rb_mCairo_SVGVersion = Qnil;
|
35
35
|
VALUE rb_mCairo_PSLevel = Qnil;
|
36
|
+
VALUE rb_mCairo_LCDFilter = Qnil;
|
36
37
|
|
37
38
|
#define CAIRO_OPERATOR_MIN CAIRO_OPERATOR_CLEAR
|
38
39
|
#define CAIRO_OPERATOR_MAX CAIRO_OPERATOR_SATURATE
|
@@ -85,6 +86,9 @@ VALUE rb_mCairo_PSLevel = Qnil;
|
|
85
86
|
#define CAIRO_PS_LEVEL_MIN CAIRO_PS_LEVEL_2
|
86
87
|
#define CAIRO_PS_LEVEL_MAX CAIRO_PS_LEVEL_3
|
87
88
|
|
89
|
+
#define CAIRO_LCD_FILTER_MIN CAIRO_LCD_FILTER_DEFAULT
|
90
|
+
#define CAIRO_LCD_FILTER_MAX CAIRO_LCD_FILTER_FIR5
|
91
|
+
|
88
92
|
#define DEFINE_RVAL2ENUM(name, const_name) \
|
89
93
|
cairo_ ## name ## _t \
|
90
94
|
rb_cairo_ ## name ## _from_ruby_object (VALUE rb_ ## name) \
|
@@ -135,6 +139,10 @@ DEFINE_RVAL2ENUM(ps_level, PS_LEVEL)
|
|
135
139
|
# endif
|
136
140
|
#endif
|
137
141
|
|
142
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
143
|
+
DEFINE_RVAL2ENUM(lcd_filter, LCD_FILTER)
|
144
|
+
#endif
|
145
|
+
|
138
146
|
#if defined(RB_CAIRO_PLATFORM_WIN32) && !defined(PS_LEVEL_ENUM_DEFINED)
|
139
147
|
void
|
140
148
|
rb_cairo_ps_level_from_ruby_object (VALUE rb_ps_level)
|
@@ -459,4 +467,19 @@ Init_cairo_constants (void)
|
|
459
467
|
cr_ps_level_to_string, -1);
|
460
468
|
# endif
|
461
469
|
#endif
|
470
|
+
|
471
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
472
|
+
/* cairo_lcd_filter_t */
|
473
|
+
rb_mCairo_LCDFilter = rb_define_module_under (rb_mCairo, "LCDFilter");
|
474
|
+
rb_define_const (rb_mCairo_LCDFilter, "DEFAULT",
|
475
|
+
INT2FIX (CAIRO_LCD_FILTER_DEFAULT));
|
476
|
+
rb_define_const (rb_mCairo_LCDFilter, "NONE",
|
477
|
+
INT2FIX (CAIRO_LCD_FILTER_NONE));
|
478
|
+
rb_define_const (rb_mCairo_LCDFilter, "INTRA_PIXEL",
|
479
|
+
INT2FIX (CAIRO_LCD_FILTER_INTRA_PIXEL));
|
480
|
+
rb_define_const (rb_mCairo_LCDFilter, "FIR3",
|
481
|
+
INT2FIX (CAIRO_LCD_FILTER_FIR3));
|
482
|
+
rb_define_const (rb_mCairo_LCDFilter, "FIR5",
|
483
|
+
INT2FIX (CAIRO_LCD_FILTER_FIR5));
|
484
|
+
#endif
|
462
485
|
}
|
data/src/rb_cairo_context.c
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
* Ruby Cairo Binding
|
4
4
|
*
|
5
5
|
* $Author: kou $
|
6
|
-
* $Date: 2008-
|
6
|
+
* $Date: 2008-08-17 03:00:41 $
|
7
7
|
*
|
8
8
|
* Copyright 2005 Øyvind Kolås <pippin@freedesktop.org>
|
9
9
|
* Copyright 2004-2005 MenTaLguY <mental@rydia.com>
|
@@ -15,10 +15,17 @@
|
|
15
15
|
#include "rb_cairo.h"
|
16
16
|
#include "rb_cairo_private.h"
|
17
17
|
|
18
|
+
#ifdef HAVE_RUBY_ST_H
|
19
|
+
# include <ruby/st.h>
|
20
|
+
#else
|
21
|
+
# include <st.h>
|
22
|
+
#endif
|
23
|
+
|
18
24
|
VALUE rb_cCairo_Context;
|
19
25
|
|
20
26
|
static ID cr_id_surface, cr_id_source;
|
21
27
|
static ID cr_id_plus, cr_id_minus, cr_id_multi, cr_id_div;
|
28
|
+
static cairo_user_data_key_t cr_object_holder_key;
|
22
29
|
|
23
30
|
#define _SELF (RVAL2CRCONTEXT(self))
|
24
31
|
|
@@ -57,9 +64,23 @@ rb_cairo_context_from_ruby_object (VALUE obj)
|
|
57
64
|
rb_raise (rb_eTypeError, "not a cairo graphics context");
|
58
65
|
}
|
59
66
|
Data_Get_Struct (obj, cairo_t, context);
|
67
|
+
if (!context)
|
68
|
+
rb_cairo_check_status (CAIRO_STATUS_NULL_POINTER);
|
60
69
|
return context;
|
61
70
|
}
|
62
71
|
|
72
|
+
static rb_cairo__object_holder_t *
|
73
|
+
cr_object_holder_new (VALUE object)
|
74
|
+
{
|
75
|
+
return rb_cairo__object_holder_new (rb_cCairo_Context, object);
|
76
|
+
}
|
77
|
+
|
78
|
+
static void
|
79
|
+
cr_object_holder_free (void *ptr)
|
80
|
+
{
|
81
|
+
rb_cairo__object_holder_free (rb_cCairo_Context, ptr);
|
82
|
+
}
|
83
|
+
|
63
84
|
static void
|
64
85
|
cr_context_free (void *ptr)
|
65
86
|
{
|
@@ -89,16 +110,43 @@ cr_allocate (VALUE klass)
|
|
89
110
|
return Data_Wrap_Struct (klass, NULL, cr_context_free, NULL);
|
90
111
|
}
|
91
112
|
|
113
|
+
static VALUE
|
114
|
+
cr_destroy (VALUE self)
|
115
|
+
{
|
116
|
+
cairo_t *cr;
|
117
|
+
|
118
|
+
cr = _SELF;
|
119
|
+
cairo_set_user_data (cr, &cr_object_holder_key, NULL, NULL); /* needed? */
|
120
|
+
cairo_destroy (cr);
|
121
|
+
|
122
|
+
DATA_PTR (self) = NULL;
|
123
|
+
return Qnil;
|
124
|
+
}
|
125
|
+
|
126
|
+
static VALUE
|
127
|
+
cr_destroy_with_destroy_check (VALUE self)
|
128
|
+
{
|
129
|
+
if (DATA_PTR (self))
|
130
|
+
cr_destroy (self);
|
131
|
+
return Qnil;
|
132
|
+
}
|
133
|
+
|
92
134
|
static VALUE
|
93
135
|
cr_initialize (VALUE self, VALUE target)
|
94
136
|
{
|
95
137
|
cairo_t *cr;
|
138
|
+
VALUE result = Qnil;
|
96
139
|
|
97
140
|
cr = cairo_create (RVAL2CRSURFACE (target));
|
98
141
|
cr_check_status (cr);
|
99
142
|
rb_ivar_set (self, cr_id_surface, target);
|
143
|
+
cairo_set_user_data (cr, &cr_object_holder_key,
|
144
|
+
cr_object_holder_new(self),
|
145
|
+
cr_object_holder_free);
|
100
146
|
DATA_PTR (self) = cr;
|
101
|
-
|
147
|
+
if (rb_block_given_p ())
|
148
|
+
result = rb_ensure (rb_yield, self, cr_destroy_with_destroy_check, self);
|
149
|
+
return result;
|
102
150
|
}
|
103
151
|
|
104
152
|
static VALUE
|
@@ -318,6 +366,12 @@ cr_set_source_generic (int argc, VALUE *argv, VALUE self)
|
|
318
366
|
{
|
319
367
|
return cr_set_source_rgba (argc, argv, self);
|
320
368
|
}
|
369
|
+
else if (n == 1 && rb_cairo__is_kind_of (arg1, rb_cCairo_Surface))
|
370
|
+
{
|
371
|
+
return cr_set_source_surface (self, arg1,
|
372
|
+
rb_float_new (0),
|
373
|
+
rb_float_new (0));
|
374
|
+
}
|
321
375
|
else if (n == 1)
|
322
376
|
{
|
323
377
|
return cr_set_source (self, arg1);
|
@@ -336,7 +390,7 @@ cr_set_source_generic (int argc, VALUE *argv, VALUE self)
|
|
336
390
|
"invalid argument (expect "
|
337
391
|
"(red, green, blue), (red, green, blue, alpha), "
|
338
392
|
"([red, green, blue]), ([red, green, blue, alpha]), "
|
339
|
-
"(pattern) or (surface, x, y))");
|
393
|
+
"(surface), (pattern) or (surface, x, y))");
|
340
394
|
}
|
341
395
|
}
|
342
396
|
|
@@ -1017,11 +1071,31 @@ cr_clip_rectangle_list (VALUE self)
|
|
1017
1071
|
static VALUE
|
1018
1072
|
cr_select_font_face (int argc, VALUE *argv, VALUE self)
|
1019
1073
|
{
|
1020
|
-
VALUE
|
1074
|
+
VALUE rb_family, rb_slant, rb_weight;
|
1075
|
+
const char *family;
|
1021
1076
|
cairo_font_slant_t slant;
|
1022
1077
|
cairo_font_weight_t weight;
|
1023
1078
|
|
1024
|
-
rb_scan_args(argc, argv, "
|
1079
|
+
rb_scan_args(argc, argv, "03", &rb_family, &rb_slant, &rb_weight);
|
1080
|
+
|
1081
|
+
if (NIL_P (rb_family))
|
1082
|
+
{
|
1083
|
+
family = "";
|
1084
|
+
}
|
1085
|
+
else if (rb_cairo__is_kind_of (rb_family, rb_cString))
|
1086
|
+
{
|
1087
|
+
family = RSTRING_PTR (rb_family);
|
1088
|
+
}
|
1089
|
+
else if (rb_cairo__is_kind_of (rb_family, rb_cSymbol))
|
1090
|
+
{
|
1091
|
+
family = rb_id2name (SYM2ID (rb_family));
|
1092
|
+
}
|
1093
|
+
else
|
1094
|
+
{
|
1095
|
+
rb_raise (rb_eArgError,
|
1096
|
+
"family name should be nil, String or Symbol: %s",
|
1097
|
+
rb_cairo__inspect (rb_family));
|
1098
|
+
}
|
1025
1099
|
|
1026
1100
|
if (NIL_P (rb_slant))
|
1027
1101
|
slant = CAIRO_FONT_SLANT_NORMAL;
|
@@ -1033,7 +1107,7 @@ cr_select_font_face (int argc, VALUE *argv, VALUE self)
|
|
1033
1107
|
else
|
1034
1108
|
weight = RVAL2CRFONTWEIGHT (rb_weight);
|
1035
1109
|
|
1036
|
-
cairo_select_font_face (_SELF,
|
1110
|
+
cairo_select_font_face (_SELF, family, slant, weight);
|
1037
1111
|
cr_check_status (_SELF);
|
1038
1112
|
return self;
|
1039
1113
|
}
|
@@ -1117,6 +1191,46 @@ cr_show_glyphs (VALUE self, VALUE rb_glyphs)
|
|
1117
1191
|
return self;
|
1118
1192
|
}
|
1119
1193
|
|
1194
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
1195
|
+
static VALUE
|
1196
|
+
cr_has_show_text_glyphs (VALUE self)
|
1197
|
+
{
|
1198
|
+
return CBOOL2RVAL (cairo_has_show_text_glyphs (_SELF));
|
1199
|
+
}
|
1200
|
+
|
1201
|
+
static VALUE
|
1202
|
+
cr_show_text_glyphs (VALUE self, VALUE rb_utf8, VALUE rb_glyphs,
|
1203
|
+
VALUE rb_clusters, VALUE rb_backward)
|
1204
|
+
{
|
1205
|
+
cairo_t *cr;
|
1206
|
+
const char *utf8;
|
1207
|
+
int utf8_len;
|
1208
|
+
cairo_glyph_t *glyphs = NULL;
|
1209
|
+
int num_glyphs = 0;
|
1210
|
+
cairo_text_cluster_t *clusters = NULL;
|
1211
|
+
int num_clusters = 0;
|
1212
|
+
cairo_bool_t backward;
|
1213
|
+
|
1214
|
+
cr = _SELF;
|
1215
|
+
utf8 = RSTRING_PTR (rb_utf8);
|
1216
|
+
utf8_len = RSTRING_LEN (rb_utf8);
|
1217
|
+
rb_cairo__glyphs_from_ruby_object (rb_glyphs, &glyphs, &num_glyphs);
|
1218
|
+
rb_cairo__text_clusters_from_ruby_object (rb_clusters,
|
1219
|
+
&clusters, &num_clusters);
|
1220
|
+
backward = RVAL2CBOOL (rb_backward);
|
1221
|
+
cairo_show_text_glyphs (cr, utf8, utf8_len,
|
1222
|
+
glyphs, num_glyphs,
|
1223
|
+
clusters, num_clusters,
|
1224
|
+
backward);
|
1225
|
+
if (glyphs)
|
1226
|
+
cairo_glyph_free (glyphs);
|
1227
|
+
if (clusters)
|
1228
|
+
cairo_text_cluster_free (clusters);
|
1229
|
+
|
1230
|
+
return self;
|
1231
|
+
}
|
1232
|
+
#endif
|
1233
|
+
|
1120
1234
|
static VALUE
|
1121
1235
|
cr_get_font_face (VALUE self)
|
1122
1236
|
{
|
@@ -1370,6 +1484,21 @@ cr_copy_append_path (VALUE self, VALUE path)
|
|
1370
1484
|
return self;
|
1371
1485
|
}
|
1372
1486
|
|
1487
|
+
static int
|
1488
|
+
cr_destroy_all_guarded_contexts_at_end_iter (VALUE key, VALUE value, VALUE data)
|
1489
|
+
{
|
1490
|
+
cr_destroy (key);
|
1491
|
+
return ST_CONTINUE;
|
1492
|
+
}
|
1493
|
+
|
1494
|
+
static void
|
1495
|
+
cr_destroy_all_guarded_contexts_at_end (VALUE data)
|
1496
|
+
{
|
1497
|
+
rb_hash_foreach (rb_cairo__gc_guarded_objects (rb_cCairo_Context),
|
1498
|
+
cr_destroy_all_guarded_contexts_at_end_iter,
|
1499
|
+
Qnil);
|
1500
|
+
}
|
1501
|
+
|
1373
1502
|
void
|
1374
1503
|
Init_cairo_context (void)
|
1375
1504
|
{
|
@@ -1403,8 +1532,12 @@ Init_cairo_context (void)
|
|
1403
1532
|
|
1404
1533
|
rb_define_alloc_func (rb_cCairo_Context, cr_allocate);
|
1405
1534
|
|
1535
|
+
rb_cairo__initialize_gc_guard_holder_class (rb_cCairo_Context);
|
1536
|
+
rb_set_end_proc(cr_destroy_all_guarded_contexts_at_end, Qnil);
|
1537
|
+
|
1406
1538
|
/* Functions for manipulating state objects */
|
1407
1539
|
rb_define_method (rb_cCairo_Context, "initialize", cr_initialize, 1);
|
1540
|
+
rb_define_method (rb_cCairo_Context, "destroy", cr_destroy, 0);
|
1408
1541
|
|
1409
1542
|
rb_define_method (rb_cCairo_Context, "save", cr_save, 0);
|
1410
1543
|
rb_define_method (rb_cCairo_Context, "restore", cr_restore, 0);
|
@@ -1507,6 +1640,14 @@ Init_cairo_context (void)
|
|
1507
1640
|
#endif
|
1508
1641
|
rb_define_method (rb_cCairo_Context, "show_text", cr_show_text, 1);
|
1509
1642
|
rb_define_method (rb_cCairo_Context, "show_glyphs", cr_show_glyphs, 1);
|
1643
|
+
#if CAIRO_CHECK_VERSION(1, 7, 2)
|
1644
|
+
rb_define_method (rb_cCairo_Context, "have_show_text_glyphs?",
|
1645
|
+
cr_has_show_text_glyphs, 0);
|
1646
|
+
rb_define_alias (rb_cCairo_Context,
|
1647
|
+
"has_show_text_glyphs?", "have_show_text_glyphs?");
|
1648
|
+
rb_define_method (rb_cCairo_Context, "show_text_glyphs",
|
1649
|
+
cr_show_text_glyphs, 4);
|
1650
|
+
#endif
|
1510
1651
|
rb_define_method (rb_cCairo_Context, "text_path", cr_text_path, 1);
|
1511
1652
|
rb_define_method (rb_cCairo_Context, "glyph_path", cr_glyph_path, 1);
|
1512
1653
|
rb_define_method (rb_cCairo_Context, "text_extents", cr_text_extents, 1);
|