processing 0.5.31 → 0.5.33
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +57 -0
- data/VERSION +1 -1
- data/lib/processing/all.rb +3 -1
- data/lib/processing/context.rb +103 -16
- data/lib/processing/events.rb +22 -0
- data/lib/processing/font.rb +30 -3
- data/lib/processing/graphics.rb +2 -13
- data/lib/processing/graphics_context.rb +820 -107
- data/lib/processing/image.rb +38 -10
- data/lib/processing/shape.rb +152 -33
- data/lib/processing/window.rb +96 -58
- data/processing.gemspec +4 -4
- data/test/helper.rb +7 -5
- data/test/p5.rb +6 -5
- data/test/test_font.rb +33 -2
- data/test/test_graphics_context.rb +662 -8
- data/test/test_image.rb +21 -0
- data/test/test_shape.rb +125 -0
- data/test/test_utility.rb +0 -19
- metadata +12 -11
data/test/p5.rb
CHANGED
@@ -13,7 +13,7 @@ def browser(width, height, headless: true)
|
|
13
13
|
hash[key] ||= Ferrum::Browser.new headless: headless, window_size: [width, height]
|
14
14
|
end
|
15
15
|
|
16
|
-
def get_p5rb_html(width, height, draw_src)
|
16
|
+
def get_p5rb_html(width, height, draw_src, webgl: false)
|
17
17
|
<<~END
|
18
18
|
<html>
|
19
19
|
<head>
|
@@ -34,9 +34,10 @@ def get_p5rb_html(width, height, draw_src)
|
|
34
34
|
</script>
|
35
35
|
<script type="text/ruby">
|
36
36
|
def setup()
|
37
|
-
createCanvas #{width}, #{height}
|
37
|
+
createCanvas #{width}, #{height}#{webgl ? ', WEBGL' : ''}
|
38
38
|
end
|
39
39
|
def draw()
|
40
|
+
#{webgl ? 'translate -width / 2, -height / 2' : ''}
|
40
41
|
#{draw_src}
|
41
42
|
JS.global.completed
|
42
43
|
end
|
@@ -48,7 +49,7 @@ def get_p5rb_html(width, height, draw_src)
|
|
48
49
|
END
|
49
50
|
end
|
50
51
|
|
51
|
-
def sleep_until
|
52
|
+
def sleep_until(try: 3, timeout: 10, &block)
|
52
53
|
now = -> offset = 0 {Time.now.to_f + offset}
|
53
54
|
limit = now[timeout]
|
54
55
|
until block.call
|
@@ -62,11 +63,11 @@ def sleep_until (try: 3, timeout: 10, &block)
|
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
65
|
-
def draw_p5rb(width, height, draw_src, path, headless: true)
|
66
|
+
def draw_p5rb(width, height, draw_src, path, headless: true, webgl: false)
|
66
67
|
b = browser width, height, headless: headless
|
67
68
|
unless File.exist? path
|
68
69
|
b.reset
|
69
|
-
b.main_frame.content = get_p5rb_html width, height, draw_src
|
70
|
+
b.main_frame.content = get_p5rb_html width, height, draw_src, webgl: webgl
|
70
71
|
sleep_until do
|
71
72
|
b.evaluate 'document.querySelector("#completed") != null'
|
72
73
|
end
|
data/test/test_font.rb
CHANGED
@@ -5,12 +5,43 @@ class TestFont < Test::Unit::TestCase
|
|
5
5
|
|
6
6
|
P = Processing
|
7
7
|
|
8
|
-
def font()
|
9
|
-
P::Font.new
|
8
|
+
def font(*args)
|
9
|
+
P::Font.new(Rays::Font.new(*args)).tap {|font|
|
10
|
+
def font.intern()
|
11
|
+
getInternal__
|
12
|
+
end
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_initialize()
|
17
|
+
assert_not_nil font(nil) .intern.name
|
18
|
+
assert_equal 'Arial', font('Arial').intern.name
|
19
|
+
|
20
|
+
assert_equal 12, font .intern.size
|
21
|
+
assert_equal 10, font(nil, 10).intern.size
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_size()
|
25
|
+
f = font nil, 10
|
26
|
+
id = f.intern.object_id
|
27
|
+
|
28
|
+
assert_equal 10, f.intern.size
|
29
|
+
|
30
|
+
f.setSize__ 11
|
31
|
+
assert_equal 11, f.intern.size
|
32
|
+
assert_not_equal id, f.intern.object_id
|
33
|
+
|
34
|
+
f.setSize__ 10
|
35
|
+
assert_equal 10, f.intern.size
|
36
|
+
assert_equal id, f.intern.object_id
|
10
37
|
end
|
11
38
|
|
12
39
|
def test_inspect()
|
13
40
|
assert_match %r|#<Processing::Font: name:'[\w\s]+' size:[\d\.]+>|, font.inspect
|
14
41
|
end
|
15
42
|
|
43
|
+
def test_list()
|
44
|
+
assert_not P::Font.list.empty?
|
45
|
+
end
|
46
|
+
|
16
47
|
end# TestFont
|