propane 2.8.0.pre-java → 2.9.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/.mvn/extensions.xml +1 -1
- data/CHANGELOG.md +4 -2
- data/README.md +9 -11
- data/Rakefile +2 -2
- data/lib/propane/app.rb +3 -3
- data/lib/propane/version.rb +1 -1
- data/library/control_panel/control_panel.rb +2 -3
- data/library/slider/slider.rb +2 -1
- data/license.txt +508 -0
- data/pom.rb +92 -81
- data/pom.xml +42 -30
- data/propane.gemspec +3 -3
- data/src/main/java/processing/awt/PSurfaceAWT.java +36 -36
- data/src/main/java/processing/core/PApplet.java +45 -46
- data/src/main/java/processing/core/ThinkDifferent.java +96 -0
- data/src/main/java/processing/javafx/PGraphicsFX2D.java +2330 -0
- data/src/main/java/processing/javafx/PSurfaceFX.java +1069 -0
- data/vendors/Rakefile +20 -5
- metadata +12 -9
- data/.travis.yml +0 -10
data/pom.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'fileutils'
|
2
|
+
project 'propane', 'https://github.com/monkstone/propane' do
|
3
3
|
model_version '4.0.0'
|
4
|
-
id '
|
4
|
+
id 'propane:propane:2.9.0'
|
5
5
|
packaging 'jar'
|
6
|
-
|
7
6
|
description 'An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.'
|
8
7
|
|
9
8
|
organization 'ruby-processing', 'https://ruby-processing.github.io'
|
@@ -19,90 +18,102 @@ project 'propane', 'http://maven.apache.org' do
|
|
19
18
|
end
|
20
19
|
license 'GPL 3', 'http://www.gnu.org/licenses/gpl-3.0-standalone.html'
|
21
20
|
license 'LGPL 2', 'https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html'
|
22
|
-
|
23
21
|
issue_management 'https://github.com/ruby-processing/propane/issues', 'Github'
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
'
|
28
|
-
'
|
29
|
-
|
23
|
+
source_control(
|
24
|
+
url: 'https://github.com/ruby-processing/propane',
|
25
|
+
connection: 'scm:git:git://github.com/ruby-processing/propane.git',
|
26
|
+
developer_connection: 'scm:git:git@github.com/ruby-processing/propane.git'
|
27
|
+
)
|
28
|
+
|
29
|
+
properties('source.directory' => 'src',
|
30
30
|
'propane.basedir' => '${project.basedir}',
|
31
|
-
'project.build.sourceEncoding' => 'utf-8',
|
32
31
|
'polyglot.dump.pom' => 'pom.xml',
|
33
|
-
'maven.compiler.source' => '1.8'
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
32
|
+
'maven.compiler.source' => '1.8',
|
33
|
+
'project.build.sourceEncoding' => 'utf-8',
|
34
|
+
'maven.compiler.target' => '1.8',
|
35
|
+
'jruby.api' => 'http://jruby.org/apidocs/',
|
36
|
+
'processing.api' => 'http://processing.github.io/processing-javadocs/core/',
|
37
|
+
'jruby.api' => 'http://jruby.org/apidocs/',
|
38
|
+
'jogl.version' => '2.3.2'
|
39
|
+
)
|
40
|
+
|
41
|
+
pom 'org.jruby:jruby:9.2.0.0'
|
42
|
+
jar 'com.apple.eawt:apple:1.0'
|
43
|
+
jar 'org.processing:video:3.0.2'
|
44
|
+
jar('org.jogamp.jogl:jogl-all:${jogl.version}')
|
45
|
+
jar('org.jogamp.gluegen:gluegen-rt-main:${jogl.version}')
|
38
46
|
|
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
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
47
|
+
overrides do
|
48
|
+
plugin :resources, '2.6'
|
49
|
+
plugin :dependency, '2.10' do
|
50
|
+
execute_goals( id: 'default-cli',
|
51
|
+
artifactItems: [ { groupId: 'org.jogamp.jogl',
|
52
|
+
artifactId: 'jogl-all',
|
53
|
+
version: '${jogl.version}',
|
54
|
+
type: 'jar',
|
55
|
+
outputDirectory: '${propane.basedir}/lib'
|
56
|
+
},
|
57
|
+
{ groupId: 'org.jogamp.gluegen',
|
58
|
+
artifactId: 'gluegen-rt',
|
59
|
+
version: '${jogl.version}',
|
60
|
+
type: 'jar',
|
61
|
+
outputDirectory: '${propane.basedir}/lib'
|
62
|
+
},
|
63
|
+
{ groupId: 'org.jogamp.jogl',
|
64
|
+
artifactId: 'jogl-all',
|
65
|
+
version: '${jogl.version}',
|
66
|
+
classifier: 'natives-linux-amd64',
|
67
|
+
type: 'jar',
|
68
|
+
outputDirectory: '${propane.basedir}/lib'
|
69
|
+
},
|
70
|
+
{ groupId: 'org.jogamp.gluegen',
|
71
|
+
artifactId: 'gluegen-rt',
|
72
|
+
version: '${jogl.version}',
|
73
|
+
type: 'jar',
|
74
|
+
classifier: 'natives-linux-amd64',
|
75
|
+
outputDirectory: '${propane.basedir}/lib'
|
76
|
+
},
|
77
|
+
{ groupId: 'org.jogamp.jogl',
|
78
|
+
artifactId: 'jogl-all',
|
79
|
+
version: '${jogl.version}',
|
80
|
+
classifier: 'natives-macosx-universal',
|
81
|
+
type: 'jar',
|
82
|
+
outputDirectory: '${propane.basedir}/lib'
|
83
|
+
},
|
84
|
+
{ groupId: 'org.jogamp.gluegen',
|
85
|
+
artifactId: 'gluegen-rt',
|
86
|
+
version: '${jogl.version}',
|
87
|
+
type: 'jar',
|
88
|
+
classifier: 'natives-macosx-universal',
|
89
|
+
outputDirectory: '${propane.basedir}/lib'
|
90
|
+
}
|
83
91
|
]
|
84
92
|
)
|
85
93
|
end
|
94
|
+
|
95
|
+
plugin( :compiler, '3.8.0',
|
96
|
+
source: '${maven.compiler.source}',
|
97
|
+
target: '${maven.compiler.target}'
|
98
|
+
)
|
99
|
+
plugin( :javadoc, '2.10.4',
|
100
|
+
detect_offline_links: 'false',
|
101
|
+
links: ['${jruby.api}', '${processing.api}']
|
102
|
+
)
|
103
|
+
plugin( :jar, '3.0.2',
|
104
|
+
archive: { manifestFile: 'MANIFEST.MF' }
|
105
|
+
)
|
86
106
|
end
|
87
107
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
'
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
includes ['**/**/*.glsl', '**/*.jnilib']
|
101
|
-
excludes '**/**/*.java'
|
102
|
-
end
|
103
|
-
resource do
|
104
|
-
directory '${source.directory}/main/resources'
|
105
|
-
includes ['**/*.png', '*.txt']
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
108
|
+
build do
|
109
|
+
resource do
|
110
|
+
directory '${source.directory}/main/java'
|
111
|
+
includes ['**/**/*.glsl', '**/*.jnilib']
|
112
|
+
excludes '**/**/*.java'
|
113
|
+
end
|
114
|
+
resource do
|
115
|
+
directory '${source.directory}/main/resources'
|
116
|
+
includes ['**/*.png', '*.txt']
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
data/pom.xml
CHANGED
@@ -9,12 +9,12 @@ DO NOT MODIFIY - GENERATED CODE
|
|
9
9
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
10
10
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
11
11
|
<modelVersion>4.0.0</modelVersion>
|
12
|
-
<groupId>
|
12
|
+
<groupId>propane</groupId>
|
13
13
|
<artifactId>propane</artifactId>
|
14
|
-
<version>2.
|
14
|
+
<version>2.9.0</version>
|
15
15
|
<name>propane</name>
|
16
16
|
<description>An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.</description>
|
17
|
-
<url>
|
17
|
+
<url>https://github.com/monkstone/propane</url>
|
18
18
|
<organization>
|
19
19
|
<name>ruby-processing</name>
|
20
20
|
<url>https://ruby-processing.github.io</url>
|
@@ -59,6 +59,11 @@ DO NOT MODIFIY - GENERATED CODE
|
|
59
59
|
</roles>
|
60
60
|
</developer>
|
61
61
|
</developers>
|
62
|
+
<scm>
|
63
|
+
<connection>scm:git:git://github.com/ruby-processing/propane.git</connection>
|
64
|
+
<developerConnection>scm:git:git@github.com/ruby-processing/propane.git</developerConnection>
|
65
|
+
<url>https://github.com/ruby-processing/propane</url>
|
66
|
+
</scm>
|
62
67
|
<issueManagement>
|
63
68
|
<system>Github</system>
|
64
69
|
<url>https://github.com/ruby-processing/propane/issues</url>
|
@@ -78,9 +83,14 @@ DO NOT MODIFIY - GENERATED CODE
|
|
78
83
|
<dependency>
|
79
84
|
<groupId>org.jruby</groupId>
|
80
85
|
<artifactId>jruby</artifactId>
|
81
|
-
<version>9.
|
86
|
+
<version>9.2.0.0</version>
|
82
87
|
<type>pom</type>
|
83
88
|
</dependency>
|
89
|
+
<dependency>
|
90
|
+
<groupId>com.apple.eawt</groupId>
|
91
|
+
<artifactId>apple</artifactId>
|
92
|
+
<version>1.0</version>
|
93
|
+
</dependency>
|
84
94
|
<dependency>
|
85
95
|
<groupId>org.processing</groupId>
|
86
96
|
<artifactId>video</artifactId>
|
@@ -182,33 +192,35 @@ DO NOT MODIFIY - GENERATED CODE
|
|
182
192
|
</execution>
|
183
193
|
</executions>
|
184
194
|
</plugin>
|
195
|
+
<plugin>
|
196
|
+
<artifactId>maven-compiler-plugin</artifactId>
|
197
|
+
<version>3.8.0</version>
|
198
|
+
<configuration>
|
199
|
+
<source>${maven.compiler.source}</source>
|
200
|
+
<target>${maven.compiler.target}</target>
|
201
|
+
</configuration>
|
202
|
+
</plugin>
|
203
|
+
<plugin>
|
204
|
+
<artifactId>maven-javadoc-plugin</artifactId>
|
205
|
+
<version>2.10.4</version>
|
206
|
+
<configuration>
|
207
|
+
<detectOfflineLinks>false</detectOfflineLinks>
|
208
|
+
<links>
|
209
|
+
<link>${jruby.api}</link>
|
210
|
+
<link>${processing.api}</link>
|
211
|
+
</links>
|
212
|
+
</configuration>
|
213
|
+
</plugin>
|
214
|
+
<plugin>
|
215
|
+
<artifactId>maven-jar-plugin</artifactId>
|
216
|
+
<version>3.0.2</version>
|
217
|
+
<configuration>
|
218
|
+
<archive>
|
219
|
+
<manifestFile>MANIFEST.MF</manifestFile>
|
220
|
+
</archive>
|
221
|
+
</configuration>
|
222
|
+
</plugin>
|
185
223
|
</plugins>
|
186
224
|
</pluginManagement>
|
187
|
-
<plugins>
|
188
|
-
<plugin>
|
189
|
-
<artifactId>maven-resources-plugin</artifactId>
|
190
|
-
<version>2.7</version>
|
191
|
-
<configuration>
|
192
|
-
<encoding>UTF-8</encoding>
|
193
|
-
</configuration>
|
194
|
-
</plugin>
|
195
|
-
<plugin>
|
196
|
-
<artifactId>maven-compiler-plugin</artifactId>
|
197
|
-
<version>3.7.0</version>
|
198
|
-
<configuration>
|
199
|
-
<source>1.8</source>
|
200
|
-
<target>1.8</target>
|
201
|
-
</configuration>
|
202
|
-
</plugin>
|
203
|
-
<plugin>
|
204
|
-
<artifactId>maven-pmd-plugin</artifactId>
|
205
|
-
<version>3.3</version>
|
206
|
-
<configuration>
|
207
|
-
<sourceEncoding>utf-8</sourceEncoding>
|
208
|
-
<minimumTokens>100</minimumTokens>
|
209
|
-
<targetJdk>${compileSource}</targetJdk>
|
210
|
-
</configuration>
|
211
|
-
</plugin>
|
212
|
-
</plugins>
|
213
225
|
</build>
|
214
226
|
</project>
|
data/propane.gemspec
CHANGED
@@ -12,10 +12,10 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.description = <<-EOS
|
13
13
|
A batteries included version of processing in ruby, for MacOS and linux64.
|
14
14
|
EOS
|
15
|
-
gem.summary = %q{ruby wrapper for processing-3.
|
15
|
+
gem.summary = %q{ruby wrapper for processing-3.4 on MacOS and linux64 bit only for opengl}
|
16
16
|
gem.homepage = 'https://ruby-processing.github.io/propane/'
|
17
17
|
gem.files = `git ls-files`.split($/)
|
18
|
-
gem.files << 'lib/propane-2.
|
18
|
+
gem.files << 'lib/propane-2.9.0.jar'
|
19
19
|
gem.files << 'lib/gluegen-rt-2.3.2.jar'
|
20
20
|
gem.files << 'lib/jogl-all-2.3.2.jar'
|
21
21
|
gem.files << 'lib/gluegen-rt-2.3.2-natives-linux-amd64.jar'
|
@@ -29,5 +29,5 @@ Gem::Specification.new do |gem|
|
|
29
29
|
gem.add_runtime_dependency 'arcball', '~> 1.0', '>= 1.0.0'
|
30
30
|
gem.require_paths = ['lib']
|
31
31
|
gem.platform = 'java'
|
32
|
-
gem.requirements << 'java runtime >= 1.8.
|
32
|
+
gem.requirements << 'java runtime >= 1.8.0_171+'
|
33
33
|
end
|
@@ -587,22 +587,22 @@ public class PSurfaceAWT extends PSurfaceNone {
|
|
587
587
|
@Override
|
588
588
|
public void setIcon(PImage image) {
|
589
589
|
Image awtImage = (Image) image.getNative();
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
590
|
+
|
591
|
+
if (PApplet.platform != PConstants.MACOSX) {
|
592
|
+
frame.setIconImage(awtImage);
|
593
|
+
|
594
|
+
} else {
|
595
|
+
try {
|
596
|
+
final String td = "processing.core.ThinkDifferent";
|
597
|
+
Class<?> thinkDifferent =
|
598
|
+
Thread.currentThread().getContextClassLoader().loadClass(td);
|
599
|
+
Method method =
|
600
|
+
thinkDifferent.getMethod("setIconImage", new Class[] { java.awt.Image.class });
|
601
|
+
method.invoke(null, new Object[] { awtImage });
|
602
|
+
} catch (Exception e) {
|
603
|
+
e.printStackTrace(); // That's unfortunate
|
604
|
+
}
|
605
|
+
}
|
606
606
|
}
|
607
607
|
|
608
608
|
|
@@ -623,7 +623,7 @@ public class PSurfaceAWT extends PSurfaceNone {
|
|
623
623
|
protected void setProcessingIcon(Frame frame) {
|
624
624
|
// On OS X, this only affects what shows up in the dock when minimized.
|
625
625
|
// So replacing it is actually a step backwards. Brilliant.
|
626
|
-
|
626
|
+
if (PApplet.platform != PConstants.MACOSX) {
|
627
627
|
//Image image = Toolkit.getDefaultToolkit().createImage(ICON_IMAGE);
|
628
628
|
//frame.setIconImage(image);
|
629
629
|
try {
|
@@ -643,25 +643,25 @@ public class PSurfaceAWT extends PSurfaceNone {
|
|
643
643
|
|
644
644
|
} catch (Exception e) { } // harmless; keep this to ourselves
|
645
645
|
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
646
|
+
} else { // handle OS X differently
|
647
|
+
if (!dockIconSpecified()) { // don't override existing -Xdock param
|
648
|
+
// On OS X, set this for AWT surfaces, which handles the dock image
|
649
|
+
// as well as the cmd-tab image that's shown. Just one size, I guess.
|
650
|
+
URL url = PApplet.class.getResource("/icon/icon-512.png");
|
651
|
+
// Seems dangerous to have this in code instead of using reflection, no?
|
652
|
+
//ThinkDifferent.setIconImage(Toolkit.getDefaultToolkit().getImage(url));
|
653
|
+
try {
|
654
|
+
final String td = "processing.core.ThinkDifferent";
|
655
|
+
Class<?> thinkDifferent =
|
656
|
+
Thread.currentThread().getContextClassLoader().loadClass(td);
|
657
|
+
Method method =
|
658
|
+
thinkDifferent.getMethod("setIconImage", new Class[] { java.awt.Image.class });
|
659
|
+
method.invoke(null, new Object[] { Toolkit.getDefaultToolkit().getImage(url) });
|
660
|
+
} catch (Exception e) {
|
661
|
+
e.printStackTrace(); // That's unfortunate
|
662
|
+
}
|
663
|
+
}
|
664
|
+
}
|
665
665
|
}
|
666
666
|
|
667
667
|
|
@@ -73,34 +73,34 @@ import processing.opengl.*;
|
|
73
73
|
|
74
74
|
/**
|
75
75
|
* Base class for all sketches that use processing.core.
|
76
|
-
* <p
|
76
|
+
* <p/>
|
77
77
|
* The <A HREF="https://github.com/processing/processing/wiki/Window-Size-and-Full-Screen">
|
78
78
|
* Window Size and Full Screen</A> page on the Wiki has useful information
|
79
79
|
* about sizing, multiple displays, full screen, etc.
|
80
|
-
* <p
|
80
|
+
* <p/>
|
81
81
|
* Processing uses active mode rendering. All animation tasks happen on the
|
82
82
|
* "Processing Animation Thread". The setup() and draw() methods are handled
|
83
83
|
* by that thread, and events (like mouse movement and key presses, which are
|
84
84
|
* fired by the event dispatch thread or EDT) are queued to be safely handled
|
85
85
|
* at the end of draw().
|
86
|
-
* <p
|
86
|
+
* <p/>
|
87
87
|
* Starting with 3.0a6, blit operations are on the EDT, so as not to cause
|
88
88
|
* GUI problems with Swing and AWT. In the case of the default renderer, the
|
89
89
|
* sketch renders to an offscreen image, then the EDT is asked to bring that
|
90
90
|
* image to the screen.
|
91
|
-
* <p
|
91
|
+
* <p/>
|
92
92
|
* For code that needs to run on the EDT, use EventQueue.invokeLater(). When
|
93
93
|
* doing so, be careful to synchronize between that code and the Processing
|
94
94
|
* animation thread. That is, you can't call Processing methods from the EDT
|
95
95
|
* or at any random time from another thread. Use of a callback function or
|
96
96
|
* the registerXxx() methods in PApplet can help ensure that your code doesn't
|
97
97
|
* do something naughty.
|
98
|
-
* <p
|
98
|
+
* <p/>
|
99
99
|
* As of Processing 3.0, we have removed Applet as the base class for PApplet.
|
100
100
|
* This means that we can remove lots of legacy code, however one downside is
|
101
101
|
* that it's no longer possible (without extra code) to embed a PApplet into
|
102
102
|
* another Java application.
|
103
|
-
* <p
|
103
|
+
* <p/>
|
104
104
|
* As of Processing 3.0, we have discontinued support for versions of Java
|
105
105
|
* prior to 1.8. We don't have enough people to support it, and for a
|
106
106
|
* project of our (tiny) size, we should be focusing on the future, rather
|
@@ -108,16 +108,16 @@ import processing.opengl.*;
|
|
108
108
|
*/
|
109
109
|
public class PApplet implements PConstants {
|
110
110
|
/** Full name of the Java version (i.e. 1.5.0_11). */
|
111
|
-
static public final String
|
111
|
+
static public final String javaVersionName =
|
112
112
|
System.getProperty("java.version");
|
113
113
|
|
114
|
-
static public final int
|
114
|
+
static public final int javaPlatform;
|
115
115
|
static {
|
116
|
-
String version =
|
117
|
-
if (
|
116
|
+
String version = javaVersionName;
|
117
|
+
if (javaVersionName.startsWith("1.")) {
|
118
118
|
version = version.substring(2);
|
119
119
|
}
|
120
|
-
|
120
|
+
javaPlatform = parseInt(version.substring(0, version.indexOf('.')));
|
121
121
|
}
|
122
122
|
|
123
123
|
/**
|
@@ -127,7 +127,7 @@ public class PApplet implements PConstants {
|
|
127
127
|
* @deprecated
|
128
128
|
*/
|
129
129
|
@Deprecated
|
130
|
-
public static final float javaVersion = 1 +
|
130
|
+
public static final float javaVersion = 1 + javaPlatform / 10f;
|
131
131
|
|
132
132
|
/**
|
133
133
|
* Current platform in use, one of the
|
@@ -138,10 +138,10 @@ public class PApplet implements PConstants {
|
|
138
138
|
static {
|
139
139
|
String osname = System.getProperty("os.name");
|
140
140
|
|
141
|
-
if (osname.
|
141
|
+
if (osname.indexOf("Mac") != -1) {
|
142
142
|
platform = MACOSX;
|
143
143
|
|
144
|
-
} else if (osname.
|
144
|
+
} else if (osname.indexOf("Windows") != -1) {
|
145
145
|
platform = WINDOWS;
|
146
146
|
|
147
147
|
} else if (osname.equals("Linux")) { // true for the ibm vm
|
@@ -169,8 +169,7 @@ public class PApplet implements PConstants {
|
|
169
169
|
* example, if the current screen resolution is 1024x768,
|
170
170
|
* <b>displayWidth</b> is 1024 and <b>displayHeight</b> is 768. These
|
171
171
|
* dimensions are useful when exporting full-screen applications.
|
172
|
-
*
|
173
|
-
*
|
172
|
+
* <br /><br />
|
174
173
|
* To ensure that the sketch takes over the entire screen, use "Present"
|
175
174
|
* instead of "Run". Otherwise the window will still have a frame border
|
176
175
|
* around it and not be placed in the upper corner of the screen. On Mac OS
|
@@ -1290,7 +1289,7 @@ public class PApplet implements PConstants {
|
|
1290
1289
|
* Called by the browser or applet viewer to inform this applet that it
|
1291
1290
|
* should start its execution. It is called after the init method and
|
1292
1291
|
* each time the applet is revisited in a Web page.
|
1293
|
-
* <p
|
1292
|
+
* <p/>
|
1294
1293
|
* Called explicitly via the first call to PApplet.paint(), because
|
1295
1294
|
* PAppletGL needs to have a usable screen before getting things rolling.
|
1296
1295
|
*/
|
@@ -1306,7 +1305,7 @@ public class PApplet implements PConstants {
|
|
1306
1305
|
/**
|
1307
1306
|
* Called by the browser or applet viewer to inform
|
1308
1307
|
* this applet that it should stop its execution.
|
1309
|
-
* <p
|
1308
|
+
* <p/>
|
1310
1309
|
* Unfortunately, there are no guarantees from the Java spec
|
1311
1310
|
* when or if stop() will be called (i.e. on browser quit,
|
1312
1311
|
* or when moving between web pages), and it's not always called.
|
@@ -1365,7 +1364,7 @@ public class PApplet implements PConstants {
|
|
1365
1364
|
// * Called by the browser or applet viewer to inform this applet
|
1366
1365
|
// * that it is being reclaimed and that it should destroy
|
1367
1366
|
// * any resources that it has allocated.
|
1368
|
-
// * <p
|
1367
|
+
// * <p/>
|
1369
1368
|
// * destroy() supposedly gets called as the applet viewer
|
1370
1369
|
// * is shutting down the applet. stop() is called
|
1371
1370
|
// * first, and then destroy() to really get rid of things.
|
@@ -3701,15 +3700,15 @@ public class PApplet implements PConstants {
|
|
3701
3700
|
handleMethods("dispose");
|
3702
3701
|
}
|
3703
3702
|
|
3704
|
-
|
3705
|
-
|
3706
|
-
|
3707
|
-
|
3708
|
-
|
3709
|
-
|
3710
|
-
|
3711
|
-
|
3712
|
-
|
3703
|
+
if (platform == MACOSX) {
|
3704
|
+
try {
|
3705
|
+
final String td = "processing.core.ThinkDifferent";
|
3706
|
+
final Class<?> thinkDifferent = getClass().getClassLoader().loadClass(td);
|
3707
|
+
thinkDifferent.getMethod("cleanup").invoke(null);
|
3708
|
+
} catch (Exception e) {
|
3709
|
+
e.printStackTrace();
|
3710
|
+
}
|
3711
|
+
}
|
3713
3712
|
|
3714
3713
|
}
|
3715
3714
|
|
@@ -3720,7 +3719,7 @@ public class PApplet implements PConstants {
|
|
3720
3719
|
|
3721
3720
|
/**
|
3722
3721
|
* Call a method in the current class based on its name.
|
3723
|
-
* <p
|
3722
|
+
* <p/>
|
3724
3723
|
* Note that the function being called must be public. Inside the PDE,
|
3725
3724
|
* 'public' is automatically added, but when used without the preprocessor,
|
3726
3725
|
* (like from Eclipse) you'll have to do it yourself.
|
@@ -3749,7 +3748,7 @@ public class PApplet implements PConstants {
|
|
3749
3748
|
* Launch a new thread and call the specified function from that new thread.
|
3750
3749
|
* This is a very simple way to do a thread without needing to get into
|
3751
3750
|
* classes, runnables, etc.
|
3752
|
-
* <p
|
3751
|
+
* <p/>
|
3753
3752
|
* Note that the function being called must be public. Inside the PDE,
|
3754
3753
|
* 'public' is automatically added, but when used without the preprocessor,
|
3755
3754
|
* (like from Eclipse) you'll have to do it yourself.
|
@@ -7599,7 +7598,7 @@ public class PApplet implements PConstants {
|
|
7599
7598
|
/**
|
7600
7599
|
* Identical to the other saveStream(), but writes to a File
|
7601
7600
|
* object, for greater control over the file location.
|
7602
|
-
* <p
|
7601
|
+
* <p/>
|
7603
7602
|
* Note that unlike other api methods, this will not automatically
|
7604
7603
|
* compress or uncompress gzip files.
|
7605
7604
|
*/
|
@@ -7882,11 +7881,11 @@ public class PApplet implements PConstants {
|
|
7882
7881
|
* Prepend the sketch folder path to the filename (or path) that is
|
7883
7882
|
* passed in. External libraries should use this function to save to
|
7884
7883
|
* the sketch folder.
|
7885
|
-
* <p
|
7884
|
+
* <p/>
|
7886
7885
|
* Note that when running as an applet inside a web browser,
|
7887
7886
|
* the sketchPath will be set to null, because security restrictions
|
7888
7887
|
* prevent applets from accessing that information.
|
7889
|
-
* <p
|
7888
|
+
* <p/>
|
7890
7889
|
* This will also cause an error if the sketch is not inited properly,
|
7891
7890
|
* meaning that init() was never called on the PApplet when hosted
|
7892
7891
|
* my some other main() or by other code. For proper use of init(),
|
@@ -7915,7 +7914,7 @@ public class PApplet implements PConstants {
|
|
7915
7914
|
/**
|
7916
7915
|
* Returns a path inside the applet folder to save to. Like sketchPath(),
|
7917
7916
|
* but creates any in-between folders so that things save properly.
|
7918
|
-
* <p
|
7917
|
+
* <p/>
|
7919
7918
|
* All saveXxxx() functions use the path to the sketch folder, rather than
|
7920
7919
|
* its data folder. Once exported, the data folder will be found inside the
|
7921
7920
|
* jar file of the exported application or applet. In this case, it's not
|
@@ -10699,18 +10698,18 @@ public class PApplet implements PConstants {
|
|
10699
10698
|
}
|
10700
10699
|
}
|
10701
10700
|
|
10702
|
-
|
10703
|
-
|
10704
|
-
|
10705
|
-
|
10706
|
-
|
10707
|
-
|
10708
|
-
|
10709
|
-
|
10710
|
-
|
10711
|
-
|
10712
|
-
|
10713
|
-
|
10701
|
+
if (platform == MACOSX) {
|
10702
|
+
try {
|
10703
|
+
final String td = "processing.core.ThinkDifferent";
|
10704
|
+
Class<?> thinkDifferent =
|
10705
|
+
Thread.currentThread().getContextClassLoader().loadClass(td);
|
10706
|
+
Method method =
|
10707
|
+
thinkDifferent.getMethod("init", new Class[] { PApplet.class });
|
10708
|
+
method.invoke(null, new Object[] { sketch });
|
10709
|
+
} catch (Exception e) {
|
10710
|
+
e.printStackTrace(); // That's unfortunate
|
10711
|
+
}
|
10712
|
+
}
|
10714
10713
|
|
10715
10714
|
// Set the suggested display that's coming from the command line
|
10716
10715
|
// (and most likely, from the PDE's preference setting).
|