processing 0.4.0 → 0.5.1

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/{release.yml → release-gem.yml} +21 -21
  3. data/.github/workflows/tag.yml +35 -0
  4. data/.github/workflows/test.yml +8 -9
  5. data/.github/workflows/utils.rb +55 -0
  6. data/ChangeLog.md +40 -28
  7. data/LICENSE +1 -1
  8. data/Rakefile +9 -34
  9. data/RubyProcessing.podspec +1 -1
  10. data/VERSION +1 -1
  11. data/examples/breakout.rb +2 -1
  12. data/examples/camera.rb +2 -1
  13. data/examples/clock.rb +3 -1
  14. data/examples/delay_camera.rb +2 -1
  15. data/examples/hello.rb +2 -1
  16. data/examples/image.rb +2 -1
  17. data/examples/shapes.rb +2 -1
  18. data/lib/processing/all.rb +20 -0
  19. data/lib/processing/capture.rb +119 -0
  20. data/lib/processing/context.rb +471 -0
  21. data/lib/processing/{module.rb → extension.rb} +3 -3
  22. data/lib/processing/font.rb +62 -0
  23. data/lib/processing/graphics.rb +40 -0
  24. data/lib/processing/graphics_context.rb +1676 -0
  25. data/lib/processing/image.rb +128 -0
  26. data/lib/processing/shader.rb +157 -0
  27. data/lib/processing/touch.rb +28 -0
  28. data/lib/processing/vector.rb +559 -0
  29. data/lib/processing.rb +30 -11
  30. data/lib/rubysketch-processing.rb +2 -1
  31. data/lib/rubysketch.rb +1 -1
  32. data/processing.gemspec +12 -6
  33. data/src/RubyProcessing.mm +1 -1
  34. data/test/helper.rb +8 -2
  35. data/test/{processing/test_graphics.rb → test_graphics.rb} +3 -3
  36. data/test/{processing/test_shader.rb → test_shader.rb} +3 -3
  37. data/test/{processing/test_utility.rb → test_utility.rb} +3 -3
  38. data/test/{processing/test_vector.rb → test_vector.rb} +8 -4
  39. metadata +112 -20
  40. data/lib/processing/include.rb +0 -25
  41. data/lib/processing/processing.rb +0 -3211
  42. data/test/processing/helper.rb +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b0e4311319c994f90579dafbd3a62b50f623977f6c60c26ba9f0b77a150b564
4
- data.tar.gz: d7f5d796d918ed68ba50cb20fc148a7548b8a84dce0901a4ce1f7236740a994a
3
+ metadata.gz: 7c2e51ddc5b4af3e0703b5c7df0dffb20a61bf2069c0796cea4b9c781b6a5e2a
4
+ data.tar.gz: 6cec5d1765224bcd50b960370969eeae686965a057936a958581293447d0f0c7
5
5
  SHA512:
6
- metadata.gz: b176e101c82a244f61fa3210f5d6902c86f92f94eaac24858e4ab6671fc6983015f64d601d4f8e691ae7351002183cd350b31e27231407e7cc0b7aeb732cdbbd
7
- data.tar.gz: 6d450c5cfaeb5280ab0f600afd421581ceb2dfe25b672f93ea4bfd9ebefd1afacae8ba54c73408bafe828e4522fe003c676299e501831e77c74fd8ab69efdbb7
6
+ metadata.gz: 6d3f30687d9eaf5f009d8ee8acec6008bb400a90d5424054e0261ddba603e549a15521466c650b0ae8614dad34796a49145a88996d06975021a4345da295cdfe
7
+ data.tar.gz: a2f643357b3f4950bda9a58e6f40d35919c27cf2097ac1570e99ffe4498771d3a90fa51ace2ede6910b64c90b749d2b7b67112a9fb19eed57cceda8908690784
@@ -1,4 +1,4 @@
1
- name: Release
1
+ name: Release Gem
2
2
 
3
3
  on:
4
4
  push:
@@ -9,46 +9,46 @@ jobs:
9
9
  runs-on: macos-latest
10
10
 
11
11
  steps:
12
+ - name: ruby 3.2
13
+ uses: ruby/setup-ruby@v1
14
+ with:
15
+ ruby-version: 3.2
16
+
12
17
  - name: checkout
13
18
  uses: actions/checkout@v2
14
19
 
15
- - name: ruby 3.0
16
- uses: actions/setup-ruby@v1
17
- with:
18
- ruby-version: 3.0.x
20
+ - name: setup dependencies
21
+ run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
19
22
 
20
23
  - name: install gems
21
- run: |
22
- gem install bundler
23
- bundle install --jobs 4 --retry 3
24
+ run: gem install yard
24
25
 
25
- - name: version
26
- id: version
27
- run: |
28
- echo ::set-output name=value::$(ruby -e 'print "${{ github.ref }}"[/\/v([\w\.\-]+)/, 1]')
26
+ - name: test
27
+ run: rake test
29
28
 
30
29
  - name: create gem
31
- run: rake clean gem
30
+ id: gem
31
+ run: |
32
+ rake gem
33
+ echo path=$(ruby -e 'print Dir.glob("*.gem").first') >> $GITHUB_OUTPUT
32
34
 
33
- - name: create release
34
- id: create_release
35
+ - name: create github release
36
+ id: release
35
37
  uses: actions/create-release@v1
36
38
  env:
37
39
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38
40
  with:
39
41
  tag_name: ${{ github.ref }}
40
42
  release_name: ${{ github.ref }}
41
- draft: false
42
- prerelease: false
43
43
 
44
- - name: upload to releases
44
+ - name: upload to github release
45
45
  uses: actions/upload-release-asset@v1
46
46
  env:
47
47
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48
48
  with:
49
- upload_url: ${{ steps.create_release.outputs.upload_url }}
50
- asset_path: ./processing-${{ steps.version.outputs.value }}.gem
51
- asset_name: processing-${{ steps.version.outputs.value }}.gem
49
+ upload_url: ${{ steps.release.outputs.upload_url }}
50
+ asset_path: ./${{ steps.gem.outputs.path }}
51
+ asset_name: ${{ steps.gem.outputs.path }}
52
52
  asset_content_type: application/zip
53
53
 
54
54
  - name: upload to rubygems
@@ -0,0 +1,35 @@
1
+ name: Tag
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+
7
+ jobs:
8
+ tag:
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - name: ruby 3.2
13
+ uses: ruby/setup-ruby@v1
14
+ with:
15
+ ruby-version: 3.2
16
+
17
+ - name: checkout
18
+ uses: actions/checkout@v2
19
+ with:
20
+ fetch-depth: 0
21
+ token: ${{ secrets.PAT }}
22
+
23
+ - name: setup dependencies
24
+ run: "ruby -I.github/workflows -rutils -e 'setup_dependencies only: :xot'"
25
+
26
+ - name: setup user name and email
27
+ run: |
28
+ git config --global user.email "xordog@gmail.com"
29
+ git config --global user.name "xord"
30
+
31
+ - name: tag versions
32
+ run: "ruby -I.github/workflows -rutils -e 'tag_versions'"
33
+
34
+ - name: push tags
35
+ run: git push origin --tags
@@ -11,17 +11,16 @@ jobs:
11
11
  runs-on: macos-latest
12
12
 
13
13
  steps:
14
- - uses: actions/checkout@v2
15
-
16
- - name: ruby 3.0
17
- uses: actions/setup-ruby@v1
14
+ - name: ruby 3.2
15
+ uses: ruby/setup-ruby@v1
18
16
  with:
19
- ruby-version: 3.0.x
17
+ ruby-version: 3.2
18
+
19
+ - name: checkout
20
+ uses: actions/checkout@v2
20
21
 
