devil 0.1.8.5-x86-mswin32-60 → 0.1.8.8-x86-mswin32-60
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +17 -0
- data/README +1 -1
- data/Rakefile +1 -1
- data/ext/devil/ruby_il.c +9 -7
- data/lib/1.8/devil.so +0 -0
- data/lib/1.9/devil.so +0 -0
- data/lib/devil/gosu.rb +18 -6
- data/lib/devil.rb +95 -33
- data/test/test_blank.rb +7 -3
- data/test/test_blit.rb +2 -3
- data/test/test_clone_and_crop.rb +3 -0
- data/test/test_gosu_load.rb +0 -1
- data/test/test_gosu_roundtrip.rb +5 -3
- data/test/test_group.rb +18 -0
- data/test/test_new_api.rb +7 -4
- data/test/test_profile.rb +8 -8
- data/test/test_screenshot.rb +1 -1
- data/test/test_thumbnail.rb +2 -2
- metadata +3 -2
data/CHANGELOG
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
2009-10-29 John Mair (Banisterfiend)
|
2
|
+
* version 0.1.8.8
|
3
|
+
* added Devil.with_group (for loading multiple images into the same block)
|
4
|
+
* all images passed into block are cleaned up at end of block
|
5
|
+
* images at end of block are only free'd if they have not already been freed by user
|
6
|
+
* ruby_il.c: added IMAGE_BITS_PER_PIXEL and IMAGE_BYTES_PER_PIXEL constants
|
7
|
+
* finalizers still not implemented
|
8
|
+
|
9
|
+
2009-10-28 John Mair (Banisterfiend)
|
10
|
+
* removed finalizer and replaced with explicit call to image.free at end of block. If no block is used, user must call image.free at end of use
|
11
|
+
* above fixes memory leak.
|
12
|
+
* changed STR2CSTR() to StringValuePtr() in ruby_il.c
|
13
|
+
|
14
|
+
2009-10-28 John Mair (Banisterfiend)
|
15
|
+
* added IL::ConvertImage(IL::RGBA, IL::UNSIGNED_BYTE) to Devil#load; ensures that all image data is in the same format (image files only support RGB/UB and RGBA/UB so make them all RGBA/UB)
|
16
|
+
* changed compile-time conditional for the IL_LBM constant. now checks if IL_LBM is defined before it tries IL_ILBM
|
17
|
+
|
1
18
|
2009-10-25 John Mair (Banisterfiend)
|
2
19
|
version 0.1.8.5
|
3
20
|
* added hooks: prepare_image_hook, create_image_hook, load_image_hook
|
data/README
CHANGED
data/Rakefile
CHANGED
data/ext/devil/ruby_il.c
CHANGED
@@ -80,21 +80,21 @@ static VALUE il_DeleteImages(VALUE obj, VALUE images) {
|
|
80
80
|
}
|
81
81
|
|
82
82
|
static VALUE il_LoadImage(VALUE obj, VALUE rb_filename) {
|
83
|
-
char* filename =
|
83
|
+
char* filename = StringValuePtr(rb_filename);
|
84
84
|
ILboolean load = ilLoadImage(filename);
|
85
85
|
return load ? Qtrue : Qfalse;
|
86
86
|
}
|
87
87
|
|
88
88
|
static VALUE il_Load(VALUE obj, VALUE rb_type, VALUE rb_filename) {
|
89
89
|
ILenum type = NUM2INT(rb_type);
|
90
|
-
char* filename =
|
90
|
+
char* filename = StringValuePtr(rb_filename);
|
91
91
|
|
92
92
|
ILboolean load = ilLoad(type, filename);
|
93
93
|
return load ? Qtrue : Qfalse;
|
94
94
|
}
|
95
95
|
|
96
96
|
static VALUE il_SaveImage(VALUE obj, VALUE rb_filename) {
|
97
|
-
char* filename =
|
97
|
+
char* filename = StringValuePtr(rb_filename);
|
98
98
|
ILboolean load = ilSaveImage(filename);
|
99
99
|
|
100
100
|
return load ? Qtrue : Qfalse;
|
@@ -102,7 +102,7 @@ static VALUE il_SaveImage(VALUE obj, VALUE rb_filename) {
|
|
102
102
|
|
103
103
|
static VALUE il_Save(VALUE obj, VALUE rb_type, VALUE rb_filename) {
|
104
104
|
ILenum type = NUM2INT(rb_type);
|
105
|
-
char* filename =
|
105
|
+
char* filename = StringValuePtr(rb_filename);
|
106
106
|
ILboolean load = ilSave(type, filename);
|
107
107
|
|
108
108
|
return load ? Qtrue : Qfalse;
|
@@ -116,8 +116,8 @@ static VALUE il_TexImage(VALUE obj, VALUE rb_width, VALUE rb_height,
|
|
116
116
|
ILuint depth = NUM2INT(rb_depth);
|
117
117
|
ILubyte bpp = NUM2INT(rb_bpp);
|
118
118
|
ILenum format = NUM2INT(rb_format);
|
119
|
-
ILenum type = NUM2INT(rb_type);
|
120
|
-
|
119
|
+
ILenum type = NUM2INT(rb_type);
|
120
|
+
ILboolean flag;
|
121
121
|
|
122
122
|
/* from ILvoid */
|
123
123
|
void * data = NULL;
|
@@ -436,7 +436,7 @@ InitializeIL() {
|
|
436
436
|
rb_define_const(mIL, "JPG", INT2NUM(IL_JPG));
|
437
437
|
rb_define_const(mIL, "JFIF", INT2NUM(IL_JFIF));
|
438
438
|
|
439
|
-
#
|
439
|
+
#ifndef IL_LBM
|
440
440
|
rb_define_const(mIL, "LBM", INT2NUM(IL_ILBM));
|
441
441
|
#else
|
442
442
|
rb_define_const(mIL, "LBM", INT2NUM(IL_LBM));
|
@@ -518,6 +518,8 @@ InitializeIL() {
|
|
518
518
|
rb_define_const(mIL, "IMAGE_WIDTH", INT2NUM(IL_IMAGE_WIDTH));
|
519
519
|
rb_define_const(mIL, "IMAGE_HEIGHT", INT2NUM(IL_IMAGE_HEIGHT));
|
520
520
|
rb_define_const(mIL, "IMAGE_FORMAT", INT2NUM(IL_IMAGE_FORMAT));
|
521
|
+
rb_define_const(mIL, "IMAGE_BITS_PER_PIXEL", INT2NUM(IL_IMAGE_BITS_PER_PIXEL));
|
522
|
+
rb_define_const(mIL, "IMAGE_BYTES_PER_PIXEL", INT2NUM(IL_IMAGE_BYTES_PER_PIXEL));
|
521
523
|
rb_define_const(mIL, "FILE_OVERWRITE", INT2NUM(IL_FILE_OVERWRITE));
|
522
524
|
rb_define_const(mIL, "ORIGIN_SET", INT2NUM(IL_ORIGIN_SET));
|
523
525
|
rb_define_const(mIL, "CONV_PAL", INT2NUM(IL_CONV_PAL));
|
data/lib/1.8/devil.so
CHANGED
Binary file
|
data/lib/1.9/devil.so
CHANGED
Binary file
|
data/lib/devil/gosu.rb
CHANGED
@@ -9,8 +9,10 @@ module TexPlay
|
|
9
9
|
# save a Gosu::Image to +file+
|
10
10
|
# This method is only available if require 'devil/gosu' is used
|
11
11
|
def save(file)
|
12
|
-
capture {
|
13
|
-
to_devil
|
12
|
+
capture {
|
13
|
+
img = to_devil
|
14
|
+
img.save(file)
|
15
|
+
img.free
|
14
16
|
}
|
15
17
|
self
|
16
18
|
end
|
@@ -20,7 +22,7 @@ module TexPlay
|
|
20
22
|
def to_devil
|
21
23
|
devil_img = nil
|
22
24
|
capture {
|
23
|
-
devil_img = Devil.from_blob(self.to_blob, self.width, self.height)
|
25
|
+
devil_img = Devil.from_blob(self.to_blob, self.width, self.height).flip
|
24
26
|
devil_img
|
25
27
|
}
|
26
28
|
devil_img
|
@@ -64,8 +66,15 @@ class Gosu::Image
|
|
64
66
|
def new(window, file, *args, &block)
|
65
67
|
if file.respond_to?(:to_blob) || file =~ /\.(bmp|png)$/
|
66
68
|
original_new_redux(window, file, *args, &block)
|
67
|
-
else
|
68
|
-
|
69
|
+
else
|
70
|
+
img = Devil.load(file).flip
|
71
|
+
begin
|
72
|
+
gosu_img = original_new_redux(window, img, *args, &block)
|
73
|
+
ensure
|
74
|
+
img.free
|
75
|
+
end
|
76
|
+
|
77
|
+
gosu_img
|
69
78
|
end
|
70
79
|
end
|
71
80
|
end
|
@@ -113,8 +122,11 @@ class Devil::Image
|
|
113
122
|
end
|
114
123
|
|
115
124
|
# note we dup the image so the displayed image is a snapshot taken at the time #show is invoked
|
116
|
-
@@window.show_list.push :image => Gosu::Image.new(@@window, self.dup.flip), :x => x, :y => y
|
117
125
|
|
126
|
+
img = self.dup.flip
|
127
|
+
@@window.show_list.push :image => Gosu::Image.new(@@window, img), :x => x, :y => y
|
128
|
+
img.free
|
129
|
+
|
118
130
|
self
|
119
131
|
end
|
120
132
|
end
|
data/lib/devil.rb
CHANGED
@@ -19,7 +19,7 @@ module Devil
|
|
19
19
|
include IL
|
20
20
|
include ILU
|
21
21
|
|
22
|
-
VERSION = '0.1.8.
|
22
|
+
VERSION = '0.1.8.8'
|
23
23
|
|
24
24
|
class << self
|
25
25
|
|
@@ -27,29 +27,31 @@ module Devil
|
|
27
27
|
# Optionally accepts a block and yields the newly created image to the block.
|
28
28
|
def load_image(file, options={}, &block)
|
29
29
|
name = prepare_image
|
30
|
+
attach_image_from_file(file)
|
31
|
+
|
30
32
|
out_profile = options[:out_profile]
|
31
33
|
in_profile = options[:in_profile]
|
32
34
|
|
33
|
-
IL.LoadImage(file)
|
34
|
-
|
35
35
|
# apply a color profile if one is provided
|
36
36
|
IL.ApplyProfile(in_profile, out_profile) if out_profile
|
37
37
|
|
38
|
-
# run the
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
raise RuntimeError, "an error occured while trying to "+
|
44
|
-
"load the image #{file}. #{ILU.ErrorString(error_code)}"
|
45
|
-
end
|
46
|
-
|
38
|
+
# run the load image hook (if it exists)
|
39
|
+
check_and_run_hook(:load_image_hook)
|
40
|
+
|
41
|
+
error_check
|
42
|
+
|
47
43
|
img = Image.new(name, file)
|
48
44
|
if block
|
49
|
-
|
45
|
+
begin
|
46
|
+
block.call(img)
|
47
|
+
ensure
|
48
|
+
# don't bother freeing it if it's already free
|
49
|
+
img.free if img.name
|
50
|
+
end
|
51
|
+
else
|
52
|
+
# ObjectSpace.define_finalizer(img, proc { IL.DeleteImages([img.name]) if img.name })
|
53
|
+
img
|
50
54
|
end
|
51
|
-
|
52
|
-
img
|
53
55
|
end
|
54
56
|
|
55
57
|
alias_method :with_image, :load_image
|
@@ -66,6 +68,7 @@ module Devil
|
|
66
68
|
|
67
69
|
clear_color = options[:color]
|
68
70
|
|
71
|
+
# created image is formatted RGBA8
|
69
72
|
IL.TexImage(width, height, 1, 4, IL::RGBA, IL::UNSIGNED_BYTE, nil)
|
70
73
|
|
71
74
|
# apply a color profile if one is provided
|
@@ -75,26 +78,52 @@ module Devil
|
|
75
78
|
IL.ClearImage
|
76
79
|
IL.ClearColour(*Devil.get_options[:clear_color]) if clear_color
|
77
80
|
|
78
|
-
# run the
|
79
|
-
|
80
|
-
|
81
|
+
# run the create image hook (if it exists)
|
82
|
+
check_and_run_hook(:create_image_hook)
|
83
|
+
|
84
|
+
error_check
|
85
|
+
|
86
|
+
img = Image.new(name, nil)
|
87
|
+
if block
|
88
|
+
begin
|
89
|
+
block.call(img)
|
90
|
+
ensure
|
91
|
+
img.free if img.name
|
92
|
+
end
|
93
|
+
else
|
94
|
+
# ObjectSpace.define_finalizer(img, proc { IL.DeleteImages([img.name]) if img.name })
|
95
|
+
img
|
96
|
+
end
|
97
|
+
end
|
81
98
|
|
82
|
-
|
83
|
-
|
84
|
-
|
99
|
+
alias_method :create_blank_image, :create_image
|
100
|
+
|
101
|
+
# load multiple images and yield them to the block
|
102
|
+
# e.g Devil.with_group("hello.png", "friend.png") { |img1, img2| ... }
|
103
|
+
# all yielded images are cleaned up at end of block so you do not need to
|
104
|
+
# explictly call img1.free
|
105
|
+
def with_group(*files, &block)
|
106
|
+
images = files.map do |file|
|
107
|
+
name = prepare_image
|
108
|
+
attach_image_from_file(file)
|
109
|
+
check_and_run_hook(:load_image_hook)
|
110
|
+
error_check
|
111
|
+
|
112
|
+
Image.new(name, file)
|
85
113
|
end
|
86
114
|
|
87
|
-
img = Image.new(name, nil)
|
88
115
|
if block
|
89
|
-
|
116
|
+
begin
|
117
|
+
block.call(*images)
|
118
|
+
ensure
|
119
|
+
images.each { |img| img.free if img.name }
|
120
|
+
end
|
121
|
+
else
|
122
|
+
raise RuntimeError, "a block must be provided."
|
90
123
|
end
|
91
|
-
|
92
|
-
img
|
93
124
|
end
|
94
125
|
|
95
|
-
alias_method :
|
96
|
-
alias_method :create_blank, :create_image
|
97
|
-
alias_method :blank_image, :create_image
|
126
|
+
alias_method :with_images, :with_group
|
98
127
|
|
99
128
|
# convert an image +blob+ with +width+ and +height+
|
100
129
|
# to a bona fide image
|
@@ -130,6 +159,10 @@ module Devil
|
|
130
159
|
# :edge_filter sets the edge detection algorithm to use when invoking
|
131
160
|
# the 'edge_detect' method. (defaults to :prewitt)
|
132
161
|
# Allowed values are :prewitt and :sobel
|
162
|
+
#
|
163
|
+
# hooks:
|
164
|
+
# :prepare_image_hook, :create_image_hook, :load_image_hook
|
165
|
+
# e.g Devil.set_options :load_image_hook => proc { IL::ConvertImage(IL::RGBA, IL::UNSIGNED_BYTE) }
|
133
166
|
def set_options(options={})
|
134
167
|
@options.merge!(options)
|
135
168
|
|
@@ -186,15 +219,31 @@ module Devil
|
|
186
219
|
name = IL.GenImages(1).first
|
187
220
|
IL.BindImage(name)
|
188
221
|
|
189
|
-
# run the
|
190
|
-
|
191
|
-
prepare_image_proc.call if prepare_image_proc
|
222
|
+
# run the prepare image hook (if it exists)
|
223
|
+
check_and_run_hook(:prepare_image_hook)
|
192
224
|
|
193
225
|
name
|
194
226
|
end
|
227
|
+
|
228
|
+
def attach_image_from_file(file)
|
229
|
+
IL.LoadImage(file)
|
230
|
+
|
231
|
+
# ensure all images are formatted RGBA8
|
232
|
+
IL.ConvertImage(IL::RGBA, IL::UNSIGNED_BYTE)
|
233
|
+
end
|
234
|
+
|
235
|
+
def check_and_run_hook(hook_name)
|
236
|
+
Devil.get_options[hook_name].call if Devil.get_options[hook_name]
|
237
|
+
end
|
238
|
+
|
239
|
+
def error_check
|
240
|
+
if (error_code = IL.GetError) != IL::NO_ERROR
|
241
|
+
raise RuntimeError, "An error occured. #{ILU.ErrorString(error_code)}"
|
242
|
+
end
|
243
|
+
end
|
195
244
|
end
|
196
245
|
end
|
197
|
-
|
246
|
+
## end of Devil module
|
198
247
|
|
199
248
|
# wraps a DevIL image
|
200
249
|
class Devil::Image
|
@@ -203,9 +252,19 @@ class Devil::Image
|
|
203
252
|
def initialize(name, file)
|
204
253
|
@name = name
|
205
254
|
@file = file
|
255
|
+
end
|
206
256
|
|
207
|
-
|
257
|
+
# Frees the memory associated with the image.
|
258
|
+
# Must be called explictly if load_image or create_image is invoked without a block.
|
259
|
+
def free
|
260
|
+
raise "Error: calling 'free' on already freed image! #{self}" if !@name
|
261
|
+
IL.DeleteImages([@name])
|
262
|
+
error_check
|
263
|
+
@name = nil
|
208
264
|
end
|
265
|
+
|
266
|
+
alias_method :close, :free
|
267
|
+
alias_method :delete, :free
|
209
268
|
|
210
269
|
# returns the width of the image.
|
211
270
|
def width
|
@@ -438,6 +497,7 @@ class Devil::Image
|
|
438
497
|
private
|
439
498
|
|
440
499
|
def set_binding
|
500
|
+
raise "Error: trying to use image that has already been freed! #{self}" if !@name
|
441
501
|
IL.BindImage(@name)
|
442
502
|
end
|
443
503
|
|
@@ -455,5 +515,7 @@ class Devil::Image
|
|
455
515
|
result
|
456
516
|
end
|
457
517
|
end
|
518
|
+
## end of Devil::Image
|
458
519
|
|
520
|
+
# initialize Devil and set default config
|
459
521
|
Devil.init
|
data/test/test_blank.rb
CHANGED
@@ -5,13 +5,17 @@ $LOAD_PATH.push("#{$direc}/../lib/")
|
|
5
5
|
require 'rubygems'
|
6
6
|
require 'devil/gosu'
|
7
7
|
|
8
|
-
Devil.set_options :load_image_hook => proc { IL.ConvertImage(IL::RGBA, IL::UNSIGNED_BYTE) }
|
9
|
-
|
10
8
|
Devil.create_image(500, 500, :color => [255, 255, 0, 255]) do |img|
|
11
9
|
source1 = Devil.load("texture.png").thumbnail(100)
|
12
10
|
img.blit source1, 100, 100
|
13
11
|
img.blit source1, 400, 100
|
14
|
-
|
12
|
+
|
13
|
+
source1_dup = source1.dup
|
14
|
+
img.blit source1_dup.rotate(45), 100, 300
|
15
|
+
|
15
16
|
img.show
|
17
|
+
|
18
|
+
source1.free
|
19
|
+
source1_dup.free
|
16
20
|
end
|
17
21
|
|
data/test/test_blit.rb
CHANGED
@@ -7,10 +7,9 @@ require 'devil/gosu'
|
|
7
7
|
|
8
8
|
Devil.with_image("#{$direc}/texture.png") do |img|
|
9
9
|
img2 = Devil.load("#{$direc}/red.png")
|
10
|
-
|
11
|
-
img.show(200,200)
|
12
|
-
|
10
|
+
|
13
11
|
img.blit img2, 100, 100, :crop => [0, 0, img2.width / 2, img2.height / 2]
|
12
|
+
img2.free
|
14
13
|
|
15
14
|
img.show
|
16
15
|
end
|
data/test/test_clone_and_crop.rb
CHANGED
data/test/test_gosu_load.rb
CHANGED
data/test/test_gosu_roundtrip.rb
CHANGED
@@ -10,10 +10,12 @@ class W < Gosu::Window
|
|
10
10
|
super(1024, 768, false, 20)
|
11
11
|
|
12
12
|
@img = Gosu::Image.new(self, "#{$direc}/texture.jpg")
|
13
|
-
|
14
|
-
|
13
|
+
dimg = @img.to_devil
|
14
|
+
@img = dimg.emboss.
|
15
15
|
rotate(45).
|
16
16
|
to_gosu(self)
|
17
|
+
|
18
|
+
dimg.free
|
17
19
|
end
|
18
20
|
|
19
21
|
def draw
|
@@ -24,4 +26,4 @@ end
|
|
24
26
|
|
25
27
|
w = W.new
|
26
28
|
w.show
|
27
|
-
|
29
|
+
|
data/test/test_group.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
$direc = File.dirname(__FILE__)
|
2
|
+
|
3
|
+
$LOAD_PATH.push("#{$direc}/../lib/")
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'devil/gosu'
|
7
|
+
|
8
|
+
Devil.with_group("#{$direc}/texture.png", "#{$direc}/red.png") do |img, img2|
|
9
|
+
|
10
|
+
img.blit img2, 100, 100, :crop => [0, 0, img2.width / 2, img2.height / 2]
|
11
|
+
img.show
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
data/test/test_new_api.rb
CHANGED
@@ -6,8 +6,9 @@ require 'rubygems'
|
|
6
6
|
require "devil"
|
7
7
|
|
8
8
|
Devil.with_image("#{$direc}/texture.png") do |img|
|
9
|
-
img.
|
10
|
-
img.save("#{$direc}/
|
9
|
+
img.pixelize(10)
|
10
|
+
img.save("#{$direc}/texture_blocky.png")
|
11
|
+
img.free
|
11
12
|
end
|
12
13
|
|
13
14
|
img = Devil.load_image("#{$direc}/texture.png")
|
@@ -16,8 +17,10 @@ bink = Devil.load_image("#{$direc}/texture.png")
|
|
16
17
|
img.gamma_correct(1.6)
|
17
18
|
bink.resize(50, 50)
|
18
19
|
|
19
|
-
img.save("#{$direc}/texture_gamma.png")
|
20
|
-
bink.save("#{$direc}/texture_tiny.png")
|
20
|
+
img.save("#{$direc}/texture_gamma.png").free
|
21
|
+
bink.save("#{$direc}/texture_tiny.png").free
|
22
|
+
|
23
|
+
|
21
24
|
|
22
25
|
|
23
26
|
|
data/test/test_profile.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
$direc = File.dirname(__FILE__)
|
2
|
-
|
3
|
-
$LOAD_PATH.push("#{$direc}/../lib/")
|
4
|
-
|
5
|
-
require 'rubygems'
|
6
|
-
require 'devil/gosu'
|
7
|
-
|
8
|
-
Devil.load("texture.png", :
|
1
|
+
$direc = File.dirname(__FILE__)
|
2
|
+
|
3
|
+
$LOAD_PATH.push("#{$direc}/../lib/")
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'devil/gosu'
|
7
|
+
|
8
|
+
Devil.load("texture.png", :inprofile => "sRGB.icm", :out_profile => "AdobeRGB1998.icc").save("texture_out.png").free
|
data/test/test_screenshot.rb
CHANGED
data/test/test_thumbnail.rb
CHANGED
@@ -6,7 +6,7 @@ require 'rubygems'
|
|
6
6
|
require 'devil/gosu'
|
7
7
|
|
8
8
|
Devil.load("texture.png") do |img|
|
9
|
-
img.dup.thumbnail(150, :filter => Devil::NEAREST).show(100, 300)
|
10
|
-
img.dup.thumbnail(150).show(100, 100)
|
9
|
+
img.dup.thumbnail(150, :filter => Devil::NEAREST).show(100, 300).free
|
10
|
+
img.dup.thumbnail(150).show(100, 100).free
|
11
11
|
end
|
12
12
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.8.
|
4
|
+
version: 0.1.8.8
|
5
5
|
platform: x86-mswin32-60
|
6
6
|
authors:
|
7
7
|
- Jaroslaw Tworek, John Mair (banisterfiend)
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-29 00:00:00 +13:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -40,6 +40,7 @@ files:
|
|
40
40
|
- test/test_gosu_roundtrip.rb
|
41
41
|
- test/test_gosu_save.rb
|
42
42
|
- test/test_gosu_show.rb
|
43
|
+
- test/test_group.rb
|
43
44
|
- test/test_new_api.rb
|
44
45
|
- test/test_profile.rb
|
45
46
|
- test/test_scale_algos.rb
|