picrate 2.1.2-java → 2.4.2-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.mvn/extensions.xml +1 -1
  3. data/CHANGELOG.md +8 -0
  4. data/README.md +3 -2
  5. data/Rakefile +2 -1
  6. data/docs/_includes/footer.html +1 -1
  7. data/docs/_layouts/post.html +1 -1
  8. data/docs/_methods/noise_mode.md +88 -0
  9. data/docs/_posts/2018-05-06-install_jruby.md +1 -1
  10. data/docs/_posts/2018-11-18-building-gem.md +3 -1
  11. data/docs/classes.md +2 -2
  12. data/docs/editors.md +2 -2
  13. data/docs/gems.md +3 -3
  14. data/docs/index.html +1 -1
  15. data/docs/libraries.md +2 -2
  16. data/docs/live.md +2 -2
  17. data/docs/magic.md +2 -2
  18. data/docs/methods.md +2 -2
  19. data/docs/modules.md +3 -3
  20. data/docs/objects.md +2 -2
  21. data/lib/picrate/app.rb +7 -6
  22. data/lib/picrate/native_folder.rb +1 -3
  23. data/lib/picrate/version.rb +1 -1
  24. data/library/pdf/pdf.rb +7 -0
  25. data/library/svg/svg.rb +7 -0
  26. data/picrate.gemspec +5 -3
  27. data/pom.rb +25 -4
  28. data/pom.xml +39 -4
  29. data/src/main/java/monkstone/FastNoiseModuleJava.java +127 -0
  30. data/src/main/java/monkstone/PicrateLibrary.java +3 -1
  31. data/src/main/java/monkstone/SmoothNoiseModuleJava.java +127 -0
  32. data/src/main/java/monkstone/fastmath/DegLutTables.java +111 -0
  33. data/src/main/java/monkstone/fastmath/Deglut.java +41 -93
  34. data/src/main/java/monkstone/noise/OpenSimplex2F.java +914 -0
  35. data/src/main/java/monkstone/noise/OpenSimplex2S.java +1138 -0
  36. data/src/main/java/monkstone/vecmath/package-info.java +1 -1
  37. data/src/main/java/monkstone/vecmath/vec3/Vec3.java +1 -1
  38. data/src/main/java/monkstone/videoevent/package-info.java +1 -1
  39. data/src/main/java/processing/awt/ShimAWT.java +260 -94
  40. data/src/main/java/processing/core/PApplet.java +14664 -13450
  41. data/src/main/java/processing/core/PConstants.java +5 -5
  42. data/src/main/java/processing/core/PFont.java +1 -1
  43. data/src/main/java/processing/core/PGraphics.java +200 -201
  44. data/src/main/java/processing/core/PImage.java +539 -549
  45. data/src/main/java/processing/core/PShape.java +18 -18
  46. data/src/main/java/processing/core/PVector.java +23 -23
  47. data/src/main/java/processing/data/Table.java +4 -4
  48. data/src/main/java/processing/net/Client.java +13 -13
  49. data/src/main/java/processing/net/Server.java +5 -5
  50. data/src/main/java/processing/opengl/PGraphicsOpenGL.java +4 -4
  51. data/src/main/java/processing/pdf/PGraphicsPDF.java +529 -0
  52. data/src/main/java/processing/svg/PGraphicsSVG.java +378 -0
  53. data/test/deglut_spec_test.rb +2 -2
  54. data/test/respond_to_test.rb +0 -2
  55. data/test/test_helper.rb +1 -1
  56. data/vendors/Rakefile +1 -1
  57. metadata +26 -15
  58. data/src/main/java/monkstone/noise/SimplexNoise.java +0 -465
