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));