picrate 0.7.0-java → 0.8.0-java
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/.gitignore +1 -1
- data/.mvn/wrapper/MavenWrapperDownloader.java +117 -0
- data/.mvn/wrapper/maven-wrapper.properties +2 -1
- data/.travis.yml +2 -5
- data/CHANGELOG.md +4 -0
- data/README.md +3 -3
- data/Rakefile +15 -27
- data/docs/_config.yml +1 -1
- data/docs/_posts/2018-05-11-arch-linux-arm.md +1 -1
- data/docs/_posts/2018-11-18-building-gem.md +1 -1
- data/lib/picrate/app.rb +1 -1
- data/lib/picrate/native_folder.rb +1 -1
- data/lib/picrate/version.rb +1 -1
- data/mvnw +127 -51
- data/mvnw.cmd +182 -0
- data/pom.rb +39 -30
- data/pom.xml +50 -37
- data/src/main/java/monkstone/ColorUtil.java +1 -1
- data/src/main/java/monkstone/core/LibraryProxy.java +0 -1
- data/src/main/java/monkstone/noise/SimplexNoise.java +1 -1
- data/src/main/java/monkstone/vecmath/GfxRender.java +87 -0
- data/src/main/java/monkstone/vecmath/ShapeRender.java +1 -1
- data/src/main/java/monkstone/vecmath/vec2/Vec2.java +1 -1
- data/src/main/java/processing/awt/PGraphicsJava2D.java +48 -50
- data/src/main/java/processing/awt/PShapeJava2D.java +10 -0
- data/src/main/java/processing/awt/PSurfaceAWT.java +315 -371
- data/src/main/java/processing/core/PApplet.java +15424 -15495
- data/src/main/java/processing/core/PConstants.java +4 -4
- data/src/main/java/processing/core/PFont.java +394 -369
- data/src/main/java/processing/core/PGraphics.java +11 -10
- data/src/main/java/processing/core/PImage.java +1389 -1435
- data/src/main/java/processing/core/PMatrix2D.java +297 -294
- data/src/main/java/processing/core/PMatrix3D.java +641 -594
- data/src/main/java/processing/core/PShape.java +1755 -1784
- data/src/main/java/processing/core/PShapeOBJ.java +145 -133
- data/src/main/java/processing/core/PShapeSVG.java +808 -801
- data/src/main/java/processing/core/PStyle.java +141 -149
- data/src/main/java/processing/core/PSurface.java +111 -117
- data/src/main/java/processing/core/PSurfaceNone.java +178 -187
- data/src/main/java/processing/javafx/PGraphicsFX2D.java +349 -346
- data/src/main/java/processing/opengl/FontTexture.java +40 -59
- data/src/main/java/processing/opengl/FrameBuffer.java +28 -18
- data/src/main/java/processing/opengl/LinePath.java +7 -7
- data/src/main/java/processing/opengl/LineStroker.java +6 -10
- data/src/main/java/processing/opengl/PGL.java +56 -44
- data/src/main/java/processing/opengl/PGraphicsOpenGL.java +909 -2338
- data/src/main/java/processing/opengl/PJOGL.java +1722 -1763
- data/src/main/java/processing/opengl/PShader.java +1308 -1192
- data/src/main/java/processing/opengl/PShapeOpenGL.java +487 -1811
- data/src/main/java/processing/opengl/PSurfaceJOGL.java +482 -497
- data/src/main/java/processing/opengl/Texture.java +99 -76
- data/src/main/java/processing/opengl/VertexBuffer.java +41 -43
- data/vendors/Rakefile +1 -1
- metadata +7 -4
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
2
2
|
|
3
|
-
/*
|
3
|
+
/*
|
4
4
|
Part of the Processing project - http://processing.org
|
5
5
|
|
6
6
|
Copyright (c) 2015 The Processing Foundation
|
@@ -18,175 +18,173 @@
|
|
18
18
|
Public License along with this library; if not, write to the
|
19
19
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
20
20
|
Boston, MA 02111-1307 USA
|
21
|
-
*/
|
22
|
-
|
21
|
+
*/
|
23
22
|
package processing.core;
|
24
23
|
|
25
|
-
|
26
24
|
/**
|
27
25
|
* Surface that's not really visible. Used for PDF and friends, or as a base
|
28
26
|
* class for other drawing surfaces. It includes the standard rendering loop.
|
29
27
|
*/
|
30
28
|
public class PSurfaceNone implements PSurface {
|
31
29
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
30
|
+
/**
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
protected PApplet sketch;
|
34
|
+
|
35
|
+
/**
|
36
|
+
*
|
37
|
+
*/
|
38
|
+
protected PGraphics graphics;
|
39
|
+
|
40
|
+
/**
|
41
|
+
*
|
42
|
+
*/
|
43
|
+
protected Thread thread;
|
44
|
+
|
45
|
+
/**
|
46
|
+
*
|
47
|
+
*/
|
48
|
+
protected boolean paused;
|
49
|
+
|
50
|
+
/**
|
51
|
+
*
|
52
|
+
*/
|
53
|
+
protected Object pauseObject = new Object();
|
54
|
+
|
55
|
+
/**
|
56
|
+
*
|
57
|
+
*/
|
58
|
+
protected float frameRateTarget = 60;
|
59
|
+
|
60
|
+
/**
|
61
|
+
*
|
62
|
+
*/
|
63
|
+
protected long frameRatePeriod = 1000000000L / 60L;
|
64
|
+
|
65
|
+
/**
|
66
|
+
*
|
67
|
+
* @param graphics
|
68
|
+
*/
|
69
|
+
public PSurfaceNone(PGraphics graphics) {
|
72
70
|
this.graphics = graphics;
|
73
71
|
}
|
74
72
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
73
|
+
/**
|
74
|
+
*
|
75
|
+
* @param sketch
|
76
|
+
*/
|
77
|
+
@Override
|
80
78
|
public void initOffscreen(PApplet sketch) {
|
81
79
|
this.sketch = sketch;
|
82
80
|
|
83
81
|
setSize(sketch.sketchWidth(), sketch.sketchHeight());
|
84
82
|
}
|
85
83
|
|
86
|
-
|
87
84
|
// public Component initComponent(PApplet sketch) {
|
88
85
|
// return null;
|
89
86
|
// }
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
*/
|
95
|
-
|
96
|
-
|
87
|
+
/**
|
88
|
+
*
|
89
|
+
* @param sketch
|
90
|
+
*/
|
97
91
|
@Override
|
98
92
|
public void initFrame(PApplet sketch) {/*, int backgroundColor,
|
99
93
|
int deviceIndex, boolean fullScreen,
|
100
94
|
boolean spanDisplays) {*/
|
101
95
|
//this.sketch = sketch;
|
102
|
-
throw new IllegalStateException("initFrame() not available with "
|
103
|
-
|
96
|
+
throw new IllegalStateException("initFrame() not available with "
|
97
|
+
+ getClass().getSimpleName());
|
104
98
|
}
|
105
99
|
|
106
|
-
|
107
100
|
public Object getNative() {
|
108
101
|
return null;
|
109
102
|
}
|
110
103
|
|
111
|
-
|
112
|
-
|
113
|
-
|
104
|
+
/**
|
105
|
+
* Set the window (and dock, or whatever necessary) title.
|
106
|
+
*
|
107
|
+
* @param title
|
108
|
+
*/
|
114
109
|
@Override
|
115
110
|
public void setTitle(String title) {
|
116
111
|
// You're in a utopian PSurface implementation where titles don't exist.
|
117
112
|
}
|
118
113
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
114
|
+
/**
|
115
|
+
*
|
116
|
+
* @param image
|
117
|
+
*/
|
118
|
+
@Override
|
124
119
|
public void setIcon(PImage image) {
|
125
120
|
// I ain't visible, man.
|
126
121
|
}
|
127
122
|
|
128
|
-
|
129
|
-
|
130
|
-
|
123
|
+
/**
|
124
|
+
* Show or hide the window.
|
125
|
+
*
|
126
|
+
* @param visible
|
127
|
+
*/
|
131
128
|
@Override
|
132
129
|
public void setVisible(boolean visible) {
|
133
130
|
// I'm always invisible. You can't catch me.
|
134
131
|
}
|
135
132
|
|
136
|
-
|
137
|
-
|
138
|
-
|
133
|
+
/**
|
134
|
+
* Set true if we want to resize things (default is not resizable)
|
135
|
+
*
|
136
|
+
* @param resizable
|
137
|
+
*/
|
139
138
|
@Override
|
140
139
|
public void setResizable(boolean resizable) {
|
141
140
|
// I don't need size to know my worth.
|
142
141
|
}
|
143
142
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
public void placeWindow(int[] location, int[] editorLocation) {
|
151
|
-
|
152
|
-
/**
|
153
|
-
*
|
154
|
-
* @param stopColor
|
155
|
-
*/
|
156
|
-
@Override
|
157
|
-
public void placePresent(int stopColor) { }
|
158
|
-
|
159
|
-
/**
|
160
|
-
*
|
161
|
-
*/
|
162
|
-
@Override
|
163
|
-
public void setupExternalMessages() { }
|
143
|
+
/**
|
144
|
+
*
|
145
|
+
* @param location
|
146
|
+
* @param editorLocation
|
147
|
+
*/
|
148
|
+
@Override
|
149
|
+
public void placeWindow(int[] location, int[] editorLocation) {
|
150
|
+
}
|
164
151
|
|
152
|
+
/**
|
153
|
+
*
|
154
|
+
* @param stopColor
|
155
|
+
*/
|
156
|
+
@Override
|
157
|
+
public void placePresent(int stopColor) {
|
158
|
+
}
|
165
159
|
|
160
|
+
/**
|
161
|
+
*
|
162
|
+
*/
|
166
163
|
@Override
|
167
|
-
public void
|
164
|
+
public void setupExternalMessages() {
|
165
|
+
}
|
168
166
|
|
167
|
+
@Override
|
168
|
+
public void setAlwaysOnTop(boolean always) {
|
169
|
+
}
|
169
170
|
|
170
171
|
//
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
*/
|
177
|
-
|
178
|
-
|
172
|
+
/**
|
173
|
+
*
|
174
|
+
* @param x
|
175
|
+
* @param y
|
176
|
+
*/
|
179
177
|
@Override
|
180
178
|
public void setLocation(int x, int y) {
|
181
179
|
// I'm everywhere, because I'm nowhere.
|
182
180
|
}
|
183
181
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
182
|
+
/**
|
183
|
+
*
|
184
|
+
* @param wide
|
185
|
+
* @param high
|
186
|
+
*/
|
187
|
+
@Override
|
190
188
|
public void setSize(int wide, int high) {
|
191
189
|
if (PApplet.DEBUG) {
|
192
190
|
//System.out.format("frame visible %b, setSize(%d, %d) %n", frame.isVisible(), wide, high);
|
@@ -209,78 +207,74 @@ public class PSurfaceNone implements PSurface {
|
|
209
207
|
graphics.setSize(wide, high);
|
210
208
|
}
|
211
209
|
|
212
|
-
|
213
210
|
// public void initImage(PGraphics graphics) {
|
214
211
|
// // TODO Auto-generated method stub
|
215
212
|
//
|
216
213
|
// }
|
217
|
-
|
218
214
|
// public Component getComponent() {
|
219
215
|
// return null;
|
220
216
|
// }
|
221
|
-
|
222
|
-
|
223
217
|
// public void setSmooth(int level) {
|
224
218
|
// // TODO Auto-generated method stub
|
225
219
|
// }
|
226
|
-
|
227
220
|
// void requestFocus() {
|
228
221
|
// }
|
229
|
-
|
230
222
|
// public void blit() {
|
231
223
|
// // TODO Auto-generated method stub
|
232
224
|
// }
|
225
|
+
/**
|
226
|
+
*
|
227
|
+
* @param kind
|
228
|
+
*/
|
229
|
+
@Override
|
230
|
+
public void setCursor(int kind) {
|
231
|
+
}
|
233
232
|
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
* @param image
|
244
|
-
* @param hotspotX
|
245
|
-
* @param hotspotY
|
246
|
-
*/
|
247
|
-
public void setCursor(PImage image, int hotspotX, int hotspotY) { }
|
248
|
-
|
249
|
-
/**
|
250
|
-
*
|
251
|
-
*/
|
252
|
-
public void showCursor() { }
|
233
|
+
/**
|
234
|
+
*
|
235
|
+
* @param image
|
236
|
+
* @param hotspotX
|
237
|
+
* @param hotspotY
|
238
|
+
*/
|
239
|
+
@Override
|
240
|
+
public void setCursor(PImage image, int hotspotX, int hotspotY) {
|
241
|
+
}
|
253
242
|
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
243
|
+
/**
|
244
|
+
*
|
245
|
+
*/
|
246
|
+
@Override
|
247
|
+
public void showCursor() {
|
248
|
+
}
|
258
249
|
|
250
|
+
/**
|
251
|
+
*
|
252
|
+
*/
|
253
|
+
@Override
|
254
|
+
public void hideCursor() {
|
255
|
+
}
|
259
256
|
|
260
257
|
//
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
*/
|
266
|
-
|
267
|
-
|
258
|
+
/**
|
259
|
+
*
|
260
|
+
* @return
|
261
|
+
*/
|
268
262
|
public Thread createThread() {
|
269
263
|
return new AnimationThread();
|
270
264
|
}
|
271
265
|
|
272
|
-
|
266
|
+
@Override
|
273
267
|
public void startThread() {
|
274
268
|
if (thread == null) {
|
275
269
|
thread = createThread();
|
276
270
|
thread.start();
|
277
271
|
} else {
|
278
|
-
throw new IllegalStateException("Thread already started in "
|
279
|
-
|
272
|
+
throw new IllegalStateException("Thread already started in "
|
273
|
+
+ getClass().getSimpleName());
|
280
274
|
}
|
281
275
|
}
|
282
276
|
|
283
|
-
|
277
|
+
@Override
|
284
278
|
public boolean stopThread() {
|
285
279
|
if (thread == null) {
|
286
280
|
return false;
|
@@ -289,27 +283,26 @@ public class PSurfaceNone implements PSurface {
|
|
289
283
|
return true;
|
290
284
|
}
|
291
285
|
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
286
|
+
/**
|
287
|
+
*
|
288
|
+
* @return
|
289
|
+
*/
|
290
|
+
@Override
|
291
|
+
public boolean isStopped() {
|
297
292
|
return thread == null || !thread.isAlive();
|
298
293
|
}
|
299
294
|
|
300
|
-
|
301
295
|
// sets a flag to pause the thread when ready
|
296
|
+
@Override
|
302
297
|
public void pauseThread() {
|
303
298
|
PApplet.debug("PApplet.run() paused, calling object wait...");
|
304
299
|
paused = true;
|
305
300
|
}
|
306
301
|
|
307
|
-
|
308
302
|
// halts the animation thread if the pause flag is set
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
*/
|
303
|
+
/**
|
304
|
+
*
|
305
|
+
*/
|
313
306
|
protected void checkPause() {
|
314
307
|
if (paused) {
|
315
308
|
synchronized (pauseObject) {
|
@@ -324,50 +317,52 @@ public class PSurfaceNone implements PSurface {
|
|
324
317
|
// PApplet.debug("done with pause");
|
325
318
|
}
|
326
319
|
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
320
|
+
/**
|
321
|
+
*
|
322
|
+
*/
|
323
|
+
@Override
|
324
|
+
public void resumeThread() {
|
331
325
|
paused = false;
|
332
326
|
synchronized (pauseObject) {
|
333
327
|
pauseObject.notifyAll(); // wake up the animation thread
|
334
328
|
}
|
335
329
|
}
|
336
330
|
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
331
|
+
/**
|
332
|
+
*
|
333
|
+
* @param fps
|
334
|
+
*/
|
335
|
+
@Override
|
336
|
+
public void setFrameRate(float fps) {
|
342
337
|
frameRateTarget = fps;
|
343
338
|
frameRatePeriod = (long) (1000000000.0 / frameRateTarget);
|
344
339
|
//g.setFrameRate(fps);
|
345
340
|
}
|
346
341
|
|
342
|
+
/**
|
343
|
+
*
|
344
|
+
*/
|
345
|
+
public class AnimationThread extends Thread {
|
346
|
+
|
347
347
|
/**
|
348
348
|
*
|
349
349
|
*/
|
350
|
-
public
|
351
|
-
|
352
|
-
/**
|
353
|
-
*
|
354
|
-
*/
|
355
|
-
public AnimationThread() {
|
350
|
+
public AnimationThread() {
|
356
351
|
super("Animation Thread");
|
357
352
|
}
|
358
353
|
|
359
354
|
// broken out so it can be overridden by Danger et al
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
*/
|
355
|
+
/**
|
356
|
+
*
|
357
|
+
*/
|
364
358
|
public void callDraw() {
|
365
359
|
sketch.handleDraw();
|
366
360
|
}
|
367
361
|
|
368
362
|
/**
|
369
363
|
* Main method for the primary animation thread.
|
370
|
-
* <A HREF="http://java.sun.com/products/jfc/tsc/articles/painting/">Painting
|
364
|
+
* <A HREF="http://java.sun.com/products/jfc/tsc/articles/painting/">Painting
|
365
|
+
* in AWT and Swing</A>
|
371
366
|
*/
|
372
367
|
@Override
|
373
368
|
public void run() { // not good to make this synchronized, locks things up
|
@@ -397,8 +392,7 @@ public class PSurfaceNone implements PSurface {
|
|
397
392
|
}
|
398
393
|
// System.out.format(" but now, sketchW/H changed to %d %d%n", sketchWidth, sketchHeight);
|
399
394
|
}
|
400
|
-
|
401
|
-
|
395
|
+
*/
|
402
396
|
// un-pause the sketch and get rolling
|
403
397
|
sketch.start();
|
404
398
|
|
@@ -411,7 +405,6 @@ public class PSurfaceNone implements PSurface {
|
|
411
405
|
// if (currentSize.width != sketchWidth || currentSize.height != sketchHeight) {
|
412
406
|
// System.err.format("need to resize from %s to %d, %d%n", currentSize, sketchWidth, sketchHeight);
|
413
407
|
// }
|
414
|
-
|
415
408
|
// render a single frame
|
416
409
|
// try {
|
417
410
|
// EventQueue.invokeAndWait(new Runnable() {
|
@@ -427,7 +420,6 @@ public class PSurfaceNone implements PSurface {
|
|
427
420
|
// }
|
428
421
|
// }
|
429
422
|
// });
|
430
|
-
|
431
423
|
// }
|
432
424
|
// });
|
433
425
|
// } catch (InterruptedException ie) {
|
@@ -435,12 +427,10 @@ public class PSurfaceNone implements PSurface {
|
|
435
427
|
// } catch (InvocationTargetException ite) {
|
436
428
|
// ite.getTargetException().printStackTrace();
|
437
429
|
// }
|
438
|
-
|
439
430
|
// wait for update & paint to happen before drawing next frame
|
440
431
|
// this is necessary since the drawing is sometimes in a
|
441
432
|
// separate thread, meaning that the next frame will start
|
442
433
|
// before the update/paint is completed
|
443
|
-
|
444
434
|
long afterTime = System.nanoTime();
|
445
435
|
long timeDiff = afterTime - beforeTime;
|
446
436
|
//System.out.println("time diff is " + timeDiff);
|
@@ -450,7 +440,8 @@ public class PSurfaceNone implements PSurface {
|
|
450
440
|
try {
|
451
441
|
Thread.sleep(sleepTime / 1000000L, (int) (sleepTime % 1000000L));
|
452
442
|
noDelays = 0; // Got some sleep, not delaying anymore
|
453
|
-
} catch (InterruptedException ex) {
|
443
|
+
} catch (InterruptedException ex) {
|
444
|
+
}
|
454
445
|
|
455
446
|
overSleepTime = (System.nanoTime() - afterTime) - sleepTime;
|
456
447
|
|