@@ -0,0 +1,378 @@
1
+ /*
2
+ Part of the Processing project - http://processing.org
3
+
4
+ Copyright (c) 2013-2015 The Processing Foundation
5
+ Copyright (c) 2012 Ben Fry and Casey Reas
6
+
7
+ This library is free software; you can redistribute it and/or
8
+ modify it under the terms of the GNU Lesser General Public
9
+ License version 2.1 as published by the Free Software Foundation.
10
+
11
+ This library is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ Lesser General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Lesser General
17
+ Public License along with this library; if not, write to the
18
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19
+ Boston, MA 02111-1307 USA
20
+ */
21
+ package processing.svg;
22
+
23
+ import java.awt.Dimension;
24
+ import java.io.BufferedWriter;
25
+ import java.io.File;
26
+ import java.io.FileNotFoundException;
27
+ import java.io.FileOutputStream;
28
+ import java.io.IOException;
29
+ import java.io.OutputStream;
30
+ import java.io.OutputStreamWriter;
31
+ import java.io.PrintWriter;
32
+ import java.io.Writer;
33
+ import java.nio.charset.StandardCharsets;
34
+ import java.util.logging.Level;
35
+ import java.util.logging.Logger;
36
+ import org.apache.batik.dom.GenericDOMImplementation;
37
+ import org.apache.batik.svggen.SVGGraphics2D;
38
+ import org.apache.batik.svggen.SVGGraphics2DIOException;
39
+ import org.w3c.dom.DOMImplementation;
40
+ import org.w3c.dom.Document;
41
+ import processing.awt.PGraphicsJava2D;
42
+ import processing.core.PImage;
43
+ import processing.core.PSurface;
44
+ import processing.core.PSurfaceNone;
45
+
46
+ public class PGraphicsSVG extends PGraphicsJava2D {
47
+
48
+ /**
49
+ * File being written, if it's a file.
50
+ */
51
+ protected File file;
52
+ /**
53
+ * OutputStream being written to, if using an OutputStream.
54
+ */
55
+ protected OutputStream output;
56
+
57
+ // protected Writer writer;
58
+ public PGraphicsSVG() {
59
+ }
60
+
61
+ @Override
62
+ public void setPath(String path) {
63
+ this.path = path;
64
+ if (path != null) {
65
+ file = new File(path);
66
+ if (!file.isAbsolute()) {
67
+ file = null;
68
+ }
69
+ }
70
+ if (file == null) {
71
+ throw new RuntimeException("PGraphicsSVG requires an absolute path "
72
+ + "for the location of the output file.");
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Set the library to write to an output stream instead of a file.
78
+ *
79
+ * @param output
80
+ */
81
+ public void setOutput(OutputStream output) {
82
+ this.output = output;
83
+ }
84
+
85
+ @Override
86
+ public PSurface createSurface() {
87
+ return surface = new PSurfaceNone(this);
88
+ }
89
+
90
+ @Override
91
+ protected void defaultSettings() { // ignore
92
+ super.defaultSettings();
93
+ textMode = SHAPE;
94
+ }
95
+
96
+ @Override
97
+ public void beginDraw() {
98
+ DOMImplementation domImpl
99
+ = GenericDOMImplementation.getDOMImplementation();
100
+
101
+ // Create an instance of org.w3c.dom.Document.
102
+ String ns = "http://www.w3.org/2000/svg";
103
+ Document document = domImpl.createDocument(ns, "svg", null);
104
+
105
+ // Create an instance of the SVG Generator.
106
+ g2 = new SVGGraphics2D(document);
107
+ ((SVGGraphics2D) g2).setSVGCanvasSize(new Dimension(width, height));
108
+
109
+ // Done with our work, let's check on defaults and the rest
110
+ //super.beginDraw();
111
+ // Can't call super.beginDraw() because it'll nuke our g2
112
+ checkSettings();
113
+ resetMatrix(); // reset model matrix
114
+ vertexCount = 0;
115
+
116
+ // Also need to push the matrix since the matrix doesn't reset on each run
117
+ // http://dev.processing.org/bugs/show_bug.cgi?id=1227
118
+ pushMatrix();
119
+ }
120
+
121
+ @Override
122
+ public void endDraw() {
123
+ Writer writer;
124
+ // Also need to pop the matrix since the matrix doesn't reset on each run
125
+ // http://dev.processing.org/bugs/show_bug.cgi?id=1227
126
+ popMatrix();
127
+ // Figure out where the output goes. If the sketch is calling setOutput()
128
+ // inside draw(), then that OutputStream will be used, otherwise the
129
+ // path for rendering is expected to have ### inside it so that the frame
130
+ // can be inserted, because SVG doesn't support multiple pages.
131
+ if (output == null) {
132
+ if (path == null) {
133
+ throw new RuntimeException("setOutput() or setPath() must be "
134
+ + "used with the SVG renderer");
135
+ } else {
136
+ // insert the frame number and create intermediate directories
137
+ File save = parent.saveFile(parent.insertFrame(path));
138
+ try {
139
+ output = new FileOutputStream(save);
140
+ } catch (FileNotFoundException e) {
141
+ throw new RuntimeException(e);
142
+ }
143
+ }
144
+ }
145
+ // This needs to be overridden so that the endDraw() from PGraphicsJava2D
146
+ // is not inherited (it calls loadPixels).
147
+ // http://dev.processing.org/bugs/show_bug.cgi?id=1169
148
+ // Finally, stream out SVG to the standard output using UTF-8 encoding.
149
+ boolean useCSS = true; // we want to use CSS style attributes
150
+ writer = new PrintWriter(
151
+ new BufferedWriter(
152
+ new OutputStreamWriter(output, StandardCharsets.UTF_8)
153
+ )
154
+ );
155
+ try {
156
+ ((SVGGraphics2D) g2).stream(writer, useCSS);
157
+ } catch (SVGGraphics2DIOException e) {
158
+ }
159
+ try {
160
+ writer.flush();
161
+ writer.close();
162
+ } catch (IOException e) {
163
+ } finally {
164
+ output = null;
165
+ }
166
+ try {
167
+ writer.close();
168
+ } catch (IOException ex) {
169
+ Logger.getLogger(PGraphicsSVG.class.getName()).log(Level.SEVERE, null, ex);
170
+ }
171
+ }
172
+
173
+ // nothing to be done in dispose(), since essentially disposed on each frame
174
+ @Override
175
+ public void dispose() {
176
+ }
177
+
178
+ /**
179
+ * Don't open a window for this renderer, it won't be used.
180
+ *
181
+ * @return
182
+ */
183
+ @Override
184
+ public boolean displayable() {
185
+ return false;
186
+ }
187
+
188
+ @Override
189
+ public void loadPixels() {
190
+ nope("loadPixels");
191
+ }
192
+
193
+ @Override
194
+ public void updatePixels() {
195
+ nope("updatePixels");
196
+ }
197
+
198
+ @Override
199
+ public void updatePixels(int x, int y, int c, int d) {
200
+ nope("updatePixels");
201
+ }
202
+
203
+ //
204
+ @Override
205
+ public int get(int x, int y) {
206
+ nope("get");
207
+ return 0; // not reached
208
+ }
209
+
210
+ @Override
211
+ public PImage get(int x, int y, int c, int d) {
212
+ nope("get");
213
+ return null; // not reached
214
+ }
215
+
216
+ @Override
217
+ public PImage get() {
218
+ nope("get");
219
+ return null; // not reached
220
+ }
221
+
222
+ @Override
223
+ public void set(int x, int y, int argb) {
224
+ nope("set");
225
+ }
226
+
227
+ @Override
228
+ public void set(int x, int y, PImage image) {
229
+ nope("set");
230
+ }
231
+
232
+ //
233
+ @Override
234
+ public void mask(int alpha[]) {
235
+ nope("mask");
236
+ }
237
+
238
+ @Override
239
+ public void mask(PImage alpha) {
240
+ nope("mask");
241
+ }
242
+
243
+ //
244
+ @Override
245
+ public void filter(int kind) {
246
+ nope("filter");
247
+ }
248
+
249
+ @Override
250
+ public void filter(int kind, float param) {
251
+ nope("filter");
252
+ }
253
+
254
+ //
255
+ @Override
256
+ public void copy(int sx1, int sy1, int sx2, int sy2,
257
+ int dx1, int dy1, int dx2, int dy2) {
258
+ nope("copy");
259
+ }
260
+
261
+ @Override
262
+ public void copy(PImage src,
263
+ int sx1, int sy1, int sx2, int sy2,
264
+ int dx1, int dy1, int dx2, int dy2) {
265
+ nope("copy");
266
+ }
267
+
268
+ //
269
+ public void blend(int sx, int sy, int dx, int dy, int mode) {
270
+ nope("blend");
271
+ }
272
+
273
+ public void blend(PImage src,
274
+ int sx, int sy, int dx, int dy, int mode) {
275
+ nope("blend");
276
+ }
277
+
278
+ @Override
279
+ public void blend(int sx1, int sy1, int sx2, int sy2,
280
+ int dx1, int dy1, int dx2, int dy2, int mode) {
281
+ nope("blend");
282
+ }
283
+
284
+ @Override
285
+ public void blend(PImage src,
286
+ int sx1, int sy1, int sx2, int sy2,
287
+ int dx1, int dy1, int dx2, int dy2, int mode) {
288
+ nope("blend");
289
+ }
290
+
291
+ //
292
+ @Override
293
+ public boolean save(String filename) {
294
+ nope("save");
295
+ return false;
296
+ }
297
+
298
+ //////////////////////////////////////////////////////////////
299
+ // /**
300
+ // * Add a directory that should be searched for font data.
301
+ // * <br/>
302
+ // * On Mac OS X, the following directories are added by default:
303
+ // * <UL>
304
+ // * <LI>/System/Library/Fonts
305
+ // * <LI>/Library/Fonts
306
+ // * <LI>~/Library/Fonts
307
+ // * </UL>
308
+ // * On Windows, all drive letters are searched for WINDOWS\Fonts
309
+ // * or WINNT\Fonts, any that exists is added.
310
+ // * <br/><br/>
311
+ // * On Linux or any other platform, you'll need to add the
312
+ // * directories by hand. (If there are actual standards here that we
313
+ // * can use as a starting point, please file a bug to make a note of it)
314
+ // */
315
+ // public void addFonts(String directory) {
316
+ // mapper.insertDirectory(directory);
317
+ // }
318
+ // /**
319
+ // * Check whether the specified font can be used with the PDF library.
320
+ // * @param name name of the font
321
+ // * @return true if it's ok
322
+ // */
323
+ // protected void checkFont() {
324
+ // Font awtFont = textFont.getFont();
325
+ // if (awtFont == null) { // always need a native font or reference to it
326
+ // throw new RuntimeException("Use createFont() instead of loadFont() " +
327
+ // "when drawing text using the PDF library.");
328
+ // } else if (textMode != SHAPE) {
329
+ // if (textFont.isStream()) {
330
+ // throw new RuntimeException("Use textMode(SHAPE) with PDF when loading " +
331
+ // ".ttf and .otf files with createFont().");
332
+ // } else if (mapper.getAliases().get(textFont.getName()) == null) {
333
+ // //System.out.println("alias for " + name + " = " + mapper.getAliases().get(name));
334
+ //// System.err.println("Use PGraphicsPDF.listFonts() to get a list of " +
335
+ //// "fonts that can be used with PDF.");
336
+ //// throw new RuntimeException("The font “" + textFont.getName() + "” " +
337
+ //// "cannot be used with PDF Export.");
338
+ // if (textFont.getName().equals("Lucida Sans")) {
339
+ // throw new RuntimeException("Use textMode(SHAPE) with the default " +
340
+ // "font when exporting to PDF.");
341
+ // } else {
342
+ // throw new RuntimeException("Use textMode(SHAPE) with " +
343
+ // "“" + textFont.getName() + "” " +
344
+ // "when exporting to PDF.");
345
+ // }
346
+ // }
347
+ // }
348
+ // }
349
+ // /**
350
+ // * List the fonts known to the PDF renderer. This is like PFont.list(),
351
+ // * however not all those fonts are available by default.
352
+ // */
353
+ // static public String[] listFonts() {
354
+ // if (fontList == null) {
355
+ // HashMap<?, ?> map = getMapper().getAliases();
356
+ //// Set entries = map.entrySet();
357
+ //// fontList = new String[entries.size()];
358
+ // fontList = new String[map.size()];
359
+ // int count = 0;
360
+ // for (Object entry : map.entrySet()) {
361
+ // fontList[count++] = (String) ((Map.Entry) entry).getKey();
362
+ // }
363
+ //// Iterator it = entries.iterator();
364
+ //// int count = 0;
365
+ //// while (it.hasNext()) {
366
+ //// Map.Entry entry = (Map.Entry) it.next();
367
+ //// //System.out.println(entry.getKey() + "-->" + entry.getValue());
368
+ //// fontList[count++] = (String) entry.getKey();
369
+ //// }
370
+ // fontList = PApplet.sort(fontList);
371
+ // }
372
+ // return fontList;
373
+ // }
374
+ //////////////////////////////////////////////////////////////
375
+ protected void nope(String function) {
376
+ throw new RuntimeException("No " + function + "() for PGraphicsSVG");
377
+ }
378
+ }
@@ -15,10 +15,10 @@ class DeglutTest < Minitest::Test
15
15
  (-720..720).step(1) do |deg|
16
16
  sine = DegLut.sin(deg)
17
17
  deg_sin = Math.sin(deg * to_radian)
18
- assert_in_delta(sine, deg_sin, delta = 0.000001)
18
+ assert_in_delta(sine, deg_sin, delta = 0.0003)
19
19
  cosine = DegLut.cos(deg)
20
20
  deg_cos = Math.cos(deg * to_radian)
21
- assert_in_delta(cosine, deg_cos, delta = 0.000001)
21
+ assert_in_delta(cosine, deg_cos, delta = 0.0003)
22
22
  end
23
23
  end
24
24
  end
@@ -104,8 +104,6 @@ METHODS = %i[
104
104
  no_stroke
105
105
  no_tint
106
106
  noise
107
- noise_detail
108
- noise_seed
109
107
  normal
110
108
  ortho
111
109
  perspective
data/test/test_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  gem 'minitest'
4
- require 'java'
4
+ require 'jruby'
5
5
  require_relative '../lib/picrate'
6
6
  require 'minitest/pride'
7
7
  require 'minitest/autorun'
data/vendors/Rakefile CHANGED
@@ -8,7 +8,7 @@ SOUND = 'sound.zip'
8
8
  PROCESSING_GITHUB = 'https://github.com/processing'
9
9
  VIDEO = 'video.zip'
10
10
  DOWNLOAD = 'releases/download/latest'
11
- EXAMPLES = '0.5.5'
11
+ EXAMPLES = '0.5.8'
12
12
  HOME_DIR = ENV['HOME']
13
13
  LIBRARY = File.join(HOME_DIR, '.picrate', 'libraries')
14
14
  PROJECT_DIR = File.join(HOME_DIR, 'projects')
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.4.2
5
5
  platform: java
6
6
  authors:
7
7
  - monkstone
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-13 00:00:00.000000000 Z
11
+ date: 2021-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '5.10'
18
+ version: '5.14'
19
19
  name: minitest
20
- type: :development
21
20
  prerelease: false
21
+ type: :development
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.10'
26
+ version: '5.14'
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
@@ -31,8 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '13.0'
33
33
  name: rake
34
- type: :runtime
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
@@ -43,21 +43,21 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.0'
46
+ version: '1.1'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.0.1
49
+ version: 1.1.1
50
50
  name: arcball
51
- type: :runtime
52
51
  prerelease: false
52
+ type: :runtime
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '1.0'
57
+ version: '1.1'
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 1.0.1
60
+ version: 1.1.1
61
61
  description: |
62
62
  A batteries included version of processing in ruby, for raspberrypi and
63
63
  linux. Install samples to configures geany ide.
@@ -130,6 +130,7 @@ files:
130
130
  - docs/_methods/map1d.md
131
131
  - docs/_methods/methods_summary.md
132
132
  - docs/_methods/mouse_pressed.md
133
+ - docs/_methods/noise_mode.md
133
134
  - docs/_methods/post_initialize.md
134
135
  - docs/_methods/processing_api.md
135
136
  - docs/_methods/settings.md
@@ -190,7 +191,7 @@ files:
190
191
  - lib/jogl-all-natives-linux-amd64.jar
191
192
  - lib/jogl-all-natives-linux-armv6hf.jar
192
193
  - lib/jogl-all.jar
193
- - lib/picrate-2.1.2.jar
194
+ - lib/picrate-2.4.2.jar
194
195
  - lib/picrate.rb
195
196
  - lib/picrate/app.rb
196
197
  - lib/picrate/creators/parameters.rb
@@ -213,7 +214,11 @@ files:
213
214
  - library/library_proxy/README.md
214
215
  - library/library_proxy/library_proxy.rb
215
216
  - library/net/net.rb
217
+ - library/pdf/itextpdf-5.5.13.2.jar
218
+ - library/pdf/pdf.rb
216
219
  - library/slider/slider.rb
220
+ - library/svg/batik-all-1.14.jar
221
+ - library/svg/svg.rb
217
222
  - library/vector_utils/vector_utils.rb
218
223
  - library/video_event/video_event.rb
219
224
  - license.txt
@@ -225,14 +230,18 @@ files:
225
230
  - src/main/java/japplemenubar/JAppleMenuBar.java
226
231
  - src/main/java/japplemenubar/libjAppleMenuBar.jnilib
227
232
  - src/main/java/monkstone/ColorUtil.java
233
+ - src/main/java/monkstone/FastNoiseModuleJava.java
228
234
  - src/main/java/monkstone/MathToolModule.java
229
235
  - src/main/java/monkstone/PicrateLibrary.java
236
+ - src/main/java/monkstone/SmoothNoiseModuleJava.java
230
237
  - src/main/java/monkstone/complex/JComplex.java
231
238
  - src/main/java/monkstone/core/LibraryProxy.java
239
+ - src/main/java/monkstone/fastmath/DegLutTables.java
232
240
  - src/main/java/monkstone/fastmath/Deglut.java
233
241
  - src/main/java/monkstone/fastmath/package-info.java
234
242
  - src/main/java/monkstone/filechooser/Chooser.java
235
- - src/main/java/monkstone/noise/SimplexNoise.java
243
+ - src/main/java/monkstone/noise/OpenSimplex2F.java
244
+ - src/main/java/monkstone/noise/OpenSimplex2S.java
236
245
  - src/main/java/monkstone/slider/CustomHorizontalSlider.java
237
246
  - src/main/java/monkstone/slider/CustomVerticalSlider.java
238
247
  - src/main/java/monkstone/slider/SimpleHorizontalSlider.java
@@ -329,6 +338,8 @@ files:
329
338
  - src/main/java/processing/opengl/shaders/TexLightFrag.glsl
330
339
  - src/main/java/processing/opengl/shaders/TexLightVert.glsl
331
340
  - src/main/java/processing/opengl/shaders/TexVert.glsl
341
+ - src/main/java/processing/pdf/PGraphicsPDF.java
342
+ - src/main/java/processing/svg/PGraphicsSVG.java
332
343
  - src/main/resources/icon/icon-128.png
333
344
  - src/main/resources/icon/icon-16.png
334
345
  - src/main/resources/icon/icon-256.png
@@ -369,8 +380,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
369
380
  - !ruby/object:Gem::Version
370
381
  version: '0'
371
382
  requirements:
372
- - java runtime == 11
373
- rubygems_version: 3.0.6
383
+ - java runtime == 11+
384
+ rubygems_version: 3.1.6
374
385
  signing_key:
375
386
  specification_version: 4
376
387
  summary: ruby implementation of processing-3 on raspberrypi and linux64