minigl 2.0.4 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -6
- data/lib/minigl/forms.rb +10 -1
- data/lib/minigl/game_object.rb +8 -8
- data/lib/minigl/global.rb +1 -1
- data/lib/minigl/movement.rb +36 -25
- data/test/game.rb +22 -6
- data/test/mov_game.rb +12 -12
- metadata +2 -10
- data/test/data/img/barfgl.png +0 -0
- data/test/data/img/barfgl.svg +0 -127
- data/test/data/img/barfgr.png +0 -0
- data/test/data/img/barfgr.svg +0 -135
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59a470da63cb5c4c17b9d980b5dd01523813c0f1
|
4
|
+
data.tar.gz: 09b1aa58f421e06a697208b872a103663ff8f0f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d006bec2dd92ea67a2b21f6509c9f7a104ca7055592862f2f0173124f59edaeb03e2ca8efc1dadc6801758a9cdabb5ece287c1c50754f7a34a88be82c2b0fc4
|
7
|
+
data.tar.gz: 5664c64facfa2d3b3f670e1542ae380734fafab5d6b0f0d3b4e76a6b66da81a97859cd21e812ed17e6fc60880de360af0e86a2e23006526e9d4f05d44efb37b9
|
data/README.md
CHANGED
@@ -32,9 +32,11 @@ examples provided with the gem.
|
|
32
32
|
* An auxiliary, tutorial-like documentation is under construction
|
33
33
|
[here](https://github.com/victords/minigl/wiki/How-To).
|
34
34
|
|
35
|
-
## Version 2.0.
|
36
|
-
|
37
|
-
*
|
38
|
-
*
|
39
|
-
|
40
|
-
`
|
35
|
+
## Version 2.0.5
|
36
|
+
|
37
|
+
* Further refined the ramp physics.
|
38
|
+
* Flexibilized the `move_free` method with the possibility of passing an angle
|
39
|
+
as argument, instead of a point.
|
40
|
+
* Added `on_changed` event for the `DropDownList` control.
|
41
|
+
* Adjusted `draw` in `Sprite` and `GameObject` so that, when drawing objects
|
42
|
+
rotated or not rotated, the origin of the image is consistent.
|
data/lib/minigl/forms.rb
CHANGED
@@ -1041,13 +1041,16 @@ module MiniGL
|
|
1041
1041
|
# [disabled_text_color] Analogous to +text_color+.
|
1042
1042
|
# [over_text_color] Same as above.
|
1043
1043
|
# [down_text_color] Same as above.
|
1044
|
+
# [on_changed] Action performed when the value of the dropdown is changed.
|
1045
|
+
# It must be a block with two parameters, which will receive
|
1046
|
+
# the old and the new value, respectively.
|
1044
1047
|
#
|
1045
1048
|
# *Obs.:* This method accepts named parameters, but +x+, +y+, +font+ and
|
1046
1049
|
# +options+ are mandatory (also, +img+ and +opt_img+ are mandatory when
|
1047
1050
|
# +width+ and +height+ are not provided, and vice-versa).
|
1048
1051
|
def initialize(x, y = nil, font = nil, img = nil, opt_img = nil, options = nil,
|
1049
1052
|
option = 0, text_margin = 0, width = nil, height = nil,
|
1050
|
-
text_color = 0, disabled_text_color = 0, over_text_color = 0, down_text_color = 0)
|
1053
|
+
text_color = 0, disabled_text_color = 0, over_text_color = 0, down_text_color = 0, &on_changed)
|
1051
1054
|
if x.is_a? Hash
|
1052
1055
|
y = x[:y]
|
1053
1056
|
font = x[:font]
|
@@ -1083,13 +1086,17 @@ module MiniGL
|
|
1083
1086
|
@options.each_with_index do |o, i|
|
1084
1087
|
b = Button.new(x, y + (i+1) * @h, font, o, opt_img, text_color, disabled_text_color, over_text_color, down_text_color,
|
1085
1088
|
false, true, text_margin, 0, @w, @h) {
|
1089
|
+
old = @value
|
1086
1090
|
@value = @buttons[0].text = o
|
1091
|
+
@on_changed.call(old, o) if @on_changed
|
1087
1092
|
toggle
|
1088
1093
|
}
|
1089
1094
|
b.visible = false
|
1090
1095
|
@buttons.push b
|
1091
1096
|
end
|
1092
1097
|
@max_h = (@options.size + 1) * @h
|
1098
|
+
|
1099
|
+
@on_changed = on_changed
|
1093
1100
|
end
|
1094
1101
|
|
1095
1102
|
# Updates the control.
|
@@ -1106,7 +1113,9 @@ module MiniGL
|
|
1106
1113
|
# it is not among the available options.
|
1107
1114
|
def value=(val)
|
1108
1115
|
if @options.include? val
|
1116
|
+
old = @value
|
1109
1117
|
@value = @buttons[0].text = val
|
1118
|
+
@on_changed.call(old, val) if @on_changed
|
1110
1119
|
end
|
1111
1120
|
end
|
1112
1121
|
|
data/lib/minigl/game_object.rb
CHANGED
@@ -114,13 +114,13 @@ module MiniGL
|
|
114
114
|
|
115
115
|
color = (alpha << 24) | color
|
116
116
|
if angle
|
117
|
-
@img[@img_index].draw_rot @x
|
118
|
-
@y
|
117
|
+
@img[@img_index].draw_rot @x - (map ? map.cam.x : 0) + @img[0].width * scale_x * 0.5,
|
118
|
+
@y - (map ? map.cam.y : 0) + @img[0].height * scale_y * 0.5,
|
119
119
|
z_index, angle, 0.5, 0.5, (flip == :horiz ? -scale_x : scale_x),
|
120
120
|
(flip == :vert ? -scale_y : scale_y), color
|
121
121
|
else
|
122
|
-
@img[@img_index].draw @x
|
123
|
-
@y
|
122
|
+
@img[@img_index].draw @x - (map ? map.cam.x : 0) + (flip == :horiz ? scale_x * @img[0].width : 0),
|
123
|
+
@y - (map ? map.cam.y : 0) + (flip == :vert ? scale_y * @img[0].height : 0),
|
124
124
|
z_index, (flip == :horiz ? -scale_x : scale_x),
|
125
125
|
(flip == :vert ? -scale_y : scale_y), color
|
126
126
|
end
|
@@ -215,13 +215,13 @@ module MiniGL
|
|
215
215
|
|
216
216
|
color = (alpha << 24) | color
|
217
217
|
if angle
|
218
|
-
@img[@img_index].draw_rot @x
|
219
|
-
@y
|
218
|
+
@img[@img_index].draw_rot @x + (flip == :horiz ? -1 : 1) * @img_gap.x - (map ? map.cam.x : 0) + @img[0].width * scale_x * 0.5,
|
219
|
+
@y + (flip == :vert ? -1 : 1) * @img_gap.y - (map ? map.cam.y : 0) + @img[0].height * scale_y * 0.5,
|
220
220
|
z_index, angle, 0.5, 0.5, (flip == :horiz ? -scale_x : scale_x),
|
221
221
|
(flip == :vert ? -scale_y : scale_y), color
|
222
222
|
else
|
223
|
-
@img[@img_index].draw @x
|
224
|
-
@y
|
223
|
+
@img[@img_index].draw @x + (flip == :horiz ? -1 : 1) * @img_gap.x - (map ? map.cam.x : 0) + (flip == :horiz ? scale_x * @w : 0),
|
224
|
+
@y + (flip == :vert ? -1 : 1) * @img_gap.y - (map ? map.cam.y : 0) + (flip == :vert ? scale_y * @h : 0),
|
225
225
|
z_index, (flip == :horiz ? -scale_x : scale_x),
|
226
226
|
(flip == :vert ? -scale_y : scale_y), color
|
227
227
|
end
|
data/lib/minigl/global.rb
CHANGED
@@ -198,7 +198,7 @@ module MiniGL
|
|
198
198
|
# mandatory.
|
199
199
|
def initialize(scr_w, scr_h = nil, fullscreen = true,
|
200
200
|
gravity = Vector.new(0, 1), min_speed = Vector.new(0.01, 0.01),
|
201
|
-
ramp_contact_threshold = 4, ramp_slip_threshold = 1
|
201
|
+
ramp_contact_threshold = 4, ramp_slip_threshold = 1, ramp_slip_force = 1,
|
202
202
|
kb_held_delay = 40, kb_held_interval = 5, double_click_delay = 8)
|
203
203
|
if scr_w.is_a? Hash
|
204
204
|
scr_h = scr_w[:scr_h]
|
data/lib/minigl/movement.rb
CHANGED
@@ -177,10 +177,6 @@ module MiniGL
|
|
177
177
|
# Height of the bounding box.
|
178
178
|
attr_reader :h
|
179
179
|
|
180
|
-
# Whether a moving object can pass through this block when coming from
|
181
|
-
# below. This is a common feature of platforms in platform games.
|
182
|
-
attr_reader :passable
|
183
|
-
|
184
180
|
# The object that is making contact with this from above. If there's no
|
185
181
|
# contact, returns +nil+.
|
186
182
|
attr_reader :top
|
@@ -203,6 +199,10 @@ module MiniGL
|
|
203
199
|
# The y-coordinate of the top left corner of the bounding box.
|
204
200
|
attr_accessor :y
|
205
201
|
|
202
|
+
# Whether a moving object can pass through this block when coming from
|
203
|
+
# below. This is a common feature of platforms in platform games.
|
204
|
+
attr_accessor :passable
|
205
|
+
|
206
206
|
# A Vector with the horizontal and vertical components of a force that
|
207
207
|
# be applied in the next time +move+ is called.
|
208
208
|
attr_accessor :stored_forces
|
@@ -234,8 +234,8 @@ module MiniGL
|
|
234
234
|
forces.y = 0 if (forces.y < 0 and @top) or (forces.y > 0 and @bottom)
|
235
235
|
|
236
236
|
if @bottom.is_a? Ramp
|
237
|
-
if @bottom.ratio
|
238
|
-
forces.x += (@bottom.left ? -1 : 1) * G.ramp_slip_force
|
237
|
+
if @bottom.ratio > G.ramp_slip_threshold
|
238
|
+
forces.x += (@bottom.left ? -1 : 1) * (@bottom.ratio - G.ramp_slip_threshold) * G.ramp_slip_force / G.ramp_slip_threshold
|
239
239
|
elsif forces.x > 0 && @bottom.left || forces.x < 0 && !@bottom.left
|
240
240
|
forces.x *= @bottom.factor
|
241
241
|
end
|
@@ -414,35 +414,46 @@ module MiniGL
|
|
414
414
|
end
|
415
415
|
|
416
416
|
# Moves this object, without performing any collision checking, towards
|
417
|
-
#
|
417
|
+
# a specified point or in a specified direction.
|
418
418
|
#
|
419
419
|
# Parameters:
|
420
|
-
# [aim] A Vector specifying where the object will move to
|
420
|
+
# [aim] A +Vector+ specifying where the object will move to or an angle (in
|
421
|
+
# degrees) indicating the direction of the movement. Angles are
|
422
|
+
# measured starting from the right (i.e., to move to the right, the
|
423
|
+
# angle must be 0) and raising clockwise.
|
421
424
|
# [speed] The constant speed at which the object will move. This must be
|
422
425
|
# provided as a scalar, not a vector.
|
423
426
|
def move_free(aim, speed)
|
424
|
-
|
425
|
-
|
427
|
+
if aim.is_a? Vector
|
428
|
+
x_d = aim.x - @x; y_d = aim.y - @y
|
429
|
+
distance = Math.sqrt(x_d**2 + y_d**2)
|
426
430
|
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
+
if distance == 0
|
432
|
+
@speed.x = @speed.y = 0
|
433
|
+
return
|
434
|
+
end
|
431
435
|
|
432
|
-
|
433
|
-
|
436
|
+
@speed.x = 1.0 * x_d * speed / distance
|
437
|
+
@speed.y = 1.0 * y_d * speed / distance
|
434
438
|
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
439
|
+
if (@speed.x < 0 and @x + @speed.x <= aim.x) or (@speed.x >= 0 and @x + @speed.x >= aim.x)
|
440
|
+
@x = aim.x
|
441
|
+
@speed.x = 0
|
442
|
+
else
|
443
|
+
@x += @speed.x
|
444
|
+
end
|
441
445
|
|
442
|
-
|
443
|
-
|
444
|
-
|
446
|
+
if (@speed.y < 0 and @y + @speed.y <= aim.y) or (@speed.y >= 0 and @y + @speed.y >= aim.y)
|
447
|
+
@y = aim.y
|
448
|
+
@speed.y = 0
|
449
|
+
else
|
450
|
+
@y += @speed.y
|
451
|
+
end
|
445
452
|
else
|
453
|
+
rads = aim * Math::PI / 180
|
454
|
+
@speed.x = speed * Math.cos(rads)
|
455
|
+
@speed.y = speed * Math.sin(rads)
|
456
|
+
@x += @speed.x
|
446
457
|
@y += @speed.y
|
447
458
|
end
|
448
459
|
end
|
data/test/game.rb
CHANGED
@@ -5,10 +5,13 @@ class MyGame < GameWindow
|
|
5
5
|
def initialize
|
6
6
|
super 800, 600, false
|
7
7
|
|
8
|
+
# @img = Res.img :img1
|
8
9
|
@obj1 = GameObject.new 10, 10, 80, 80, :img1, Vector.new(-10, -10)
|
9
10
|
@obj2 = Sprite.new 400, 0, :img1
|
10
11
|
@obj3 = GameObject.new 4, 50, 24, 24, :check, Vector.new(-4, -4), 2, 4
|
11
12
|
@obj3.set_animation 1
|
13
|
+
@objs = []
|
14
|
+
8.times { @objs << GameObject.new(384, 284, 32, 32, :check, Vector.new(0, 0), 2, 4) }
|
12
15
|
@flip = nil
|
13
16
|
|
14
17
|
@font1 = Res.font :font1, 20
|
@@ -25,9 +28,13 @@ class MyGame < GameWindow
|
|
25
28
|
@txt.visible = false
|
26
29
|
|
27
30
|
@pb = ProgressBar.new(5, 240, 200, 20, 0xff0000, 0x00ff00, 3456, 70, 0, 0, @font1, 0xff000080)
|
28
|
-
@ddl = DropDownList.new(5, 270, @font1, nil, nil, ['olá amigos', 'opção 2', 'terceira'], 0, 3, 150, 25, 0, 0x808080, 0xffffff, 0xffff00)
|
31
|
+
@ddl = DropDownList.new(5, 270, @font1, nil, nil, ['olá amigos', 'opção 2', 'terceira'], 0, 3, 150, 25, 0, 0x808080, 0xffffff, 0xffff00) { |a, b|
|
32
|
+
puts "mudou de #{a} para #{b}"
|
33
|
+
}
|
29
34
|
|
30
35
|
@eff = Effect.new(100, 100, :check, 2, 4, 10, nil, nil, '1')
|
36
|
+
|
37
|
+
@angle = 0
|
31
38
|
end
|
32
39
|
|
33
40
|
def needs_cursor?
|
@@ -70,6 +77,9 @@ class MyGame < GameWindow
|
|
70
77
|
if @flip.nil?; @flip = :horiz
|
71
78
|
else; @flip = nil; end
|
72
79
|
end
|
80
|
+
if Mouse.button_down? :left
|
81
|
+
@angle += 1
|
82
|
+
end
|
73
83
|
|
74
84
|
@btn.update
|
75
85
|
@chk.update
|
@@ -77,21 +87,27 @@ class MyGame < GameWindow
|
|
77
87
|
@ddl.update
|
78
88
|
|
79
89
|
@eff.update
|
90
|
+
|
91
|
+
@objs.each_with_index do |o, i|
|
92
|
+
o.move_free(i * 45, 3)
|
93
|
+
end
|
80
94
|
end
|
81
95
|
|
82
96
|
def draw
|
83
97
|
clear 0xabcdef
|
84
98
|
|
85
|
-
@
|
86
|
-
@
|
99
|
+
# @img.draw_rot 400, 100, 0, @angle, 1, 1
|
100
|
+
@obj1.draw color: 0x33ff33, angle: (@angle == 0 ? nil : @angle)
|
101
|
+
@obj2.draw angle: (@angle == 0 ? nil : @angle), scale_x: 0.5, scale_y: 1.4
|
87
102
|
@obj3.draw flip: @flip
|
103
|
+
@objs.each { |o| o.draw }
|
88
104
|
@writer1.write_line text: 'Testing effect 1', x: 400, y: 260, color: 0xffffff, effect: :border
|
89
105
|
@writer2.write_line 'Second effect test', 400, 280, :center, 0xffffff, 255, :border, 0xff0000, 2
|
90
106
|
@writer2.write_line 'Text with shadow!!', 400, 340, :center, 0xffff00, 255, :shadow, 0, 2, 0x80
|
91
107
|
@writer1.write_breaking "Testing multiple line text.\nThis should draw text "\
|
92
|
-
|
93
|
-
|
94
|
-
|
108
|
+
'across multiple lines, respecting a limit width. '\
|
109
|
+
'Furthermore, the text must be right-aligned.',
|
110
|
+
780, 450, 300, :right, 0xff0000, 255, 1
|
95
111
|
|
96
112
|
@ddl.draw 0x80, 1
|
97
113
|
@btn.draw 0xcc
|
data/test/mov_game.rb
CHANGED
@@ -19,18 +19,18 @@ class MyGame < GameWindow
|
|
19
19
|
# Block.new(485, 490, 127, 10, false),
|
20
20
|
]
|
21
21
|
@ramps = [
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
Ramp.new(200, 550, 200, 50, true),
|
23
|
+
Ramp.new(0, 200, 150, 300, false),
|
24
|
+
Ramp.new(150, 500, 150, 100, false),
|
25
|
+
Ramp.new(500, 500, 150, 100, true),
|
26
|
+
Ramp.new(650, 300, 150, 200, true),
|
27
|
+
Ramp.new(650, 500, 150, 100, true),
|
28
28
|
]
|
29
29
|
|
30
|
-
@cycle = [Vector.new(100, 530), Vector.new(650, 500)]
|
31
|
-
@cyc_obj = GameObject.new(@cycle[0].x, @cycle[0].y, 50, 50, :square)
|
32
|
-
@cyc_obj.instance_eval('@passable = true')
|
33
|
-
@obsts.push @cyc_obj
|
30
|
+
# @cycle = [Vector.new(100, 530), Vector.new(650, 500)]
|
31
|
+
# @cyc_obj = GameObject.new(@cycle[0].x, @cycle[0].y, 50, 50, :square)
|
32
|
+
# @cyc_obj.instance_eval('@passable = true')
|
33
|
+
# @obsts.push @cyc_obj
|
34
34
|
end
|
35
35
|
|
36
36
|
def update
|
@@ -52,13 +52,13 @@ class MyGame < GameWindow
|
|
52
52
|
end
|
53
53
|
@obj.move(forces, @obsts, @ramps)
|
54
54
|
# puts @obj.x
|
55
|
-
@cyc_obj.cycle(@cycle, 5, [@obj], @obsts, @ramps)
|
55
|
+
# @cyc_obj.cycle(@cycle, 5, [@obj], @obsts, @ramps)
|
56
56
|
# puts @obj.bottom
|
57
57
|
end
|
58
58
|
|
59
59
|
def draw
|
60
60
|
@obj.draw
|
61
|
-
@cyc_obj.draw
|
61
|
+
# @cyc_obj.draw
|
62
62
|
@obsts.each do |o|
|
63
63
|
draw_quad o.x, o.y, 0xffffffff,
|
64
64
|
o.x + o.w, o.y, 0xffffffff,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minigl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor David Santos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gosu
|
@@ -45,10 +45,6 @@ files:
|
|
45
45
|
- test/data/img/barbg.svg
|
46
46
|
- test/data/img/barfg.png
|
47
47
|
- test/data/img/barfg.svg
|
48
|
-
- test/data/img/barfgl.png
|
49
|
-
- test/data/img/barfgl.svg
|
50
|
-
- test/data/img/barfgr.png
|
51
|
-
- test/data/img/barfgr.svg
|
52
48
|
- test/data/img/btn.png
|
53
49
|
- test/data/img/check.png
|
54
50
|
- test/data/img/image.png
|
@@ -112,7 +108,6 @@ test_files:
|
|
112
108
|
- test/data/img/barfg.svg
|
113
109
|
- test/data/img/img1.png
|
114
110
|
- test/data/img/tile2.png
|
115
|
-
- test/data/img/barfgl.svg
|
116
111
|
- test/data/img/square.png
|
117
112
|
- test/data/img/tile1b.png
|
118
113
|
- test/data/img/btn.png
|
@@ -124,9 +119,6 @@ test_files:
|
|
124
119
|
- test/data/img/barbg.svg
|
125
120
|
- test/data/img/barbg.png
|
126
121
|
- test/data/img/tile1.png
|
127
|
-
- test/data/img/barfgr.png
|
128
|
-
- test/data/img/barfgl.png
|
129
|
-
- test/data/img/barfgr.svg
|
130
122
|
- test/data/img/text.png
|
131
123
|
- test/data/img/tile1.svg
|
132
124
|
- test/data/font/font1.ttf
|
data/test/data/img/barfgl.png
DELETED
Binary file
|
data/test/data/img/barfgl.svg
DELETED
@@ -1,127 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
-
|
4
|
-
<svg
|
5
|
-
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
-
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
-
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
-
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
-
xmlns="http://www.w3.org/2000/svg"
|
10
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
11
|
-
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
-
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
-
width="10"
|
14
|
-
height="20"
|
15
|
-
id="svg2"
|
16
|
-
version="1.1"
|
17
|
-
inkscape:version="0.48.4 r9939"
|
18
|
-
sodipodi:docname="barfgl.svg"
|
19
|
-
inkscape:export-filename="/home/victor/Projects/TCC/minigl/test/data/img/barfgl.png"
|
20
|
-
inkscape:export-xdpi="90"
|
21
|
-
inkscape:export-ydpi="90">
|
22
|
-
<defs
|
23
|
-
id="defs4">
|
24
|
-
<linearGradient
|
25
|
-
id="linearGradient3770">
|
26
|
-
<stop
|
27
|
-
id="stop3772"
|
28
|
-
offset="0"
|
29
|
-
style="stop-color:#000000;stop-opacity:0.50196081;" />
|
30
|
-
<stop
|
31
|
-
style="stop-color:#000000;stop-opacity:0;"
|
32
|
-
offset="1"
|
33
|
-
id="stop3774" />
|
34
|
-
</linearGradient>
|
35
|
-
<linearGradient
|
36
|
-
id="linearGradient3778">
|
37
|
-
<stop
|
38
|
-
style="stop-color:#008000;stop-opacity:1;"
|
39
|
-
offset="0"
|
40
|
-
id="stop3780" />
|
41
|
-
<stop
|
42
|
-
id="stop3786"
|
43
|
-
offset="0.5"
|
44
|
-
style="stop-color:#00ff00;stop-opacity:1;" />
|
45
|
-
<stop
|
46
|
-
style="stop-color:#008000;stop-opacity:1;"
|
47
|
-
offset="1"
|
48
|
-
id="stop3782" />
|
49
|
-
</linearGradient>
|
50
|
-
<linearGradient
|
51
|
-
inkscape:collect="always"
|
52
|
-
xlink:href="#linearGradient3778"
|
53
|
-
id="linearGradient3784"
|
54
|
-
x1="0.51369864"
|
55
|
-
y1="1032.3622"
|
56
|
-
x2="0.52054793"
|
57
|
-
y2="1052.3965"
|
58
|
-
gradientUnits="userSpaceOnUse"
|
59
|
-
gradientTransform="scale(10,1)" />
|
60
|
-
<linearGradient
|
61
|
-
inkscape:collect="always"
|
62
|
-
xlink:href="#linearGradient3770"
|
63
|
-
id="linearGradient3768"
|
64
|
-
gradientUnits="userSpaceOnUse"
|
65
|
-
gradientTransform="scale(10,1)"
|
66
|
-
x1="3.6742588e-08"
|
67
|
-
y1="1042.328"
|
68
|
-
x2="0.99999994"
|
69
|
-
y2="1042.3281" />
|
70
|
-
</defs>
|
71
|
-
<sodipodi:namedview
|
72
|
-
id="base"
|
73
|
-
pagecolor="#ffffff"
|
74
|
-
bordercolor="#666666"
|
75
|
-
borderopacity="1.0"
|
76
|
-
inkscape:pageopacity="0.0"
|
77
|
-
inkscape:pageshadow="2"
|
78
|
-
inkscape:zoom="1"
|
79
|
-
inkscape:cx="15.856164"
|
80
|
-
inkscape:cy="10"
|
81
|
-
inkscape:document-units="px"
|
82
|
-
inkscape:current-layer="layer1"
|
83
|
-
showgrid="false"
|
84
|
-
inkscape:window-width="1364"
|
85
|
-
inkscape:window-height="718"
|
86
|
-
inkscape:window-x="0"
|
87
|
-
inkscape:window-y="0"
|
88
|
-
inkscape:window-maximized="1" />
|
89
|
-
<metadata
|
90
|
-
id="metadata7">
|
91
|
-
<rdf:RDF>
|
92
|
-
<cc:Work
|
93
|
-
rdf:about="">
|
94
|
-
<dc:format>image/svg+xml</dc:format>
|
95
|
-
<dc:type
|
96
|
-
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
97
|
-
<dc:title></dc:title>
|
98
|
-
</cc:Work>
|
99
|
-
</rdf:RDF>
|
100
|
-
</metadata>
|
101
|
-
<g
|
102
|
-
inkscape:label="Layer 1"
|
103
|
-
inkscape:groupmode="layer"
|
104
|
-
id="layer1"
|
105
|
-
transform="translate(0,-1032.3622)">
|
106
|
-
<rect
|
107
|
-
style="fill:url(#linearGradient3784);fill-opacity:1;stroke:none"
|
108
|
-
id="rect3776"
|
109
|
-
width="10"
|
110
|
-
height="20"
|
111
|
-
x="0"
|
112
|
-
y="1032.3622" />
|
113
|
-
<rect
|
114
|
-
y="1032.3622"
|
115
|
-
x="0"
|
116
|
-
height="20"
|
117
|
-
width="10"
|
118
|
-
id="rect3766"
|
119
|
-
style="fill:url(#linearGradient3768);fill-opacity:1;stroke:none" />
|
120
|
-
<path
|
121
|
-
sodipodi:nodetypes="ccccc"
|
122
|
-
inkscape:connector-curvature="0"
|
123
|
-
id="path3768"
|
124
|
-
d="m 0,1052.3622 10,-10 0,-10 -10,10 z"
|
125
|
-
style="opacity:0.15;fill:#000000;fill-opacity:1;stroke:none" />
|
126
|
-
</g>
|
127
|
-
</svg>
|
data/test/data/img/barfgr.png
DELETED
Binary file
|
data/test/data/img/barfgr.svg
DELETED
@@ -1,135 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
-
|
4
|
-
<svg
|
5
|
-
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
-
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
-
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
-
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
-
xmlns="http://www.w3.org/2000/svg"
|
10
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
11
|
-
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
12
|
-
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
13
|
-
width="10"
|
14
|
-
height="20"
|
15
|
-
id="svg2"
|
16
|
-
version="1.1"
|
17
|
-
inkscape:version="0.48.4 r9939"
|
18
|
-
sodipodi:docname="barfgr.svg"
|
19
|
-
inkscape:export-filename="/home/victor/Projects/TCC/minigl/test/data/img/barfgr.png"
|
20
|
-
inkscape:export-xdpi="90"
|
21
|
-
inkscape:export-ydpi="90">
|
22
|
-
<defs
|
23
|
-
id="defs4">
|
24
|
-
<linearGradient
|
25
|
-
id="linearGradient3770">
|
26
|
-
<stop
|
27
|
-
id="stop3772"
|
28
|
-
offset="0"
|
29
|
-
style="stop-color:#000000;stop-opacity:0.50196081;" />
|
30
|
-
<stop
|
31
|
-
style="stop-color:#000000;stop-opacity:0;"
|
32
|
-
offset="1"
|
33
|
-
id="stop3774" />
|
34
|
-
</linearGradient>
|
35
|
-
<linearGradient
|
36
|
-
id="linearGradient3778">
|
37
|
-
<stop
|
38
|
-
style="stop-color:#008000;stop-opacity:1;"
|
39
|
-
offset="0"
|
40
|
-
id="stop3780" />
|
41
|
-
<stop
|
42
|
-
id="stop3786"
|
43
|
-
offset="0.5"
|
44
|
-
style="stop-color:#00ff00;stop-opacity:1;" />
|
45
|
-
<stop
|
46
|
-
style="stop-color:#008000;stop-opacity:1;"
|
47
|
-
offset="1"
|
48
|
-
id="stop3782" />
|
49
|
-
</linearGradient>
|
50
|
-
<linearGradient
|
51
|
-
inkscape:collect="always"
|
52
|
-
xlink:href="#linearGradient3778"
|
53
|
-
id="linearGradient3784"
|
54
|
-
x1="0.51369864"
|
55
|
-
y1="1032.3622"
|
56
|
-
x2="0.52054793"
|
57
|
-
y2="1052.3965"
|
58
|
-
gradientUnits="userSpaceOnUse"
|
59
|
-
gradientTransform="scale(10,1)" />
|
60
|
-
<linearGradient
|
61
|
-
inkscape:collect="always"
|
62
|
-
xlink:href="#linearGradient3770"
|
63
|
-
id="linearGradient3768"
|
64
|
-
gradientUnits="userSpaceOnUse"
|
65
|
-
gradientTransform="matrix(10,0,0,1,-10,0)"
|
66
|
-
x1="3.6742588e-08"
|
67
|
-
y1="1042.328"
|
68
|
-
x2="0.99999994"
|
69
|
-
y2="1042.3281" />
|
70
|
-
</defs>
|
71
|
-
<sodipodi:namedview
|
72
|
-
id="base"
|
73
|
-
pagecolor="#ffffff"
|
74
|
-
bordercolor="#666666"
|
75
|
-
borderopacity="1.0"
|
76
|
-
inkscape:pageopacity="0.0"
|
77
|
-
inkscape:pageshadow="2"
|
78
|
-
inkscape:zoom="1"
|
79
|
-
inkscape:cx="-0.85616438"
|
80
|
-
inkscape:cy="10"
|
81
|
-
inkscape:document-units="px"
|
82
|
-
inkscape:current-layer="layer1"
|
83
|
-
showgrid="false"
|
84
|
-
inkscape:window-width="1364"
|
85
|
-
inkscape:window-height="718"
|
86
|
-
inkscape:window-x="0"
|
87
|
-
inkscape:window-y="0"
|
88
|
-
inkscape:window-maximized="1" />
|
89
|
-
<metadata
|
90
|
-
id="metadata7">
|
91
|
-
<rdf:RDF>
|
92
|
-
<cc:Work
|
93
|
-
rdf:about="">
|
94
|
-
<dc:format>image/svg+xml</dc:format>
|
95
|
-
<dc:type
|
96
|
-
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
97
|
-
<dc:title></dc:title>
|
98
|
-
</cc:Work>
|
99
|
-
</rdf:RDF>
|
100
|
-
</metadata>
|
101
|
-
<g
|
102
|
-
inkscape:label="Layer 1"
|
103
|
-
inkscape:groupmode="layer"
|
104
|
-
id="layer1"
|
105
|
-
transform="translate(0,-1032.3622)">
|
106
|
-
<rect
|
107
|
-
style="fill:url(#linearGradient3784);fill-opacity:1;stroke:none"
|
108
|
-
id="rect3776"
|
109
|
-
width="10"
|
110
|
-
height="20"
|
111
|
-
x="0"
|
112
|
-
y="1032.3622" />
|
113
|
-
<rect
|
114
|
-
y="1032.3622"
|
115
|
-
x="-10"
|
116
|
-
height="20"
|
117
|
-
width="10"
|
118
|
-
id="rect3766"
|
119
|
-
style="fill:url(#linearGradient3768);fill-opacity:1;stroke:none"
|
120
|
-
transform="scale(-1,1)" />
|
121
|
-
<path
|
122
|
-
style="opacity:0.15;fill:#000000;fill-opacity:1;stroke:none"
|
123
|
-
d="M 0,0 0,10 10,0 z"
|
124
|
-
id="path3797"
|
125
|
-
inkscape:connector-curvature="0"
|
126
|
-
transform="translate(0,1032.3622)"
|
127
|
-
sodipodi:nodetypes="cccc" />
|
128
|
-
<path
|
129
|
-
sodipodi:nodetypes="cccc"
|
130
|
-
inkscape:connector-curvature="0"
|
131
|
-
id="path3799"
|
132
|
-
d="m 10,1052.3622 0,-10 -10,10 z"
|
133
|
-
style="opacity:0.15;fill:#000000;fill-opacity:1;stroke:none" />
|
134
|
-
</g>
|
135
|
-
</svg>
|