rubysketch 0.3.16 → 0.3.17
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/.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.
|