diff --git a/app/src/processing/app/Library.java b/app/src/processing/app/Library.java index b72cb4455..834ca236a 100644 --- a/app/src/processing/app/Library.java +++ b/app/src/processing/app/Library.java @@ -79,9 +79,14 @@ public class Library extends InstalledContribution { }; - public Library(File folder, String subfolder) { + public Library(File folder) { + this(folder, null); + } + + + public Library(File folder, String groupName) { super(folder, Library.propertiesFileName); - this.group = subfolder; + this.group = groupName; libraryFolder = new File(folder, "library"); examplesFolder = new File(folder, "examples"); @@ -462,7 +467,7 @@ public class Library extends InstalledContribution { discover(folder, librariesFolders); for (File baseFolder : librariesFolders) { - libraries.add(new Library(baseFolder, null)); + libraries.add(new Library(baseFolder)); } String[] list = folder.list(junkFolderFilter); diff --git a/app/src/processing/app/Mode.java b/app/src/processing/app/Mode.java index 6e7b5f3ec..ff195521e 100644 --- a/app/src/processing/app/Mode.java +++ b/app/src/processing/app/Mode.java @@ -45,6 +45,9 @@ public abstract class Mode { public ArrayList coreLibraries; public ArrayList contribLibraries; + + /** Library folder for core. (Used for OpenGL in particular.) */ + protected Library coreLibrary; public Mode(Base base, File folder) { @@ -144,6 +147,11 @@ public abstract class Mode { } + public Library getCoreLibrary() { + return null; + } + + public Library getLibrary(String pkgName) throws SketchException { ArrayList libraries = importToLibraryTable.get(pkgName); if (libraries == null) { diff --git a/app/src/processing/app/contrib/ContributionManager.java b/app/src/processing/app/contrib/ContributionManager.java index fed15f11b..0895735f3 100644 --- a/app/src/processing/app/contrib/ContributionManager.java +++ b/app/src/processing/app/contrib/ContributionManager.java @@ -187,7 +187,7 @@ public class ContributionManager { static InstalledContribution create(Base base, Type type, File folder) { switch (type) { case LIBRARY: - return new Library(folder, null); + return new Library(folder); case LIBRARY_COMPILATION: return LibraryCompilation.create(folder); case TOOL: diff --git a/app/src/processing/mode/java/JavaBuild.java b/app/src/processing/mode/java/JavaBuild.java index 73edb71bc..90e51bf7f 100644 --- a/app/src/processing/mode/java/JavaBuild.java +++ b/app/src/processing/mode/java/JavaBuild.java @@ -59,11 +59,9 @@ public class JavaBuild { */ private String javaLibraryPath; - /** - * List of library folders, as figured out during preprocessing. - */ + /** List of library folders, as figured out during preprocessing. */ private ArrayList importedLibraries; - + public JavaBuild(Sketch sketch) { this.sketch = sketch; diff --git a/app/src/processing/mode/java/JavaMode.java b/app/src/processing/mode/java/JavaMode.java index ea0f20569..d7536faae 100644 --- a/app/src/processing/mode/java/JavaMode.java +++ b/app/src/processing/mode/java/JavaMode.java @@ -29,6 +29,7 @@ import java.util.HashMap; import processing.app.Base; import processing.app.Editor; import processing.app.EditorState; +import processing.app.Library; import processing.app.Mode; import processing.app.RunnerListener; import processing.app.Sketch; @@ -167,7 +168,16 @@ public class JavaMode extends Mode { "application.linux" }; } - + + + public Library getCoreLibrary() { + if (coreLibrary == null) { + File coreFolder = Base.getContentFile("core"); + coreLibrary = new Library(coreFolder, null); + } + return coreLibrary; + } + // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/build/build.xml b/build/build.xml index e574656f3..267323d61 100644 --- a/build/build.xml +++ b/build/build.xml @@ -28,7 +28,8 @@ - + + diff --git a/core/build.xml b/core/build.xml index b81fbe425..bc0d3ff39 100644 --- a/core/build.xml +++ b/core/build.xml @@ -3,7 +3,7 @@ - + @@ -33,7 +33,7 @@ - + diff --git a/core/library/export.txt b/core/library/export.txt new file mode 100644 index 000000000..eb3d09041 --- /dev/null +++ b/core/library/export.txt @@ -0,0 +1,10 @@ +# If you want to support more platforms, visit jogamp.org to get the +# natives libraries for the platform in question (i.e. Solaris). + +name = OpenGL + +application.macosx=opengl.jar,jogl.all.jar,gluegen-rt.jar,jogl-all-natives-macosx-universal.jar,gluegen-rt-natives-macosx-universal.jar +application.windows32=opengl.jar,jogl.all.jar,gluegen-rt.jar,jogl-all-natives-windows-i586.jar,gluegen-rt-natives-windows-i586.jar +application.windows64=opengl.jar,jogl.all.jar,gluegen-rt.jar,jogl-all-natives-windows-amd64.jar,gluegen-rt-natives-windows-amd64.jar +application.linux32=opengl.jar,jogl.all.jar,gluegen-rt.jar,jogl-all-natives-linux-i586.jar,gluegen-rt-natives-linux-i586.jar +application.linux64=opengl.jar,jogl.all.jar,gluegen-rt.jar,jogl-all-natives-linux-amd64.jar,gluegen-rt-natives-linux-amd64.jar diff --git a/todo.txt b/todo.txt index c22e9915a..262514bed 100644 --- a/todo.txt +++ b/todo.txt @@ -8,6 +8,10 @@ Have you added an NSPrincipalClass to your Info.plist, and are using a JavaAppli _ Check out the desktop property. Unfortunately, it won't tell you *which* display is running in HiDPI, but it will stay up-to-date with live display changes (like a Retina-display being plugged and unplugged). If you query the property after each GraphicsEnvironment display change event, you should be able to live switch in and out of HiDPI. java.awt.Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor"); +_ launch moviemaker as separate Java process (to disable Quaqua) +_ or selectively disable parts to see which is causing the trouble +_ http://www.randelshofer.ch/quaqua/guide/tailoring.html + recent/open X add EditorState class, device-aware placement X get rid of restore sketch feature