21
- - name: install gems
22
- run: |
23
- gem install bundler
24
- bundle install --jobs 4 --retry 3
22
+ - name: setup dependencies
23
+ run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
25
24
 
26
25
  - name: test
27
26
  run: rake test
@@ -0,0 +1,55 @@
1
+ RENAMES = {reflex: 'reflexion'}
2
+
3
+ def sh(cmd)
4
+ puts cmd
5
+ system cmd
6
+ end
7
+
8
+ def setup_dependencies(build: true, only: nil)
9
+ gemspec_path = `git ls-files`.lines(chomp: true).find {|l| l =~ /\.gemspec$/}
10
+ return unless gemspec_path
11
+
12
+ gemspec = File.read gemspec_path
13
+ name = File.basename gemspec_path, '.gemspec'
14
+
15
+ exts = File.readlines('Rakefile')
16
+ .map {|l| l[%r|^\s*require\W+(\w+)/extension\W+$|, 1]}
17
+ .compact
18
+ .reject {|ext| ext == name}
19
+ exts = exts & [only].flatten.map(&:to_s) if only
20
+
21
+ exts.each do |ext|
22
+ gem = RENAMES[ext.to_sym].then {|s| s || ext}
23
+ clone = "git clone --depth 1 https://github.com/xord/#{ext}.git ../#{ext}"
24
+ ver = gemspec[/add_runtime_dependency.*['"]#{gem}['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/, 1]
25
+
26
+ # 'rake subtree:push' pushes all subrepos, so cloning by new tag
27
+ # often fails before tagging each new tag
28
+ sh %( #{clone} --branch v#{ver} || #{clone} )
29
+ sh %( cd ../#{ext} && rake ext )
30
+ end
31
+ end
32
+
33
+ def tag_versions()
34
+ tags = `git tag`.lines chomp: true
35
+ vers = `git log --oneline ./VERSION`
36
+ .lines(chomp: true)
37
+ .map {|line| line.split.first[/^\w+$/]}
38
+ .map {|hash| [`git cat-file -p #{hash}:./VERSION 2>/dev/null`[/[\d\.]+/], hash]}
39
+ .select {|ver, hash| ver && hash}
40
+ .reverse
41
+ .to_h
42
+
43
+ changes = File.read('ChangeLog.md')
44
+ .split(/^\s*##\s*\[\s*v([\d\.]+)\s*\].*$/)
45
+ .slice(1..-1)
46
+ .each_slice(2)
47
+ .to_h
48
+ .transform_values(&:strip!)
49
+
50
+ vers.to_a.reverse.each do |ver, hash|
51
+ tag = "v#{ver}"
52
+ break if tags.include?(tag)
53
+ sh %( git tag -a -m \"#{changes[ver]&.gsub '"', '\\"'}\" #{tag} #{hash} )
54
+ end
55
+ end
data/ChangeLog.md CHANGED
@@ -1,14 +1,26 @@
1
- # Processing for CRuby ChangeLog
1
+ # processing ChangeLog
2
2
 
3
3
 
4
- ## [0.4.0] - 2022-12-29
4
+ ## [v0.5.1] - 2023-03-01
5
+
6
+ - requiring 'rubysketch-processing' is deprecated
7
+
8
+
9
+ ## [v0.5.0] - 2023-02-09
10
+
11
+ - requiring 'processing/include' is deprecated
12
+ - require 'processing' and 'using Processing' is now required
13
+ - do not show the window if a draw block is not given
14
+
15
+
16
+ ## [v0.4.0] - 2022-12-29
5
17
 
6
18
  - renamed from rubysketch.gem to processing.gem
7
19
  - renamed from RubySketch Pod to RubyProcessing Pod
8
20
  - delete glsl mode
9
21
 
10
22
 
11
- ## [0.3.22] - 2022-11-14
23
+ ## [v0.3.22] - 2022-11-14
12
24
 
13
25
  RubySketch::Processing
14
26
  - add Shader class
@@ -22,7 +34,7 @@ RubySketch::GLSL
22
34
  - displays with pixel density 1.0
23
35
 
24
36
 
25
- ## [0.3.21] - 2022-09-05
37
+ ## [v0.3.21] - 2022-09-05
26
38
 
27
39
  - add rubysketch-glsl.rb
28
40
  - add blend(), createImage(), setTitle(), tint() and noTint()
@@ -32,7 +44,7 @@ RubySketch::GLSL
32
44
  - change initial values for strokeCap and strokeJoin to ROUND and MITER
33
45
 
34
46
 
35
- ## [0.3.20] - 2022-07-24
47
+ ## [v0.3.20] - 2022-07-24
36
48
 
37
49
  - add mouseClicked()
38
50
  - add blendMode()
@@ -41,73 +53,73 @@ RubySketch::GLSL
41
53
  - fix that resizing canvas consumes too much memory
42
54
 
43
55
 
44
- ## [0.3.19] - 2021-12-5
56
+ ## [v0.3.19] - 2021-12-5
45
57
 
46
58
  - fix runtime error
47
59
 
48
60
 
49
- ## [0.3.18] - 2021-12-5
61
+ ## [v0.3.18] - 2021-12-5
50
62
 
51
63
  - add 'mouseButton'
52
64
  - pointer cancel event calls pointer_up block
53
65
 
54
66
 
55
- ## [0.3.17] - 2021-12-5
67
+ ## [v0.3.17] - 2021-12-5
56
68
 
57
69
  - add Touch#id
58
70
 
59
71
 
60
- ## [0.3.16] - 2021-2-14
72
+ ## [v0.3.16] - 2021-2-14
61
73
 
62
74
  - add key, keyCode and keyPressed system values
63
75
  - add keyPressed(), keyReleased() and keyTyped() functions
64
76
  - add motionGravity value and motion() function
65
77
 
66
78
 
67
- ## [0.3.15] - 2020-12-12
79
+ ## [v0.3.15] - 2020-12-12
68
80
 
69
81
  - delete temporary directory on launch
70
82
 
71
83
 
72
- ## [0.3.14] - 2020-12-12
84
+ ## [v0.3.14] - 2020-12-12
73
85
 
74
86
  - fix loadImage() fails when Encoding.default_internal is not nil
75
87
 
76
88
 
77
- ## [0.3.13] - 2020-12-12
89
+ ## [v0.3.13] - 2020-12-12
78
90
 
79
91
  - size(), createCanvas(): default pixelDensity is same as current value
80
92
 
81
93
 
82
- ## [0.3.12] - 2020-12-10
94
+ ## [v0.3.12] - 2020-12-10
83
95
 
84
96
  - size() and createCanvas() take 'pixelDensity' parameter and default value is 1
85
97
 
86
98
 
87
- ## [0.3.11] - 2020-12-9
99
+ ## [v0.3.11] - 2020-12-9
88
100
 
89
101
  - add size(), createCanvas() and pixelDensity()
90
102
 
91
103
 
92
- ## [0.3.10] - 2020-12-1
104
+ ## [v0.3.10] - 2020-12-1
93
105
 
94
106
  - invert angle parameter value for arc() to fix compatibility to processing API
95
107
 
96
108
 
97
- ## [0.3.9] - 2020-11-30
109
+ ## [v0.3.9] - 2020-11-30
98
110
 
99
111
  - Graphics#beginDraw() can take block to call endDraw automatically
100
112
  - Capture#start() always returns nil
101
113
  - add delay_camera.rb
102
114
 
103
115
 
104
- ## [0.3.8] - 2020-11-27
116
+ ## [v0.3.8] - 2020-11-27
105
117
 
106
118
  - Capture#initialize() can take requestWidth, requestHeight and cameraName
107
119
  - add Capture#width and Capture#height
108
120
 
109
121
 
110
- ## [0.3.7] - 2020-11-18
122
+ ## [v0.3.7] - 2020-11-18
111
123
 
112
124
  - add Capture class
113
125
  - add log(), exp(), sqrt() and PI
@@ -116,13 +128,13 @@ RubySketch::GLSL
116
128
  - fix error on calling image()
117
129
 
118
130
 
119
- ## [0.3.6] - 2020-08-02
131
+ ## [v0.3.6] - 2020-08-02
120
132
 
121
133
  - random() can take array or nothing
122
134
  - use github actions to release gem package
123
135
 
124
136
 
125
- ## [0.3.5] - 2020-08-02
137
+ ## [v0.3.5] - 2020-08-02
126
138
 
127
139
  - add random()
128
140
  - add sin(), cos(), tan(), asin(), acos(), atan() and atan2()
@@ -130,17 +142,17 @@ RubySketch::GLSL
130
142
  - fix error on calling rotate()
131
143
 
132
144
 
133
- ## [0.3.4] - 2020-08-02
145
+ ## [v0.3.4] - 2020-08-02
134
146
 
135
147
  - delete Utility module
136
148
 
137
149
 
138
- ## [0.3.3] - 2020-08-01
150
+ ## [v0.3.3] - 2020-08-01
139
151
 
140
152
  - add Vector class
141
153
 
142
154
 
143
- ## [0.3.2] - 2020-07-22
155
+ ## [v0.3.2] - 2020-07-22
144
156
 
145
157
  - text() draws to the baseline by default
146
158
  - add textWidth(), textAscent(), textDescent() and textAlign()
@@ -148,24 +160,24 @@ RubySketch::GLSL
148
160
  - change initial background color to grayscale 0.8
149
161
 
150
162
 
151
- ## [0.3.1] - 2020-07-17
163
+ ## [v0.3.1] - 2020-07-17
152
164
 
153
165
  - add touchStarted(), touchEnded(), touchMoved() and touches()
154
166
  - make all event handler drawable
155
167
  - limit font max size to 256
156
168
 
157
169
 
158
- ## [0.3.0] - 2020-05-21
170
+ ## [v0.3.0] - 2020-05-21
159
171
 
160
172
  - add createGraphics()
161
173
 
162
174
 
163
- ## [0.2.7] - 2020-04-17
175
+ ## [v0.2.7] - 2020-04-17
164
176
 
165
177
  - add strokeCap() and strokeJoin()
166
178
 
167
179
 
168
- ## [0.2.6] - 2020-04-17
180
+ ## [v0.2.6] - 2020-04-17
169
181
 
170
182
  - push(), pushMatrix() and pushStyle() take block to automatic pop
171
183
  - refine startup process
@@ -174,7 +186,7 @@ RubySketch::GLSL
174
186
  - add loop(), noLoop() and redraw()
175
187
 
176
188
 
177
- ## [0.2.5] - 2020-03-29
189
+ ## [v0.2.5] - 2020-03-29
178
190
 
179
191
  - delete debug prints
180
192
  - show unsupported image type
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2019 xord.org
3
+ Copyright (c) 2023 xord.org
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/Rakefile CHANGED
@@ -1,50 +1,25 @@
1
1
  # -*- mode: ruby -*-
2
2
 
3
3
 
4
- %w[../xot ../rucy ../rays ../reflex .]
4
+ %w[../xot ../rucy ../beeps ../rays ../reflex .]
5
5
  .map {|s| File.expand_path "#{s}/lib", __dir__}
6
6
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
7
7
 
8
8
  require 'rucy/rake'
9
9
 
10
- require 'xot/module'
11
- require 'rucy/module'
12
- require 'rays/module'
13
- require 'reflex/module'
14
- require 'processing/module'
10
+ require 'xot/extension'
11
+ require 'rucy/extension'
12
+ require 'beeps/extension'
13
+ require 'rays/extension'
14
+ require 'reflex/extension'
15
+ require 'processing/extension'
15
16
 
16
17
 
17
- MODULES = [Xot, Rucy, Rays, Reflex, Processing]
18
+ EXTENSIONS = [Xot, Rucy, Beeps, Rays, Reflex, Processing]
18
19
 
19
20
  ENV['RDOC'] = 'yardoc --no-private'
20
21
 
22
+ default_tasks
21
23
  test_ruby_extension
22
24
  generate_documents
23
25
  build_ruby_gem
24
-
25
- task :default
26
-
27
-
28
- namespace :version do
29
-
30
- namespace :bump do
31
-
32
- task :major do
33
- update_and_tag_version 0
34
- end
35
-
36
- task :minor do
37
- update_and_tag_version 1
38
- end
39
-
40
- task :patch do
41
- update_and_tag_version 2
42
- end
43
-
44
- task :build do
45
- update_and_tag_version 3
46
- end
47
-
48
- end# bump
49
-
50
- end# version
@@ -3,7 +3,7 @@
3
3
 
4
4
  Pod::Spec.new do |s|
5
5
  s.name = "RubyProcessing"
6
- s.version = File.readlines(File.expand_path 'VERSION', __dir__)[0].chomp
6
+ s.version = File.read(File.expand_path 'VERSION', __dir__)[/[\d\.]+/]
7
7
  s.summary = "Yet Another Processing implementation for Ruby"
8
8
  s.description = "Yet Another Processing implementation for Ruby"
9
9
  s.license = "MIT"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.1
data/examples/breakout.rb CHANGED
@@ -2,7 +2,8 @@
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
5
- require 'processing/include'
5
+ require 'processing'
6
+ using Processing
6
7
 
7
8
 
8
9
  PADDING = 50
data/examples/camera.rb CHANGED
@@ -2,7 +2,8 @@
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
5
- require 'processing/include'
5
+ require 'processing'
6
+ using Processing
6
7
 
7
8
 
8
9
  cam = Capture.new 300, 300
data/examples/clock.rb CHANGED
@@ -2,7 +2,9 @@
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
5
- require 'processing/include'
5
+ require 'processing'
6
+ using Processing
7
+
6
8
 
7
9
  COLORS = %w[ #F99292 #FFBC61 #FFC679 #FFF4E0 ]
8
10
 
@@ -2,7 +2,8 @@
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
5
- require 'processing/include'
5
+ require 'processing'
6
+ using Processing
6
7
 
7
8
 
8
9
  w, h = width, height
data/examples/hello.rb CHANGED
@@ -2,7 +2,8 @@
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
5
- require 'processing/include'
5
+ require 'processing'
6
+ using Processing
6
7
 
7
8
 
8
9
  draw do
data/examples/image.rb CHANGED
@@ -2,7 +2,8 @@
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
5
- require 'processing/include'
5
+ require 'processing'
6
+ using Processing
6
7
 
7
8
 
8
9
  icon = loadImage 'https://xord.org/rubysketch/images/rubysketch128.png'
data/examples/shapes.rb CHANGED
@@ -2,7 +2,8 @@
2
2
  .map {|s| File.expand_path "../../#{s}/lib", __dir__}
3
3
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
4
4
 
5
- require 'processing/include'
5
+ require 'processing'
6
+ using Processing
6
7
 
7
8
 
8
9
  setup do
@@ -0,0 +1,20 @@
1
+ require 'set'
2
+ require 'digest/sha1'
3
+ require 'pathname'
4
+ require 'tmpdir'
5
+ require 'open-uri'
6
+ require 'reflex'
7
+
8
+ require 'processing/extension'
9
+ require 'processing/app'
10
+ require 'processing/window'
11
+
12
+ require 'processing/vector'
13
+ require 'processing/image'
14
+ require 'processing/font'
15
+ require 'processing/touch'
16
+ require 'processing/shader'
17
+ require 'processing/capture'
18
+ require 'processing/graphics_context'
19
+ require 'processing/graphics'
20
+ require 'processing/context'