rmagick 4.1.0.rc2 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rmagick might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.codeclimate.yml +63 -0
- data/.editorconfig +3 -0
- data/.github/workflows/ci.yml +148 -0
- data/.gitignore +3 -1
- data/.rspec +1 -0
- data/.rubocop.yml +24 -0
- data/.rubocop_todo.yml +80 -270
- data/.yardopts +5 -0
- data/CHANGELOG.md +63 -0
- data/CONTRIBUTING.md +14 -10
- data/README.md +292 -0
- data/Rakefile +16 -22
- data/before_install_linux.sh +22 -32
- data/before_install_osx.sh +56 -2
- data/ext/RMagick/extconf.rb +100 -94
- data/ext/RMagick/rmagick.c +77 -104
- data/ext/RMagick/rmagick.h +74 -70
- data/ext/RMagick/rmdraw.c +261 -444
- data/ext/RMagick/rmenum.c +96 -113
- data/ext/RMagick/rmfill.c +46 -77
- data/ext/RMagick/rmilist.c +136 -244
- data/ext/RMagick/rmimage.c +3395 -4166
- data/ext/RMagick/rminfo.c +531 -737
- data/ext/RMagick/rmkinfo.c +21 -87
- data/ext/RMagick/rmmain.c +405 -245
- data/ext/RMagick/rmmontage.c +60 -126
- data/ext/RMagick/rmpixel.c +401 -345
- data/ext/RMagick/rmstruct.c +62 -88
- data/ext/RMagick/rmutil.c +112 -218
- data/lib/rmagick/version.rb +1 -1
- data/lib/rmagick_internal.rb +128 -77
- data/lib/rvg/clippath.rb +2 -1
- data/lib/rvg/container.rb +10 -5
- data/lib/rvg/describable.rb +1 -1
- data/lib/rvg/embellishable.rb +5 -4
- data/lib/rvg/misc.rb +15 -12
- data/lib/rvg/paint.rb +2 -1
- data/lib/rvg/pathdata.rb +12 -11
- data/lib/rvg/rvg.rb +8 -4
- data/lib/rvg/stylable.rb +9 -7
- data/lib/rvg/text.rb +11 -6
- data/lib/rvg/transformable.rb +3 -2
- data/lib/rvg/units.rb +1 -1
- data/rmagick.gemspec +7 -6
- metadata +31 -421
- data/.appveyor.yml +0 -57
- data/.circleci/config.yml +0 -56
- data/.ruby-version +0 -1
- data/.simplecov +0 -27
- data/.travis.yml +0 -64
- data/Doxyfile +0 -1514
- data/README.textile +0 -259
- data/benchmarks/memory/README.md +0 -50
- data/benchmarks/memory/image_new.rb +0 -8
- data/benchmarks/memory/rmagick.gnuplot +0 -16
- data/doc/.cvsignore +0 -1
- data/doc/comtasks.html +0 -287
- data/doc/constants.html +0 -1581
- data/doc/css/doc.css +0 -299
- data/doc/css/popup.css +0 -34
- data/doc/css/ref.css +0 -67
- data/doc/draw.html +0 -3272
- data/doc/ex/InitialCoords.rb +0 -22
- data/doc/ex/NewCoordSys.rb +0 -30
- data/doc/ex/OrigCoordSys.rb +0 -16
- data/doc/ex/PreserveAspectRatio.rb +0 -204
- data/doc/ex/RotateScale.rb +0 -36
- data/doc/ex/Skew.rb +0 -38
- data/doc/ex/Use01.rb +0 -15
- data/doc/ex/Use02.rb +0 -20
- data/doc/ex/Use03.rb +0 -16
- data/doc/ex/ViewBox.rb +0 -31
- data/doc/ex/adaptive_threshold.rb +0 -9
- data/doc/ex/add_noise.rb +0 -16
- data/doc/ex/affine.rb +0 -48
- data/doc/ex/affine_transform.rb +0 -20
- data/doc/ex/arc.rb +0 -49
- data/doc/ex/arcpath.rb +0 -32
- data/doc/ex/arcs01.rb +0 -28
- data/doc/ex/arcs02.rb +0 -59
- data/doc/ex/average.rb +0 -15
- data/doc/ex/axes.rb +0 -64
- data/doc/ex/baseline_shift01.rb +0 -17
- data/doc/ex/bilevel_channel.rb +0 -8
- data/doc/ex/blur_image.rb +0 -12
- data/doc/ex/border.rb +0 -10
- data/doc/ex/bounding_box.rb +0 -42
- data/doc/ex/cbezier1.rb +0 -41
- data/doc/ex/cbezier2.rb +0 -41
- data/doc/ex/cbezier3.rb +0 -41
- data/doc/ex/cbezier4.rb +0 -42
- data/doc/ex/cbezier5.rb +0 -42
- data/doc/ex/cbezier6.rb +0 -53
- data/doc/ex/channel.rb +0 -25
- data/doc/ex/charcoal.rb +0 -12
- data/doc/ex/chop.rb +0 -29
- data/doc/ex/circle.rb +0 -33
- data/doc/ex/circle01.rb +0 -16
- data/doc/ex/clip_path.rb +0 -60
- data/doc/ex/coalesce.rb +0 -57
- data/doc/ex/color_fill_to_border.rb +0 -29
- data/doc/ex/color_floodfill.rb +0 -28
- data/doc/ex/color_histogram.rb +0 -47
- data/doc/ex/color_reset.rb +0 -11
- data/doc/ex/colorize.rb +0 -16
- data/doc/ex/colors.rb +0 -64
- data/doc/ex/compose_mask.rb +0 -22
- data/doc/ex/composite.rb +0 -133
- data/doc/ex/composite_layers.rb +0 -52
- data/doc/ex/composite_tiled.rb +0 -21
- data/doc/ex/contrast.rb +0 -36
- data/doc/ex/crop.rb +0 -31
- data/doc/ex/crop_with_gravity.rb +0 -42
- data/doc/ex/cubic01.rb +0 -43
- data/doc/ex/cubic02.rb +0 -91
- data/doc/ex/cycle_colormap.rb +0 -21
- data/doc/ex/dissolve.rb +0 -12
- data/doc/ex/drawcomp.rb +0 -41
- data/doc/ex/drop_shadow.rb +0 -60
- data/doc/ex/edge.rb +0 -11
- data/doc/ex/ellipse.rb +0 -45
- data/doc/ex/ellipse01.rb +0 -21
- data/doc/ex/emboss.rb +0 -11
- data/doc/ex/enhance.rb +0 -28
- data/doc/ex/equalize.rb +0 -11
- data/doc/ex/evenodd.rb +0 -42
- data/doc/ex/fill_pattern.rb +0 -23
- data/doc/ex/flatten_images.rb +0 -36
- data/doc/ex/flip.rb +0 -11
- data/doc/ex/flop.rb +0 -11
- data/doc/ex/font_styles.rb +0 -32
- data/doc/ex/fonts.rb +0 -16
- data/doc/ex/frame.rb +0 -12
- data/doc/ex/gaussian_blur.rb +0 -11
- data/doc/ex/get_multiline_type_metrics.rb +0 -41
- data/doc/ex/get_pixels.rb +0 -45
- data/doc/ex/get_type_metrics.rb +0 -142
- data/doc/ex/gradientfill.rb +0 -27
- data/doc/ex/grav.rb +0 -45
- data/doc/ex/gravity.rb +0 -78
- data/doc/ex/group.rb +0 -26
- data/doc/ex/hatchfill.rb +0 -27
- data/doc/ex/image.rb +0 -44
- data/doc/ex/images/Apple.miff +0 -0
- data/doc/ex/images/Ballerina.jpg +0 -0
- data/doc/ex/images/Ballerina3.jpg +0 -0
- data/doc/ex/images/Button_0.gif +0 -0
- data/doc/ex/images/Button_1.gif +0 -0
- data/doc/ex/images/Button_2.gif +0 -0
- data/doc/ex/images/Button_3.gif +0 -0
- data/doc/ex/images/Button_4.gif +0 -0
- data/doc/ex/images/Button_5.gif +0 -0
- data/doc/ex/images/Button_6.gif +0 -0
- data/doc/ex/images/Button_7.gif +0 -0
- data/doc/ex/images/Button_8.gif +0 -0
- data/doc/ex/images/Button_9.gif +0 -0
- data/doc/ex/images/Button_A.gif +0 -0
- data/doc/ex/images/Button_B.gif +0 -0
- data/doc/ex/images/Button_C.gif +0 -0
- data/doc/ex/images/Button_D.gif +0 -0
- data/doc/ex/images/Button_E.gif +0 -0
- data/doc/ex/images/Button_F.gif +0 -0
- data/doc/ex/images/Button_G.gif +0 -0
- data/doc/ex/images/Button_H.gif +0 -0
- data/doc/ex/images/Button_I.gif +0 -0
- data/doc/ex/images/Button_J.gif +0 -0
- data/doc/ex/images/Button_K.gif +0 -0
- data/doc/ex/images/Button_L.gif +0 -0
- data/doc/ex/images/Button_M.gif +0 -0
- data/doc/ex/images/Button_N.gif +0 -0
- data/doc/ex/images/Button_O.gif +0 -0
- data/doc/ex/images/Button_P.gif +0 -0
- data/doc/ex/images/Button_Q.gif +0 -0
- data/doc/ex/images/Button_R.gif +0 -0
- data/doc/ex/images/Button_S.gif +0 -0
- data/doc/ex/images/Button_T.gif +0 -0
- data/doc/ex/images/Button_U.gif +0 -0
- data/doc/ex/images/Button_V.gif +0 -0
- data/doc/ex/images/Button_W.gif +0 -0
- data/doc/ex/images/Button_X.gif +0 -0
- data/doc/ex/images/Button_Y.gif +0 -0
- data/doc/ex/images/Button_Z.gif +0 -0
- data/doc/ex/images/Cheetah.jpg +0 -0
- data/doc/ex/images/Coffee.png +0 -0
- data/doc/ex/images/Flower_Hat.jpg +0 -0
- data/doc/ex/images/Gold_Statue.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
- data/doc/ex/images/Leaf.miff +0 -0
- data/doc/ex/images/No.png +0 -0
- data/doc/ex/images/Polynesia.jpg +0 -0
- data/doc/ex/images/Red_Rocks.jpg +0 -0
- data/doc/ex/images/Rocks_On_Beach.miff +0 -0
- data/doc/ex/images/Shorts.jpg +0 -0
- data/doc/ex/images/Snake.png +0 -0
- data/doc/ex/images/Violin.jpg +0 -0
- data/doc/ex/images/Yellow_Rose.miff +0 -0
- data/doc/ex/images/big-duck.gif +0 -0
- data/doc/ex/images/duck.gif +0 -0
- data/doc/ex/images/duck0.gif +0 -0
- data/doc/ex/images/duck1.gif +0 -0
- data/doc/ex/images/duck10.gif +0 -0
- data/doc/ex/images/duck11.gif +0 -0
- data/doc/ex/images/duck12.gif +0 -0
- data/doc/ex/images/duck13.gif +0 -0
- data/doc/ex/images/duck14.gif +0 -0
- data/doc/ex/images/duck15.gif +0 -0
- data/doc/ex/images/duck2.gif +0 -0
- data/doc/ex/images/duck3.gif +0 -0
- data/doc/ex/images/duck4.gif +0 -0
- data/doc/ex/images/duck5.gif +0 -0
- data/doc/ex/images/duck6.gif +0 -0
- data/doc/ex/images/duck7.gif +0 -0
- data/doc/ex/images/duck8.gif +0 -0
- data/doc/ex/images/duck9.gif +0 -0
- data/doc/ex/images/graydient230x6.gif +0 -0
- data/doc/ex/images/image_with_profile.jpg +0 -0
- data/doc/ex/images/logo400x83.gif +0 -0
- data/doc/ex/images/model.miff +0 -0
- data/doc/ex/images/notimplemented.gif +0 -0
- data/doc/ex/images/smile.miff +0 -0
- data/doc/ex/images/spin.gif +0 -0
- data/doc/ex/implode.rb +0 -34
- data/doc/ex/level.rb +0 -11
- data/doc/ex/level_colors.rb +0 -11
- data/doc/ex/line.rb +0 -41
- data/doc/ex/line01.rb +0 -21
- data/doc/ex/mask.rb +0 -35
- data/doc/ex/matte_fill_to_border.rb +0 -39
- data/doc/ex/matte_floodfill.rb +0 -32
- data/doc/ex/matte_replace.rb +0 -39
- data/doc/ex/median_filter.rb +0 -28
- data/doc/ex/modulate.rb +0 -11
- data/doc/ex/mono.rb +0 -23
- data/doc/ex/morph.rb +0 -25
- data/doc/ex/mosaic.rb +0 -37
- data/doc/ex/motion_blur.rb +0 -11
- data/doc/ex/negate.rb +0 -11
- data/doc/ex/negate_channel.rb +0 -9
- data/doc/ex/nested_rvg.rb +0 -21
- data/doc/ex/nonzero.rb +0 -42
- data/doc/ex/normalize.rb +0 -11
- data/doc/ex/oil_paint.rb +0 -11
- data/doc/ex/opacity.rb +0 -37
- data/doc/ex/ordered_dither.rb +0 -11
- data/doc/ex/path.rb +0 -63
- data/doc/ex/pattern1.rb +0 -25
- data/doc/ex/pattern2.rb +0 -26
- data/doc/ex/polaroid.rb +0 -26
- data/doc/ex/polygon.rb +0 -23
- data/doc/ex/polygon01.rb +0 -21
- data/doc/ex/polyline.rb +0 -22
- data/doc/ex/polyline01.rb +0 -21
- data/doc/ex/posterize.rb +0 -8
- data/doc/ex/preview.rb +0 -8
- data/doc/ex/qbezierpath.rb +0 -52
- data/doc/ex/quad01.rb +0 -34
- data/doc/ex/quantize-m.rb +0 -25
- data/doc/ex/radial_blur.rb +0 -9
- data/doc/ex/raise.rb +0 -8
- data/doc/ex/random_threshold_channel.rb +0 -13
- data/doc/ex/rect01.rb +0 -14
- data/doc/ex/rect02.rb +0 -20
- data/doc/ex/rectangle.rb +0 -34
- data/doc/ex/reduce_noise.rb +0 -28
- data/doc/ex/remap.rb +0 -11
- data/doc/ex/remap_images.rb +0 -19
- data/doc/ex/resize_to_fill.rb +0 -8
- data/doc/ex/resize_to_fit.rb +0 -8
- data/doc/ex/roll.rb +0 -9
- data/doc/ex/rotate.rb +0 -44
- data/doc/ex/rotate_f.rb +0 -14
- data/doc/ex/roundrect.rb +0 -33
- data/doc/ex/rubyname.rb +0 -30
- data/doc/ex/rvg_clippath.rb +0 -12
- data/doc/ex/rvg_linecap.rb +0 -42
- data/doc/ex/rvg_linejoin.rb +0 -40
- data/doc/ex/rvg_opacity.rb +0 -18
- data/doc/ex/rvg_pattern.rb +0 -26
- data/doc/ex/rvg_stroke_dasharray.rb +0 -11
- data/doc/ex/segment.rb +0 -11
- data/doc/ex/sepiatone.rb +0 -7
- data/doc/ex/shade.rb +0 -11
- data/doc/ex/shadow.rb +0 -30
- data/doc/ex/shave.rb +0 -15
- data/doc/ex/shear.rb +0 -10
- data/doc/ex/sketch.rb +0 -17
- data/doc/ex/skewx.rb +0 -51
- data/doc/ex/skewy.rb +0 -47
- data/doc/ex/smile.rb +0 -126
- data/doc/ex/solarize.rb +0 -11
- data/doc/ex/sparse_color.rb +0 -55
- data/doc/ex/splice.rb +0 -8
- data/doc/ex/spread.rb +0 -11
- data/doc/ex/stegano.rb +0 -54
- data/doc/ex/stroke_dasharray.rb +0 -42
- data/doc/ex/stroke_fill.rb +0 -10
- data/doc/ex/stroke_linecap.rb +0 -44
- data/doc/ex/stroke_linejoin.rb +0 -48
- data/doc/ex/stroke_width.rb +0 -49
- data/doc/ex/swirl.rb +0 -17
- data/doc/ex/text.rb +0 -37
- data/doc/ex/text01.rb +0 -16
- data/doc/ex/text_align.rb +0 -36
- data/doc/ex/text_antialias.rb +0 -37
- data/doc/ex/text_styles.rb +0 -19
- data/doc/ex/text_undercolor.rb +0 -28
- data/doc/ex/texture_fill_to_border.rb +0 -34
- data/doc/ex/texture_floodfill.rb +0 -32
- data/doc/ex/texturefill.rb +0 -24
- data/doc/ex/threshold.rb +0 -13
- data/doc/ex/to_blob.rb +0 -13
- data/doc/ex/translate.rb +0 -39
- data/doc/ex/transparent.rb +0 -38
- data/doc/ex/transpose.rb +0 -9
- data/doc/ex/transverse.rb +0 -9
- data/doc/ex/tref01.rb +0 -24
- data/doc/ex/triangle01.rb +0 -15
- data/doc/ex/trim.rb +0 -23
- data/doc/ex/tspan01.rb +0 -17
- data/doc/ex/tspan02.rb +0 -17
- data/doc/ex/tspan03.rb +0 -19
- data/doc/ex/unsharp_mask.rb +0 -28
- data/doc/ex/viewex.rb +0 -33
- data/doc/ex/vignette.rb +0 -12
- data/doc/ex/watermark.rb +0 -27
- data/doc/ex/wave.rb +0 -9
- data/doc/ex/wet_floor.rb +0 -58
- data/doc/ex/writing_mode01.rb +0 -26
- data/doc/ex/writing_mode02.rb +0 -26
- data/doc/ilist.html +0 -2056
- data/doc/image1.html +0 -4680
- data/doc/image2.html +0 -3665
- data/doc/image3.html +0 -4522
- data/doc/imageattrs.html +0 -1638
- data/doc/imusage.html +0 -514
- data/doc/index.html +0 -416
- data/doc/info.html +0 -1499
- data/doc/magick.html +0 -570
- data/doc/optequiv.html +0 -2435
- data/doc/rvg.html +0 -975
- data/doc/rvgclip.html +0 -248
- data/doc/rvggroup.html +0 -305
- data/doc/rvgimage.html +0 -289
- data/doc/rvgpattern.html +0 -475
- data/doc/rvgshape.html +0 -406
- data/doc/rvgstyle.html +0 -270
- data/doc/rvgtext.html +0 -465
- data/doc/rvgtspan.html +0 -238
- data/doc/rvgtut.html +0 -530
- data/doc/rvguse.html +0 -145
- data/doc/rvgxform.html +0 -294
- data/doc/scripts/doc.js +0 -22
- data/doc/scripts/stripeTables.js +0 -23
- data/doc/struct.html +0 -1339
- data/doc/usage.html +0 -1621
- data/examples/constitute.rb +0 -7
- data/examples/crop_with_gravity.rb +0 -43
- data/examples/demo.rb +0 -323
- data/examples/describe.rb +0 -41
- data/examples/find_similar_region.rb +0 -34
- data/examples/histogram.rb +0 -312
- data/examples/identify.rb +0 -174
- data/examples/image_opacity.rb +0 -28
- data/examples/import_export.rb +0 -31
- data/examples/pattern_fill.rb +0 -37
- data/examples/rotating_text.rb +0 -45
- data/examples/spinner.rb +0 -49
- data/examples/thumbnail.rb +0 -64
- data/examples/vignette.rb +0 -78
- data/spec/rmagick/ImageList1_spec.rb +0 -24
- data/spec/rmagick/draw_spec.rb +0 -155
- data/spec/rmagick/image/blue_shift_spec.rb +0 -14
- data/spec/rmagick/image/channel_entropy_spec.rb +0 -9
- data/spec/rmagick/image/composite_spec.rb +0 -72
- data/spec/rmagick/image/constitute_spec.rb +0 -13
- data/spec/rmagick/image/dispatch_spec.rb +0 -16
- data/spec/rmagick/image/dissolve_spec.rb +0 -54
- data/spec/rmagick/image/from_blob_spec.rb +0 -12
- data/spec/rmagick/image/ping_spec.rb +0 -12
- data/spec/rmagick/image/properties_spec.rb +0 -27
- data/spec/rmagick/image/read_spec.rb +0 -28
- data/spec/spec_helper.rb +0 -9
- data/spec/support/issue_200/app.rb +0 -8
- data/test/Draw.rb +0 -351
- data/test/Enum.rb +0 -228
- data/test/Fill.rb +0 -93
- data/test/Image1.rb +0 -606
- data/test/Image2.rb +0 -1408
- data/test/Image3.rb +0 -1086
- data/test/ImageList1.rb +0 -858
- data/test/ImageList2.rb +0 -375
- data/test/Image_attributes.rb +0 -635
- data/test/Import_Export.rb +0 -111
- data/test/Info.rb +0 -436
- data/test/KernelInfo.rb +0 -59
- data/test/Magick.rb +0 -311
- data/test/Pixel.rb +0 -259
- data/test/PolaroidOptions.rb +0 -23
- data/test/Preview.rb +0 -26
- data/test/Struct.rb +0 -45
- data/test/appearance/Montage.rb +0 -26
- data/test/appearance/appearance_assertion.rb +0 -13
- data/test/appearance/expected/montage_border_color.jpg +0 -0
- data/test/cmyk.icm +0 -0
- data/test/lib/internal/Draw.rb +0 -811
- data/test/lib/internal/Geometry.rb +0 -98
- data/test/lib/internal/Magick.rb +0 -40
- data/test/srgb.icm +0 -0
- data/test/test_all_basic.rb +0 -49
- data/test/tmpnam_test.rb +0 -50
data/ext/RMagick/rmenum.c
CHANGED
@@ -76,10 +76,10 @@ rm_enum_new(VALUE class, VALUE sym, VALUE val)
|
|
76
76
|
static const char *
|
77
77
|
rm_enum_to_cstr(VALUE enum_type)
|
78
78
|
{
|
79
|
-
|
79
|
+
MagickEnum *magick_enum;
|
80
80
|
|
81
|
-
|
82
|
-
|
81
|
+
Data_Get_Struct(enum_type, MagickEnum, magick_enum);
|
82
|
+
return rb_id2name(magick_enum->id);
|
83
83
|
}
|
84
84
|
|
85
85
|
/**
|
@@ -96,44 +96,34 @@ static void rm_enum_free(void *magick_enum)
|
|
96
96
|
/**
|
97
97
|
* Enum class alloc function.
|
98
98
|
*
|
99
|
-
*
|
100
|
-
*
|
101
|
-
* @param class the Ruby class to use
|
102
|
-
* @return a new enumerator
|
99
|
+
* @return [Magick::Enum] a new enumerator
|
103
100
|
*/
|
104
101
|
VALUE
|
105
102
|
Enum_alloc(VALUE class)
|
106
103
|
{
|
107
|
-
|
108
|
-
|
104
|
+
MagickEnum *magick_enum;
|
105
|
+
VALUE enumr;
|
109
106
|
|
110
|
-
|
111
|
-
|
107
|
+
enumr = Data_Make_Struct(class, MagickEnum, NULL, rm_enum_free, magick_enum);
|
108
|
+
rb_obj_freeze(enumr);
|
112
109
|
|
113
|
-
|
110
|
+
return enumr;
|
114
111
|
}
|
115
112
|
|
116
113
|
|
117
114
|
/**
|
118
115
|
* "Case equal" operator for Enum.
|
119
116
|
*
|
120
|
-
*
|
121
|
-
*
|
122
|
-
*
|
123
|
-
* Notes:
|
124
|
-
* - Yes, I know "case equal" is a misnomer.
|
125
|
-
*
|
126
|
-
* @param self this object
|
127
|
-
* @param other the other object
|
128
|
-
* @return true or false
|
117
|
+
* @param other [Object] the other object
|
118
|
+
* @return [Boolean] true or false
|
129
119
|
*/
|
130
120
|
VALUE
|
131
121
|
Enum_case_eq(VALUE self, VALUE other)
|
132
122
|
{
|
133
|
-
MagickEnum *this, *that;
|
134
|
-
|
135
123
|
if (CLASS_OF(self) == CLASS_OF(other))
|
136
124
|
{
|
125
|
+
MagickEnum *this, *that;
|
126
|
+
|
137
127
|
Data_Get_Struct(self, MagickEnum, this);
|
138
128
|
Data_Get_Struct(other, MagickEnum, that);
|
139
129
|
return this->val == that->val ? Qtrue : Qfalse;
|
@@ -146,58 +136,43 @@ Enum_case_eq(VALUE self, VALUE other)
|
|
146
136
|
/**
|
147
137
|
* Initialize a new Enum instance.
|
148
138
|
*
|
149
|
-
*
|
150
|
-
*
|
151
|
-
*
|
152
|
-
* @param self this object
|
153
|
-
* @param sym the symbol
|
154
|
-
* @param val the value for the symbol
|
155
|
-
* @return self
|
139
|
+
* @param sym [Symbol] the symbol as enum name
|
140
|
+
* @param val [Numeric] the value for enum
|
141
|
+
* @return [Magick::Enum] self
|
156
142
|
*/
|
157
143
|
VALUE
|
158
144
|
Enum_initialize(VALUE self, VALUE sym, VALUE val)
|
159
145
|
{
|
160
|
-
|
146
|
+
MagickEnum *magick_enum;
|
161
147
|
|
162
|
-
|
163
|
-
|
164
|
-
|
148
|
+
Data_Get_Struct(self, MagickEnum, magick_enum);
|
149
|
+
magick_enum->id = rb_to_id(sym); /* convert symbol to ID */
|
150
|
+
magick_enum->val = NUM2INT(val);
|
165
151
|
|
166
|
-
|
152
|
+
return self;
|
167
153
|
}
|
168
154
|
|
169
155
|
|
170
156
|
/**
|
171
157
|
* Return the value of an enum.
|
172
158
|
*
|
173
|
-
*
|
174
|
-
* - @verbatim Enum#to_i @endverbatim
|
175
|
-
*
|
176
|
-
* @param self this object
|
177
|
-
* @return this object's value
|
159
|
+
* @return [Numeric] this object's value
|
178
160
|
*/
|
179
161
|
VALUE
|
180
162
|
Enum_to_i(VALUE self)
|
181
163
|
{
|
182
|
-
|
164
|
+
MagickEnum *magick_enum;
|
183
165
|
|
184
|
-
|
185
|
-
|
166
|
+
Data_Get_Struct(self, MagickEnum, magick_enum);
|
167
|
+
return INT2NUM(magick_enum->val);
|
186
168
|
}
|
187
169
|
|
188
170
|
|
189
171
|
/**
|
190
172
|
* Support Comparable module in Enum.
|
191
173
|
*
|
192
|
-
*
|
193
|
-
*
|
194
|
-
*
|
195
|
-
* Notes:
|
196
|
-
* - Enums must be instances of the same class to be equal.
|
197
|
-
*
|
198
|
-
* @param self this object
|
199
|
-
* @param other the other object
|
200
|
-
* @return -1, 0, 1, or nil
|
174
|
+
* @param other [Object] the other object
|
175
|
+
* @return [-1, 0, 1, nil] the result of compare
|
201
176
|
*/
|
202
177
|
VALUE
|
203
178
|
Enum_spaceship(VALUE self, VALUE other)
|
@@ -225,67 +200,52 @@ Enum_spaceship(VALUE self, VALUE other)
|
|
225
200
|
|
226
201
|
/**
|
227
202
|
* Bitwise OR for enums
|
228
|
-
*
|
229
|
-
* Ruby usage:
|
230
|
-
* - @verbatim Enum1 | Enum2 @endverbatim
|
231
|
-
*
|
232
|
-
* Notes:
|
233
|
-
* - Enums must be instances of the same class.
|
234
203
|
*
|
235
|
-
* @param
|
236
|
-
* @
|
237
|
-
* @return new Enum instance
|
204
|
+
* @param another [Magick::Enum] the another enum
|
205
|
+
* @return [Magick::Enum] new Enum instance
|
238
206
|
*/
|
239
207
|
VALUE
|
240
208
|
Enum_bitwise_or(VALUE self, VALUE another)
|
241
209
|
{
|
242
|
-
|
243
|
-
|
210
|
+
VALUE new_enum, cls;
|
211
|
+
MagickEnum *this, *that, *new_enum_data;
|
244
212
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
213
|
+
cls = CLASS_OF(self);
|
214
|
+
if (CLASS_OF(another) != cls)
|
215
|
+
{
|
216
|
+
rb_raise(rb_eArgError, "Expected class %s but got %s", rb_class2name(cls), rb_class2name(CLASS_OF(another)));
|
217
|
+
}
|
250
218
|
|
251
|
-
|
219
|
+
new_enum = Enum_alloc(cls);
|
252
220
|
|
253
|
-
|
254
|
-
|
255
|
-
|
221
|
+
Data_Get_Struct(self, MagickEnum, this);
|
222
|
+
Data_Get_Struct(another, MagickEnum, that);
|
223
|
+
Data_Get_Struct(new_enum, MagickEnum, new_enum_data);
|
256
224
|
|
257
|
-
|
258
|
-
|
225
|
+
new_enum_data->id = rb_to_id(rb_sprintf("%s|%s", rb_id2name(this->id), rb_id2name(that->id)));
|
226
|
+
new_enum_data->val = this->val | that->val;
|
259
227
|
|
260
|
-
|
228
|
+
return new_enum;
|
261
229
|
}
|
262
230
|
|
263
231
|
/**
|
264
232
|
* Return the name of an enum.
|
265
233
|
*
|
266
|
-
*
|
267
|
-
* - @verbatim Enum#to_s @endverbatim
|
268
|
-
*
|
269
|
-
* @param self this object
|
270
|
-
* @return the name
|
234
|
+
* @return [String] the name of an enum
|
271
235
|
*/
|
272
236
|
VALUE
|
273
237
|
Enum_to_s(VALUE self)
|
274
238
|
{
|
275
|
-
|
239
|
+
return rb_str_new2(rm_enum_to_cstr(self));
|
276
240
|
}
|
277
241
|
|
278
242
|
|
279
243
|
/**
|
280
244
|
* Initialize method for all Enum subclasses.
|
281
245
|
*
|
282
|
-
*
|
283
|
-
*
|
284
|
-
*
|
285
|
-
* @param self this object
|
286
|
-
* @param sym the symbol
|
287
|
-
* @param val the value of the symbol
|
288
|
-
* @return self
|
246
|
+
* @param sym [Symbol] the symbol as enum name
|
247
|
+
* @param val [Numeric] the value for enum
|
248
|
+
* @return [Magick::Enum] self
|
289
249
|
*/
|
290
250
|
VALUE
|
291
251
|
Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
|
@@ -295,7 +255,7 @@ Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
|
|
295
255
|
|
296
256
|
super_argv[0] = sym;
|
297
257
|
super_argv[1] = val;
|
298
|
-
|
258
|
+
rb_call_super(2, (const VALUE *)super_argv);
|
299
259
|
|
300
260
|
if (rb_cvar_defined(CLASS_OF(self), rb_intern(ENUMERATORS_CLASS_VAR)) != Qtrue)
|
301
261
|
{
|
@@ -303,7 +263,7 @@ Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
|
|
303
263
|
}
|
304
264
|
|
305
265
|
enumerators = rb_cv_get(CLASS_OF(self), ENUMERATORS_CLASS_VAR);
|
306
|
-
|
266
|
+
rb_ary_push(enumerators, self);
|
307
267
|
|
308
268
|
RB_GC_GUARD(enumerators);
|
309
269
|
|
@@ -314,11 +274,7 @@ Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
|
|
314
274
|
/**
|
315
275
|
* Enum subclass #inspect.
|
316
276
|
*
|
317
|
-
*
|
318
|
-
* - @verbatim xxx#inspect @endverbatim
|
319
|
-
*
|
320
|
-
* @param self this object
|
321
|
-
* @return string representation of self
|
277
|
+
* @return [String] representation of self
|
322
278
|
*/
|
323
279
|
static VALUE
|
324
280
|
Enum_type_inspect(VALUE self)
|
@@ -327,7 +283,7 @@ Enum_type_inspect(VALUE self)
|
|
327
283
|
MagickEnum *magick_enum;
|
328
284
|
|
329
285
|
Data_Get_Struct(self, MagickEnum, magick_enum);
|
330
|
-
|
286
|
+
snprintf(str, sizeof(str), "%.48s=%d", rb_id2name(magick_enum->id), magick_enum->val);
|
331
287
|
|
332
288
|
return rb_str_new2(str);
|
333
289
|
}
|
@@ -336,15 +292,14 @@ Enum_type_inspect(VALUE self)
|
|
336
292
|
/**
|
337
293
|
* Behaves like #each if a block is present, otherwise like #to_a.
|
338
294
|
*
|
339
|
-
*
|
340
|
-
*
|
341
|
-
* - @verbatim xxx.values {|v| } @endverbatim
|
295
|
+
* @overload values
|
296
|
+
* @return [Array<Magick::Enum>] the enum values
|
342
297
|
*
|
343
|
-
*
|
344
|
-
*
|
345
|
-
*
|
346
|
-
*
|
347
|
-
*
|
298
|
+
* @overload values
|
299
|
+
* iterator over values if given block
|
300
|
+
* @yield [val]
|
301
|
+
* @yieldparam val [Magick::Enum] an enum
|
302
|
+
* @return [Magick::Enum] self
|
348
303
|
*/
|
349
304
|
static VALUE
|
350
305
|
Enum_type_values(VALUE class)
|
@@ -359,7 +314,7 @@ Enum_type_values(VALUE class)
|
|
359
314
|
{
|
360
315
|
for (x = 0; x < RARRAY_LEN(enumerators); x++)
|
361
316
|
{
|
362
|
-
|
317
|
+
rb_yield(rb_ary_entry(enumerators, x));
|
363
318
|
}
|
364
319
|
rv = class;
|
365
320
|
}
|
@@ -368,7 +323,7 @@ Enum_type_values(VALUE class)
|
|
368
323
|
copy = rb_ary_new2(RARRAY_LEN(enumerators));
|
369
324
|
for (x = 0; x < RARRAY_LEN(enumerators); x++)
|
370
325
|
{
|
371
|
-
|
326
|
+
rb_ary_push(copy, rb_ary_entry(enumerators, x));
|
372
327
|
}
|
373
328
|
rb_obj_freeze(copy);
|
374
329
|
rv = copy;
|
@@ -403,12 +358,12 @@ Enum_find(VALUE class, int val)
|
|
403
358
|
|
404
359
|
for (x = 0; x < RARRAY_LEN(enumerators); x++)
|
405
360
|
{
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
361
|
+
VALUE enumerator = rb_ary_entry(enumerators, x);
|
362
|
+
Data_Get_Struct(enumerator, MagickEnum, magick_enum);
|
363
|
+
if (magick_enum->val == val)
|
364
|
+
{
|
365
|
+
return enumerator;
|
366
|
+
}
|
412
367
|
}
|
413
368
|
|
414
369
|
return Qnil;
|
@@ -505,7 +460,35 @@ ComplianceType_name(ComplianceType *c)
|
|
505
460
|
VALUE
|
506
461
|
ComplianceType_find(ComplianceType compliance)
|
507
462
|
{
|
508
|
-
|
463
|
+
ComplianceType c;
|
464
|
+
|
465
|
+
// Turn off undefined bits
|
466
|
+
if ((compliance & (SVGCompliance|X11Compliance|XPMCompliance))
|
467
|
+
== (SVGCompliance|X11Compliance|XPMCompliance))
|
468
|
+
{
|
469
|
+
c = SVGCompliance|X11Compliance|XPMCompliance;
|
470
|
+
}
|
471
|
+
else if (compliance & SVGCompliance)
|
472
|
+
{
|
473
|
+
c = SVGCompliance;
|
474
|
+
}
|
475
|
+
else if (compliance & X11Compliance)
|
476
|
+
{
|
477
|
+
c = X11Compliance;
|
478
|
+
}
|
479
|
+
else if (compliance & XPMCompliance)
|
480
|
+
{
|
481
|
+
c = XPMCompliance;
|
482
|
+
}
|
483
|
+
else if (compliance == NoCompliance)
|
484
|
+
{
|
485
|
+
c = NoCompliance;
|
486
|
+
}
|
487
|
+
else
|
488
|
+
{
|
489
|
+
c = UndefinedCompliance;
|
490
|
+
}
|
491
|
+
return Enum_find(Class_ComplianceType, c);
|
509
492
|
}
|
510
493
|
|
511
494
|
|
data/ext/RMagick/rmfill.c
CHANGED
@@ -44,10 +44,7 @@ static void free_Fill(void *fill)
|
|
44
44
|
/**
|
45
45
|
* Create new GradientFill object.
|
46
46
|
*
|
47
|
-
*
|
48
|
-
*
|
49
|
-
* @param class the Ruby class to use
|
50
|
-
* @return a new GradientFill object
|
47
|
+
* @return [Magick::GradientFill] a new GradientFill object
|
51
48
|
*/
|
52
49
|
VALUE
|
53
50
|
GradientFill_alloc(VALUE class)
|
@@ -59,19 +56,15 @@ GradientFill_alloc(VALUE class)
|
|
59
56
|
|
60
57
|
|
61
58
|
/**
|
62
|
-
*
|
63
|
-
*
|
64
|
-
*
|
65
|
-
*
|
66
|
-
*
|
67
|
-
* @param
|
68
|
-
* @param
|
69
|
-
* @param
|
70
|
-
* @
|
71
|
-
* @param y2 y position of second point
|
72
|
-
* @param start_color the start color
|
73
|
-
* @param stop_color the stop color
|
74
|
-
* @return self
|
59
|
+
* Initialize GradientFill object.
|
60
|
+
*
|
61
|
+
* @param x1 [Float] x position of first point
|
62
|
+
* @param y1 [Float] y position of first point
|
63
|
+
* @param x2 [Float] x position of second point
|
64
|
+
* @param y2 [Float] y position of second point
|
65
|
+
* @param start_color [Magick::Pixel, String] the start color
|
66
|
+
* @param stop_color [Magick::Pixel, String] the stop color
|
67
|
+
* @return [Magick::GradientFill] self
|
75
68
|
*/
|
76
69
|
VALUE
|
77
70
|
GradientFill_initialize(
|
@@ -139,7 +132,7 @@ point_fill(
|
|
139
132
|
#endif
|
140
133
|
|
141
134
|
row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
|
142
|
-
CHECK_EXCEPTION()
|
135
|
+
CHECK_EXCEPTION();
|
143
136
|
|
144
137
|
for (x = 0; x < (ssize_t) image->columns; x++)
|
145
138
|
{
|
@@ -161,10 +154,10 @@ point_fill(
|
|
161
154
|
}
|
162
155
|
|
163
156
|
SyncAuthenticPixels(image, exception);
|
164
|
-
CHECK_EXCEPTION()
|
157
|
+
CHECK_EXCEPTION();
|
165
158
|
}
|
166
159
|
|
167
|
-
|
160
|
+
DestroyExceptionInfo(exception);
|
168
161
|
}
|
169
162
|
|
170
163
|
/**
|
@@ -216,7 +209,7 @@ vertical_fill(
|
|
216
209
|
Quantum *row_pixels;
|
217
210
|
|
218
211
|
row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
|
219
|
-
CHECK_EXCEPTION()
|
212
|
+
CHECK_EXCEPTION();
|
220
213
|
|
221
214
|
for (x = 0; x < (ssize_t) image->columns; x++)
|
222
215
|
{
|
@@ -230,10 +223,10 @@ vertical_fill(
|
|
230
223
|
}
|
231
224
|
|
232
225
|
SyncAuthenticPixels(image, exception);
|
233
|
-
CHECK_EXCEPTION()
|
226
|
+
CHECK_EXCEPTION();
|
234
227
|
}
|
235
228
|
|
236
|
-
|
229
|
+
DestroyExceptionInfo(exception);
|
237
230
|
#else
|
238
231
|
// All the rows are the same. Make a "master row" and simply copy
|
239
232
|
// it to each actual row.
|
@@ -270,7 +263,7 @@ vertical_fill(
|
|
270
263
|
}
|
271
264
|
}
|
272
265
|
|
273
|
-
|
266
|
+
DestroyExceptionInfo(exception);
|
274
267
|
|
275
268
|
xfree((void *) master);
|
276
269
|
#endif
|
@@ -322,7 +315,7 @@ horizontal_fill(
|
|
322
315
|
Quantum *row_pixels;
|
323
316
|
|
324
317
|
row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
|
325
|
-
CHECK_EXCEPTION()
|
318
|
+
CHECK_EXCEPTION();
|
326
319
|
|
327
320
|
double distance = fabs(y1 - y);
|
328
321
|
for (x = 0; x < (ssize_t) image->columns; x++)
|
@@ -336,10 +329,10 @@ horizontal_fill(
|
|
336
329
|
}
|
337
330
|
|
338
331
|
SyncAuthenticPixels(image, exception);
|
339
|
-
CHECK_EXCEPTION()
|
332
|
+
CHECK_EXCEPTION();
|
340
333
|
}
|
341
334
|
|
342
|
-
|
335
|
+
DestroyExceptionInfo(exception);
|
343
336
|
#else
|
344
337
|
// All the columns are the same, so make a master column and copy it to
|
345
338
|
// each of the "real" columns.
|
@@ -375,7 +368,7 @@ horizontal_fill(
|
|
375
368
|
}
|
376
369
|
}
|
377
370
|
|
378
|
-
|
371
|
+
DestroyExceptionInfo(exception);
|
379
372
|
|
380
373
|
xfree((void *) master);
|
381
374
|
#endif
|
@@ -425,7 +418,7 @@ v_diagonal_fill(
|
|
425
418
|
|
426
419
|
if (d1 < 0 && d2 < 0)
|
427
420
|
{
|
428
|
-
steps += FMAX(fabs(d1),fabs(d2));
|
421
|
+
steps += FMAX(fabs(d1), fabs(d2));
|
429
422
|
}
|
430
423
|
else if (d1 > (double)image->rows && d2 > (double)image->rows)
|
431
424
|
{
|
@@ -458,7 +451,7 @@ v_diagonal_fill(
|
|
458
451
|
#endif
|
459
452
|
|
460
453
|
row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
|
461
|
-
CHECK_EXCEPTION()
|
454
|
+
CHECK_EXCEPTION();
|
462
455
|
|
463
456
|
for (x = 0; x < (ssize_t) image->columns; x++)
|
464
457
|
{
|
@@ -479,10 +472,10 @@ v_diagonal_fill(
|
|
479
472
|
}
|
480
473
|
|
481
474
|
SyncAuthenticPixels(image, exception);
|
482
|
-
CHECK_EXCEPTION()
|
475
|
+
CHECK_EXCEPTION();
|
483
476
|
}
|
484
477
|
|
485
|
-
|
478
|
+
DestroyExceptionInfo(exception);
|
486
479
|
}
|
487
480
|
|
488
481
|
/**
|
@@ -531,11 +524,11 @@ h_diagonal_fill(
|
|
531
524
|
// the number of steps.
|
532
525
|
if (d1 < 0 && d2 < 0)
|
533
526
|
{
|
534
|
-
steps += FMAX(fabs(d1),fabs(d2));
|
527
|
+
steps += FMAX(fabs(d1), fabs(d2));
|
535
528
|
}
|
536
529
|
else if (d1 > (double)image->columns && d2 > (double)image->columns)
|
537
530
|
{
|
538
|
-
steps += FMAX(abs((int)(image->columns-d1)),abs((int)(image->columns-d2)));
|
531
|
+
steps += FMAX(abs((int)(image->columns-d1)), abs((int)(image->columns-d2)));
|
539
532
|
}
|
540
533
|
|
541
534
|
d1 = FMAX(d1, image->columns-d1);
|
@@ -564,7 +557,7 @@ h_diagonal_fill(
|
|
564
557
|
#endif
|
565
558
|
|
566
559
|
row_pixels = QueueAuthenticPixels(image, 0, y, image->columns, 1, exception);
|
567
|
-
CHECK_EXCEPTION()
|
560
|
+
CHECK_EXCEPTION();
|
568
561
|
|
569
562
|
for (x = 0; x < (ssize_t) image->columns; x++)
|
570
563
|
{
|
@@ -585,22 +578,18 @@ h_diagonal_fill(
|
|
585
578
|
}
|
586
579
|
|
587
580
|
SyncAuthenticPixels(image, exception);
|
588
|
-
CHECK_EXCEPTION()
|
581
|
+
CHECK_EXCEPTION();
|
589
582
|
}
|
590
583
|
|
591
|
-
|
584
|
+
DestroyExceptionInfo(exception);
|
592
585
|
}
|
593
586
|
|
594
587
|
/**
|
595
588
|
* Call GradientFill with the start and stop colors specified when this fill
|
596
589
|
* object was created.
|
597
590
|
*
|
598
|
-
*
|
599
|
-
*
|
600
|
-
*
|
601
|
-
* @param self this object
|
602
|
-
* @param image_obj the image
|
603
|
-
* @return self
|
591
|
+
* @param image_obj [Magick::Image] the image to fill
|
592
|
+
* @return [Magick::GradientFill] self
|
604
593
|
*/
|
605
594
|
VALUE
|
606
595
|
GradientFill_fill(VALUE self, VALUE image_obj)
|
@@ -678,44 +667,28 @@ free_TextureFill(void *fill_obj)
|
|
678
667
|
rm_TextureFill *fill = (rm_TextureFill *)fill_obj;
|
679
668
|
|
680
669
|
// Do not trace destruction
|
681
|
-
|
670
|
+
DestroyImage(fill->texture);
|
682
671
|
xfree(fill);
|
683
672
|
}
|
684
673
|
|
685
674
|
/**
|
686
675
|
* Create new TextureFill object.
|
687
676
|
*
|
688
|
-
*
|
689
|
-
*
|
690
|
-
* Notes:
|
691
|
-
* - The texture is an Image or Image *object
|
692
|
-
*
|
693
|
-
* @param class the Ruby class to use
|
694
|
-
* @return a new TextureFill object
|
677
|
+
* @return [Magick::TextureFill] a new TextureFill object
|
695
678
|
*/
|
696
679
|
VALUE
|
697
680
|
TextureFill_alloc(VALUE class)
|
698
681
|
{
|
699
682
|
rm_TextureFill *fill;
|
700
|
-
return Data_Make_Struct(class
|
701
|
-
, rm_TextureFill
|
702
|
-
, NULL
|
703
|
-
, free_TextureFill
|
704
|
-
, fill);
|
683
|
+
return Data_Make_Struct(class, rm_TextureFill, NULL, free_TextureFill, fill);
|
705
684
|
}
|
706
685
|
|
707
686
|
/**
|
708
|
-
*
|
709
|
-
*
|
710
|
-
* Ruby usage:
|
711
|
-
* - @verbatim TextureFill#initialize(texture) @endverbatim
|
687
|
+
* Initialize TextureFill object.
|
712
688
|
*
|
713
|
-
*
|
714
|
-
*
|
715
|
-
*
|
716
|
-
* @param self this object
|
717
|
-
* @param texture_arg the texture
|
718
|
-
* @return self
|
689
|
+
* @param texture_arg [Magick::Image, Magick::ImageList] Either an imagelist or an image. If an
|
690
|
+
* imagelist, uses the current image.
|
691
|
+
* @return [Magick::TextureFill] self
|
719
692
|
*/
|
720
693
|
VALUE
|
721
694
|
TextureFill_initialize(VALUE self, VALUE texture_arg)
|
@@ -730,7 +703,7 @@ TextureFill_initialize(VALUE self, VALUE texture_arg)
|
|
730
703
|
|
731
704
|
// Bump the reference count on the texture image.
|
732
705
|
texture = rm_check_destroyed(texture_image);
|
733
|
-
|
706
|
+
ReferenceImage(texture);
|
734
707
|
|
735
708
|
fill->texture = texture;
|
736
709
|
|
@@ -743,12 +716,8 @@ TextureFill_initialize(VALUE self, VALUE texture_arg)
|
|
743
716
|
* Call TextureFill with the texture specified when this fill object was
|
744
717
|
* created.
|
745
718
|
*
|
746
|
-
*
|
747
|
-
*
|
748
|
-
*
|
749
|
-
* @param self this object
|
750
|
-
* @param image_obj the image
|
751
|
-
* @return self
|
719
|
+
* @param image_obj [Magick::Image] the image to fill
|
720
|
+
* @return [Magick::TextureFill] self
|
752
721
|
*/
|
753
722
|
VALUE
|
754
723
|
TextureFill_fill(VALUE self, VALUE image_obj)
|
@@ -764,11 +733,11 @@ TextureFill_fill(VALUE self, VALUE image_obj)
|
|
764
733
|
|
765
734
|
#if defined(IMAGEMAGICK_7)
|
766
735
|
exception = AcquireExceptionInfo();
|
767
|
-
|
768
|
-
CHECK_EXCEPTION()
|
769
|
-
|
736
|
+
TextureImage(image, fill->texture, exception);
|
737
|
+
CHECK_EXCEPTION();
|
738
|
+
DestroyExceptionInfo(exception);
|
770
739
|
#else
|
771
|
-
|
740
|
+
TextureImage(image, fill->texture);
|
772
741
|
rm_check_image_exception(image, RetainOnError);
|
773
742
|
#endif
|
774
743
|
|