ext/RMagick/rmmain.c in rmagick-2.2.2 vs ext/RMagick/rmmain.c in rmagick-2.3.0

- old
+ new

@@ -1,6 +1,6 @@ -/* $Id: rmmain.c,v 1.236 2008/01/28 22:31:50 rmagick Exp $ */ +/* $Id: rmmain.c,v 1.247 2008/03/29 15:23:12 rmagick Exp $ */ /*============================================================================\ | Copyright (C) 2008 by Timothy P. Hunter | Name: rmmain.c | Author: Tim Hunter | Purpose: Contains all module, class, method declarations. @@ -165,11 +165,10 @@ /* Method: Magick.limit_resource(resource[, limit]) Purpose: Get/set resource limits. If a limit is specified the old limit is set to the new value. Either way the current/new limit is returned. - Notes: Don't support "AreaLimit" because GraphicsMagick doesn't support it. */ static VALUE Magick_limit_resource(int argc, VALUE *argv, VALUE class) { volatile VALUE resource, limit; @@ -185,12 +184,16 @@ case T_NIL: return class; case T_SYMBOL: id = (ID)SYM2ID(resource); - if (id == rb_intern("memory")) + if (id == rb_intern("area")) { + res = AreaResource; + } + else if (id == rb_intern("memory")) + { res = MemoryResource; } else if (id == rb_intern("map")) { res = MapResource; @@ -213,10 +216,14 @@ str = StringValuePtr(resource); if (*str == '\0') { return class; } + else if (rm_strcasecmp("area", str) == 0) + { + res = AreaResource; + } else if (rm_strcasecmp("memory", str) == 0) { res = MemoryResource; } else if (rm_strcasecmp("map", str) == 0) @@ -337,16 +344,14 @@ /*-----------------------------------------------------------------------*/ /* Create IDs for frequently used methods, etc. */ /*-----------------------------------------------------------------------*/ rm_ID_trace_proc = rb_intern("@trace_proc"); - rm_ID__dummy_img_ = rb_intern("_dummy_img_"); rm_ID_call = rb_intern("call"); rm_ID_changed = rb_intern("changed"); rm_ID_cur_image = rb_intern("cur_image"); rm_ID_dup = rb_intern("dup"); - rm_ID_enumerators = rb_intern("enumerators"); 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"); @@ -355,11 +360,10 @@ rm_ID_length = rb_intern("length"); rm_ID_notify_observers = rb_intern("notify_observers"); rm_ID_new = rb_intern("new"); rm_ID_push = rb_intern("push"); rm_ID_spaceship = rb_intern("<=>"); - rm_ID__tmpnam_ = rb_intern("_tmpnam_"); rm_ID_to_i = rb_intern("to_i"); rm_ID_to_s = rb_intern("to_s"); rm_ID_values = rb_intern("values"); rm_ID_width = rb_intern("width"); rm_ID_x = rb_intern("x"); @@ -432,11 +436,11 @@ DCL_ATTR_ACCESSOR(Image, gravity) DCL_ATTR_READER(Image, image_type) DCL_ATTR_ACCESSOR(Image, interlace) DCL_ATTR_ACCESSOR(Image, iptc_profile) DCL_ATTR_ACCESSOR(Image, iterations) // do not document! Only used by Image#iterations= - DCL_ATTR_ACCESSOR(Image, mask) + DCL_ATTR_WRITER(Image, mask) DCL_ATTR_ACCESSOR(Image, matte) DCL_ATTR_ACCESSOR(Image, matte_color) DCL_ATTR_READER(Image, mean_error_per_pixel) DCL_ATTR_READER(Image, mime_type) DCL_ATTR_WRITER(Image, monitor) @@ -472,10 +476,12 @@ rb_define_method(Class_Image, "adaptive_threshold", Image_adaptive_threshold, -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, "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); rb_define_method(Class_Image, "auto_orient!", Image_auto_orient_bang, 0); rb_define_method(Class_Image, "properties", Image_properties, 0); @@ -517,10 +523,11 @@ 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, "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); rb_define_method(Class_Image, "difference", Image_difference, 1); @@ -533,10 +540,11 @@ rb_define_method(Class_Image, "_dump", Image__dump, 1); rb_define_method(Class_Image, "dup", Image_dup, 0); rb_define_method(Class_Image, "each_profile", Image_each_profile, 0); rb_define_method(Class_Image, "edge", Image_edge, -1); rb_define_method(Class_Image, "emboss", Image_emboss, -1); + rb_define_method(Class_Image, "encipher", Image_encipher, 1); rb_define_method(Class_Image, "enhance", Image_enhance, 0); rb_define_method(Class_Image, "equalize", Image_equalize, 0); rb_define_method(Class_Image, "equalize_channel", Image_equalize_channel, -1); rb_define_method(Class_Image, "erase!", Image_erase_bang, 0); rb_define_method(Class_Image, "excerpt", Image_excerpt, 4); @@ -567,10 +575,11 @@ 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); + rb_define_method(Class_Image, "mask", Image_mask, -1); rb_define_method(Class_Image, "matte_flood_fill", Image_matte_flood_fill, 5); rb_define_method(Class_Image, "median_filter", Image_median_filter, -1); rb_define_method(Class_Image, "minify", Image_minify, 0); rb_define_method(Class_Image, "minify!", Image_minify_bang, 0); rb_define_method(Class_Image, "modulate", Image_modulate, -1); @@ -775,10 +784,11 @@ // Magick::Pixel has 3 constructors: "new" "from_color", and "from_HSL". rb_define_alloc_func(Class_Pixel, Pixel_alloc); rb_define_singleton_method(Class_Pixel, "from_color", Pixel_from_color, 1); rb_define_singleton_method(Class_Pixel, "from_HSL", Pixel_from_HSL, 1); + rb_define_singleton_method(Class_Pixel, "from_hsla", Pixel_from_hsla, -1); // Define the RGBA attributes DCL_ATTR_ACCESSOR(Pixel, red) DCL_ATTR_ACCESSOR(Pixel, green) DCL_ATTR_ACCESSOR(Pixel, blue) @@ -802,10 +812,11 @@ rb_define_method(Class_Pixel, "fcmp", Pixel_fcmp, -1); rb_define_method(Class_Pixel, "hash", Pixel_hash, 0); rb_define_method(Class_Pixel, "intensity", Pixel_intensity, 0); rb_define_method(Class_Pixel, "to_color", Pixel_to_color, -1); rb_define_method(Class_Pixel, "to_HSL", Pixel_to_HSL, 0); + rb_define_method(Class_Pixel, "to_hsla", Pixel_to_hsla, 0); rb_define_method(Class_Pixel, "to_s", Pixel_to_s, 0); /*-----------------------------------------------------------------------*/ /* Class Magick::ImageList::Montage methods */ /*-----------------------------------------------------------------------*/ @@ -1103,11 +1114,11 @@ DEF_ENUM(ComplianceType) ENUMERATOR(UndefinedCompliance) // AllCompliance is 0xffff, not too useful for us! rb_define_const(Module_Magick, "AllCompliance" - , rm_enum_new(Class_AnchorType + , rm_enum_new(Class_ComplianceType , ID2SYM(rb_intern("AllCompliance")) , INT2FIX(SVGCompliance|X11Compliance|XPMCompliance))); ENUMERATOR(NoCompliance) ENUMERATOR(SVGCompliance) @@ -1184,10 +1195,19 @@ // CompressionType constants DEF_ENUM(CompressionType) ENUMERATOR(UndefinedCompression) ENUMERATOR(NoCompression) ENUMERATOR(BZipCompression) +#if defined(HAVE_ENUM_DXT1COMPRESSION) + ENUMERATOR(DXT1Compression) +#endif +#if defined(HAVE_ENUM_DXT3COMPRESSION) + ENUMERATOR(DXT3Compression) +#endif +#if defined(HAVE_ENUM_DXT5COMPRESSION) + ENUMERATOR(DXT5Compression) +#endif ENUMERATOR(FaxCompression) ENUMERATOR(Group4Compression) ENUMERATOR(JPEGCompression) ENUMERATOR(JPEG2000Compression) ENUMERATOR(LosslessJPEGCompression) @@ -1677,25 +1697,25 @@ char long_version[1000]; mgk_version = GetMagickVersion(NULL); str = rb_str_new2(mgk_version); - OBJ_FREEZE(str); + rb_obj_freeze(str); rb_define_const(Module_Magick, "Magick_version", str); str = rb_str_new2(Q(RMAGICK_VERSION_STRING)); - OBJ_FREEZE(str); + rb_obj_freeze(str); rb_define_const(Module_Magick, "Version", str); sprintf(long_version, - "This is %s ($Date: 2008/01/28 22:31:50 $) Copyright (C) 2008 by Timothy P. Hunter\n" + "This is %s ($Date: 2008/03/29 15:23:12 $) 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)); str = rb_str_new2(long_version); - OBJ_FREEZE(str); + rb_obj_freeze(str); rb_define_const(Module_Magick, "Long_version", str); }