rmagick-windows 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +14 -0
- data/.gitignore +23 -0
- data/.hound.yml +2 -0
- data/.rspec +1 -0
- data/.rubocop.yml +340 -0
- data/.simplecov +27 -0
- data/.travis.yml +60 -0
- data/CHANGELOG.md +915 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/CONTRIBUTING.md +50 -0
- data/Doxyfile +1514 -0
- data/Gemfile +10 -0
- data/LICENSE +20 -0
- data/README.textile +257 -0
- data/Rakefile +188 -0
- data/before_install_linux.sh +32 -0
- data/before_install_osx.sh +2 -0
- data/deprecated/RMagick.rb +6 -0
- data/doc/.cvsignore +1 -0
- data/doc/comtasks.html +287 -0
- data/doc/constants.html +1581 -0
- data/doc/css/doc.css +299 -0
- data/doc/css/popup.css +34 -0
- data/doc/css/ref.css +67 -0
- data/doc/draw.html +3272 -0
- data/doc/ex/InitialCoords.rb +22 -0
- data/doc/ex/NewCoordSys.rb +30 -0
- data/doc/ex/OrigCoordSys.rb +16 -0
- data/doc/ex/PreserveAspectRatio.rb +204 -0
- data/doc/ex/RotateScale.rb +36 -0
- data/doc/ex/Skew.rb +38 -0
- data/doc/ex/Use01.rb +15 -0
- data/doc/ex/Use02.rb +20 -0
- data/doc/ex/Use03.rb +16 -0
- data/doc/ex/ViewBox.rb +31 -0
- data/doc/ex/adaptive_threshold.rb +9 -0
- data/doc/ex/add_noise.rb +16 -0
- data/doc/ex/affine.rb +48 -0
- data/doc/ex/affine_transform.rb +20 -0
- data/doc/ex/arc.rb +49 -0
- data/doc/ex/arcpath.rb +32 -0
- data/doc/ex/arcs01.rb +28 -0
- data/doc/ex/arcs02.rb +59 -0
- data/doc/ex/average.rb +15 -0
- data/doc/ex/axes.rb +64 -0
- data/doc/ex/baseline_shift01.rb +17 -0
- data/doc/ex/bilevel_channel.rb +8 -0
- data/doc/ex/blur_image.rb +12 -0
- data/doc/ex/border.rb +10 -0
- data/doc/ex/bounding_box.rb +42 -0
- data/doc/ex/cbezier1.rb +41 -0
- data/doc/ex/cbezier2.rb +41 -0
- data/doc/ex/cbezier3.rb +41 -0
- data/doc/ex/cbezier4.rb +42 -0
- data/doc/ex/cbezier5.rb +42 -0
- data/doc/ex/cbezier6.rb +53 -0
- data/doc/ex/channel.rb +25 -0
- data/doc/ex/charcoal.rb +12 -0
- data/doc/ex/chop.rb +29 -0
- data/doc/ex/circle.rb +33 -0
- data/doc/ex/circle01.rb +16 -0
- data/doc/ex/clip_path.rb +60 -0
- data/doc/ex/coalesce.rb +57 -0
- data/doc/ex/color_fill_to_border.rb +29 -0
- data/doc/ex/color_floodfill.rb +28 -0
- data/doc/ex/color_histogram.rb +47 -0
- data/doc/ex/color_reset.rb +11 -0
- data/doc/ex/colorize.rb +16 -0
- data/doc/ex/colors.rb +64 -0
- data/doc/ex/compose_mask.rb +22 -0
- data/doc/ex/composite.rb +133 -0
- data/doc/ex/composite_layers.rb +53 -0
- data/doc/ex/composite_tiled.rb +21 -0
- data/doc/ex/contrast.rb +36 -0
- data/doc/ex/crop.rb +31 -0
- data/doc/ex/crop_with_gravity.rb +42 -0
- data/doc/ex/cubic01.rb +43 -0
- data/doc/ex/cubic02.rb +91 -0
- data/doc/ex/cycle_colormap.rb +21 -0
- data/doc/ex/dissolve.rb +12 -0
- data/doc/ex/drawcomp.rb +42 -0
- data/doc/ex/drop_shadow.rb +60 -0
- data/doc/ex/edge.rb +11 -0
- data/doc/ex/ellipse.rb +45 -0
- data/doc/ex/ellipse01.rb +21 -0
- data/doc/ex/emboss.rb +11 -0
- data/doc/ex/enhance.rb +28 -0
- data/doc/ex/equalize.rb +11 -0
- data/doc/ex/evenodd.rb +42 -0
- data/doc/ex/fill_pattern.rb +23 -0
- data/doc/ex/flatten_images.rb +36 -0
- data/doc/ex/flip.rb +11 -0
- data/doc/ex/flop.rb +11 -0
- data/doc/ex/font_styles.rb +32 -0
- data/doc/ex/fonts.rb +20 -0
- data/doc/ex/frame.rb +12 -0
- data/doc/ex/gaussian_blur.rb +11 -0
- data/doc/ex/get_multiline_type_metrics.rb +41 -0
- data/doc/ex/get_pixels.rb +47 -0
- data/doc/ex/get_type_metrics.rb +141 -0
- data/doc/ex/gradientfill.rb +27 -0
- data/doc/ex/grav.rb +45 -0
- data/doc/ex/gravity.rb +80 -0
- data/doc/ex/group.rb +26 -0
- data/doc/ex/hatchfill.rb +27 -0
- data/doc/ex/image.rb +44 -0
- 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.wmf +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.wmf +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.wmf +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 +34 -0
- data/doc/ex/level.rb +11 -0
- data/doc/ex/level_colors.rb +11 -0
- data/doc/ex/line.rb +41 -0
- data/doc/ex/line01.rb +21 -0
- data/doc/ex/mask.rb +35 -0
- data/doc/ex/matte_fill_to_border.rb +39 -0
- data/doc/ex/matte_floodfill.rb +32 -0
- data/doc/ex/matte_replace.rb +39 -0
- data/doc/ex/median_filter.rb +28 -0
- data/doc/ex/modulate.rb +11 -0
- data/doc/ex/mono.rb +23 -0
- data/doc/ex/morph.rb +25 -0
- data/doc/ex/mosaic.rb +35 -0
- data/doc/ex/motion_blur.rb +11 -0
- data/doc/ex/negate.rb +11 -0
- data/doc/ex/negate_channel.rb +9 -0
- data/doc/ex/nested_rvg.rb +21 -0
- data/doc/ex/nonzero.rb +42 -0
- data/doc/ex/normalize.rb +11 -0
- data/doc/ex/oil_paint.rb +11 -0
- data/doc/ex/opacity.rb +37 -0
- data/doc/ex/ordered_dither.rb +11 -0
- data/doc/ex/path.rb +63 -0
- data/doc/ex/pattern1.rb +25 -0
- data/doc/ex/pattern2.rb +26 -0
- data/doc/ex/polaroid.rb +27 -0
- data/doc/ex/polygon.rb +23 -0
- data/doc/ex/polygon01.rb +21 -0
- data/doc/ex/polyline.rb +22 -0
- data/doc/ex/polyline01.rb +21 -0
- data/doc/ex/posterize.rb +8 -0
- data/doc/ex/preview.rb +8 -0
- data/doc/ex/qbezierpath.rb +52 -0
- data/doc/ex/quad01.rb +34 -0
- data/doc/ex/quantize-m.rb +25 -0
- data/doc/ex/radial_blur.rb +9 -0
- data/doc/ex/raise.rb +8 -0
- data/doc/ex/random_threshold_channel.rb +13 -0
- data/doc/ex/rect01.rb +14 -0
- data/doc/ex/rect02.rb +20 -0
- data/doc/ex/rectangle.rb +34 -0
- data/doc/ex/reduce_noise.rb +28 -0
- data/doc/ex/remap.rb +11 -0
- data/doc/ex/remap_images.rb +19 -0
- data/doc/ex/resize_to_fill.rb +8 -0
- data/doc/ex/resize_to_fit.rb +8 -0
- data/doc/ex/roll.rb +9 -0
- data/doc/ex/rotate.rb +44 -0
- data/doc/ex/rotate_f.rb +14 -0
- data/doc/ex/roundrect.rb +33 -0
- data/doc/ex/rubyname.rb +30 -0
- data/doc/ex/rvg_clippath.rb +12 -0
- data/doc/ex/rvg_linecap.rb +42 -0
- data/doc/ex/rvg_linejoin.rb +40 -0
- data/doc/ex/rvg_opacity.rb +18 -0
- data/doc/ex/rvg_pattern.rb +26 -0
- data/doc/ex/rvg_stroke_dasharray.rb +11 -0
- data/doc/ex/segment.rb +11 -0
- data/doc/ex/sepiatone.rb +7 -0
- data/doc/ex/shade.rb +11 -0
- data/doc/ex/shadow.rb +30 -0
- data/doc/ex/shave.rb +15 -0
- data/doc/ex/shear.rb +10 -0
- data/doc/ex/sketch.rb +17 -0
- data/doc/ex/skewx.rb +51 -0
- data/doc/ex/skewy.rb +47 -0
- data/doc/ex/smile.rb +125 -0
- data/doc/ex/solarize.rb +11 -0
- data/doc/ex/sparse_color.rb +54 -0
- data/doc/ex/splice.rb +8 -0
- data/doc/ex/spread.rb +11 -0
- data/doc/ex/stegano.rb +55 -0
- data/doc/ex/stroke_dasharray.rb +42 -0
- data/doc/ex/stroke_fill.rb +10 -0
- data/doc/ex/stroke_linecap.rb +44 -0
- data/doc/ex/stroke_linejoin.rb +48 -0
- data/doc/ex/stroke_width.rb +49 -0
- data/doc/ex/swirl.rb +17 -0
- data/doc/ex/text.rb +37 -0
- data/doc/ex/text01.rb +16 -0
- data/doc/ex/text_align.rb +36 -0
- data/doc/ex/text_antialias.rb +37 -0
- data/doc/ex/text_styles.rb +19 -0
- data/doc/ex/text_undercolor.rb +28 -0
- data/doc/ex/texture_fill_to_border.rb +34 -0
- data/doc/ex/texture_floodfill.rb +32 -0
- data/doc/ex/texturefill.rb +24 -0
- data/doc/ex/threshold.rb +13 -0
- data/doc/ex/to_blob.rb +13 -0
- data/doc/ex/translate.rb +39 -0
- data/doc/ex/transparent.rb +38 -0
- data/doc/ex/transpose.rb +9 -0
- data/doc/ex/transverse.rb +9 -0
- data/doc/ex/tref01.rb +24 -0
- data/doc/ex/triangle01.rb +15 -0
- data/doc/ex/trim.rb +23 -0
- data/doc/ex/tspan01.rb +17 -0
- data/doc/ex/tspan02.rb +17 -0
- data/doc/ex/tspan03.rb +19 -0
- data/doc/ex/unsharp_mask.rb +28 -0
- data/doc/ex/viewex.rb +33 -0
- data/doc/ex/vignette.rb +12 -0
- data/doc/ex/watermark.rb +27 -0
- data/doc/ex/wave.rb +9 -0
- data/doc/ex/wet_floor.rb +58 -0
- data/doc/ex/writing_mode01.rb +26 -0
- data/doc/ex/writing_mode02.rb +26 -0
- data/doc/ilist.html +2056 -0
- data/doc/image1.html +4680 -0
- data/doc/image2.html +3665 -0
- data/doc/image3.html +4522 -0
- data/doc/imageattrs.html +1638 -0
- data/doc/imusage.html +514 -0
- data/doc/index.html +416 -0
- data/doc/info.html +1499 -0
- data/doc/magick.html +565 -0
- data/doc/optequiv.html +2435 -0
- data/doc/rvg.html +975 -0
- data/doc/rvgclip.html +248 -0
- data/doc/rvggroup.html +305 -0
- data/doc/rvgimage.html +289 -0
- data/doc/rvgpattern.html +475 -0
- data/doc/rvgshape.html +406 -0
- data/doc/rvgstyle.html +270 -0
- data/doc/rvgtext.html +465 -0
- data/doc/rvgtspan.html +238 -0
- data/doc/rvgtut.html +530 -0
- data/doc/rvguse.html +145 -0
- data/doc/rvgxform.html +294 -0
- data/doc/scripts/doc.js +22 -0
- data/doc/scripts/stripeTables.js +23 -0
- data/doc/struct.html +1339 -0
- data/doc/usage.html +1621 -0
- data/examples/constitute.rb +7 -0
- data/examples/crop_with_gravity.rb +42 -0
- data/examples/demo.rb +324 -0
- data/examples/describe.rb +43 -0
- data/examples/find_similar_region.rb +34 -0
- data/examples/histogram.rb +321 -0
- data/examples/identify.rb +185 -0
- data/examples/image_opacity.rb +29 -0
- data/examples/import_export.rb +31 -0
- data/examples/pattern_fill.rb +38 -0
- data/examples/rotating_text.rb +44 -0
- data/examples/spinner.rb +49 -0
- data/examples/thumbnail.rb +64 -0
- data/examples/vignette.rb +78 -0
- data/ext/RMagick/extconf.rb +548 -0
- data/ext/RMagick/rmagick.c +401 -0
- data/ext/RMagick/rmagick.h +1287 -0
- data/ext/RMagick/rmdraw.c +2022 -0
- data/ext/RMagick/rmenum.c +1235 -0
- data/ext/RMagick/rmfill.c +720 -0
- data/ext/RMagick/rmilist.c +1270 -0
- data/ext/RMagick/rmimage.c +15427 -0
- data/ext/RMagick/rminfo.c +2590 -0
- data/ext/RMagick/rmmain.c +1741 -0
- data/ext/RMagick/rmmontage.c +519 -0
- data/ext/RMagick/rmpixel.c +1114 -0
- data/ext/RMagick/rmstruct.c +1124 -0
- data/ext/RMagick/rmutil.c +1754 -0
- data/lib/rmagick.rb +1 -0
- data/lib/rmagick/version.rb +6 -0
- data/lib/rmagick_internal.rb +1947 -0
- data/lib/rvg/clippath.rb +45 -0
- data/lib/rvg/container.rb +122 -0
- data/lib/rvg/deep_equal.rb +52 -0
- data/lib/rvg/describable.rb +47 -0
- data/lib/rvg/embellishable.rb +391 -0
- data/lib/rvg/misc.rb +723 -0
- data/lib/rvg/paint.rb +50 -0
- data/lib/rvg/pathdata.rb +126 -0
- data/lib/rvg/rvg.rb +283 -0
- data/lib/rvg/stretchable.rb +165 -0
- data/lib/rvg/stylable.rb +116 -0
- data/lib/rvg/text.rb +172 -0
- data/lib/rvg/transformable.rb +126 -0
- data/lib/rvg/units.rb +63 -0
- data/rmagick.gemspec +46 -0
- data/spec/rmagick/ImageList1_spec.rb +24 -0
- data/spec/rmagick/draw_spec.rb +156 -0
- data/spec/rmagick/image/blue_shift_spec.rb +16 -0
- data/spec/rmagick/image/composite_spec.rb +140 -0
- data/spec/rmagick/image/constitute_spec.rb +15 -0
- data/spec/rmagick/image/dispatch_spec.rb +18 -0
- data/spec/rmagick/image/from_blob_spec.rb +14 -0
- data/spec/rmagick/image/ping_spec.rb +14 -0
- data/spec/rmagick/image/properties_spec.rb +29 -0
- data/spec/spec_helper.rb +4 -0
- data/test/Image1.rb +565 -0
- data/test/Image2.rb +1304 -0
- data/test/Image3.rb +1030 -0
- data/test/ImageList1.rb +806 -0
- data/test/ImageList2.rb +385 -0
- data/test/Image_attributes.rb +697 -0
- data/test/Import_Export.rb +121 -0
- data/test/Info.rb +345 -0
- data/test/Magick.rb +321 -0
- data/test/Pixel.rb +116 -0
- data/test/Preview.rb +57 -0
- data/test/cmyk.icm +0 -0
- data/test/srgb.icm +0 -0
- data/test/test_all_basic.rb +38 -0
- data/test/tmpnam_test.rb +50 -0
- data/wercker.yml +10 -0
- metadata +509 -0
@@ -0,0 +1,1235 @@
|
|
1
|
+
/**************************************************************************//**
|
2
|
+
* Enumeration methods.
|
3
|
+
*
|
4
|
+
* Copyright © 2002 - 2009 by Timothy P. Hunter
|
5
|
+
*
|
6
|
+
* Changes since Nov. 2009 copyright © by Benjamin Thomas and Omer Bar-or
|
7
|
+
*
|
8
|
+
* @file rmenum.c
|
9
|
+
* @version $Id: rmenum.c,v 1.9 2009/12/20 02:33:33 baror Exp $
|
10
|
+
* @author Tim Hunter
|
11
|
+
******************************************************************************/
|
12
|
+
|
13
|
+
#include "rmagick.h"
|
14
|
+
|
15
|
+
|
16
|
+
#define ENUMERATORS_CLASS_VAR "@@enumerators"
|
17
|
+
|
18
|
+
|
19
|
+
static VALUE Enum_type_values(VALUE);
|
20
|
+
static VALUE Enum_type_inspect(VALUE);
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Set up a subclass of Enum.
|
28
|
+
*
|
29
|
+
* No Ruby usage (internal function)
|
30
|
+
*
|
31
|
+
* @param tag the name of the subclass
|
32
|
+
* @return the subclass
|
33
|
+
*/
|
34
|
+
VALUE
|
35
|
+
rm_define_enum_type(const char *tag)
|
36
|
+
{
|
37
|
+
VALUE class;
|
38
|
+
|
39
|
+
class = rb_define_class_under(Module_Magick, tag, Class_Enum);\
|
40
|
+
|
41
|
+
rb_define_singleton_method(class, "values", Enum_type_values, 0);
|
42
|
+
rb_define_method(class, "initialize", Enum_type_initialize, 2);
|
43
|
+
rb_define_method(class, "inspect", Enum_type_inspect, 0);
|
44
|
+
return class;
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Construct a new Enum subclass instance.
|
50
|
+
*
|
51
|
+
* No Ruby usage (internal function)
|
52
|
+
*
|
53
|
+
* @param class the subclass
|
54
|
+
* @param sym the symbol
|
55
|
+
* @param val the value for the symbol
|
56
|
+
* @return a new instance of class
|
57
|
+
*/
|
58
|
+
VALUE
|
59
|
+
rm_enum_new(VALUE class, VALUE sym, VALUE val)
|
60
|
+
{
|
61
|
+
VALUE argv[2];
|
62
|
+
|
63
|
+
argv[0] = sym;
|
64
|
+
argv[1] = val;
|
65
|
+
return rb_obj_freeze(rb_class_new_instance(2, argv, class));
|
66
|
+
}
|
67
|
+
|
68
|
+
|
69
|
+
/**
|
70
|
+
* Enum class alloc function.
|
71
|
+
*
|
72
|
+
* No Ruby usage (internal function)
|
73
|
+
*
|
74
|
+
* @param class the Ruby class to use
|
75
|
+
* @return a new enumerator
|
76
|
+
*/
|
77
|
+
VALUE
|
78
|
+
Enum_alloc(VALUE class)
|
79
|
+
{
|
80
|
+
MagickEnum *magick_enum;
|
81
|
+
VALUE enumr;
|
82
|
+
|
83
|
+
enumr = Data_Make_Struct(class, MagickEnum, NULL, NULL, magick_enum);
|
84
|
+
rb_obj_freeze(enumr);
|
85
|
+
|
86
|
+
RB_GC_GUARD(enumr);
|
87
|
+
|
88
|
+
return enumr;
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
/**
|
93
|
+
* "Case equal" operator for Enum.
|
94
|
+
*
|
95
|
+
* Ruby usage:
|
96
|
+
* - @verbatim Enum#=== @endverbatim
|
97
|
+
*
|
98
|
+
* Notes:
|
99
|
+
* - Yes, I know "case equal" is a misnomer.
|
100
|
+
*
|
101
|
+
* @param self this object
|
102
|
+
* @param other the other object
|
103
|
+
* @return true or false
|
104
|
+
*/
|
105
|
+
VALUE
|
106
|
+
Enum_case_eq(VALUE self, VALUE other)
|
107
|
+
{
|
108
|
+
MagickEnum *this, *that;
|
109
|
+
|
110
|
+
if (CLASS_OF(self) == CLASS_OF(other))
|
111
|
+
{
|
112
|
+
Data_Get_Struct(self, MagickEnum, this);
|
113
|
+
Data_Get_Struct(other, MagickEnum, that);
|
114
|
+
return this->val == that->val ? Qtrue : Qfalse;
|
115
|
+
}
|
116
|
+
|
117
|
+
return Qfalse;
|
118
|
+
}
|
119
|
+
|
120
|
+
|
121
|
+
/**
|
122
|
+
* Initialize a new Enum instance.
|
123
|
+
*
|
124
|
+
* Ruby usage:
|
125
|
+
* - @verbatim Enum#initialize(sym,val) @endverbatim
|
126
|
+
*
|
127
|
+
* @param self this object
|
128
|
+
* @param sym the symbol
|
129
|
+
* @param val the value for the symbol
|
130
|
+
* @return self
|
131
|
+
*/
|
132
|
+
VALUE
|
133
|
+
Enum_initialize(VALUE self, VALUE sym, VALUE val)
|
134
|
+
{
|
135
|
+
MagickEnum *magick_enum;
|
136
|
+
|
137
|
+
Data_Get_Struct(self, MagickEnum, magick_enum);
|
138
|
+
magick_enum->id = rb_to_id(sym); /* convert symbol to ID */
|
139
|
+
magick_enum->val = NUM2INT(val);
|
140
|
+
|
141
|
+
return self;
|
142
|
+
}
|
143
|
+
|
144
|
+
|
145
|
+
/**
|
146
|
+
* Return the value of an enum.
|
147
|
+
*
|
148
|
+
* Ruby usage:
|
149
|
+
* - @verbatim Enum#to_i @endverbatim
|
150
|
+
*
|
151
|
+
* @param self this object
|
152
|
+
* @return this object's value
|
153
|
+
*/
|
154
|
+
VALUE
|
155
|
+
Enum_to_i(VALUE self)
|
156
|
+
{
|
157
|
+
MagickEnum *magick_enum;
|
158
|
+
|
159
|
+
Data_Get_Struct(self, MagickEnum, magick_enum);
|
160
|
+
return INT2NUM(magick_enum->val);
|
161
|
+
}
|
162
|
+
|
163
|
+
|
164
|
+
/**
|
165
|
+
* Support Comparable module in Enum.
|
166
|
+
*
|
167
|
+
* Ruby usage:
|
168
|
+
* - @verbatim Enum#<=> @endverbatim
|
169
|
+
*
|
170
|
+
* Notes:
|
171
|
+
* - Enums must be instances of the same class to be equal.
|
172
|
+
*
|
173
|
+
* @param self this object
|
174
|
+
* @param other the other object
|
175
|
+
* @return -1, 0, 1, or nil
|
176
|
+
*/
|
177
|
+
VALUE
|
178
|
+
Enum_spaceship(VALUE self, VALUE other)
|
179
|
+
{
|
180
|
+
MagickEnum *this, *that;
|
181
|
+
|
182
|
+
if(CLASS_OF(self) != CLASS_OF(other)) {
|
183
|
+
return Qnil;
|
184
|
+
}
|
185
|
+
|
186
|
+
Data_Get_Struct(self, MagickEnum, this);
|
187
|
+
Data_Get_Struct(other, MagickEnum, that);
|
188
|
+
|
189
|
+
if (this->val > that->val)
|
190
|
+
{
|
191
|
+
return INT2FIX(1);
|
192
|
+
}
|
193
|
+
else if (this->val < that->val)
|
194
|
+
{
|
195
|
+
return INT2FIX(-1);
|
196
|
+
}
|
197
|
+
|
198
|
+
return INT2FIX(0);
|
199
|
+
}
|
200
|
+
|
201
|
+
|
202
|
+
/**
|
203
|
+
* Return the name of an enum.
|
204
|
+
*
|
205
|
+
* Ruby usage:
|
206
|
+
* - @verbatim Enum#to_s @endverbatim
|
207
|
+
*
|
208
|
+
* @param self this object
|
209
|
+
* @return the name
|
210
|
+
*/
|
211
|
+
VALUE
|
212
|
+
Enum_to_s(VALUE self)
|
213
|
+
{
|
214
|
+
MagickEnum *magick_enum;
|
215
|
+
|
216
|
+
Data_Get_Struct(self, MagickEnum, magick_enum);
|
217
|
+
return rb_str_new2(rb_id2name(magick_enum->id));
|
218
|
+
}
|
219
|
+
|
220
|
+
|
221
|
+
/**
|
222
|
+
* Initialize method for all Enum subclasses.
|
223
|
+
*
|
224
|
+
* Ruby usage:
|
225
|
+
* - @verbatim xxx#initialize(sym,val) @endverbatim
|
226
|
+
*
|
227
|
+
* @param self this object
|
228
|
+
* @param sym the symbol
|
229
|
+
* @param val the value of the symbol
|
230
|
+
* @return self
|
231
|
+
*/
|
232
|
+
VALUE
|
233
|
+
Enum_type_initialize(VALUE self, VALUE sym, VALUE val)
|
234
|
+
{
|
235
|
+
VALUE super_argv[2];
|
236
|
+
VALUE enumerators;
|
237
|
+
|
238
|
+
super_argv[0] = sym;
|
239
|
+
super_argv[1] = val;
|
240
|
+
(void) rb_call_super(2, (const VALUE *)super_argv);
|
241
|
+
|
242
|
+
if (rb_cvar_defined(CLASS_OF(self), rb_intern(ENUMERATORS_CLASS_VAR)) != Qtrue)
|
243
|
+
{
|
244
|
+
rb_cv_set(CLASS_OF(self), ENUMERATORS_CLASS_VAR, rb_ary_new());
|
245
|
+
}
|
246
|
+
|
247
|
+
enumerators = rb_cv_get(CLASS_OF(self), ENUMERATORS_CLASS_VAR);
|
248
|
+
(void) rb_ary_push(enumerators, self);
|
249
|
+
|
250
|
+
RB_GC_GUARD(enumerators);
|
251
|
+
|
252
|
+
return self;
|
253
|
+
}
|
254
|
+
|
255
|
+
|
256
|
+
/**
|
257
|
+
* Enum subclass #inspect.
|
258
|
+
*
|
259
|
+
* Ruby usage:
|
260
|
+
* - @verbatim xxx#inspect @endverbatim
|
261
|
+
*
|
262
|
+
* @param self this object
|
263
|
+
* @return string representation of self
|
264
|
+
*/
|
265
|
+
static VALUE
|
266
|
+
Enum_type_inspect(VALUE self)
|
267
|
+
{
|
268
|
+
char str[100];
|
269
|
+
MagickEnum *magick_enum;
|
270
|
+
|
271
|
+
Data_Get_Struct(self, MagickEnum, magick_enum);
|
272
|
+
sprintf(str, "%.48s=%d", rb_id2name(magick_enum->id), magick_enum->val);
|
273
|
+
|
274
|
+
return rb_str_new2(str);
|
275
|
+
}
|
276
|
+
|
277
|
+
|
278
|
+
/**
|
279
|
+
* Behaves like #each if a block is present, otherwise like #to_a.
|
280
|
+
*
|
281
|
+
* Ruby usage:
|
282
|
+
* - @verbatim xxx.values @endverbatim
|
283
|
+
* - @verbatim xxx.values {|v| } @endverbatim
|
284
|
+
*
|
285
|
+
* Notes:
|
286
|
+
* - Defined for each Enum subclass
|
287
|
+
*
|
288
|
+
* @param class the subclass
|
289
|
+
* @return iterator over values if given block, a copy of the values otherwise
|
290
|
+
*/
|
291
|
+
static VALUE
|
292
|
+
Enum_type_values(VALUE class)
|
293
|
+
{
|
294
|
+
VALUE enumerators, copy;
|
295
|
+
VALUE rv;
|
296
|
+
int x;
|
297
|
+
|
298
|
+
enumerators = rb_cv_get(class, ENUMERATORS_CLASS_VAR);
|
299
|
+
|
300
|
+
if (rb_block_given_p())
|
301
|
+
{
|
302
|
+
for (x = 0; x < RARRAY_LEN(enumerators); x++)
|
303
|
+
{
|
304
|
+
(void) rb_yield(rb_ary_entry(enumerators, x));
|
305
|
+
}
|
306
|
+
rv = class;
|
307
|
+
}
|
308
|
+
else
|
309
|
+
{
|
310
|
+
copy = rb_ary_new2(RARRAY_LEN(enumerators));
|
311
|
+
for (x = 0; x < RARRAY_LEN(enumerators); x++)
|
312
|
+
{
|
313
|
+
(void) rb_ary_push(copy, rb_ary_entry(enumerators, x));
|
314
|
+
}
|
315
|
+
rb_obj_freeze(copy);
|
316
|
+
rv = copy;
|
317
|
+
}
|
318
|
+
|
319
|
+
RB_GC_GUARD(enumerators);
|
320
|
+
RB_GC_GUARD(copy);
|
321
|
+
RB_GC_GUARD(rv);
|
322
|
+
|
323
|
+
return rv;
|
324
|
+
}
|
325
|
+
|
326
|
+
|
327
|
+
/**
|
328
|
+
* Construct a ClassType enum object for the specified value.
|
329
|
+
*
|
330
|
+
* No Ruby usage (internal function)
|
331
|
+
*
|
332
|
+
* @param cls the class type
|
333
|
+
* @return a new enumerator
|
334
|
+
*/
|
335
|
+
VALUE
|
336
|
+
ClassType_new(ClassType cls)
|
337
|
+
{
|
338
|
+
const char *name;
|
339
|
+
|
340
|
+
switch(cls)
|
341
|
+
{
|
342
|
+
default:
|
343
|
+
case UndefinedClass:
|
344
|
+
name = "UndefineClass";
|
345
|
+
break;
|
346
|
+
case DirectClass:
|
347
|
+
name = "DirectClass";
|
348
|
+
break;
|
349
|
+
case PseudoClass:
|
350
|
+
name = "PseudoClass";
|
351
|
+
break;
|
352
|
+
}
|
353
|
+
|
354
|
+
return rm_enum_new(Class_ClassType, ID2SYM(rb_intern(name)), INT2FIX(cls));
|
355
|
+
}
|
356
|
+
|
357
|
+
|
358
|
+
/**
|
359
|
+
* Construct a ColorspaceType enum object for the specified value.
|
360
|
+
*
|
361
|
+
* No Ruby usage (internal function)
|
362
|
+
*
|
363
|
+
* @param cs the ColorspaceType
|
364
|
+
* @return a new ColorspaceType enumerator
|
365
|
+
*/
|
366
|
+
VALUE
|
367
|
+
ColorspaceType_new(ColorspaceType cs)
|
368
|
+
{
|
369
|
+
const char *name;
|
370
|
+
|
371
|
+
switch(cs)
|
372
|
+
{
|
373
|
+
default:
|
374
|
+
case UndefinedColorspace:
|
375
|
+
name = "UndefinedColorspace";
|
376
|
+
break;
|
377
|
+
case RGBColorspace:
|
378
|
+
name = "RGBColorspace";
|
379
|
+
break;
|
380
|
+
case GRAYColorspace:
|
381
|
+
name = "GRAYColorspace";
|
382
|
+
break;
|
383
|
+
case TransparentColorspace:
|
384
|
+
name = "TransparentColorspace";
|
385
|
+
break;
|
386
|
+
case OHTAColorspace:
|
387
|
+
name = "OHTAColorspace";
|
388
|
+
break;
|
389
|
+
case XYZColorspace:
|
390
|
+
name = "XYZColorspace";
|
391
|
+
break;
|
392
|
+
case YCbCrColorspace:
|
393
|
+
name = "YCbCrColorspace";
|
394
|
+
break;
|
395
|
+
case YCCColorspace:
|
396
|
+
name = "YCCColorspace";
|
397
|
+
break;
|
398
|
+
case YIQColorspace:
|
399
|
+
name = "YIQColorspace";
|
400
|
+
break;
|
401
|
+
case YPbPrColorspace:
|
402
|
+
name = "YPbPrColorspace";
|
403
|
+
break;
|
404
|
+
case YUVColorspace:
|
405
|
+
name = "YUVColorspace";
|
406
|
+
break;
|
407
|
+
case CMYKColorspace:
|
408
|
+
name = "CMYKColorspace";
|
409
|
+
break;
|
410
|
+
case sRGBColorspace:
|
411
|
+
name = "sRGBColorspace";
|
412
|
+
break;
|
413
|
+
case HSLColorspace:
|
414
|
+
name = "HSLColorspace";
|
415
|
+
break;
|
416
|
+
case HWBColorspace:
|
417
|
+
name = "HWBColorspace";
|
418
|
+
break;
|
419
|
+
case HSBColorspace:
|
420
|
+
name = "HSBColorspace";
|
421
|
+
break;
|
422
|
+
case LabColorspace:
|
423
|
+
name = "LabColorspace";
|
424
|
+
break;
|
425
|
+
case Rec601YCbCrColorspace:
|
426
|
+
name = "Rec601YCbCrColorspace";
|
427
|
+
break;
|
428
|
+
case Rec601LumaColorspace:
|
429
|
+
name = "Rec601LumaColorspace";
|
430
|
+
break;
|
431
|
+
case Rec709LumaColorspace:
|
432
|
+
name = "Rec709LumaColorspace";
|
433
|
+
break;
|
434
|
+
case Rec709YCbCrColorspace:
|
435
|
+
name = "Rec709YCbCrColorspace";
|
436
|
+
break;
|
437
|
+
case LogColorspace:
|
438
|
+
name = "LogColorspace";
|
439
|
+
break;
|
440
|
+
case CMYColorspace:
|
441
|
+
name = "CMYColorspace";
|
442
|
+
break;
|
443
|
+
}
|
444
|
+
|
445
|
+
return rm_enum_new(Class_ColorspaceType, ID2SYM(rb_intern(name)), INT2FIX(cs));
|
446
|
+
|
447
|
+
}
|
448
|
+
|
449
|
+
|
450
|
+
/**
|
451
|
+
* Return the name of a CompositeOperator enum as a string.
|
452
|
+
*
|
453
|
+
* No Ruby usage (internal function)
|
454
|
+
*
|
455
|
+
* @param op the CompositeOperator
|
456
|
+
* @return the name
|
457
|
+
*/
|
458
|
+
static const char *
|
459
|
+
CompositeOperator_name(CompositeOperator op)
|
460
|
+
{
|
461
|
+
switch (op)
|
462
|
+
{
|
463
|
+
ENUM_TO_NAME(UndefinedCompositeOp)
|
464
|
+
ENUM_TO_NAME(NoCompositeOp)
|
465
|
+
ENUM_TO_NAME(AddCompositeOp)
|
466
|
+
ENUM_TO_NAME(AtopCompositeOp)
|
467
|
+
#if defined(HAVE_ENUM_BLURCOMPOSITEOP)
|
468
|
+
ENUM_TO_NAME(BlurCompositeOp)
|
469
|
+
#endif
|
470
|
+
ENUM_TO_NAME(BumpmapCompositeOp)
|
471
|
+
ENUM_TO_NAME(ChangeMaskCompositeOp)
|
472
|
+
ENUM_TO_NAME(ClearCompositeOp)
|
473
|
+
ENUM_TO_NAME(ColorBurnCompositeOp)
|
474
|
+
ENUM_TO_NAME(BlendCompositeOp)
|
475
|
+
ENUM_TO_NAME(ColorDodgeCompositeOp)
|
476
|
+
ENUM_TO_NAME(ExclusionCompositeOp)
|
477
|
+
ENUM_TO_NAME(HardLightCompositeOp)
|
478
|
+
ENUM_TO_NAME(SoftLightCompositeOp)
|
479
|
+
ENUM_TO_NAME(ColorizeCompositeOp)
|
480
|
+
ENUM_TO_NAME(CopyBlueCompositeOp)
|
481
|
+
ENUM_TO_NAME(CopyCompositeOp)
|
482
|
+
ENUM_TO_NAME(CopyCyanCompositeOp)
|
483
|
+
ENUM_TO_NAME(CopyMagentaCompositeOp)
|
484
|
+
ENUM_TO_NAME(CopyYellowCompositeOp)
|
485
|
+
ENUM_TO_NAME(CopyBlackCompositeOp)
|
486
|
+
ENUM_TO_NAME(CopyGreenCompositeOp)
|
487
|
+
ENUM_TO_NAME(CopyOpacityCompositeOp)
|
488
|
+
ENUM_TO_NAME(CopyRedCompositeOp)
|
489
|
+
ENUM_TO_NAME(DarkenCompositeOp)
|
490
|
+
#if defined(HAVE_ENUM_DISTORTCOMPOSITEOP)
|
491
|
+
ENUM_TO_NAME(DistortCompositeOp)
|
492
|
+
#endif
|
493
|
+
ENUM_TO_NAME(DivideCompositeOp)
|
494
|
+
ENUM_TO_NAME(DstAtopCompositeOp)
|
495
|
+
ENUM_TO_NAME(DstCompositeOp)
|
496
|
+
ENUM_TO_NAME(DstInCompositeOp)
|
497
|
+
ENUM_TO_NAME(DstOutCompositeOp)
|
498
|
+
ENUM_TO_NAME(DstOverCompositeOp)
|
499
|
+
ENUM_TO_NAME(DifferenceCompositeOp)
|
500
|
+
ENUM_TO_NAME(DisplaceCompositeOp)
|
501
|
+
ENUM_TO_NAME(DissolveCompositeOp)
|
502
|
+
ENUM_TO_NAME(HueCompositeOp)
|
503
|
+
ENUM_TO_NAME(InCompositeOp)
|
504
|
+
ENUM_TO_NAME(LightenCompositeOp)
|
505
|
+
#if defined(HAVE_ENUM_LINEARBURNCOMPOSITEOP)
|
506
|
+
ENUM_TO_NAME(LinearBurnCompositeOp)
|
507
|
+
#endif
|
508
|
+
#if defined(HAVE_ENUM_LINEARDODGECOMPOSITEOP)
|
509
|
+
ENUM_TO_NAME(LinearDodgeCompositeOp)
|
510
|
+
#endif
|
511
|
+
ENUM_TO_NAME(LinearLightCompositeOp)
|
512
|
+
ENUM_TO_NAME(LuminizeCompositeOp)
|
513
|
+
#if defined(HAVE_ENUM_MATHEMATICSCOMPOSITEOP)
|
514
|
+
ENUM_TO_NAME(MathematicsCompositeOp)
|
515
|
+
#endif
|
516
|
+
ENUM_TO_NAME(MinusCompositeOp)
|
517
|
+
ENUM_TO_NAME(ModulateCompositeOp)
|
518
|
+
ENUM_TO_NAME(MultiplyCompositeOp)
|
519
|
+
ENUM_TO_NAME(OutCompositeOp)
|
520
|
+
ENUM_TO_NAME(OverCompositeOp)
|
521
|
+
ENUM_TO_NAME(OverlayCompositeOp)
|
522
|
+
#if defined(HAVE_ENUM_PEGTOPLIGHTCOMPOSITEOP)
|
523
|
+
ENUM_TO_NAME(PegtopLightCompositeOp)
|
524
|
+
#endif
|
525
|
+
#if defined(HAVE_ENUM_PINLIGHTCOMPOSITEOP)
|
526
|
+
ENUM_TO_NAME(PinLightCompositeOp)
|
527
|
+
#endif
|
528
|
+
ENUM_TO_NAME(PlusCompositeOp)
|
529
|
+
ENUM_TO_NAME(ReplaceCompositeOp)
|
530
|
+
ENUM_TO_NAME(SaturateCompositeOp)
|
531
|
+
ENUM_TO_NAME(ScreenCompositeOp)
|
532
|
+
ENUM_TO_NAME(SrcAtopCompositeOp)
|
533
|
+
ENUM_TO_NAME(SrcCompositeOp)
|
534
|
+
ENUM_TO_NAME(SrcInCompositeOp)
|
535
|
+
ENUM_TO_NAME(SrcOutCompositeOp)
|
536
|
+
ENUM_TO_NAME(SrcOverCompositeOp)
|
537
|
+
ENUM_TO_NAME(SubtractCompositeOp)
|
538
|
+
ENUM_TO_NAME(ThresholdCompositeOp)
|
539
|
+
#if defined(HAVE_ENUM_VIVIDLIGHTCOMPOSITEOP)
|
540
|
+
ENUM_TO_NAME(VividLightCompositeOp)
|
541
|
+
#endif
|
542
|
+
ENUM_TO_NAME(XorCompositeOp)
|
543
|
+
}
|
544
|
+
|
545
|
+
return "UndefinedCompositeOp";
|
546
|
+
}
|
547
|
+
|
548
|
+
|
549
|
+
/**
|
550
|
+
* Construct a CompositeOperator enum object for the specified value.
|
551
|
+
*
|
552
|
+
* No Ruby usage (internal function)
|
553
|
+
*
|
554
|
+
* @param op the CompositeOperator
|
555
|
+
* @return a new CompositeOperator enumerator
|
556
|
+
*/
|
557
|
+
VALUE
|
558
|
+
CompositeOperator_new(CompositeOperator op)
|
559
|
+
{
|
560
|
+
const char *name = CompositeOperator_name(op);
|
561
|
+
return rm_enum_new(Class_CompositeOperator, ID2SYM(rb_intern(name)), INT2FIX(op));
|
562
|
+
}
|
563
|
+
|
564
|
+
|
565
|
+
/**
|
566
|
+
* Return the name of a CompressionType enum as a string.
|
567
|
+
*
|
568
|
+
* No Ruby usage (internal function)
|
569
|
+
*
|
570
|
+
* @param ct the CompressionType
|
571
|
+
* @return the name
|
572
|
+
*/
|
573
|
+
static const char *
|
574
|
+
CompressionType_name(CompressionType ct)
|
575
|
+
{
|
576
|
+
switch (ct)
|
577
|
+
{
|
578
|
+
ENUM_TO_NAME(UndefinedCompression)
|
579
|
+
ENUM_TO_NAME(NoCompression)
|
580
|
+
#if defined(HAVE_ENUM_B44COMPRESSION)
|
581
|
+
ENUM_TO_NAME(B44Compression)
|
582
|
+
#endif
|
583
|
+
#if defined(HAVE_ENUM_B44ACOMPRESSION)
|
584
|
+
ENUM_TO_NAME(B44ACompression)
|
585
|
+
#endif
|
586
|
+
ENUM_TO_NAME(BZipCompression)
|
587
|
+
#if defined(HAVE_ENUM_DXT1COMPRESSION)
|
588
|
+
ENUM_TO_NAME(DXT1Compression)
|
589
|
+
#endif
|
590
|
+
#if defined(HAVE_ENUM_DXT3COMPRESSION)
|
591
|
+
ENUM_TO_NAME(DXT3Compression)
|
592
|
+
#endif
|
593
|
+
#if defined(HAVE_ENUM_DXT5COMPRESSION)
|
594
|
+
ENUM_TO_NAME(DXT5Compression)
|
595
|
+
#endif
|
596
|
+
ENUM_TO_NAME(FaxCompression)
|
597
|
+
ENUM_TO_NAME(Group4Compression)
|
598
|
+
ENUM_TO_NAME(JPEGCompression)
|
599
|
+
ENUM_TO_NAME(JPEG2000Compression)
|
600
|
+
ENUM_TO_NAME(LosslessJPEGCompression)
|
601
|
+
ENUM_TO_NAME(LZWCompression)
|
602
|
+
#if defined(HAVE_ENUM_PIZCOMPRESSION)
|
603
|
+
ENUM_TO_NAME(PizCompression)
|
604
|
+
#endif
|
605
|
+
#if defined(HAVE_ENUM_PXR24COMPRESSION)
|
606
|
+
ENUM_TO_NAME(Pxr24Compression)
|
607
|
+
#endif
|
608
|
+
ENUM_TO_NAME(RLECompression)
|
609
|
+
ENUM_TO_NAME(ZipCompression)
|
610
|
+
#if defined(HAVE_ENUM_ZIPSCOMPRESSION)
|
611
|
+
ENUM_TO_NAME(ZipSCompression)
|
612
|
+
#endif
|
613
|
+
}
|
614
|
+
|
615
|
+
return "UndefinedCompression";
|
616
|
+
}
|
617
|
+
|
618
|
+
|
619
|
+
/**
|
620
|
+
* Construct a CompressionType enum object for the specified value.
|
621
|
+
*
|
622
|
+
* No Ruby usage (internal function)
|
623
|
+
*
|
624
|
+
* @param ct the CompressionType
|
625
|
+
* @return a new CompressionType enumerator
|
626
|
+
*/
|
627
|
+
VALUE
|
628
|
+
CompressionType_new(CompressionType ct)
|
629
|
+
{
|
630
|
+
const char *name = CompressionType_name(ct);
|
631
|
+
return rm_enum_new(Class_CompressionType, ID2SYM(rb_intern(name)), INT2FIX(ct));
|
632
|
+
}
|
633
|
+
|
634
|
+
|
635
|
+
/**
|
636
|
+
* Return the name of a DisposeType enum as a string.
|
637
|
+
*
|
638
|
+
* No Ruby usage (internal function)
|
639
|
+
*
|
640
|
+
* @param type the DisposeType
|
641
|
+
* @return the name
|
642
|
+
*/
|
643
|
+
static const char *
|
644
|
+
DisposeType_name(DisposeType type)
|
645
|
+
{
|
646
|
+
switch(type)
|
647
|
+
{
|
648
|
+
ENUM_TO_NAME(UndefinedDispose)
|
649
|
+
ENUM_TO_NAME(BackgroundDispose)
|
650
|
+
ENUM_TO_NAME(NoneDispose)
|
651
|
+
ENUM_TO_NAME(PreviousDispose)
|
652
|
+
}
|
653
|
+
|
654
|
+
return "UndefinedDispose";
|
655
|
+
}
|
656
|
+
|
657
|
+
|
658
|
+
/**
|
659
|
+
* Construct a DisposeType enum object for the specified value..new.
|
660
|
+
*
|
661
|
+
* No Ruby usage (internal function)
|
662
|
+
*
|
663
|
+
* @param type the DisposeType
|
664
|
+
* @return a new DisposeType enumerator
|
665
|
+
*/
|
666
|
+
VALUE
|
667
|
+
DisposeType_new(DisposeType type)
|
668
|
+
{
|
669
|
+
const char *name = DisposeType_name(type);
|
670
|
+
return rm_enum_new(Class_DisposeType, ID2SYM(rb_intern(name)), INT2FIX(type));
|
671
|
+
}
|
672
|
+
|
673
|
+
|
674
|
+
/**
|
675
|
+
* Return the name of a FilterTypes enum as a string.
|
676
|
+
*
|
677
|
+
* No Ruby usage (internal function)
|
678
|
+
*
|
679
|
+
* @param type the FilterTypes
|
680
|
+
* @return the name
|
681
|
+
*/
|
682
|
+
static const char *
|
683
|
+
FilterTypes_name(FilterTypes type)
|
684
|
+
{
|
685
|
+
switch(type)
|
686
|
+
{
|
687
|
+
ENUM_TO_NAME(UndefinedFilter)
|
688
|
+
ENUM_TO_NAME(PointFilter)
|
689
|
+
ENUM_TO_NAME(BoxFilter)
|
690
|
+
ENUM_TO_NAME(TriangleFilter)
|
691
|
+
ENUM_TO_NAME(HermiteFilter)
|
692
|
+
ENUM_TO_NAME(HanningFilter)
|
693
|
+
ENUM_TO_NAME(HammingFilter)
|
694
|
+
ENUM_TO_NAME(BlackmanFilter)
|
695
|
+
ENUM_TO_NAME(GaussianFilter)
|
696
|
+
ENUM_TO_NAME(QuadraticFilter)
|
697
|
+
ENUM_TO_NAME(CubicFilter)
|
698
|
+
ENUM_TO_NAME(CatromFilter)
|
699
|
+
ENUM_TO_NAME(MitchellFilter)
|
700
|
+
ENUM_TO_NAME(LanczosFilter)
|
701
|
+
ENUM_TO_NAME(BesselFilter)
|
702
|
+
ENUM_TO_NAME(SincFilter)
|
703
|
+
#if defined(HAVE_ENUM_KAISERFILTER)
|
704
|
+
ENUM_TO_NAME(KaiserFilter)
|
705
|
+
#endif
|
706
|
+
#if defined(HAVE_ENUM_WELSHFILTER)
|
707
|
+
ENUM_TO_NAME(WelshFilter)
|
708
|
+
#endif
|
709
|
+
#if defined(HAVE_ENUM_PARZENFILTER)
|
710
|
+
ENUM_TO_NAME(ParzenFilter)
|
711
|
+
#endif
|
712
|
+
#if defined(HAVE_ENUM_LAGRANGEFILTER)
|
713
|
+
ENUM_TO_NAME(LagrangeFilter)
|
714
|
+
#endif
|
715
|
+
#if defined(HAVE_ENUM_BOHMANFILTER)
|
716
|
+
ENUM_TO_NAME(BohmanFilter)
|
717
|
+
#endif
|
718
|
+
#if defined(HAVE_ENUM_BARTLETTFILTER)
|
719
|
+
ENUM_TO_NAME(BartlettFilter)
|
720
|
+
#endif
|
721
|
+
#if defined(HAVE_ENUM_SENTINELFILTER)
|
722
|
+
// not a real filter name - defeat gcc warning message
|
723
|
+
case SentinelFilter:
|
724
|
+
break;
|
725
|
+
#endif
|
726
|
+
}
|
727
|
+
|
728
|
+
return "UndefinedFilter";
|
729
|
+
}
|
730
|
+
|
731
|
+
|
732
|
+
/**
|
733
|
+
* Construct an FilterTypes enum object for the specified value.
|
734
|
+
*
|
735
|
+
* No Ruby usage (internal function)
|
736
|
+
*
|
737
|
+
* @param type the FilterTypes
|
738
|
+
* @return a new FilterTypes enumerator
|
739
|
+
*/
|
740
|
+
VALUE
|
741
|
+
FilterTypes_new(FilterTypes type)
|
742
|
+
{
|
743
|
+
const char *name = FilterTypes_name(type);
|
744
|
+
return rm_enum_new(Class_FilterTypes, ID2SYM(rb_intern(name)), INT2FIX(type));
|
745
|
+
}
|
746
|
+
|
747
|
+
|
748
|
+
/**
|
749
|
+
* Return the name of a EndianType enum as a string.
|
750
|
+
*
|
751
|
+
* No Ruby usage (internal function)
|
752
|
+
*
|
753
|
+
* @param type the EndianType
|
754
|
+
* @return the name
|
755
|
+
*/
|
756
|
+
static const char *
|
757
|
+
EndianType_name(EndianType type)
|
758
|
+
{
|
759
|
+
switch(type)
|
760
|
+
{
|
761
|
+
ENUM_TO_NAME(UndefinedEndian)
|
762
|
+
ENUM_TO_NAME(LSBEndian)
|
763
|
+
ENUM_TO_NAME(MSBEndian)
|
764
|
+
}
|
765
|
+
return "UndefinedEndian";
|
766
|
+
}
|
767
|
+
|
768
|
+
|
769
|
+
/**
|
770
|
+
* Construct an EndianType enum object.
|
771
|
+
*
|
772
|
+
* No Ruby usage (internal function)
|
773
|
+
*
|
774
|
+
* @param type the EndianType
|
775
|
+
* @return a new EndianType enumerator
|
776
|
+
*/
|
777
|
+
VALUE
|
778
|
+
EndianType_new(EndianType type)
|
779
|
+
{
|
780
|
+
const char *name = EndianType_name(type);
|
781
|
+
return rm_enum_new(Class_EndianType, ID2SYM(rb_intern(name)), INT2FIX(type));
|
782
|
+
}
|
783
|
+
|
784
|
+
|
785
|
+
/**
|
786
|
+
* Return the name of a GravityType enum as a string.
|
787
|
+
*
|
788
|
+
* No Ruby usage (internal function)
|
789
|
+
*
|
790
|
+
* @param type the GravityType
|
791
|
+
* @return the name
|
792
|
+
*/
|
793
|
+
static const char *
|
794
|
+
GravityType_name(GravityType type)
|
795
|
+
{
|
796
|
+
switch(type)
|
797
|
+
{
|
798
|
+
ENUM_TO_NAME(ForgetGravity)
|
799
|
+
ENUM_TO_NAME(NorthWestGravity)
|
800
|
+
ENUM_TO_NAME(NorthGravity)
|
801
|
+
ENUM_TO_NAME(NorthEastGravity)
|
802
|
+
ENUM_TO_NAME(WestGravity)
|
803
|
+
ENUM_TO_NAME(CenterGravity)
|
804
|
+
ENUM_TO_NAME(EastGravity)
|
805
|
+
ENUM_TO_NAME(SouthWestGravity)
|
806
|
+
ENUM_TO_NAME(SouthGravity)
|
807
|
+
ENUM_TO_NAME(SouthEastGravity)
|
808
|
+
ENUM_TO_NAME(StaticGravity)
|
809
|
+
}
|
810
|
+
|
811
|
+
// Defeat "duplicate case value" error.
|
812
|
+
return "UndefinedGravity";
|
813
|
+
}
|
814
|
+
|
815
|
+
|
816
|
+
/**
|
817
|
+
* Construct an GravityType enum object for the specified value.
|
818
|
+
*
|
819
|
+
* No Ruby usage (internal function)
|
820
|
+
*
|
821
|
+
* @param type the GravityType
|
822
|
+
* @return a new GravityType enumerator
|
823
|
+
*/
|
824
|
+
VALUE
|
825
|
+
GravityType_new(GravityType type)
|
826
|
+
{
|
827
|
+
const char *name = GravityType_name(type);
|
828
|
+
return rm_enum_new(Class_GravityType, ID2SYM(rb_intern(name)), INT2FIX(type));
|
829
|
+
}
|
830
|
+
|
831
|
+
|
832
|
+
/**
|
833
|
+
* Return the name of a ImageType enum as a string.
|
834
|
+
*
|
835
|
+
* No Ruby usage (internal function)
|
836
|
+
*
|
837
|
+
* @param type the ImageType
|
838
|
+
* @return the name
|
839
|
+
*/
|
840
|
+
static const char *
|
841
|
+
ImageType_name(ImageType type)
|
842
|
+
{
|
843
|
+
switch(type)
|
844
|
+
{
|
845
|
+
ENUM_TO_NAME(UndefinedType)
|
846
|
+
ENUM_TO_NAME(BilevelType)
|
847
|
+
ENUM_TO_NAME(GrayscaleType)
|
848
|
+
ENUM_TO_NAME(GrayscaleMatteType)
|
849
|
+
ENUM_TO_NAME(PaletteType)
|
850
|
+
ENUM_TO_NAME(PaletteMatteType)
|
851
|
+
ENUM_TO_NAME(TrueColorType)
|
852
|
+
ENUM_TO_NAME(TrueColorMatteType)
|
853
|
+
ENUM_TO_NAME(ColorSeparationType)
|
854
|
+
ENUM_TO_NAME(ColorSeparationMatteType)
|
855
|
+
ENUM_TO_NAME(OptimizeType)
|
856
|
+
ENUM_TO_NAME(PaletteBilevelMatteType)
|
857
|
+
}
|
858
|
+
|
859
|
+
return "UndefinedType";
|
860
|
+
}
|
861
|
+
|
862
|
+
|
863
|
+
/**
|
864
|
+
* Construct an ImageType enum object for the specified value.
|
865
|
+
*
|
866
|
+
* No Ruby usage (internal function)
|
867
|
+
*
|
868
|
+
* @param type the ImageType
|
869
|
+
* @return a new ImageType enumerator
|
870
|
+
*/
|
871
|
+
VALUE
|
872
|
+
ImageType_new(ImageType type)
|
873
|
+
{
|
874
|
+
const char *name = ImageType_name(type);
|
875
|
+
return rm_enum_new(Class_ImageType, ID2SYM(rb_intern(name)), INT2FIX(type));
|
876
|
+
}
|
877
|
+
|
878
|
+
|
879
|
+
/**
|
880
|
+
* Return the name of a InterlaceType enum as a string.
|
881
|
+
*
|
882
|
+
* No Ruby usage (internal function)
|
883
|
+
*
|
884
|
+
* @param interlace the InterlaceType
|
885
|
+
* @return the name
|
886
|
+
*/
|
887
|
+
static const char *
|
888
|
+
InterlaceType_name(InterlaceType interlace)
|
889
|
+
{
|
890
|
+
switch(interlace)
|
891
|
+
{
|
892
|
+
ENUM_TO_NAME(UndefinedInterlace)
|
893
|
+
ENUM_TO_NAME(GIFInterlace)
|
894
|
+
ENUM_TO_NAME(JPEGInterlace)
|
895
|
+
ENUM_TO_NAME(PNGInterlace)
|
896
|
+
ENUM_TO_NAME(NoInterlace)
|
897
|
+
ENUM_TO_NAME(LineInterlace)
|
898
|
+
ENUM_TO_NAME(PlaneInterlace)
|
899
|
+
ENUM_TO_NAME(PartitionInterlace)
|
900
|
+
}
|
901
|
+
|
902
|
+
return "UndefinedInterlace";
|
903
|
+
}
|
904
|
+
|
905
|
+
|
906
|
+
/**
|
907
|
+
* Construct an InterlaceType enum object for the specified value.
|
908
|
+
*
|
909
|
+
* No Ruby usage (internal function)
|
910
|
+
*
|
911
|
+
* @param interlace the InterlaceType
|
912
|
+
* @return a new InterlaceType enumerator
|
913
|
+
*/
|
914
|
+
VALUE
|
915
|
+
InterlaceType_new(InterlaceType interlace)
|
916
|
+
{
|
917
|
+
const char *name = InterlaceType_name(interlace);
|
918
|
+
return rm_enum_new(Class_InterlaceType, ID2SYM(rb_intern(name)), INT2FIX(interlace));
|
919
|
+
}
|
920
|
+
|
921
|
+
|
922
|
+
/**
|
923
|
+
* Return the name of a InterpolatePixelMethod enum as a string.
|
924
|
+
*
|
925
|
+
* No Ruby usage (internal function)
|
926
|
+
*
|
927
|
+
* @param interpolate the InterpolatePixelMethod
|
928
|
+
* @return the name
|
929
|
+
*/
|
930
|
+
static const char *
|
931
|
+
InterpolatePixelMethod_name(InterpolatePixelMethod interpolate)
|
932
|
+
{
|
933
|
+
switch(interpolate)
|
934
|
+
{
|
935
|
+
ENUM_TO_NAME(UndefinedInterpolatePixel)
|
936
|
+
ENUM_TO_NAME(AverageInterpolatePixel)
|
937
|
+
ENUM_TO_NAME(BicubicInterpolatePixel)
|
938
|
+
ENUM_TO_NAME(BilinearInterpolatePixel)
|
939
|
+
ENUM_TO_NAME(FilterInterpolatePixel)
|
940
|
+
ENUM_TO_NAME(IntegerInterpolatePixel)
|
941
|
+
ENUM_TO_NAME(MeshInterpolatePixel)
|
942
|
+
ENUM_TO_NAME(NearestNeighborInterpolatePixel)
|
943
|
+
ENUM_TO_NAME(SplineInterpolatePixel)
|
944
|
+
}
|
945
|
+
|
946
|
+
return "UndefinedInterpolatePixel";
|
947
|
+
}
|
948
|
+
|
949
|
+
|
950
|
+
/**
|
951
|
+
* Construct an InterpolatePixelMethod enum object for the specified value.
|
952
|
+
*
|
953
|
+
* No Ruby usage (internal function)
|
954
|
+
*
|
955
|
+
* @param interpolate the InterpolatePixelMethod
|
956
|
+
* @return a new InterpolatePixelMethod enumerator
|
957
|
+
*/
|
958
|
+
VALUE
|
959
|
+
InterpolatePixelMethod_new(InterpolatePixelMethod interpolate)
|
960
|
+
{
|
961
|
+
const char *name = InterpolatePixelMethod_name(interpolate);
|
962
|
+
return rm_enum_new(Class_InterpolatePixelMethod, ID2SYM(rb_intern(name)), INT2FIX(interpolate));
|
963
|
+
}
|
964
|
+
|
965
|
+
|
966
|
+
/**
|
967
|
+
* Return the name of a MagickLayerMethod enum as a string.
|
968
|
+
*
|
969
|
+
* No Ruby usage (internal function)
|
970
|
+
*
|
971
|
+
* @param method the MagickLayerMethod
|
972
|
+
* @return the name
|
973
|
+
*/
|
974
|
+
static const char *
|
975
|
+
LAYERMETHODTYPE_NAME(LAYERMETHODTYPE method)
|
976
|
+
{
|
977
|
+
switch(method)
|
978
|
+
{
|
979
|
+
ENUM_TO_NAME(UndefinedLayer)
|
980
|
+
ENUM_TO_NAME(CompareAnyLayer)
|
981
|
+
ENUM_TO_NAME(CompareClearLayer)
|
982
|
+
ENUM_TO_NAME(CompareOverlayLayer)
|
983
|
+
ENUM_TO_NAME(OptimizeLayer)
|
984
|
+
ENUM_TO_NAME(OptimizePlusLayer)
|
985
|
+
ENUM_TO_NAME(CoalesceLayer)
|
986
|
+
ENUM_TO_NAME(DisposeLayer)
|
987
|
+
ENUM_TO_NAME(OptimizeTransLayer)
|
988
|
+
ENUM_TO_NAME(OptimizeImageLayer)
|
989
|
+
ENUM_TO_NAME(RemoveDupsLayer)
|
990
|
+
ENUM_TO_NAME(RemoveZeroLayer)
|
991
|
+
ENUM_TO_NAME(CompositeLayer)
|
992
|
+
#if defined(HAVE_ENUM_MERGELAYER)
|
993
|
+
ENUM_TO_NAME(MergeLayer)
|
994
|
+
#endif
|
995
|
+
#if defined(HAVE_ENUM_MOSAICLAYER)
|
996
|
+
ENUM_TO_NAME(MosaicLayer)
|
997
|
+
#endif
|
998
|
+
#if defined(HAVE_ENUM_FLATTENLAYER)
|
999
|
+
ENUM_TO_NAME(FlattenLayer)
|
1000
|
+
#endif
|
1001
|
+
#if defined(HAVE_ENUM_TRIMBOUNDSLAYER)
|
1002
|
+
ENUM_TO_NAME(TrimBoundsLayer)
|
1003
|
+
#endif
|
1004
|
+
}
|
1005
|
+
|
1006
|
+
return "UndefinedLayer";
|
1007
|
+
}
|
1008
|
+
|
1009
|
+
|
1010
|
+
/**
|
1011
|
+
* Construct an MagickLayerMethod enum object for the specified value.
|
1012
|
+
*
|
1013
|
+
* No Ruby usage (internal function)
|
1014
|
+
*
|
1015
|
+
* @param method the MagickLayerMethod
|
1016
|
+
* @return a new MagickLayerMethod enumerator
|
1017
|
+
*/
|
1018
|
+
VALUE
|
1019
|
+
LAYERMETHODTYPE_NEW(LAYERMETHODTYPE method)
|
1020
|
+
{
|
1021
|
+
const char *name = LAYERMETHODTYPE_NAME(method);
|
1022
|
+
return rm_enum_new(CLASS_LAYERMETHODTYPE, ID2SYM(rb_intern(name)), INT2FIX(method));
|
1023
|
+
}
|
1024
|
+
|
1025
|
+
|
1026
|
+
/**
|
1027
|
+
* Return the name of a OrientationType enum as a string.
|
1028
|
+
*
|
1029
|
+
* No Ruby usage (internal function)
|
1030
|
+
*
|
1031
|
+
* @param type the OreintationType
|
1032
|
+
* @return the name
|
1033
|
+
*/
|
1034
|
+
static const char *
|
1035
|
+
OrientationType_name(OrientationType type)
|
1036
|
+
{
|
1037
|
+
switch(type)
|
1038
|
+
{
|
1039
|
+
ENUM_TO_NAME(UndefinedOrientation)
|
1040
|
+
ENUM_TO_NAME(TopLeftOrientation)
|
1041
|
+
ENUM_TO_NAME(TopRightOrientation)
|
1042
|
+
ENUM_TO_NAME(BottomRightOrientation)
|
1043
|
+
ENUM_TO_NAME(BottomLeftOrientation)
|
1044
|
+
ENUM_TO_NAME(LeftTopOrientation)
|
1045
|
+
ENUM_TO_NAME(RightTopOrientation)
|
1046
|
+
ENUM_TO_NAME(RightBottomOrientation)
|
1047
|
+
ENUM_TO_NAME(LeftBottomOrientation)
|
1048
|
+
}
|
1049
|
+
|
1050
|
+
return "UndefinedOrientation";
|
1051
|
+
}
|
1052
|
+
|
1053
|
+
|
1054
|
+
/**
|
1055
|
+
* Construct an OrientationType enum object for the specified value.
|
1056
|
+
*
|
1057
|
+
* No Ruby usage (internal function)
|
1058
|
+
*
|
1059
|
+
* @param type the OrientationType
|
1060
|
+
* @return a new OrientationType enumerator
|
1061
|
+
*/
|
1062
|
+
VALUE
|
1063
|
+
OrientationType_new(OrientationType type)
|
1064
|
+
{
|
1065
|
+
const char *name = OrientationType_name(type);
|
1066
|
+
return rm_enum_new(Class_OrientationType, ID2SYM(rb_intern(name)), INT2FIX(type));
|
1067
|
+
}
|
1068
|
+
|
1069
|
+
|
1070
|
+
/**
|
1071
|
+
* Return the name of a RenderingIntent enum as a string.
|
1072
|
+
*
|
1073
|
+
* No Ruby usage (internal function)
|
1074
|
+
*
|
1075
|
+
* @param intent the RenderingIntent
|
1076
|
+
* @return the name
|
1077
|
+
*/
|
1078
|
+
static const char *
|
1079
|
+
RenderingIntent_name(RenderingIntent intent)
|
1080
|
+
{
|
1081
|
+
switch(intent)
|
1082
|
+
{
|
1083
|
+
ENUM_TO_NAME(UndefinedIntent)
|
1084
|
+
ENUM_TO_NAME(SaturationIntent)
|
1085
|
+
ENUM_TO_NAME(PerceptualIntent)
|
1086
|
+
ENUM_TO_NAME(AbsoluteIntent)
|
1087
|
+
ENUM_TO_NAME(RelativeIntent)
|
1088
|
+
}
|
1089
|
+
|
1090
|
+
return "UndefinedIntent";
|
1091
|
+
}
|
1092
|
+
|
1093
|
+
|
1094
|
+
/**
|
1095
|
+
* Construct an RenderingIntent enum object for the specified value.
|
1096
|
+
*
|
1097
|
+
* No Ruby usage (internal function)
|
1098
|
+
*
|
1099
|
+
* @param intent the RenderingIntent
|
1100
|
+
* @return a new RenderingIntent enumerator
|
1101
|
+
*/
|
1102
|
+
VALUE
|
1103
|
+
RenderingIntent_new(RenderingIntent intent)
|
1104
|
+
{
|
1105
|
+
const char *name = RenderingIntent_name(intent);
|
1106
|
+
return rm_enum_new(Class_RenderingIntent, ID2SYM(rb_intern(name)), INT2FIX(intent));
|
1107
|
+
}
|
1108
|
+
|
1109
|
+
|
1110
|
+
/**
|
1111
|
+
* Return the name of a ResolutionType enum as a string.
|
1112
|
+
*
|
1113
|
+
* No Ruby usage (internal function)
|
1114
|
+
*
|
1115
|
+
* @param type the ResolutionType
|
1116
|
+
* @return the name
|
1117
|
+
*/
|
1118
|
+
static const char *
|
1119
|
+
ResolutionType_name(ResolutionType type)
|
1120
|
+
{
|
1121
|
+
switch(type)
|
1122
|
+
{
|
1123
|
+
ENUM_TO_NAME(UndefinedResolution)
|
1124
|
+
ENUM_TO_NAME(PixelsPerInchResolution)
|
1125
|
+
ENUM_TO_NAME(PixelsPerCentimeterResolution)
|
1126
|
+
}
|
1127
|
+
|
1128
|
+
return "UndefinedResolution";
|
1129
|
+
}
|
1130
|
+
|
1131
|
+
|
1132
|
+
/**
|
1133
|
+
* Construct an ResolutionType enum object for the specified value.
|
1134
|
+
*
|
1135
|
+
* No Ruby usage (internal function)
|
1136
|
+
*
|
1137
|
+
* @param type the ResolutionType
|
1138
|
+
* @return a new ResolutionType enumerator
|
1139
|
+
*/
|
1140
|
+
VALUE
|
1141
|
+
ResolutionType_new(ResolutionType type)
|
1142
|
+
{
|
1143
|
+
const char *name = ResolutionType_name(type);
|
1144
|
+
return rm_enum_new(Class_ResolutionType, ID2SYM(rb_intern(name)), INT2FIX(type));
|
1145
|
+
}
|
1146
|
+
|
1147
|
+
|
1148
|
+
/**
|
1149
|
+
* Return the string representation of a StorageType value.
|
1150
|
+
*
|
1151
|
+
* No Ruby usage (internal function)
|
1152
|
+
*
|
1153
|
+
* @param type the StorageType
|
1154
|
+
* @return the name
|
1155
|
+
*/
|
1156
|
+
const char *
|
1157
|
+
StorageType_name(StorageType type)
|
1158
|
+
{
|
1159
|
+
switch (type)
|
1160
|
+
{
|
1161
|
+
ENUM_TO_NAME(UndefinedPixel)
|
1162
|
+
ENUM_TO_NAME(CharPixel)
|
1163
|
+
ENUM_TO_NAME(DoublePixel)
|
1164
|
+
ENUM_TO_NAME(FloatPixel)
|
1165
|
+
ENUM_TO_NAME(IntegerPixel)
|
1166
|
+
ENUM_TO_NAME(LongPixel)
|
1167
|
+
ENUM_TO_NAME(QuantumPixel)
|
1168
|
+
ENUM_TO_NAME(ShortPixel)
|
1169
|
+
}
|
1170
|
+
|
1171
|
+
return "UndefinedPixel";
|
1172
|
+
}
|
1173
|
+
|
1174
|
+
|
1175
|
+
/**
|
1176
|
+
* Return the string representation of a VirtualPixelMethod value.
|
1177
|
+
*
|
1178
|
+
* No Ruby usage (internal function)
|
1179
|
+
*
|
1180
|
+
* @param method the VirtualPixelMethod
|
1181
|
+
* @return the name
|
1182
|
+
*/
|
1183
|
+
static const char *
|
1184
|
+
VirtualPixelMethod_name(VirtualPixelMethod method)
|
1185
|
+
{
|
1186
|
+
switch (method)
|
1187
|
+
{
|
1188
|
+
ENUM_TO_NAME(UndefinedVirtualPixelMethod)
|
1189
|
+
ENUM_TO_NAME(EdgeVirtualPixelMethod)
|
1190
|
+
ENUM_TO_NAME(MirrorVirtualPixelMethod)
|
1191
|
+
ENUM_TO_NAME(TileVirtualPixelMethod)
|
1192
|
+
ENUM_TO_NAME(TransparentVirtualPixelMethod)
|
1193
|
+
ENUM_TO_NAME(BackgroundVirtualPixelMethod)
|
1194
|
+
ENUM_TO_NAME(DitherVirtualPixelMethod)
|
1195
|
+
ENUM_TO_NAME(RandomVirtualPixelMethod)
|
1196
|
+
ENUM_TO_NAME(ConstantVirtualPixelMethod)
|
1197
|
+
ENUM_TO_NAME(MaskVirtualPixelMethod)
|
1198
|
+
ENUM_TO_NAME(BlackVirtualPixelMethod)
|
1199
|
+
ENUM_TO_NAME(GrayVirtualPixelMethod)
|
1200
|
+
ENUM_TO_NAME(WhiteVirtualPixelMethod)
|
1201
|
+
#if defined(HAVE_ENUM_HORIZONTALTILEVIRTUALPIXELMETHOD)
|
1202
|
+
ENUM_TO_NAME(HorizontalTileVirtualPixelMethod)
|
1203
|
+
#endif
|
1204
|
+
#if defined(HAVE_ENUM_VERTICALTILEVIRTUALPIXELMETHOD)
|
1205
|
+
ENUM_TO_NAME(VerticalTileVirtualPixelMethod)
|
1206
|
+
#endif
|
1207
|
+
#if defined(HAVE_ENUM_HORIZONTALTILEEDGEVIRTUALPIXELMETHOD)
|
1208
|
+
ENUM_TO_NAME(HorizontalTileEdgeVirtualPixelMethod)
|
1209
|
+
#endif
|
1210
|
+
#if defined(HAVE_ENUM_VERTICALTILEEDGEVIRTUALPIXELMETHOD)
|
1211
|
+
ENUM_TO_NAME(VerticalTileEdgeVirtualPixelMethod)
|
1212
|
+
#endif
|
1213
|
+
#if defined(HAVE_ENUM_CHECKERTILEVIRTUALPIXELMETHOD)
|
1214
|
+
ENUM_TO_NAME(CheckerTileVirtualPixelMethod)
|
1215
|
+
#endif
|
1216
|
+
}
|
1217
|
+
|
1218
|
+
return "UndefinedVirtualPixelMethod";
|
1219
|
+
}
|
1220
|
+
|
1221
|
+
|
1222
|
+
/**
|
1223
|
+
* Construct a VirtualPixelMethod enum for a specified VirtualPixelMethod value.
|
1224
|
+
*
|
1225
|
+
* No Ruby usage (internal function)
|
1226
|
+
*
|
1227
|
+
* @param style theVirtualPixelMethod
|
1228
|
+
* @return a new VirtualPixelMethod enumerator
|
1229
|
+
*/
|
1230
|
+
VALUE
|
1231
|
+
VirtualPixelMethod_new(VirtualPixelMethod style)
|
1232
|
+
{
|
1233
|
+
const char *name = VirtualPixelMethod_name(style);
|
1234
|
+
return rm_enum_new(Class_VirtualPixelMethod, ID2SYM(rb_intern(name)), INT2FIX(style));
|
1235
|
+
}
|