rubysketch 0.3.16 → 0.3.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/release.yml +2 -2
- data/.github/workflows/test.yml +2 -2
- data/ChangeLog.md +1 -0
- data/VERSION +1 -1
- data/lib/rubysketch/processing.rb +16 -13
- data/lib/rubysketch/window.rb +32 -25
- data/rubysketch.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0394813335c89ce937297ef2c62819dc3c11f70dbbf74efd320eaf0a72f8b386'
|
4
|
+
data.tar.gz: 9acea3187bd120239a7c387fa272e252593dc7ce0afa73425f39f65fe0b2d6bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d1824db8f17db944d6b1a2d6069b1acfcc4dafdf3d52facc2e5cdf0281108b825e89150e509c7e58ad8e2c7641d3ee9e6612f8486ebf9190ccd30cc48dbd1ae
|
7
|
+
data.tar.gz: bdefffaabba512793dddc3204d749a22968096f464a9107214630012585f40f2aedd294216af321c4ae83f4fd5eb11e24d2eaab4fd1486cb39c3ecb50714c00f
|
data/.github/workflows/test.yml
CHANGED
data/ChangeLog.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.17
|
@@ -708,6 +708,10 @@ module RubySketch
|
|
708
708
|
#
|
709
709
|
class Touch
|
710
710
|
|
711
|
+
# Identifier of each touch
|
712
|
+
#
|
713
|
+
attr_reader :id
|
714
|
+
|
711
715
|
# Horizontal position of touch
|
712
716
|
#
|
713
717
|
attr_reader :x
|
@@ -717,12 +721,8 @@ module RubySketch
|
|
717
721
|
attr_reader :y
|
718
722
|
|
719
723
|
# @private
|
720
|
-
def initialize(x, y)
|
721
|
-
@x, @y = x, y
|
722
|
-
end
|
723
|
-
|
724
|
-
def id()
|
725
|
-
raise NotImplementedError
|
724
|
+
def initialize(id, x, y)
|
725
|
+
@id, @x, @y = id, x, y
|
726
726
|
end
|
727
727
|
|
728
728
|
end# Touch
|
@@ -1591,7 +1591,7 @@ module RubySketch
|
|
1591
1591
|
#
|
1592
1592
|
def copy(img = nil, sx, sy, sw, sh, dx, dy, dw, dh)
|
1593
1593
|
assertDrawing__
|
1594
|
-
src = img&.getInternal__ || @window__.
|
1594
|
+
src = img&.getInternal__ || @window__.canvas_image
|
1595
1595
|
@painter__.image src, sx, sy, sw, sh, dx, dy, dw, dh
|
1596
1596
|
end
|
1597
1597
|
|
@@ -1817,7 +1817,9 @@ module RubySketch
|
|
1817
1817
|
tmpdir__.tap {|dir| FileUtils.rm_r dir.to_s if dir.directory?}
|
1818
1818
|
|
1819
1819
|
@window__ = window
|
1820
|
-
init__
|
1820
|
+
init__(
|
1821
|
+
@window__.canvas_image,
|
1822
|
+
@window__.canvas_painter.paint {background 0.8})
|
1821
1823
|
|
1822
1824
|
@loop__ = true
|
1823
1825
|
@redraw__ = false
|
@@ -1829,12 +1831,13 @@ module RubySketch
|
|
1829
1831
|
@pointerPrevPos__ = [0, 0]
|
1830
1832
|
@pointersPressed__ = Set.new
|
1831
1833
|
@touches__ = []
|
1834
|
+
@motionGravity__ = createVector 0, 0
|
1832
1835
|
|
1833
1836
|
@window__.before_draw = proc {beginDraw__}
|
1834
1837
|
@window__.after_draw = proc {endDraw__}
|
1835
1838
|
|
1836
1839
|
drawFrame = -> {
|
1837
|
-
updateCanvas__ @window__.
|
1840
|
+
updateCanvas__ @window__.canvas_image, @window__.canvas_painter
|
1838
1841
|
begin
|
1839
1842
|
push
|
1840
1843
|
@drawBlock__.call if @drawBlock__
|
@@ -1863,9 +1866,9 @@ module RubySketch
|
|
1863
1866
|
|
1864
1867
|
updatePointerStates = -> event, pressed = nil {
|
1865
1868
|
@pointerPos__ = event.pos.to_a
|
1866
|
-
@touches__ = event.
|
1869
|
+
@touches__ = event.pointers.map {|p| Touch.new(p.id, *p.pos.to_a)}
|
1867
1870
|
if pressed != nil
|
1868
|
-
set, type = @pointersPressed__, event.
|
1871
|
+
set, type = @pointersPressed__, event.type
|
1869
1872
|
pressed ? set.add(type) : set.delete(type)
|
1870
1873
|
end
|
1871
1874
|
}
|
@@ -1873,7 +1876,7 @@ module RubySketch
|
|
1873
1876
|
@window__.key_down = proc do |e|
|
1874
1877
|
updateKeyStates.call e, true
|
1875
1878
|
@keyPressedBlock__&.call
|
1876
|
-
@keyTypedBlock__&.call
|
1879
|
+
@keyTypedBlock__&.call if @key__ && !@key__.empty?
|
1877
1880
|
end
|
1878
1881
|
|
1879
1882
|
@window__.key_up = proc do |e|
|
@@ -2045,7 +2048,7 @@ module RubySketch
|
|
2045
2048
|
|
2046
2049
|
@painter__.__send__ :end_paint
|
2047
2050
|
@window__.__send__ :resize_canvas, width, height, pixelDensity
|
2048
|
-
updateCanvas__ @window__.
|
2051
|
+
updateCanvas__ @window__.canvas_image, @window__.canvas_painter
|
2049
2052
|
@painter__.__send__ :begin_paint
|
2050
2053
|
|
2051
2054
|
@window__.auto_resize = false
|
data/lib/rubysketch/window.rb
CHANGED
@@ -10,12 +10,12 @@ module RubySketch
|
|
10
10
|
|
11
11
|
attr_accessor :auto_resize
|
12
12
|
|
13
|
-
attr_reader :
|
13
|
+
attr_reader :canvas_image, :canvas_painter
|
14
14
|
|
15
15
|
def initialize(width = 500, height = 500, *args, **kwargs, &block)
|
16
16
|
RubySketch.instance_variable_set :@window, self
|
17
17
|
|
18
|
-
@
|
18
|
+
@canvas_image =
|
19
19
|
@canvas_painter = nil
|
20
20
|
@events = []
|
21
21
|
@auto_resize = true
|
@@ -24,9 +24,12 @@ module RubySketch
|
|
24
24
|
painter.miter_limit = 10
|
25
25
|
resize_canvas 1, 1
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
@canvas_view = add Reflex::View.new {|v|
|
28
|
+
v.on(:update) {|e| on_canvas_update e}
|
29
|
+
v.on(:draw) {|e| on_canvas_draw e}
|
30
|
+
v.on(:pointer) {|e| on_canvas_pointer e}
|
31
|
+
v.on(:resize) {|e| on_canvas_resize e}
|
32
|
+
}
|
30
33
|
|
31
34
|
super(*args, size: [width, height], **kwargs, &block)
|
32
35
|
end
|
@@ -46,13 +49,12 @@ module RubySketch
|
|
46
49
|
call_block @setup, nil
|
47
50
|
end
|
48
51
|
|
49
|
-
def
|
50
|
-
|
52
|
+
def on_resize(e)
|
53
|
+
on_canvas_resize e
|
51
54
|
end
|
52
55
|
|
53
|
-
def
|
54
|
-
|
55
|
-
draw_canvas {call_block @resize, e} if @resize
|
56
|
+
def on_draw(e)
|
57
|
+
update_canvas_view
|
56
58
|
end
|
57
59
|
|
58
60
|
def on_key(e)
|
@@ -69,16 +71,16 @@ module RubySketch
|
|
69
71
|
|
70
72
|
def on_canvas_update(e)
|
71
73
|
call_block @update, e
|
72
|
-
redraw
|
74
|
+
@canvas_view.redraw
|
73
75
|
end
|
74
76
|
|
75
77
|
def on_canvas_draw(e)
|
76
78
|
draw_canvas {call_block @draw, e} if @draw
|
77
|
-
e.painter.image @
|
79
|
+
e.painter.image @canvas_image
|
78
80
|
end
|
79
81
|
|
80
82
|
def on_canvas_pointer(e)
|
81
|
-
block = case e.
|
83
|
+
block = case e.action
|
82
84
|
when :down then @pointer_down
|
83
85
|
when :up then @pointer_up
|
84
86
|
when :move then e.drag? ? @pointer_drag : @pointer_move
|
@@ -86,27 +88,32 @@ module RubySketch
|
|
86
88
|
draw_canvas {call_block block, e} if block
|
87
89
|
end
|
88
90
|
|
91
|
+
def on_canvas_resize(e)
|
92
|
+
resize_canvas e.width, e.height if @auto_resize
|
93
|
+
draw_canvas {call_block @resize, e} if @resize
|
94
|
+
end
|
95
|
+
|
89
96
|
private
|
90
97
|
|
91
98
|
def resize_canvas(width, height, pixel_density = nil)
|
92
99
|
return nil if width * height == 0
|
93
100
|
|
94
|
-
unless width == @
|
95
|
-
height == @
|
101
|
+
unless width == @canvas_image&.width &&
|
102
|
+
height == @canvas_image&.height &&
|
96
103
|
pixel_density == @canvas_painter&.pixel_density
|
97
104
|
|
98
|
-
|
105
|
+
old_image = @canvas_image
|
99
106
|
old_painter = @canvas_painter
|
100
|
-
cs =
|
107
|
+
cs = old_image&.color_space || Rays::RGBA
|
101
108
|
pd = pixel_density ||
|
102
109
|
old_painter&.pixel_density ||
|
103
110
|
painter .pixel_density
|
104
111
|
|
105
|
-
@
|
106
|
-
@canvas_painter = @
|
112
|
+
@canvas_image = Rays::Image.new width, height, cs, pd
|
113
|
+
@canvas_painter = @canvas_image.painter
|
107
114
|
|
108
|
-
if
|
109
|
-
@canvas_painter.paint {image
|
115
|
+
if old_image
|
116
|
+
@canvas_painter.paint {image old_image}
|
110
117
|
copy_painter_attributes old_painter, @canvas_painter
|
111
118
|
end
|
112
119
|
|
@@ -132,13 +139,13 @@ module RubySketch
|
|
132
139
|
|
133
140
|
def update_canvas_view()
|
134
141
|
scrollx, scrolly, zoom = get_scroll_and_zoom
|
135
|
-
|
136
|
-
|
142
|
+
@canvas_view.scroll_to scrollx, scrolly
|
143
|
+
@canvas_view.zoom zoom
|
137
144
|
end
|
138
145
|
|
139
146
|
def get_scroll_and_zoom()
|
140
|
-
ww, wh =
|
141
|
-
cw, ch = @
|
147
|
+
ww, wh = width.to_f, height.to_f
|
148
|
+
cw, ch = @canvas_image.width.to_f, @canvas_image.height.to_f
|
142
149
|
return [0, 0, 1] if ww == 0 || wh == 0 || cw == 0 || ch == 0
|
143
150
|
|
144
151
|
wratio, cratio = ww / wh, cw / ch
|
data/rubysketch.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysketch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- xordog
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: reflexion
|
@@ -68,16 +68,16 @@ require_paths:
|
|
68
68
|
- lib
|
69
69
|
required_ruby_version: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- - "
|
71
|
+
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
73
|
+
version: 2.6.0
|
74
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
76
|
- - ">="
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '0'
|
79
79
|
requirements: []
|
80
|
-
rubygems_version: 3.
|
80
|
+
rubygems_version: 3.1.6
|
81
81
|
signing_key:
|
82
82
|
specification_version: 4
|
83
83
|
summary: Processing like Creative Coding Framework.
|