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