propane 3.2.0-java → 3.3.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.mvn/extensions.xml +9 -0
- data/.mvn/wrapper/maven-wrapper.properties +3 -1
- data/CHANGELOG.md +3 -1
- data/README.md +4 -4
- data/lib/propane/app.rb +1 -1
- data/lib/propane/version.rb +1 -1
- data/pom.rb +79 -0
- data/pom.xml +32 -43
- data/propane.gemspec +2 -2
- data/src/main/java/japplemenubar/JAppleMenuBar.java +47 -41
- data/src/main/java/monkstone/vecmath/{AppRender.java → GfxRender.java} +12 -12
- data/src/main/java/processing/awt/PSurfaceAWT.java +3 -3
- data/src/main/java/processing/core/PApplet.java +14004 -14573
- data/src/main/java/processing/core/PGraphics.java +7563 -7213
- data/src/main/java/processing/core/PImage.java +2783 -3080
- data/src/main/java/processing/core/ThinkDifferent.java +120 -0
- data/src/main/java/processing/core/util/image/ImageLoadFacade.java +161 -0
- data/src/main/java/processing/core/util/image/ImageSaveFacade.java +169 -0
- data/src/main/java/processing/core/util/image/constants/TifConstants.java +45 -0
- data/src/main/java/processing/core/util/image/load/AwtImageLoadStrategy.java +80 -0
- data/src/main/java/processing/core/util/image/load/Base64StringImageLoadStrategy.java +73 -0
- data/src/main/java/processing/core/util/image/load/FallbackImageLoadStrategy.java +70 -0
- data/src/main/java/processing/core/util/image/load/ImageIoImageLoadStrategy.java +132 -0
- data/src/main/java/processing/core/util/image/load/ImageLoadStrategy.java +48 -0
- data/src/main/java/processing/core/util/image/load/ImageLoadUtil.java +45 -0
- data/src/main/java/processing/core/util/image/load/TgaImageLoadStrategy.java +255 -0
- data/src/main/java/processing/core/util/image/load/TiffImageLoadStrategy.java +98 -0
- data/src/main/java/processing/core/util/image/save/ImageSaveStrategy.java +49 -0
- data/src/main/java/processing/core/util/image/save/ImageSaveUtil.java +48 -0
- data/src/main/java/processing/core/util/image/save/ImageWriterImageSaveStrategy.java +179 -0
- data/src/main/java/processing/core/util/image/save/SaveImageException.java +41 -0
- data/src/main/java/processing/core/util/image/save/TgaImageSaveStrategy.java +198 -0
- data/src/main/java/processing/core/util/image/save/TiffImageSaveStrategy.java +91 -0
- data/src/main/java/processing/core/util/image/save/TiffNakedFilenameImageSaveStrategy.java +57 -0
- data/src/main/java/processing/core/util/io/InputFactory.java +285 -0
- data/src/main/java/processing/core/util/io/PathUtil.java +109 -0
- data/vendors/Rakefile +1 -1
- metadata +30 -7
- data/src/main/java/processing/core/DesktopHandler.java +0 -94
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 580882cb5f9d0a497b538b8537ae10d51d17b922ba81c01f1912fd6f161d23ab
|
4
|
+
data.tar.gz: 47b5945a4e46a9287c7856d6726f79668154bf502eadecba8045beacc831ed63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2cf96f90b7377e091c01d9b188a63d618001408675c2f945d72ee00da8cccbe057d372255010ef04a4adaffe54ae6afdad5d70713d00469b223edf8cb172067
|
7
|
+
data.tar.gz: 3e2d188cd042052892f0c5b1f33229b4faf28214c3ad3d739af052f6961e9430b050d59076f3965d6521ccb740d227c3b0f65f8c8fa1f42c8b00076b83153074
|
data/.mvn/extensions.xml
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
**v3.
|
1
|
+
**v3.3.0** Compile with jdk12. Changed AppRender to GfxRender (PGraphics instead of PApplet). Attempt fix for macOS icons
|
2
|
+
|
3
|
+
**v3.2.0** Now is the time for some serious refactoring for jdk11. Might even work on MacOS and Windows, ahead of vanilla processing.
|
2
4
|
|
3
5
|
**v2.9.1** Attempt to bring 64 bit Windows users to party. Use non versioned jogl/opengl jars from processing distro, including processing.org apple.jar in case it's needed, MacOS users are being very opaque on this.
|
4
6
|
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# Propane
|
2
2
|
|
3
|
-
This version is intended to work with openjdk11+, @sampottinger is currently working on [vanilla processing][vanilla] which will enable JRubyArt to catch up.
|
3
|
+
This version is intended to work with openjdk11+, @sampottinger is currently working on [vanilla processing][vanilla] which will enable JRubyArt to catch up. Unfortunately there is a cockup in debian distributions, and it is currently safer to use the Oracle version on debian (Archlinux openjdk version is fine).
|
4
4
|
|
5
|
-
A slim layer to communicate with Processing from JRuby, features maven build. We have created a configuration free version of ruby processing, for processing-
|
5
|
+
A slim layer to communicate with Processing from JRuby, features maven build. We have created a configuration free version of ruby processing, for processing-4.0+, where we include a modified processing core (`public runPropane()` to replace `protected runSketch()`. These jars are small enough to include in a gem distribution, and hence we do not require configuration. This has created a scriptable version, ie files get run direct from jruby. Currently JavaFX is unsupported again @sampottinger is currently working on [vanilla processing][vanilla] to use OpenJFX. It would be nice make use of java modules, but I think we should let jruby project do that first (unless processing.org beat them to it).
|
6
6
|
|
7
7
|
adjust above for your OS/distro setup.
|
8
8
|
|
@@ -24,10 +24,10 @@ rake javadoc
|
|
24
24
|
|
25
25
|
```bash
|
26
26
|
jgem install propane # from rubygems
|
27
|
-
jgem install propane-3.
|
27
|
+
jgem install propane-3.3.0-java.gem # local install
|
28
28
|
# Alternative
|
29
29
|
jruby -S gem install propane # from rubygems
|
30
|
-
jruby -S gem install propane-3.
|
30
|
+
jruby -S gem install propane-3.3.0-java.gem # local install
|
31
31
|
```
|
32
32
|
|
33
33
|
## Check Install
|
data/lib/propane/app.rb
CHANGED
data/lib/propane/version.rb
CHANGED
data/pom.rb
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
project 'propane', 'https://github.com/monkstone/propane' do
|
2
|
+
|
3
|
+
model_version '4.0.0'
|
4
|
+
id 'propane:propane:3.3.0'
|
5
|
+
packaging 'jar'
|
6
|
+
|
7
|
+
description 'An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.'
|
8
|
+
|
9
|
+
developer 'monkstone' do
|
10
|
+
name 'Martin Prout'
|
11
|
+
roles 'developer'
|
12
|
+
end
|
13
|
+
|
14
|
+
developer 'benfry' do
|
15
|
+
name 'Ben Fry'
|
16
|
+
roles 'developer'
|
17
|
+
end
|
18
|
+
|
19
|
+
developer 'REAS' do
|
20
|
+
name 'Casey Reas'
|
21
|
+
roles 'developer'
|
22
|
+
end
|
23
|
+
|
24
|
+
developer 'codeanticode' do
|
25
|
+
name 'Andres Colubri'
|
26
|
+
roles 'developer'
|
27
|
+
end
|
28
|
+
|
29
|
+
issue_management 'https://github.com/ruby-processing/propane/issues', 'Github'
|
30
|
+
|
31
|
+
source_control( :url => 'https://github.com/ruby-processing/propane',
|
32
|
+
:connection => 'scm:git:git://github.com/ruby-processing/propane.git',
|
33
|
+
:developer_connection => 'scm:git:git@github.com/ruby-processing/propane.git' )
|
34
|
+
|
35
|
+
properties( 'propane.basedir' => '${project.basedir}',
|
36
|
+
'processing.api' => 'http://processing.github.io/processing-javadocs/core/',
|
37
|
+
'source.directory' => 'src',
|
38
|
+
'polyglot.dump.pom' => 'pom.xml',
|
39
|
+
'project.build.sourceEncoding' => 'utf-8',
|
40
|
+
'jogl.version' => '2.3.2',
|
41
|
+
'jruby.api' => 'http://jruby.org/apidocs/' )
|
42
|
+
|
43
|
+
pom 'org.jruby:jruby:9.2.7.0'
|
44
|
+
jar 'org.processing:video:3.2.3'
|
45
|
+
jar 'org.jogamp.jogl:jogl-all:${jogl.version}'
|
46
|
+
jar 'org.jogamp.gluegen:gluegen-rt-main:${jogl.version}'
|
47
|
+
|
48
|
+
overrides do
|
49
|
+
plugin( 'org.codehaus.mojo:versions-maven-plugin:2.7',
|
50
|
+
'generateBackupPoms' => 'false' )
|
51
|
+
plugin( :compiler, '3.8.0',
|
52
|
+
'release' => '11' )
|
53
|
+
plugin( :javadoc, '3.0.1',
|
54
|
+
'detectOfflineLinks' => 'false',
|
55
|
+
'links' => [ '${jruby.api}',
|
56
|
+
'${processing.api}' ] )
|
57
|
+
plugin( :jar, '3.1.0',
|
58
|
+
'archive' => {
|
59
|
+
'manifestFile' => 'MANIFEST.MF'
|
60
|
+
} )
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
build do
|
65
|
+
|
66
|
+
resource do
|
67
|
+
directory '${source.directory}/main/java'
|
68
|
+
includes '**/**/*.glsl', '**/*.jnilib'
|
69
|
+
excludes '**/**/*.java'
|
70
|
+
end
|
71
|
+
|
72
|
+
resource do
|
73
|
+
directory '${source.directory}/main/resources'
|
74
|
+
includes '**/*.png', '*.txt'
|
75
|
+
excludes
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
data/pom.xml
CHANGED
@@ -1,27 +1,20 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!--
|
3
|
+
|
4
|
+
|
5
|
+
DO NOT MODIFIY - GENERATED CODE
|
6
|
+
|
7
|
+
|
8
|
+
-->
|
2
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"
|
3
|
-
|
10
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
4
11
|
<modelVersion>4.0.0</modelVersion>
|
5
12
|
<groupId>propane</groupId>
|
6
13
|
<artifactId>propane</artifactId>
|
7
|
-
<version>3.
|
14
|
+
<version>3.3.0</version>
|
8
15
|
<name>propane</name>
|
9
16
|
<description>An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.</description>
|
10
17
|
<url>https://github.com/monkstone/propane</url>
|
11
|
-
<organization>
|
12
|
-
<name>ruby-processing</name>
|
13
|
-
<url>https://ruby-processing.github.io</url>
|
14
|
-
</organization>
|
15
|
-
<licenses>
|
16
|
-
<license>
|
17
|
-
<name>GPL 3</name>
|
18
|
-
<url>http://www.gnu.org/licenses/gpl-3.0-standalone.html</url>
|
19
|
-
</license>
|
20
|
-
<license>
|
21
|
-
<name>LGPL 2</name>
|
22
|
-
<url>https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html</url>
|
23
|
-
</license>
|
24
|
-
</licenses>
|
25
18
|
<developers>
|
26
19
|
<developer>
|
27
20
|
<id>monkstone</id>
|
@@ -64,9 +57,6 @@
|
|
64
57
|
<properties>
|
65
58
|
<jogl.version>2.3.2</jogl.version>
|
66
59
|
<jruby.api>http://jruby.org/apidocs/</jruby.api>
|
67
|
-
<!--<maven.compiler.release>8</maven.compiler.release>-->
|
68
|
-
<maven.compiler.source>1.8</maven.compiler.source>
|
69
|
-
<maven.compiler.target>1.8</maven.compiler.target>
|
70
60
|
<polyglot.dump.pom>pom.xml</polyglot.dump.pom>
|
71
61
|
<processing.api>http://processing.github.io/processing-javadocs/core/</processing.api>
|
72
62
|
<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
|
@@ -77,7 +67,7 @@
|
|
77
67
|
<dependency>
|
78
68
|
<groupId>org.jruby</groupId>
|
79
69
|
<artifactId>jruby</artifactId>
|
80
|
-
<version>9.2.
|
70
|
+
<version>9.2.7.0</version>
|
81
71
|
<type>pom</type>
|
82
72
|
</dependency>
|
83
73
|
<dependency>
|
@@ -127,7 +117,6 @@
|
|
127
117
|
</configuration>
|
128
118
|
</plugin>
|
129
119
|
<plugin>
|
130
|
-
<groupId>org.apache.maven.plugins</groupId>
|
131
120
|
<artifactId>maven-compiler-plugin</artifactId>
|
132
121
|
<version>3.8.0</version>
|
133
122
|
<configuration>
|
@@ -135,26 +124,26 @@
|
|
135
124
|
</configuration>
|
136
125
|
</plugin>
|
137
126
|
<plugin>
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
</build>
|
127
|
+
<artifactId>maven-javadoc-plugin</artifactId>
|
128
|
+
<version>3.0.1</version>
|
129
|
+
<configuration>
|
130
|
+
<detectOfflineLinks>false</detectOfflineLinks>
|
131
|
+
<links>
|
132
|
+
<link>${jruby.api}</link>
|
133
|
+
<link>${processing.api}</link>
|
134
|
+
</links>
|
135
|
+
</configuration>
|
136
|
+
</plugin>
|
137
|
+
<plugin>
|
138
|
+
<artifactId>maven-jar-plugin</artifactId>
|
139
|
+
<version>3.1.0</version>
|
140
|
+
<configuration>
|
141
|
+
<archive>
|
142
|
+
<manifestFile>MANIFEST.MF</manifestFile>
|
143
|
+
</archive>
|
144
|
+
</configuration>
|
145
|
+
</plugin>
|
146
|
+
</plugins>
|
147
|
+
</pluginManagement>
|
148
|
+
</build>
|
160
149
|
</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 targetting jdk11.
|
14
14
|
EOS
|
15
|
-
gem.summary = %q{ruby
|
15
|
+
gem.summary = %q{ruby implementation of processing-4.0 on MacOS, linux and windows (64bit only)}
|
16
16
|
gem.homepage = 'https://ruby-processing.github.io/propane/'
|
17
17
|
gem.files = `git ls-files`.split($/)
|
18
|
-
gem.files << 'lib/propane-3.
|
18
|
+
gem.files << 'lib/propane-3.3.0.jar'
|
19
19
|
gem.files << 'lib/gluegen-rt.jar'
|
20
20
|
gem.files << 'lib/jogl-all.jar'
|
21
21
|
gem.files << 'lib/gluegen-rt-natives-linux-amd64.jar'
|
@@ -16,65 +16,71 @@
|
|
16
16
|
Public License along with this library; if not, write to the
|
17
17
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
18
18
|
Boston, MA 02111-1307 USA
|
19
|
-
|
19
|
+
*/
|
20
20
|
package japplemenubar;
|
21
21
|
|
22
22
|
import java.io.*;
|
23
23
|
|
24
24
|
import processing.core.PApplet;
|
25
25
|
|
26
|
+
|
26
27
|
/**
|
27
|
-
* Starting point for the application. General initialization should be done
|
28
|
-
* inside the ApplicationController's init() method. If certain kinds of
|
29
|
-
* non-Swing initialization takes too long, it should happen in a new Thread
|
30
|
-
* off the Swing event dispatch thread (EDT).
|
31
|
-
*
|
28
|
+
* Starting point for the application. General initialization should be done
|
29
|
+
* inside the ApplicationController's init() method. If certain kinds of
|
30
|
+
* non-Swing initialization takes too long, it should happen in a new Thread
|
31
|
+
* and off the Swing event dispatch thread (EDT).
|
32
|
+
*
|
32
33
|
* @author hansi
|
33
34
|
*/
|
34
35
|
public class JAppleMenuBar {
|
36
|
+
static JAppleMenuBar instance;
|
37
|
+
static final String FILENAME = "libjAppleMenuBar.jnilib";
|
38
|
+
|
39
|
+
static {
|
40
|
+
try {
|
41
|
+
File temp = File.createTempFile("processing", "menubar");
|
42
|
+
temp.delete(); // remove the file itself
|
43
|
+
temp.mkdirs(); // create a directory out of it
|
44
|
+
temp.deleteOnExit();
|
35
45
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
temp.delete(); // remove the file itself
|
43
|
-
temp.mkdirs(); // create a directory out of it
|
44
|
-
temp.deleteOnExit();
|
46
|
+
File jnilibFile = new File(temp, FILENAME);
|
47
|
+
InputStream input = JAppleMenuBar.class.getResourceAsStream(FILENAME);
|
48
|
+
if (input != null) {
|
49
|
+
if (PApplet.saveStream(jnilibFile, input)) {
|
50
|
+
System.load(jnilibFile.getAbsolutePath());
|
51
|
+
instance = new JAppleMenuBar();
|
45
52
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
}
|
63
|
-
}
|
64
|
-
|
65
|
-
static void sadness(String msg) {
|
66
|
-
System.err.println("Full screen mode disabled. " + msg);
|
67
|
-
}
|
53
|
+
} else {
|
54
|
+
sadness("Problem saving " + FILENAME + " for full screen use.");
|
55
|
+
}
|
56
|
+
} else {
|
57
|
+
sadness("Could not load " + FILENAME + " from core.jar");
|
58
|
+
}
|
59
|
+
} catch (IOException e) {
|
60
|
+
sadness("Unknown error, here's the stack trace.");
|
61
|
+
e.printStackTrace();
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
|
66
|
+
static void sadness(String msg) {
|
67
|
+
System.err.println("Full screen mode disabled. " + msg);
|
68
|
+
}
|
68
69
|
|
70
|
+
|
69
71
|
// static public void show() {
|
70
72
|
// instance.setVisible(true);
|
71
73
|
// }
|
72
|
-
static public void hide() {
|
73
|
-
instance.setVisible(false, false);
|
74
|
-
}
|
75
74
|
|
76
|
-
|
75
|
+
|
76
|
+
static public void hide() {
|
77
|
+
instance.setVisible(false, false);
|
78
|
+
}
|
79
|
+
|
80
|
+
|
81
|
+
public native void setVisible(boolean visibility, boolean kioskMode);
|
77
82
|
|
83
|
+
|
78
84
|
// public void setVisible(boolean visibility) {
|
79
85
|
// // Keep original API in-tact. Default kiosk-mode to off.
|
80
86
|
// setVisible(visibility, false);
|
@@ -1,21 +1,21 @@
|
|
1
1
|
package monkstone.vecmath;
|
2
2
|
|
3
|
-
import processing.core.
|
3
|
+
import processing.core.PGraphics;
|
4
4
|
|
5
5
|
/**
|
6
6
|
*
|
7
7
|
* @author Martin Prout
|
8
8
|
*/
|
9
|
-
public class
|
9
|
+
public class GfxRender implements JRender {
|
10
10
|
|
11
|
-
final
|
11
|
+
final PGraphics graphics;
|
12
12
|
|
13
13
|
/**
|
14
14
|
*
|
15
|
-
* @param
|
15
|
+
* @param graphics PGraphics
|
16
16
|
*/
|
17
|
-
public
|
18
|
-
this.
|
17
|
+
public GfxRender(final PGraphics graphics) {
|
18
|
+
this.graphics = graphics;
|
19
19
|
}
|
20
20
|
|
21
21
|
/**
|
@@ -25,7 +25,7 @@ public class AppRender implements JRender {
|
|
25
25
|
*/
|
26
26
|
@Override
|
27
27
|
public void vertex(double x, double y) {
|
28
|
-
|
28
|
+
graphics.vertex((float) x, (float) y);
|
29
29
|
}
|
30
30
|
|
31
31
|
/**
|
@@ -35,7 +35,7 @@ public class AppRender implements JRender {
|
|
35
35
|
*/
|
36
36
|
@Override
|
37
37
|
public void curveVertex(double x, double y) {
|
38
|
-
|
38
|
+
graphics.curveVertex((float) x, (float) y);
|
39
39
|
}
|
40
40
|
|
41
41
|
/**
|
@@ -46,7 +46,7 @@ public class AppRender implements JRender {
|
|
46
46
|
*/
|
47
47
|
@Override
|
48
48
|
public void vertex(double x, double y, double z) {
|
49
|
-
|
49
|
+
graphics.vertex((float) x, (float) y, (float) z);
|
50
50
|
}
|
51
51
|
|
52
52
|
/**
|
@@ -57,7 +57,7 @@ public class AppRender implements JRender {
|
|
57
57
|
*/
|
58
58
|
@Override
|
59
59
|
public void normal(double x, double y, double z) {
|
60
|
-
|
60
|
+
graphics.normal((float) x, (float) y, (float) z);
|
61
61
|
}
|
62
62
|
|
63
63
|
/**
|
@@ -70,7 +70,7 @@ public class AppRender implements JRender {
|
|
70
70
|
*/
|
71
71
|
@Override
|
72
72
|
public void vertex(double x, double y, double z, double u, double v) {
|
73
|
-
|
73
|
+
graphics.vertex((float) x, (float) y, (float) z, (float) u, (float) v);
|
74
74
|
}
|
75
75
|
|
76
76
|
/**
|
@@ -81,6 +81,6 @@ public class AppRender implements JRender {
|
|
81
81
|
*/
|
82
82
|
@Override
|
83
83
|
public void curveVertex(double x, double y, double z) {
|
84
|
-
|
84
|
+
graphics.curveVertex((float) x, (float) y, (float) z);
|
85
85
|
}
|
86
86
|
}
|