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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7c911427a4145fa18e7395c65f49ed58077c6d294f93ee9d24a840f621bcfeb
4
- data.tar.gz: e5ecc52cb87042b8e59fd64f48c358f19638a3a4f35a696072b3f49d95998eba
3
+ metadata.gz: '0394813335c89ce937297ef2c62819dc3c11f70dbbf74efd320eaf0a72f8b386'
4
+ data.tar.gz: 9acea3187bd120239a7c387fa272e252593dc7ce0afa73425f39f65fe0b2d6bb
5
5
  SHA512:
6
- metadata.gz: ce775dec5c87470a3c3aa88e37fae94ecfaab96616c381bf71cbab5c17325ec0b93ab6640be326185de6f4b5e44b6aec9438418f1e57a00a9955ac5e148d20e1
7
- data.tar.gz: 433efaf677bb1538096b1453591e5d28608fc20793bbcdd9e648f54e286eff7d63923496375520e5c560904883eb9385ac2837f67e4aabe7988f7d1d0fa4f23a
6
+ metadata.gz: 7d1824db8f17db944d6b1a2d6069b1acfcc4dafdf3d52facc2e5cdf0281108b825e89150e509c7e58ad8e2c7641d3ee9e6612f8486ebf9190ccd30cc48dbd1ae
7
+ data.tar.gz: bdefffaabba512793dddc3204d749a22968096f464a9107214630012585f40f2aedd294216af321c4ae83f4fd5eb11e24d2eaab4fd1486cb39c3ecb50714c00f
@@ -12,10 +12,10 @@ jobs:
12
12
  - name: checkout
13
13
  uses: actions/checkout@v2
14
14
 
15
- - name: ruby 2.6
15
+ - name: ruby 2.7
16
16
  uses: actions/setup-ruby@v1
17
17
  with:
18
- ruby-version: 2.6.x
18
+ ruby-version: 2.7.x
19
19
 
20
20
  - name: install gems
21
21
  run: |
@@ -13,10 +13,10 @@ jobs:
13
13
  steps:
14
14
  - uses: actions/checkout@v2
15
15
 
16
- - name: ruby 2.6
16
+ - name: ruby 2.7
17
17
  uses: actions/setup-ruby@v1
18
18
  with:
19
- ruby-version: 2.6.x
19
+ ruby-version: 2.7.x
20
20
 
21
21
  - name: install gems
22
22
  run: |
data/ChangeLog.md CHANGED
@@ -5,6 +5,7 @@
5
5
 
6
6
  - add key, keyCode and keyPressed system values
7
7
  - add keyPressed(), keyReleased() and keyTyped() functions
8
+ - add motionGravity value and motion() function
8
9
 
9
10
 
10
11
  ## [0.3.15] - 2020-12-12
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.16
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__.canvas
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__ @window__.canvas, @window__.canvas_painter.paint {background 0.8}
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__.canvas, @window__.canvas_painter
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.positions.map {|pos| Touch.new(*pos.to_a)}
1869
+ @touches__ = event.pointers.map {|p| Touch.new(p.id, *p.pos.to_a)}
1867
1870
  if pressed != nil
1868
- set, type = @pointersPressed__, event.pointer_type
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 unless @key__.empty?
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__.canvas, @window__.canvas_painter
2051
+ updateCanvas__ @window__.canvas_image, @window__.canvas_painter
2049
2052
  @painter__.__send__ :begin_paint
2050
2053
 
2051
2054
  @window__.auto_resize = false
@@ -10,12 +10,12 @@ module RubySketch
10
10
 
11
11
  attr_accessor :auto_resize
12
12
 
13
- attr_reader :canvas, :canvas_painter
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
- @canvas =
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
- root.on(:update) {|e| on_canvas_update e}
28
- root.on(:draw) {|e| on_canvas_draw e}
29
- root.on(:pointer) {|e| on_canvas_pointer e}
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 on_draw(e)
50
- update_canvas_view
52
+ def on_resize(e)
53
+ on_canvas_resize e
51
54
  end
52
55
 
53
- def on_resize(e)
54
- resize_canvas e.width, e.height if @auto_resize
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 @canvas
79
+ e.painter.image @canvas_image
78
80
  end
79
81
 
80
82
  def on_canvas_pointer(e)
81
- block = case e.type
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 == @canvas&.width &&
95
- height == @canvas&.height &&
101
+ unless width == @canvas_image&.width &&
102
+ height == @canvas_image&.height &&
96
103
  pixel_density == @canvas_painter&.pixel_density
97
104
 
98
- old_canvas = @canvas
105
+ old_image = @canvas_image
99
106
  old_painter = @canvas_painter
100
- cs = old_canvas&.color_space || Rays::RGBA
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
- @canvas = Rays::Image.new width, height, cs, pd
106
- @canvas_painter = @canvas.painter
112
+ @canvas_image = Rays::Image.new width, height, cs, pd
113
+ @canvas_painter = @canvas_image.painter
107
114
 
108
- if old_canvas
109
- @canvas_painter.paint {image old_canvas}
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
- root.scroll_to scrollx, scrolly
136
- root.zoom zoom
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 = width.to_f, height.to_f
141
- cw, ch = @canvas.width.to_f, @canvas.height.to_f
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
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.homepage = "https://github.com/xord/rubysketch"
27
27
 
28
28
  s.platform = Gem::Platform::RUBY
29
- s.required_ruby_version = '~> 2'
29
+ s.required_ruby_version = '>= 2.6.0'
30
30
 
31
31
  s.add_runtime_dependency 'reflexion', '~> 0.1'
32
32
 
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.16
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-02-13 00:00:00.000000000 Z
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: '2'
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.0.3
80
+ rubygems_version: 3.1.6
81
81
  signing_key:
82
82
  specification_version: 4
83
83
  summary: Processing like Creative Coding Framework.