processing 0.5.31 → 0.5.33
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 +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
|