texplay 0.4.3 → 0.4.4.pre
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 +7 -0
- data/CHANGELOG +225 -222
- data/README.markdown +48 -48
- data/Rakefile +16 -16
- data/examples/common.rb +18 -18
- data/examples/example_alpha_blend.rb +29 -29
- data/examples/example_bezier.rb +41 -41
- data/examples/example_blank.rb +37 -37
- data/examples/example_cache.rb +21 -21
- data/examples/example_color_control.rb +69 -69
- data/examples/example_color_transform.rb +62 -62
- data/examples/example_color_transform_circle.rb +34 -34
- data/examples/example_darken.rb +24 -24
- data/examples/example_dup.rb +73 -73
- data/examples/example_each.rb +39 -39
- data/examples/example_effect.rb +34 -34
- data/examples/example_fill.rb +43 -43
- data/examples/example_fill_old.rb +48 -48
- data/examples/example_fluent.rb +29 -29
- data/examples/example_font.rb +31 -31
- data/examples/example_hash_arguments.rb +46 -46
- data/examples/example_ippa.rb +23 -23
- data/examples/example_light.rb +75 -75
- data/examples/example_light_multiply.rb +18 -18
- data/examples/example_lsystem.rb +61 -61
- data/examples/example_melt.rb +25 -25
- data/examples/example_meyet.rb +62 -62
- data/examples/example_polyline.rb +42 -42
- data/examples/example_scale.rb +27 -27
- data/examples/example_select.rb +36 -36
- data/examples/example_select2.rb +25 -25
- data/examples/example_simple.rb +46 -46
- data/examples/example_splice.rb +26 -26
- data/examples/example_sync.rb +59 -59
- data/examples/example_tiles.rb +41 -41
- data/examples/example_trace.rb +22 -22
- data/examples/example_transparent.rb +28 -28
- data/examples/example_transparent2.rb +24 -24
- data/examples/example_transparent3.rb +20 -20
- data/examples/example_turtle.rb +39 -39
- data/examples/example_weird.rb +22 -22
- data/examples/example_window_render_to_image.rb +41 -41
- data/examples/example_window_to_blob.rb +35 -35
- data/examples/media/maria.png +0 -0
- data/examples/media/rose.bmp +0 -0
- data/ext/texplay/actions.c +1011 -1006
- data/ext/texplay/actions.h +60 -60
- data/ext/texplay/bindings.c +1130 -1125
- data/ext/texplay/bindings.h +46 -46
- data/ext/texplay/cache.c +123 -118
- data/ext/texplay/cache.h +24 -24
- data/ext/texplay/compat.h +21 -27
- data/ext/texplay/extconf.rb +38 -38
- data/ext/texplay/graphics_utils.c +1318 -1313
- data/ext/texplay/graphics_utils.h +22 -22
- data/ext/texplay/texplay.c +206 -201
- data/ext/texplay/texplay.h +153 -153
- data/ext/texplay/utils.c +896 -891
- data/ext/texplay/utils.h +153 -153
- data/lib/texplay-contrib.rb +147 -147
- data/lib/texplay.rb +347 -347
- data/lib/texplay/alone.rb +20 -20
- data/lib/texplay/c_function_docs.rb +178 -178
- data/lib/texplay/live.rb +84 -84
- data/lib/texplay/version.rb +3 -3
- data/live/live.rb +85 -85
- data/test/image_spec.rb +45 -45
- data/test/texplay_spec.rb +144 -144
- metadata +42 -52
- data/lib/texplay/1.8/texplay.so +0 -0
- data/lib/texplay/1.9/texplay.so +0 -0
data/examples/example_ippa.rb
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
-
require 'common'
|
|
3
|
-
|
|
4
|
-
class Window < Gosu::Window
|
|
5
|
-
def initialize
|
|
6
|
-
super(500, 500, false, 20)
|
|
7
|
-
|
|
8
|
-
@image = TexPlay.create_image(self, 50, 50)
|
|
9
|
-
|
|
10
|
-
from_x = 50
|
|
11
|
-
from_y = 50
|
|
12
|
-
to_x = 51
|
|
13
|
-
to_y = 51
|
|
14
|
-
|
|
15
|
-
x2, y2, color = @image.line from_x, from_y, to_x, to_y, :trace => { :while_color => :red }
|
|
16
|
-
|
|
17
|
-
p x2
|
|
18
|
-
p y2
|
|
19
|
-
p color
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
Window.new.show
|
|
1
|
+
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
+
require 'common'
|
|
3
|
+
|
|
4
|
+
class Window < Gosu::Window
|
|
5
|
+
def initialize
|
|
6
|
+
super(500, 500, false, 20)
|
|
7
|
+
|
|
8
|
+
@image = TexPlay.create_image(self, 50, 50)
|
|
9
|
+
|
|
10
|
+
from_x = 50
|
|
11
|
+
from_y = 50
|
|
12
|
+
to_x = 51
|
|
13
|
+
to_y = 51
|
|
14
|
+
|
|
15
|
+
x2, y2, color = @image.line from_x, from_y, to_x, to_y, :trace => { :while_color => :red }
|
|
16
|
+
|
|
17
|
+
p x2
|
|
18
|
+
p y2
|
|
19
|
+
p color
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
Window.new.show
|
data/examples/example_light.rb
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
-
require 'common'
|
|
3
|
-
|
|
4
|
-
class W < Gosu::Window
|
|
5
|
-
def initialize
|
|
6
|
-
super(500, 500, false, 20)
|
|
7
|
-
|
|
8
|
-
@x1 = 10
|
|
9
|
-
@x2 = 200
|
|
10
|
-
@y1 = 10
|
|
11
|
-
@y2 = 10
|
|
12
|
-
|
|
13
|
-
@radius = 100.0
|
|
14
|
-
@inner = 20.0
|
|
15
|
-
@max_opacity = 0.5
|
|
16
|
-
@max_opacity2 = 0.5
|
|
17
|
-
|
|
18
|
-
penumbra = (@radius - @inner).to_i
|
|
19
|
-
|
|
20
|
-
@img = Gosu::Image.new(self, "#{Common::MEDIA}/maria.png")
|
|
21
|
-
#@img.rect(0, 0, @img.width - 1, @img.height - 1, :fill => true)
|
|
22
|
-
|
|
23
|
-
@circ2 = TexPlay.create_image(self, @radius * 2, @radius * 2)
|
|
24
|
-
|
|
25
|
-
@circ1 = TexPlay.create_image(self, @radius * 2, @radius * 2)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
shading_step = @max_opacity2.to_f / penumbra.to_f
|
|
29
|
-
@radius.to_i.downto(@inner) { |r|
|
|
30
|
-
@circ1.circle @radius, @radius, r, :color => [1, 0, 0, ((@radius - r) * shading_step)],
|
|
31
|
-
:fill => true
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@circ1.circle @radius, @radius, @inner, :color => [1, 0, 0, @max_opacity2], :fill => true
|
|
35
|
-
|
|
36
|
-
shading_step = @max_opacity.to_f / penumbra.to_f
|
|
37
|
-
@radius.to_i.downto(@inner) { |r|
|
|
38
|
-
@circ2.circle @radius, @radius, r, :color => [0, 0, 1, ((@radius - r) * shading_step)],
|
|
39
|
-
:fill => true
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@circ2.circle @radius, @radius, @inner, :color => [0, 0, 1, @max_opacity], :fill => true
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def draw
|
|
46
|
-
@x1 += 1
|
|
47
|
-
@y1 += 1
|
|
48
|
-
|
|
49
|
-
@x2 -= 1
|
|
50
|
-
@y2 += 1
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
@img.draw 10, 10,1
|
|
55
|
-
@circ1.draw @x1, @y1,1
|
|
56
|
-
@circ2.draw @x2, @y1,1
|
|
57
|
-
|
|
58
|
-
if button_down?(Gosu::KbEscape)
|
|
59
|
-
IL.Enable(IL::ORIGIN_SET)
|
|
60
|
-
IL.OriginFunc(IL::ORIGIN_UPPER_LEFT)
|
|
61
|
-
# screenshot.crop(0,0, 500, 500).save("screenshot.jpg").free
|
|
62
|
-
exit
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def update
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
w = W.new
|
|
74
|
-
w.show
|
|
75
|
-
|
|
1
|
+
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
+
require 'common'
|
|
3
|
+
|
|
4
|
+
class W < Gosu::Window
|
|
5
|
+
def initialize
|
|
6
|
+
super(500, 500, false, 20)
|
|
7
|
+
|
|
8
|
+
@x1 = 10
|
|
9
|
+
@x2 = 200
|
|
10
|
+
@y1 = 10
|
|
11
|
+
@y2 = 10
|
|
12
|
+
|
|
13
|
+
@radius = 100.0
|
|
14
|
+
@inner = 20.0
|
|
15
|
+
@max_opacity = 0.5
|
|
16
|
+
@max_opacity2 = 0.5
|
|
17
|
+
|
|
18
|
+
penumbra = (@radius - @inner).to_i
|
|
19
|
+
|
|
20
|
+
@img = Gosu::Image.new(self, "#{Common::MEDIA}/maria.png")
|
|
21
|
+
#@img.rect(0, 0, @img.width - 1, @img.height - 1, :fill => true)
|
|
22
|
+
|
|
23
|
+
@circ2 = TexPlay.create_image(self, @radius * 2, @radius * 2)
|
|
24
|
+
|
|
25
|
+
@circ1 = TexPlay.create_image(self, @radius * 2, @radius * 2)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
shading_step = @max_opacity2.to_f / penumbra.to_f
|
|
29
|
+
@radius.to_i.downto(@inner) { |r|
|
|
30
|
+
@circ1.circle @radius, @radius, r, :color => [1, 0, 0, ((@radius - r) * shading_step)],
|
|
31
|
+
:fill => true
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@circ1.circle @radius, @radius, @inner, :color => [1, 0, 0, @max_opacity2], :fill => true
|
|
35
|
+
|
|
36
|
+
shading_step = @max_opacity.to_f / penumbra.to_f
|
|
37
|
+
@radius.to_i.downto(@inner) { |r|
|
|
38
|
+
@circ2.circle @radius, @radius, r, :color => [0, 0, 1, ((@radius - r) * shading_step)],
|
|
39
|
+
:fill => true
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@circ2.circle @radius, @radius, @inner, :color => [0, 0, 1, @max_opacity], :fill => true
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def draw
|
|
46
|
+
@x1 += 1
|
|
47
|
+
@y1 += 1
|
|
48
|
+
|
|
49
|
+
@x2 -= 1
|
|
50
|
+
@y2 += 1
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@img.draw 10, 10,1
|
|
55
|
+
@circ1.draw @x1, @y1,1
|
|
56
|
+
@circ2.draw @x2, @y1,1
|
|
57
|
+
|
|
58
|
+
if button_down?(Gosu::KbEscape)
|
|
59
|
+
IL.Enable(IL::ORIGIN_SET)
|
|
60
|
+
IL.OriginFunc(IL::ORIGIN_UPPER_LEFT)
|
|
61
|
+
# screenshot.crop(0,0, 500, 500).save("screenshot.jpg").free
|
|
62
|
+
exit
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def update
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
w = W.new
|
|
74
|
+
w.show
|
|
75
|
+
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
-
require 'common'
|
|
3
|
-
|
|
4
|
-
class W < Gosu::Window
|
|
5
|
-
def initialize
|
|
6
|
-
super(500, 500, false, 20)
|
|
7
|
-
@img = Gosu::Image.new(self, "#{Common::MEDIA}/sunset.png")
|
|
8
|
-
@cover = TexPlay.create_image(self, @img.width, @img.height, :color => Gosu::Color.new(127, 127, 127, 127))
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def draw
|
|
12
|
-
@img.draw 0, 0, 1
|
|
13
|
-
@cover.draw 0, 0, 1, 1, 1, Gosu::Color.new(0xffffffff), :multiply
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
W.new.show
|
|
18
|
-
|
|
1
|
+
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
+
require 'common'
|
|
3
|
+
|
|
4
|
+
class W < Gosu::Window
|
|
5
|
+
def initialize
|
|
6
|
+
super(500, 500, false, 20)
|
|
7
|
+
@img = Gosu::Image.new(self, "#{Common::MEDIA}/sunset.png")
|
|
8
|
+
@cover = TexPlay.create_image(self, @img.width, @img.height, :color => Gosu::Color.new(127, 127, 127, 127))
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def draw
|
|
12
|
+
@img.draw 0, 0, 1
|
|
13
|
+
@cover.draw 0, 0, 1, 1, 1, Gosu::Color.new(0xffffffff), :multiply
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
W.new.show
|
|
18
|
+
|
data/examples/example_lsystem.rb
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
-
require 'common'
|
|
3
|
-
|
|
4
|
-
Dragon = TexPlay::LSystem.new do
|
|
5
|
-
rule "F" => "F"
|
|
6
|
-
rule "X" => "X+YF+"
|
|
7
|
-
rule "Y" => "-FX-Y"
|
|
8
|
-
angle 90
|
|
9
|
-
|
|
10
|
-
atom "FX"
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
Koch = TexPlay::LSystem.new do
|
|
14
|
-
rule "F" => "F-F++F-F"
|
|
15
|
-
|
|
16
|
-
angle 60
|
|
17
|
-
|
|
18
|
-
atom "F"
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
Bush1 = TexPlay::LSystem.new do
|
|
22
|
-
rule "F" => "F[-F]F[+F][F]"
|
|
23
|
-
|
|
24
|
-
angle 20
|
|
25
|
-
atom "F"
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
Bush2 = TexPlay::LSystem.new do
|
|
29
|
-
rule "F" => "FF"
|
|
30
|
-
rule "X" => "F[+X]F[-X]+X"
|
|
31
|
-
|
|
32
|
-
angle 20
|
|
33
|
-
atom "X"
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
Bush3 = TexPlay::LSystem.new do
|
|
37
|
-
rule "F" => "FF"
|
|
38
|
-
rule "X" => "F-[[X]+X]+F[+FX]-X"
|
|
39
|
-
|
|
40
|
-
angle 22.5
|
|
41
|
-
atom "X"
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
class W < Gosu::Window
|
|
47
|
-
def initialize
|
|
48
|
-
super(500, 500, false, 20)
|
|
49
|
-
@img = TexPlay::create_blank_image(self, 500, 500)
|
|
50
|
-
@img.set_options :color => :rand
|
|
51
|
-
@img.lsystem(0, 250, Bush3, :order => 6, :line_length => 4)
|
|
52
|
-
#@img.save("dragon.jpg")
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def draw
|
|
56
|
-
@img.draw(0,0,1)
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
w = W.new
|
|
61
|
-
w.show
|
|
1
|
+
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
+
require 'common'
|
|
3
|
+
|
|
4
|
+
Dragon = TexPlay::LSystem.new do
|
|
5
|
+
rule "F" => "F"
|
|
6
|
+
rule "X" => "X+YF+"
|
|
7
|
+
rule "Y" => "-FX-Y"
|
|
8
|
+
angle 90
|
|
9
|
+
|
|
10
|
+
atom "FX"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
Koch = TexPlay::LSystem.new do
|
|
14
|
+
rule "F" => "F-F++F-F"
|
|
15
|
+
|
|
16
|
+
angle 60
|
|
17
|
+
|
|
18
|
+
atom "F"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
Bush1 = TexPlay::LSystem.new do
|
|
22
|
+
rule "F" => "F[-F]F[+F][F]"
|
|
23
|
+
|
|
24
|
+
angle 20
|
|
25
|
+
atom "F"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Bush2 = TexPlay::LSystem.new do
|
|
29
|
+
rule "F" => "FF"
|
|
30
|
+
rule "X" => "F[+X]F[-X]+X"
|
|
31
|
+
|
|
32
|
+
angle 20
|
|
33
|
+
atom "X"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
Bush3 = TexPlay::LSystem.new do
|
|
37
|
+
rule "F" => "FF"
|
|
38
|
+
rule "X" => "F-[[X]+X]+F[+FX]-X"
|
|
39
|
+
|
|
40
|
+
angle 22.5
|
|
41
|
+
atom "X"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class W < Gosu::Window
|
|
47
|
+
def initialize
|
|
48
|
+
super(500, 500, false, 20)
|
|
49
|
+
@img = TexPlay::create_blank_image(self, 500, 500)
|
|
50
|
+
@img.set_options :color => :rand
|
|
51
|
+
@img.lsystem(0, 250, Bush3, :order => 6, :line_length => 4)
|
|
52
|
+
#@img.save("dragon.jpg")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def draw
|
|
56
|
+
@img.draw(0,0,1)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
w = W.new
|
|
61
|
+
w.show
|
data/examples/example_melt.rb
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
-
require 'common'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class W < Gosu::Window
|
|
6
|
-
def initialize
|
|
7
|
-
super(500, 500, false, 20)
|
|
8
|
-
@img = Gosu::Image.new(self, "#{Common::MEDIA}/sunset.png")
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def draw
|
|
12
|
-
x = (@img.width - 100/2) * rand
|
|
13
|
-
y = (@img.height - 100/2) * rand
|
|
14
|
-
|
|
15
|
-
@img.splice @img, x, y + 1, :crop => [x, y, x + 100, y + 100]
|
|
16
|
-
|
|
17
|
-
@img.draw 0, 0,1
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
w = W.new
|
|
24
|
-
w.show
|
|
25
|
-
|
|
1
|
+
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
+
require 'common'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class W < Gosu::Window
|
|
6
|
+
def initialize
|
|
7
|
+
super(500, 500, false, 20)
|
|
8
|
+
@img = Gosu::Image.new(self, "#{Common::MEDIA}/sunset.png")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def draw
|
|
12
|
+
x = (@img.width - 100/2) * rand
|
|
13
|
+
y = (@img.height - 100/2) * rand
|
|
14
|
+
|
|
15
|
+
@img.splice @img, x, y + 1, :crop => [x, y, x + 100, y + 100]
|
|
16
|
+
|
|
17
|
+
@img.draw 0, 0,1
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
w = W.new
|
|
24
|
+
w.show
|
|
25
|
+
|
data/examples/example_meyet.rb
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
-
require 'common'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# TEST_CASE 1 shows 2 pieces of text, but the background is black, even with :chroma_key. TEST_CASE 2 shows nothing.
|
|
7
|
-
# However, if you remove the :chroma_key's, you see a black background (and no text) in TEST_CASE 2, so there, :chroma_key appears to work.
|
|
8
|
-
TEST_CASE = 1 # 1 shows everything, 2 shows nothing. Both, however, should show everything, and haev a working :chroma_key => :alpha
|
|
9
|
-
SYNC_TEST = false # Setting to true enables a force_sync.. but no matter where that is placed, it doesn't help
|
|
10
|
-
|
|
11
|
-
class Wnd < Gosu::Window
|
|
12
|
-
def initialize
|
|
13
|
-
super(500, 200, false)
|
|
14
|
-
self.caption = "Splice Issues"
|
|
15
|
-
|
|
16
|
-
@chrome = TexPlay::create_blank_image(self, 200, 200)
|
|
17
|
-
@chrome.fill 0, 0, :color => :purple
|
|
18
|
-
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
19
|
-
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
20
|
-
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
21
|
-
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
22
|
-
|
|
23
|
-
@chrome3 = @chrome.dup if TEST_CASE == 2
|
|
24
|
-
|
|
25
|
-
@short_text = Gosu::Image.from_text(self, "text", Gosu::default_font_name, 20)
|
|
26
|
-
@long_text = Gosu::Image.from_text(self, "This is a long piece of text..", Gosu::default_font_name, 20)
|
|
27
|
-
|
|
28
|
-
@chrome2 = @chrome.dup if TEST_CASE == 1
|
|
29
|
-
|
|
30
|
-
@chrome.splice @short_text, 5, 5, :alpha_blend => true
|
|
31
|
-
@chrome.splice @long_text, 5, 105, :alpha_blend => true
|
|
32
|
-
puts @long_text.get_pixel(2,2)
|
|
33
|
-
|
|
34
|
-
if TEST_CASE == 1
|
|
35
|
-
@chrome2.splice @short_text, 105, 5, :alpha_blend => true
|
|
36
|
-
@chrome2.splice @long_text, 105, 105, :alpha_blend => true
|
|
37
|
-
elsif TEST_CASE == 2
|
|
38
|
-
@chrome3.splice @short_text, 105, 5, :alpha_blend => true
|
|
39
|
-
@chrome3.splice @long_text, 105, 105, :alpha_blend => true
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def draw
|
|
44
|
-
@chrome.draw(0,0,1)
|
|
45
|
-
@chrome2.draw(200,0,1) if TEST_CASE == 1
|
|
46
|
-
@chrome3.draw(400,0,1) if TEST_CASE == 2
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def draw_text
|
|
50
|
-
@chrome.splice @short_text, 5, 40, :alpha_blend => true # Chroma key apparently doesn't work either..
|
|
51
|
-
@chrome2.splice @short_text, 5, 40, :alpha_blend => true if TEST_CASE == 1
|
|
52
|
-
@chrome3.splice @short_text, 5, 40, :alpha_blend => true if TEST_CASE == 2
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def button_down(id)
|
|
56
|
-
close if id == Gosu::KbEscape
|
|
57
|
-
draw_text if id == Gosu::KbSpace
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
Wnd.new.show
|
|
62
|
-
|
|
1
|
+
$LOAD_PATH.unshift File.dirname(File.expand_path(__FILE__))
|
|
2
|
+
require 'common'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# TEST_CASE 1 shows 2 pieces of text, but the background is black, even with :chroma_key. TEST_CASE 2 shows nothing.
|
|
7
|
+
# However, if you remove the :chroma_key's, you see a black background (and no text) in TEST_CASE 2, so there, :chroma_key appears to work.
|
|
8
|
+
TEST_CASE = 1 # 1 shows everything, 2 shows nothing. Both, however, should show everything, and haev a working :chroma_key => :alpha
|
|
9
|
+
SYNC_TEST = false # Setting to true enables a force_sync.. but no matter where that is placed, it doesn't help
|
|
10
|
+
|
|
11
|
+
class Wnd < Gosu::Window
|
|
12
|
+
def initialize
|
|
13
|
+
super(500, 200, false)
|
|
14
|
+
self.caption = "Splice Issues"
|
|
15
|
+
|
|
16
|
+
@chrome = TexPlay::create_blank_image(self, 200, 200)
|
|
17
|
+
@chrome.fill 0, 0, :color => :purple
|
|
18
|
+
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
19
|
+
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
20
|
+
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
21
|
+
@chrome.rect rand(200),rand(200),rand(200),rand(200), :color => :blue
|
|
22
|
+
|
|
23
|
+
@chrome3 = @chrome.dup if TEST_CASE == 2
|
|
24
|
+
|
|
25
|
+
@short_text = Gosu::Image.from_text(self, "text", Gosu::default_font_name, 20)
|
|
26
|
+
@long_text = Gosu::Image.from_text(self, "This is a long piece of text..", Gosu::default_font_name, 20)
|
|
27
|
+
|
|
28
|
+
@chrome2 = @chrome.dup if TEST_CASE == 1
|
|
29
|
+
|
|
30
|
+
@chrome.splice @short_text, 5, 5, :alpha_blend => true
|
|
31
|
+
@chrome.splice @long_text, 5, 105, :alpha_blend => true
|
|
32
|
+
puts @long_text.get_pixel(2,2)
|
|
33
|
+
|
|
34
|
+
if TEST_CASE == 1
|
|
35
|
+
@chrome2.splice @short_text, 105, 5, :alpha_blend => true
|
|
36
|
+
@chrome2.splice @long_text, 105, 105, :alpha_blend => true
|
|
37
|
+
elsif TEST_CASE == 2
|
|
38
|
+
@chrome3.splice @short_text, 105, 5, :alpha_blend => true
|
|
39
|
+
@chrome3.splice @long_text, 105, 105, :alpha_blend => true
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def draw
|
|
44
|
+
@chrome.draw(0,0,1)
|
|
45
|
+
@chrome2.draw(200,0,1) if TEST_CASE == 1
|
|
46
|
+
@chrome3.draw(400,0,1) if TEST_CASE == 2
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def draw_text
|
|
50
|
+
@chrome.splice @short_text, 5, 40, :alpha_blend => true # Chroma key apparently doesn't work either..
|
|
51
|
+
@chrome2.splice @short_text, 5, 40, :alpha_blend => true if TEST_CASE == 1
|
|
52
|
+
@chrome3.splice @short_text, 5, 40, :alpha_blend => true if TEST_CASE == 2
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def button_down(id)
|
|
56
|
+
close if id == Gosu::KbEscape
|
|
57
|
+
draw_text if id == Gosu::KbSpace
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
Wnd.new.show
|
|
62
|
+
|