rmagick 4.2.2 → 5.4.4
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 +4 -4
- data/.devcontainer/Dockerfile +14 -0
- data/.devcontainer/ImageMagick6/devcontainer.json +11 -0
- data/.devcontainer/devcontainer.json +11 -0
- data/.devcontainer/setup-repo.sh +10 -0
- data/.devcontainer/setup-user.sh +45 -0
- data/.editorconfig +1 -1
- data/.github/workflows/ci.yml +59 -24
- data/.gitignore +3 -0
- data/.rubocop_todo.yml +0 -1
- data/.yardopts +1 -1
- data/CHANGELOG.md +131 -0
- data/README.md +12 -17
- data/Rakefile +53 -81
- data/before_install_linux.sh +4 -4
- data/before_install_osx.sh +7 -6
- data/ext/RMagick/extconf.rb +94 -45
- data/ext/RMagick/{rmagick.c → rmagick.cpp} +19 -22
- data/ext/RMagick/rmagick.h +90 -60
- data/ext/RMagick/rmagick_gvl.h +224 -0
- data/ext/RMagick/{rmdraw.c → rmdraw.cpp} +160 -146
- data/ext/RMagick/{rmenum.c → rmenum.cpp} +69 -50
- data/ext/RMagick/{rmfill.c → rmfill.cpp} +81 -20
- data/ext/RMagick/{rmilist.c → rmilist.cpp} +184 -93
- data/ext/RMagick/{rmimage.c → rmimage.cpp} +1276 -731
- data/ext/RMagick/{rminfo.c → rminfo.cpp} +119 -131
- data/ext/RMagick/{rmkinfo.c → rmkinfo.cpp} +41 -16
- data/ext/RMagick/rmmain.cpp +1957 -0
- data/ext/RMagick/{rmmontage.c → rmmontage.cpp} +49 -28
- data/ext/RMagick/{rmpixel.c → rmpixel.cpp} +109 -84
- data/ext/RMagick/{rmstruct.c → rmstruct.cpp} +12 -12
- data/ext/RMagick/{rmutil.c → rmutil.cpp} +52 -91
- data/lib/rmagick/version.rb +3 -1
- data/lib/rmagick.rb +2 -0
- data/lib/rmagick_internal.rb +9 -48
- data/lib/rvg/rvg.rb +2 -2
- data/rmagick.gemspec +8 -7
- metadata +54 -23
- data/.codeclimate.yml +0 -63
- data/deprecated/RMagick.rb +0 -6
- data/ext/RMagick/rmmain.c +0 -1951
@@ -3,15 +3,30 @@
|
|
3
3
|
*
|
4
4
|
* Copyright © RMagick Project
|
5
5
|
*
|
6
|
-
* @file rmkinfo.
|
7
|
-
* @version $Id: rmkinfo.
|
6
|
+
* @file rmkinfo.cpp
|
7
|
+
* @version $Id: rmkinfo.cpp,v 1.0 2011/11/29 15:33:14 naquad Exp $
|
8
8
|
* @author Naquad
|
9
9
|
****************************************************************************/
|
10
10
|
|
11
11
|
#include "rmagick.h"
|
12
12
|
|
13
|
+
static void rm_kernel_info_destroy(void *kernel);
|
14
|
+
static size_t rm_kernel_info_memsize(const void *ptr);
|
15
|
+
|
16
|
+
const rb_data_type_t rm_kernel_info_data_type = {
|
17
|
+
"Magick::KernelInfo",
|
18
|
+
{ NULL, rm_kernel_info_destroy, rm_kernel_info_memsize, },
|
19
|
+
0, 0,
|
20
|
+
RUBY_TYPED_FROZEN_SHAREABLE,
|
21
|
+
};
|
22
|
+
|
23
|
+
DEFINE_GVL_VOID_STUB2(UnityAddKernelInfo, KernelInfo *, const double);
|
24
|
+
DEFINE_GVL_VOID_STUB3(ScaleKernelInfo, KernelInfo *, const double, const GeometryFlags);
|
25
|
+
DEFINE_GVL_VOID_STUB2(ScaleGeometryKernelInfo, KernelInfo *, const char *);
|
26
|
+
|
27
|
+
|
13
28
|
/**
|
14
|
-
* If there's a kernel info, delete it before destroying the KernelInfo
|
29
|
+
* If there's a kernel info, delete it before destroying the KernelInfo
|
15
30
|
*
|
16
31
|
* No Ruby usage (internal function)
|
17
32
|
*
|
@@ -25,15 +40,28 @@ rm_kernel_info_destroy(void *kernel)
|
|
25
40
|
DestroyKernelInfo((KernelInfo*)kernel);
|
26
41
|
}
|
27
42
|
|
43
|
+
/**
|
44
|
+
* Get KernelInfo object size.
|
45
|
+
*
|
46
|
+
* No Ruby usage (internal function)
|
47
|
+
*
|
48
|
+
* @param ptr pointer to the KernelInfo object
|
49
|
+
*/
|
50
|
+
static size_t
|
51
|
+
rm_kernel_info_memsize(const void *ptr)
|
52
|
+
{
|
53
|
+
return sizeof(KernelInfo);
|
54
|
+
}
|
55
|
+
|
28
56
|
/**
|
29
57
|
* Create a KernelInfo object.
|
30
58
|
*
|
31
59
|
* @return [Magick::KernelInfo] a new KernelInfo object
|
32
60
|
*/
|
33
61
|
VALUE
|
34
|
-
KernelInfo_alloc(VALUE
|
62
|
+
KernelInfo_alloc(VALUE klass)
|
35
63
|
{
|
36
|
-
return
|
64
|
+
return TypedData_Wrap_Struct(klass, &rm_kernel_info_data_type, NULL);
|
37
65
|
}
|
38
66
|
|
39
67
|
/**
|
@@ -89,10 +117,8 @@ KernelInfo_unity_add(VALUE self, VALUE scale)
|
|
89
117
|
if (!FIXNUM_P(scale))
|
90
118
|
Check_Type(scale, T_FLOAT);
|
91
119
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
UnityAddKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale));
|
120
|
+
GVL_STRUCT_TYPE(UnityAddKernelInfo) args = { (KernelInfo*)DATA_PTR(self), NUM2DBL(scale) };
|
121
|
+
CALL_FUNC_WITHOUT_GVL(GVL_FUNC(UnityAddKernelInfo), &args);
|
96
122
|
return Qnil;
|
97
123
|
}
|
98
124
|
|
@@ -118,10 +144,8 @@ KernelInfo_scale(VALUE self, VALUE scale, VALUE flags)
|
|
118
144
|
else
|
119
145
|
rb_raise(rb_eArgError, "expected Integer or Magick::GeometryFlags to specify flags");
|
120
146
|
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
ScaleKernelInfo((KernelInfo*)DATA_PTR(self), NUM2DBL(scale), geoflags);
|
147
|
+
GVL_STRUCT_TYPE(ScaleKernelInfo) args = { (KernelInfo*)DATA_PTR(self), NUM2DBL(scale), geoflags };
|
148
|
+
CALL_FUNC_WITHOUT_GVL(GVL_FUNC(ScaleKernelInfo), &args);
|
125
149
|
return Qnil;
|
126
150
|
}
|
127
151
|
|
@@ -135,7 +159,8 @@ VALUE
|
|
135
159
|
KernelInfo_scale_geometry(VALUE self, VALUE geometry)
|
136
160
|
{
|
137
161
|
Check_Type(geometry, T_STRING);
|
138
|
-
ScaleGeometryKernelInfo(
|
162
|
+
GVL_STRUCT_TYPE(ScaleGeometryKernelInfo) args = { (KernelInfo*)DATA_PTR(self), StringValueCStr(geometry) };
|
163
|
+
CALL_FUNC_WITHOUT_GVL(GVL_FUNC(ScaleGeometryKernelInfo), &args);
|
139
164
|
return Qnil;
|
140
165
|
}
|
141
166
|
|
@@ -148,7 +173,7 @@ VALUE
|
|
148
173
|
KernelInfo_clone(VALUE self)
|
149
174
|
{
|
150
175
|
KernelInfo *kernel = CloneKernelInfo((KernelInfo*)DATA_PTR(self));
|
151
|
-
return
|
176
|
+
return TypedData_Wrap_Struct(Class_KernelInfo, &rm_kernel_info_data_type, kernel);
|
152
177
|
}
|
153
178
|
|
154
179
|
/**
|
@@ -194,5 +219,5 @@ KernelInfo_builtin(VALUE self, VALUE what, VALUE geometry)
|
|
194
219
|
rb_raise(rb_eRuntimeError, "failed to acquire builtin kernel");
|
195
220
|
}
|
196
221
|
|
197
|
-
return
|
222
|
+
return TypedData_Wrap_Struct(self, &rm_kernel_info_data_type, kernel);
|
198
223
|
}
|