ext/RMagick/rmmain.c in rmagick-2.5.2 vs ext/RMagick/rmmain.c in rmagick-2.6.0
- old
+ new
@@ -1,6 +1,6 @@
-/* $Id: rmmain.c,v 1.252 2008/07/13 21:18:28 rmagick Exp $ */
+/* $Id: rmmain.c,v 1.266 2008/08/31 20:00:39 rmagick Exp $ */
/*============================================================================\
| Copyright (C) 2008 by Timothy P. Hunter
| Name: rmmain.c
| Author: Tim Hunter
| Purpose: Contains all module, class, method declarations.
@@ -64,10 +64,11 @@
magick_free((void *)color_info_list);
return ary;
}
}
+
/*
Method: Magick::fonts [ { |fontinfo| } ]
Purpose: If called with the optional block, iterates over the fonts,
otherwise returns an array of Magick::Font objects
*/
@@ -121,11 +122,12 @@
"A" is "+" if the format supports multi-image files, or "-" otherwise.
Notes: Only called once.
There are 3 implementations.
*/
-static VALUE MagickInfo_to_format(const MagickInfo *magick_info)
+static VALUE
+MagickInfo_to_format(const MagickInfo *magick_info)
{
char mode[4];
mode[0] = magick_info->blob_support ? '*': ' ';
mode[1] = magick_info->decoder ? 'r' : '-';
@@ -133,10 +135,11 @@
mode[3] = magick_info->encoder && magick_info->adjoin ? '+' : '-';
return rb_str_new(mode, sizeof(mode));
}
+
VALUE
Magick_init_formats(VALUE class)
{
const MagickInfo **magick_info;
unsigned long number_formats, x;
@@ -254,11 +257,10 @@
return ULONG2NUM(cur_limit);
}
-
/*
Method Magick.set_cache_threshold(megabytes)
Purpose: sets the amount of free memory allocated for the
pixel cache. Once this threshold is exceeded, all
subsequent pixels cache operations are to/from disk.
@@ -271,10 +273,11 @@
(void) SetMagickResourceLimit(MemoryResource, (MagickSizeType)thrshld);
(void) SetMagickResourceLimit(MapResource, (MagickSizeType)(2*thrshld));
return class;
}
+
/*
Method: Magick.set_log_event_mask(event,...) -> Magick
Notes: "event" is one of "all", "annotate", "blob", "cache",
"coder", "configure", "deprecate", "locale", "none",
"render", "transform", "user", "x11". Multiple events
@@ -316,18 +319,16 @@
SetLogFormat(StringValuePtr(format));
return class;
}
-
/*
External: Init_RMagick2
Purpose: define the classes and constants
Arguments: void
Returns: void
*/
-
void
Init_RMagick2(void)
{
volatile VALUE observable;
@@ -353,10 +354,11 @@
rm_ID_fill = rb_intern("fill");
rm_ID_flag = rb_intern("flag");
rm_ID_from_s = rb_intern("from_s");
rm_ID_Geometry = rb_intern("Geometry");
rm_ID_GeometryValue = rb_intern("GeometryValue");
+ rm_ID_has_key_q = rb_intern("has_key?");
rm_ID_height = rb_intern("height");
rm_ID_initialize_copy = rb_intern("initialize_copy");
rm_ID_length = rb_intern("length");
rm_ID_notify_observers = rb_intern("notify_observers");
rm_ID_new = rb_intern("new");
@@ -477,10 +479,11 @@
rb_define_method(Class_Image, "add_compose_mask", Image_add_compose_mask, 1);
rb_define_method(Class_Image, "add_noise", Image_add_noise, 1);
rb_define_method(Class_Image, "add_noise_channel", Image_add_noise_channel, -1);
rb_define_method(Class_Image, "add_profile", Image_add_profile, 1);
rb_define_method(Class_Image, "affine_transform", Image_affine_transform, 1);
+ rb_define_method(Class_Image, "affinity", Image_affinity, -1);
rb_define_method(Class_Image, "alpha", Image_alpha, -1);
rb_define_method(Class_Image, "alpha?", Image_alpha_q, 0);
rb_define_method(Class_Image, "[]", Image_aref, 1);
rb_define_method(Class_Image, "[]=", Image_aset, 2);
rb_define_method(Class_Image, "auto_orient", Image_auto_orient, 0);
@@ -515,20 +518,24 @@
rb_define_method(Class_Image, "composite", Image_composite, -1);
rb_define_method(Class_Image, "composite!", Image_composite_bang, -1);
rb_define_method(Class_Image, "composite_affine", Image_composite_affine, 2);
rb_define_method(Class_Image, "composite_channel", Image_composite_channel, -1);
rb_define_method(Class_Image, "composite_channel!", Image_composite_channel_bang, -1);
+ rb_define_method(Class_Image, "composite_tiled", Image_composite_tiled, -1);
+ rb_define_method(Class_Image, "composite_tiled!", Image_composite_tiled_bang, -1);
rb_define_method(Class_Image, "compress_colormap!", Image_compress_colormap_bang, 0);
rb_define_method(Class_Image, "contrast", Image_contrast, -1);
rb_define_method(Class_Image, "contrast_stretch_channel", Image_contrast_stretch_channel, -1);
rb_define_method(Class_Image, "convolve", Image_convolve, 2);
rb_define_method(Class_Image, "convolve_channel", Image_convolve_channel, -1);
rb_define_method(Class_Image, "copy", Image_copy, 0);
rb_define_method(Class_Image, "crop", Image_crop, -1);
rb_define_method(Class_Image, "crop!", Image_crop_bang, -1);
rb_define_method(Class_Image, "cycle_colormap", Image_cycle_colormap, 1);
rb_define_method(Class_Image, "decipher", Image_decipher, 1);
+ rb_define_method(Class_Image, "define", Image_define, 2);
+ rb_define_method(Class_Image, "deskew", Image_deskew, -1);
rb_define_method(Class_Image, "delete_compose_mask", Image_delete_compose_mask, 0);
rb_define_method(Class_Image, "delete_profile", Image_delete_profile, 1);
rb_define_method(Class_Image, "despeckle", Image_despeckle, 0);
rb_define_method(Class_Image, "destroy!", Image_destroy_bang, 0);
rb_define_method(Class_Image, "destroyed?", Image_destroyed_q, 0);
@@ -572,10 +579,12 @@
rb_define_method(Class_Image, "import_pixels", Image_import_pixels, -1);
rb_define_method(Class_Image, "initialize_copy", Image_init_copy, 1);
rb_define_method(Class_Image, "inspect", Image_inspect, 0);
rb_define_method(Class_Image, "level2", Image_level2, -1);
rb_define_method(Class_Image, "level_channel", Image_level_channel, -1);
+ rb_define_method(Class_Image, "level_colors", Image_level_colors, -1);
+ rb_define_method(Class_Image, "levelize_channel", Image_levelize_channel, -1);
rb_define_method(Class_Image, "linear_stretch", Image_linear_stretch, -1);
rb_define_method(Class_Image, "liquid_rescale", Image_liquid_rescale, -1);
rb_define_method(Class_Image, "magnify", Image_magnify, 0);
rb_define_method(Class_Image, "magnify!", Image_magnify_bang, 0);
rb_define_method(Class_Image, "map", Image_map, -1);
@@ -635,10 +644,11 @@
rb_define_method(Class_Image, "sigmoidal_contrast_channel", Image_sigmoidal_contrast_channel, -1);
rb_define_method(Class_Image, "signature", Image_signature, 0);
rb_define_method(Class_Image, "sketch", Image_sketch, -1);
rb_define_method(Class_Image, "solarize", Image_solarize, -1);
rb_define_method(Class_Image, "<=>", Image_spaceship, 1);
+ rb_define_method(Class_Image, "sparse_color", Image_sparse_color, -1);
rb_define_method(Class_Image, "splice", Image_splice, -1);
rb_define_method(Class_Image, "spread", Image_spread, -1);
rb_define_method(Class_Image, "stegano", Image_stegano, 2);
rb_define_method(Class_Image, "stereo", Image_stereo, 1);
rb_define_method(Class_Image, "strip!", Image_strip_bang, 0);
@@ -657,10 +667,11 @@
rb_define_method(Class_Image, "transpose!", Image_transpose_bang, 0);
rb_define_method(Class_Image, "transverse", Image_transverse, 0);
rb_define_method(Class_Image, "transverse!", Image_transverse_bang, 0);
rb_define_method(Class_Image, "trim", Image_trim, -1);
rb_define_method(Class_Image, "trim!", Image_trim_bang, -1);
+ rb_define_method(Class_Image, "undefine", Image_undefine, 1);
rb_define_method(Class_Image, "unique_colors", Image_unique_colors, 0);
rb_define_method(Class_Image, "unsharp_mask", Image_unsharp_mask, -1);
rb_define_method(Class_Image, "unsharp_mask_channel", Image_unsharp_mask_channel, -1);
rb_define_method(Class_Image, "vignette", Image_vignette, -1);
rb_define_method(Class_Image, "watermark", Image_watermark, -1);
@@ -675,10 +686,11 @@
Class_ImageList = rb_define_class_under(Module_Magick, "ImageList", rb_cObject);
// Define an alias for Object#display before we override it
rb_define_alias(Class_ImageList, "__display__", "display");
+ rb_define_method(Class_ImageList, "affinity", ImageList_affinity, -1);
rb_define_method(Class_ImageList, "animate", ImageList_animate, -1);
rb_define_method(Class_ImageList, "append", ImageList_append, 1);
rb_define_method(Class_ImageList, "average", ImageList_average, 0);
rb_define_method(Class_ImageList, "coalesce", ImageList_coalesce, 0);
rb_define_method(Class_ImageList, "composite_layers", ImageList_composite_layers, -1);
@@ -1242,19 +1254,43 @@
ENUMERATOR(AffineDistortion)
ENUMERATOR(AffineProjectionDistortion)
#if defined(HAVE_ENUM_ARCDISTORTION)
ENUMERATOR(ArcDistortion)
#endif
+#if defined(HAVE_ENUM_POLARDISTORTION)
+ ENUMERATOR(PolarDistortion)
+#endif
+#if defined(HAVE_ENUM_DEPOLARDISTORTION)
+ ENUMERATOR(DePolarDistortion)
+#endif
+#if defined(HAVE_ENUM_BARRELDISTORTION)
+ ENUMERATOR(BarrelDistortion)
+#endif
ENUMERATOR(BilinearDistortion)
ENUMERATOR(PerspectiveDistortion)
-#if defined(HAVE_PERSPECTIVEPROJECTIONDISTORTION)
+#if defined(HAVE_ENUM_PERSPECTIVEPROJECTIONDISTORTION)
ENUMERATOR(PerspectiveProjectionDistortion)
#endif
+#if defined(HAVE_ENUM_POLYNOMIALDISTORTION)
+ ENUMERATOR(PolynomialDistortion)
+#endif
ENUMERATOR(ScaleRotateTranslateDistortion)
+#if defined(HAVE_ENUM_SHEPARDSDISTORTION)
+ ENUMERATOR(ShepardsDistortion)
+#endif
END_ENUM
#endif
+#if defined(HAVE_TYPE_DITHERMETHOD)
+ DEF_ENUM(DitherMethod)
+ ENUMERATOR(UndefinedDitherMethod)
+ ENUMERATOR(NoDitherMethod)
+ ENUMERATOR(RiemersmaDitherMethod)
+ ENUMERATOR(FloydSteinbergDitherMethod)
+ END_ENUM
+#endif
+
DEF_ENUM(EndianType)
ENUMERATOR(UndefinedEndian)
ENUMERATOR(LSBEndian)
ENUMERATOR(MSBEndian)
END_ENUM
@@ -1514,10 +1550,21 @@
ENUMERATOR(UndefinedResolution)
ENUMERATOR(PixelsPerInchResolution)
ENUMERATOR(PixelsPerCentimeterResolution)
END_ENUM
+#if defined(HAVE_SPARSECOLORINTERPOLATE)
+ DEF_ENUM(SparseColorInterpolateMethod)
+ ENUMERATOR(UndefinedColorInterpolate)
+ ENUMERATOR(BarycentricColorInterpolate)
+ ENUMERATOR(BilinearColorInterpolate)
+ ENUMERATOR(PolynomialColorInterpolate)
+ ENUMERATOR(ShepardsColorInterpolate)
+ ENUMERATOR(VoronoiColorInterpolate)
+ END_ENUM
+#endif
+
// StorageType
DEF_ENUM(StorageType)
ENUMERATOR(UndefinedPixel)
ENUMERATOR(CharPixel)
ENUMERATOR(DoublePixel)
@@ -1571,10 +1618,16 @@
ENUMERATOR(GrayVirtualPixelMethod)
#endif
#if defined(HAVE_ENUM_WHITEVIRTUALPIXELMETHOD)
ENUMERATOR(WhiteVirtualPixelMethod)
#endif
+#if defined(HAVE_ENUM_HORIZONTALTILEVIRTUALPIXELMETHOD)
+ ENUMERATOR(HorizontalTileVirtualPixelMethod)
+#endif
+#if defined(HAVE_ENUM_VERTICALTILEVIRTUALPIXELMETHOD)
+ ENUMERATOR(VerticalTileVirtualPixelMethod)
+#endif
END_ENUM
// WeightType constants
DEF_ENUM(WeightType)
ENUMERATOR(AnyWeight)
@@ -1654,11 +1707,12 @@
* Purpose: Ensure the version of ImageMagick we're running with matches
* the version we were compiled with.
* Notes: Bypass the test by defining the constant RMAGICK_BYPASS_VERSION_TEST
* to 'true' at the top level, before requiring 'RMagick'
*/
-static void test_Magick_version(void)
+static void
+test_Magick_version(void)
{
unsigned long version_number;
const char *version_str;
int x, n;
ID bypass = rb_intern("RMAGICK_BYPASS_VERSION_TEST");
@@ -1694,11 +1748,12 @@
/*
Static: version_constants
Purpose: create Version, Magick_version, and Version_long constants.
*/
-static void version_constants(void)
+static void
+version_constants(void)
{
const char *mgk_version;
volatile VALUE str;
char long_version[1000];
@@ -1711,10 +1766,10 @@
str = rb_str_new2(Q(RMAGICK_VERSION_STRING));
rb_obj_freeze(str);
rb_define_const(Module_Magick, "Version", str);
sprintf(long_version,
- "This is %s ($Date: 2008/07/13 21:18:28 $) Copyright (C) 2008 by Timothy P. Hunter\n"
+ "This is %s ($Date: 2008/08/31 20:00:39 $) Copyright (C) 2008 by Timothy P. Hunter\n"
"Built with %s\n"
"Built for %s\n"
"Web page: http://rmagick.rubyforge.org\n"
"Email: rmagick@rubyforge.org\n",
Q(RMAGICK_VERSION_STRING), mgk_version, Q(RUBY_VERSION_STRING));