cairo 1.15.7-x64-mingw32 → 1.15.8-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS +24 -0
- data/Rakefile +8 -3
- data/ext/cairo/cairo.def +1 -0
- data/ext/cairo/extconf.rb +4 -1
- data/ext/cairo/rb_cairo.h +2 -1
- data/ext/cairo/rb_cairo_font_face.c +172 -0
- data/lib/2.2/cairo.so +0 -0
- data/lib/2.3/cairo.so +0 -0
- data/lib/2.4/cairo.so +0 -0
- data/test/cairo-test-utils.rb +4 -0
- data/test/test_font_face.rb +46 -0
- data/vendor/local/bin/fc-cache.exe +0 -0
- data/vendor/local/bin/fc-cat.exe +0 -0
- data/vendor/local/bin/fc-list.exe +0 -0
- data/vendor/local/bin/fc-match.exe +0 -0
- data/vendor/local/bin/fc-pattern.exe +0 -0
- data/vendor/local/bin/fc-query.exe +0 -0
- data/vendor/local/bin/fc-scan.exe +0 -0
- data/vendor/local/bin/fc-validate.exe +0 -0
- data/vendor/local/bin/libcairo-2.dll +0 -0
- data/vendor/local/bin/libcairo-gobject-2.dll +0 -0
- data/vendor/local/bin/libcairo-script-interpreter-2.dll +0 -0
- data/vendor/local/bin/libfontconfig-1.dll +0 -0
- data/vendor/local/bin/libfreetype-6.dll +0 -0
- data/vendor/local/bin/libpixman-1-0.dll +0 -0
- data/vendor/local/bin/libpng16-16.dll +0 -0
- data/vendor/local/bin/libxml2-2.dll +0 -0
- data/vendor/local/bin/png-fix-itxt.exe +0 -0
- data/vendor/local/bin/pngfix.exe +0 -0
- data/vendor/local/bin/xmlcatalog.exe +0 -0
- data/vendor/local/bin/xmllint.exe +0 -0
- data/vendor/local/bin/zlib1211.dll +0 -0
- data/vendor/local/include/libpng16/pnglibconf.h +1 -1
- data/vendor/local/include/pnglibconf.h +1 -1
- data/vendor/local/include/zconf.h +32 -9
- data/vendor/local/include/zlib.h +298 -154
- data/vendor/local/lib/libcairo-gobject.dll.a +0 -0
- data/vendor/local/lib/libcairo-script-interpreter.a +0 -0
- data/vendor/local/lib/libcairo-script-interpreter.dll.a +0 -0
- data/vendor/local/lib/libcairo.a +0 -0
- data/vendor/local/lib/libcairo.dll.a +0 -0
- data/vendor/local/lib/libfontconfig.dll.a +0 -0
- data/vendor/local/lib/libfreetype.a +0 -0
- data/vendor/local/lib/libfreetype.dll.a +0 -0
- data/vendor/local/lib/libpixman-1.dll.a +0 -0
- data/vendor/local/lib/libpng.a +0 -0
- data/vendor/local/lib/libpng.dll.a +0 -0
- data/vendor/local/lib/libpng16.a +0 -0
- data/vendor/local/lib/libpng16.dll.a +0 -0
- data/vendor/local/lib/libxml2.a +0 -0
- data/vendor/local/lib/libxml2.dll.a +0 -0
- data/vendor/local/lib/libz.a +0 -0
- data/vendor/local/lib/libz.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/zlib.pc +1 -1
- data/vendor/local/share/license/zlib/README +3 -3
- metadata +7 -7
- data/vendor/local/bin/zlib1.dll +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82ee4dc122d3000fbb31cbeb42fd39a4b8f29872
|
4
|
+
data.tar.gz: 53f84f9c20a8a5786cffdde5493dce38f627118e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2edd5b53c134a9f9b7f12e1703055df6ae15d2aae91066d58bb66b291c5953bc8ee38901413902ac156034b2661b46c68e474e52b9438751b66ebf8bd1d1ca61
|
7
|
+
data.tar.gz: cf26fdb1fcfd7f4cb20766b51e2c4bbbf9486f9bcc1f9765a59b89655e5aa381dce46f659671247e41a3ba8ab4af8fc058690da63be64891247538b78f7dc0cd
|
data/NEWS
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
Release 1.15.8 (2017-05-29) Kouhei Sutou <kou@cozmixng.org>
|
2
|
+
===========================================================
|
3
|
+
|
4
|
+
Improvements
|
5
|
+
------------
|
6
|
+
|
7
|
+
* Added Cairo::FreeTypeFotnFace.
|
8
|
+
[GitHub#45][Patch by Stafford Brunk]
|
9
|
+
|
10
|
+
* Windows: Supported Ruby 2.4.
|
11
|
+
[ruby-list:50525][Reported by 5.5]
|
12
|
+
|
13
|
+
* Windows: Supported MSYS2.
|
14
|
+
|
15
|
+
* Windows: Updated bundled libraries:
|
16
|
+
* zlib: 1.2.8 -> 1.2.11
|
17
|
+
|
18
|
+
Thanks
|
19
|
+
------
|
20
|
+
|
21
|
+
* Stafford Brunk
|
22
|
+
|
23
|
+
* 5.5
|
24
|
+
|
1
25
|
Release 1.15.7 (2017-05-01) Kouhei Sutou <kou@cozmixng.org>
|
2
26
|
===========================================================
|
3
27
|
|
data/Rakefile
CHANGED
@@ -420,8 +420,11 @@ class ZlibBuilder
|
|
420
420
|
include Rake::DSL
|
421
421
|
|
422
422
|
def build(package, install_dir)
|
423
|
+
version_for_path = package.version.gsub(".", "")
|
424
|
+
dll_name = "zlib#{version_for_path}.dll"
|
423
425
|
sh("make",
|
424
426
|
"PREFIX=#{package.windows.build_host}-",
|
427
|
+
"SHAREDLIB=#{dll_name}",
|
425
428
|
"-f",
|
426
429
|
"win32/Makefile.gcc")
|
427
430
|
include_path = install_dir + "include"
|
@@ -432,6 +435,7 @@ class ZlibBuilder
|
|
432
435
|
"LIBRARY_PATH=#{library_path}",
|
433
436
|
"BINARY_PATH=#{binary_path}",
|
434
437
|
"SHARED_MODE=1",
|
438
|
+
"SHAREDLIB=#{dll_name}",
|
435
439
|
"-f",
|
436
440
|
"win32/Makefile.gcc",
|
437
441
|
"install")
|
@@ -439,16 +443,17 @@ class ZlibBuilder
|
|
439
443
|
end
|
440
444
|
|
441
445
|
windows_task = WindowsTask.new(spec) do |task|
|
446
|
+
zlib_version = "1.2.11"
|
442
447
|
task.packages = [
|
443
448
|
{
|
444
449
|
# We should use the same version as Ruby Installer.
|
445
450
|
:name => "zlib",
|
446
|
-
:version =>
|
447
|
-
:download_base_url => "https://downloads.sourceforge.net/project/libpng/zlib
|
451
|
+
:version => zlib_version,
|
452
|
+
:download_base_url => "https://downloads.sourceforge.net/project/libpng/zlib/#{zlib_version}",
|
448
453
|
:compression_method => "gz",
|
449
454
|
:windows => {
|
450
455
|
:builder => ZlibBuilder.new,
|
451
|
-
:built_file => "bin/
|
456
|
+
:built_file => "bin/zlib#{zlib_version.gsub(".", "")}.dll",
|
452
457
|
},
|
453
458
|
},
|
454
459
|
{
|
data/ext/cairo/cairo.def
CHANGED
data/ext/cairo/extconf.rb
CHANGED
@@ -61,10 +61,13 @@ unless required_pkg_config_package([package, major, minor, micro],
|
|
61
61
|
:debian => "libcairo2-dev",
|
62
62
|
:redhat => "cairo-devel",
|
63
63
|
:homebrew => "cairo",
|
64
|
-
:macports => "cairo"
|
64
|
+
:macports => "cairo",
|
65
|
+
:msys2 => "cairo")
|
65
66
|
exit(false)
|
66
67
|
end
|
67
68
|
|
69
|
+
PKGConfig.have_package("cairo-ft")
|
70
|
+
|
68
71
|
checking_for(checking_message("Mac OS X")) do
|
69
72
|
case RUBY_PLATFORM
|
70
73
|
when /darwin/
|
data/ext/cairo/rb_cairo.h
CHANGED
@@ -73,7 +73,7 @@ RB_CAIRO_BEGIN_DECLS
|
|
73
73
|
|
74
74
|
#define RB_CAIRO_VERSION_MAJOR 1
|
75
75
|
#define RB_CAIRO_VERSION_MINOR 15
|
76
|
-
#define RB_CAIRO_VERSION_MICRO
|
76
|
+
#define RB_CAIRO_VERSION_MICRO 8
|
77
77
|
|
78
78
|
RB_CAIRO_VAR VALUE rb_mCairo;
|
79
79
|
RB_CAIRO_VAR VALUE rb_cCairo_Context;
|
@@ -96,6 +96,7 @@ RB_CAIRO_VAR VALUE rb_cCairo_RadialPattern;
|
|
96
96
|
RB_CAIRO_VAR VALUE rb_cCairo_MeshPattern;
|
97
97
|
RB_CAIRO_VAR VALUE rb_cCairo_RasterSourcePattern;
|
98
98
|
RB_CAIRO_VAR VALUE rb_cCairo_FontFace;
|
99
|
+
RB_CAIRO_VAR VALUE rb_cCairo_FreeTypeFontFace;
|
99
100
|
RB_CAIRO_VAR VALUE rb_cCairo_ToyFontFace;
|
100
101
|
RB_CAIRO_VAR VALUE rb_cCairo_UserFontFace;
|
101
102
|
RB_CAIRO_VAR VALUE rb_cCairo_UserFontFace_TextToGlyphsData;
|
@@ -17,10 +17,20 @@
|
|
17
17
|
#include "rb_cairo_private.h"
|
18
18
|
|
19
19
|
VALUE rb_cCairo_FontFace;
|
20
|
+
VALUE rb_cCairo_FreeTypeFontFace = Qnil;
|
20
21
|
VALUE rb_cCairo_ToyFontFace = Qnil;
|
21
22
|
VALUE rb_cCairo_UserFontFace = Qnil;
|
22
23
|
VALUE rb_cCairo_UserFontFace_TextToGlyphsData = Qnil;
|
23
24
|
|
25
|
+
#ifdef CAIRO_HAS_FT_FONT
|
26
|
+
# include <cairo-ft.h>
|
27
|
+
|
28
|
+
static cairo_user_data_key_t cr_freetype_face_key;
|
29
|
+
static FT_Library cr_freetype_library;
|
30
|
+
static int cr_freetype_n_faces = 0;
|
31
|
+
static cairo_bool_t cr_freetype_finishing = CR_FALSE;
|
32
|
+
#endif
|
33
|
+
|
24
34
|
#if CAIRO_CHECK_VERSION(1, 7, 6)
|
25
35
|
static cairo_user_data_key_t ruby_object_key;
|
26
36
|
static ID cr_id_call;
|
@@ -84,6 +94,11 @@ rb_cairo_font_face_to_ruby_object (cairo_font_face_t *face)
|
|
84
94
|
|
85
95
|
switch (cairo_font_face_get_type (face))
|
86
96
|
{
|
97
|
+
#ifdef CAIRO_HAS_FT_FONT
|
98
|
+
case CAIRO_FONT_TYPE_FT:
|
99
|
+
klass = rb_cCairo_FreeTypeFontFace;
|
100
|
+
break;
|
101
|
+
#endif
|
87
102
|
#if CAIRO_CHECK_VERSION(1, 7, 6)
|
88
103
|
case CAIRO_FONT_TYPE_TOY:
|
89
104
|
klass = rb_cCairo_ToyFontFace;
|
@@ -121,6 +136,143 @@ cr_font_face_quartz_supported_p (VALUE klass)
|
|
121
136
|
#endif
|
122
137
|
}
|
123
138
|
|
139
|
+
static VALUE
|
140
|
+
cr_font_face_freetype_supported_p (VALUE klass)
|
141
|
+
{
|
142
|
+
#ifdef CAIRO_HAS_FT_FONT
|
143
|
+
return Qtrue;
|
144
|
+
#else
|
145
|
+
return Qfalse;
|
146
|
+
#endif
|
147
|
+
}
|
148
|
+
|
149
|
+
#ifdef CAIRO_HAS_FT_FONT
|
150
|
+
static VALUE
|
151
|
+
cr_freetype_done_library (VALUE data)
|
152
|
+
{
|
153
|
+
cr_freetype_finishing = CR_TRUE;
|
154
|
+
if (cr_freetype_n_faces == 0)
|
155
|
+
FT_Done_FreeType (cr_freetype_library);
|
156
|
+
return Qnil;
|
157
|
+
}
|
158
|
+
|
159
|
+
static void
|
160
|
+
cr_freetype_done_face (void *data)
|
161
|
+
{
|
162
|
+
FT_Face face = data;
|
163
|
+
|
164
|
+
FT_Done_Face (face);
|
165
|
+
cr_freetype_n_faces--;
|
166
|
+
if (cr_freetype_n_faces == 0 && cr_freetype_finishing)
|
167
|
+
FT_Done_FreeType (cr_freetype_library);
|
168
|
+
}
|
169
|
+
|
170
|
+
static cairo_bool_t
|
171
|
+
cr_freetype_error_detail (FT_Error error,
|
172
|
+
const char **name,
|
173
|
+
const char **message)
|
174
|
+
{
|
175
|
+
#undef __FTERRORS_H__
|
176
|
+
#define FT_STRINGIFY(v) #v
|
177
|
+
#define FT_ERRORDEF(e, v, s) {FT_STRINGIFY(e), v, s},
|
178
|
+
#define FT_ERROR_START_LIST {
|
179
|
+
#define FT_ERROR_END_LIST {NULL, 0, NULL}};
|
180
|
+
size_t i = 0;
|
181
|
+
static const struct {
|
182
|
+
const char *name;
|
183
|
+
FT_Error code;
|
184
|
+
const char *message;
|
185
|
+
} errors[] =
|
186
|
+
#include FT_ERRORS_H
|
187
|
+
for (i = 0; i < (sizeof (errors) / sizeof (errors[0])); i++)
|
188
|
+
{
|
189
|
+
if (errors[i].code == error)
|
190
|
+
{
|
191
|
+
*name = errors[i].name;
|
192
|
+
*message = errors[i].message;
|
193
|
+
return CR_TRUE;
|
194
|
+
}
|
195
|
+
}
|
196
|
+
|
197
|
+
return CR_FALSE;
|
198
|
+
}
|
199
|
+
|
200
|
+
static void
|
201
|
+
cr_freetype_error_check (FT_Error error,
|
202
|
+
const char *message,
|
203
|
+
VALUE related_object)
|
204
|
+
{
|
205
|
+
const char *name = NULL;
|
206
|
+
const char *system_message = NULL;
|
207
|
+
const char *error_class_name;
|
208
|
+
VALUE rb_eCairo_FreeTypeError;
|
209
|
+
|
210
|
+
if (error == FT_Err_Ok)
|
211
|
+
return;
|
212
|
+
|
213
|
+
cr_freetype_error_detail (error, &name, &system_message);
|
214
|
+
#if CAIRO_CHECK_VERSION(1, 15, 4)
|
215
|
+
error_class_name = "FreeTypeError";
|
216
|
+
#else
|
217
|
+
error_class_name = "Error";
|
218
|
+
#endif
|
219
|
+
rb_eCairo_FreeTypeError =
|
220
|
+
rb_const_get (rb_mCairo, rb_intern (error_class_name));
|
221
|
+
if (NIL_P (related_object))
|
222
|
+
{
|
223
|
+
rb_raise (rb_eCairo_FreeTypeError,
|
224
|
+
"%s: %s[%d]: %s",
|
225
|
+
message,
|
226
|
+
name ? name : "unknown",
|
227
|
+
error,
|
228
|
+
system_message ? system_message : "unknown");
|
229
|
+
}
|
230
|
+
else
|
231
|
+
{
|
232
|
+
rb_raise (rb_eCairo_FreeTypeError,
|
233
|
+
"%s: %s[%d]: %s: %+" PRIsVALUE,
|
234
|
+
message,
|
235
|
+
name ? name : "unknown",
|
236
|
+
error,
|
237
|
+
system_message ? system_message : "unknown",
|
238
|
+
related_object);
|
239
|
+
}
|
240
|
+
}
|
241
|
+
|
242
|
+
static VALUE
|
243
|
+
cr_freetype_font_face_initialize (VALUE self, VALUE path)
|
244
|
+
{
|
245
|
+
FT_Face freetype_face;
|
246
|
+
FT_Error error;
|
247
|
+
cairo_font_face_t *face;
|
248
|
+
cairo_status_t status;
|
249
|
+
|
250
|
+
error = FT_New_Face (cr_freetype_library,
|
251
|
+
StringValueCStr(path),
|
252
|
+
0,
|
253
|
+
&freetype_face);
|
254
|
+
cr_freetype_error_check (error, "failed to open FreeType font", path);
|
255
|
+
cr_freetype_n_faces++;
|
256
|
+
|
257
|
+
face = cairo_ft_font_face_create_for_ft_face (freetype_face, 0);
|
258
|
+
cr_font_face_check_status (face);
|
259
|
+
status =
|
260
|
+
cairo_font_face_set_user_data (face,
|
261
|
+
&cr_freetype_face_key,
|
262
|
+
freetype_face,
|
263
|
+
(cairo_destroy_func_t) cr_freetype_done_face);
|
264
|
+
if (status != CAIRO_STATUS_SUCCESS) {
|
265
|
+
cairo_font_face_destroy (face);
|
266
|
+
FT_Done_Face (freetype_face);
|
267
|
+
rb_cairo_check_status (status);
|
268
|
+
}
|
269
|
+
|
270
|
+
DATA_PTR (self) = face;
|
271
|
+
|
272
|
+
return Qnil;
|
273
|
+
}
|
274
|
+
#endif
|
275
|
+
|
124
276
|
#if CAIRO_CHECK_VERSION(1, 7, 6)
|
125
277
|
static VALUE
|
126
278
|
cr_toy_font_face_initialize (int argc, VALUE *argv, VALUE self)
|
@@ -664,6 +816,26 @@ Init_cairo_font (void)
|
|
664
816
|
|
665
817
|
rb_define_singleton_method (rb_cCairo_FontFace, "quartz_supported?",
|
666
818
|
cr_font_face_quartz_supported_p, 0);
|
819
|
+
rb_define_singleton_method (rb_cCairo_FontFace, "freetype_supported?",
|
820
|
+
cr_font_face_freetype_supported_p, 0);
|
821
|
+
|
822
|
+
#ifdef CAIRO_HAS_FT_FONT
|
823
|
+
rb_cCairo_FreeTypeFontFace =
|
824
|
+
rb_define_class_under (rb_mCairo, "FreeTypeFontFace", rb_cCairo_FontFace);
|
825
|
+
|
826
|
+
{
|
827
|
+
FT_Error error;
|
828
|
+
|
829
|
+
error = FT_Init_FreeType (&cr_freetype_library);
|
830
|
+
cr_freetype_error_check (error, "failed to initialize FreeType", Qnil);
|
831
|
+
|
832
|
+
rb_define_finalizer (rb_cCairo_FreeTypeFontFace,
|
833
|
+
rb_proc_new (cr_freetype_done_library, Qnil));
|
834
|
+
}
|
835
|
+
|
836
|
+
rb_define_method (rb_cCairo_FreeTypeFontFace, "initialize",
|
837
|
+
cr_freetype_font_face_initialize, 1);
|
838
|
+
#endif
|
667
839
|
|
668
840
|
#if CAIRO_CHECK_VERSION(1, 7, 6)
|
669
841
|
rb_cCairo_ToyFontFace =
|
data/lib/2.2/cairo.so
CHANGED
Binary file
|
data/lib/2.3/cairo.so
CHANGED
Binary file
|
data/lib/2.4/cairo.so
CHANGED
Binary file
|
data/test/cairo-test-utils.rb
CHANGED
data/test/test_font_face.rb
CHANGED
@@ -3,6 +3,52 @@ require 'cairo'
|
|
3
3
|
class FontFaceTest < Test::Unit::TestCase
|
4
4
|
include CairoTestUtils
|
5
5
|
|
6
|
+
sub_test_case("FreeTypeFontFace") do
|
7
|
+
setup do
|
8
|
+
omit("Need FreeType support") unless Cairo::FontFace.freetype_supported?
|
9
|
+
end
|
10
|
+
|
11
|
+
sub_test_case("initialize") do
|
12
|
+
test("valid") do
|
13
|
+
assert_nothing_raised do
|
14
|
+
Cairo::FreeTypeFontFace.new(fixture_path("a.otf"))
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
sub_test_case("invalid") do
|
19
|
+
setup do
|
20
|
+
if Cairo.const_defined?(:FreeTypeError)
|
21
|
+
@error_class = Cairo::FreeTypeError
|
22
|
+
else
|
23
|
+
@error_class = Cairo::Error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
test("broken") do
|
28
|
+
path = __FILE__
|
29
|
+
message = "failed to open FreeType font: "
|
30
|
+
message << "FT_Err_Unknown_File_Format[2]: "
|
31
|
+
message << "unknown file format: "
|
32
|
+
message << path.inspect
|
33
|
+
assert_raise(@error_class.new(message)) do
|
34
|
+
Cairo::FreeTypeFontFace.new(path)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
test("nonexistent") do
|
39
|
+
path = fixture_path("nonexistent.otf")
|
40
|
+
message = "failed to open FreeType font: "
|
41
|
+
message << "FT_Err_Cannot_Open_Resource[1]: "
|
42
|
+
message << "cannot open resource: "
|
43
|
+
message << path.inspect
|
44
|
+
assert_raise(@error_class.new(message)) do
|
45
|
+
Cairo::FreeTypeFontFace.new(path)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
6
52
|
def test_toy_font_face_new
|
7
53
|
only_cairo_version(1, 7, 2)
|
8
54
|
|
Binary file
|
data/vendor/local/bin/fc-cat.exe
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/vendor/local/bin/pngfix.exe
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|