diff --git a/processing/app/PdeKeywords.java b/processing/app/PdeKeywords.java
index 3bc6e2095..86c77d54b 100644
--- a/processing/app/PdeKeywords.java
+++ b/processing/app/PdeKeywords.java
@@ -17,8 +17,8 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
@@ -41,10 +41,12 @@ public class PdeKeywords extends CTokenMarker {
/**
- * Handles loading of keywords file. uses getKeywords()
- * method because that's part of the TokenMarker classes.
- *
- * It is recommended that a # sign be used for comments
+ * Handles loading of keywords file.
+ *
+ * Uses getKeywords() method because that's part of the
+ * TokenMarker classes.
+ *
+ * It is recommended that a # sign be used for comments
* inside keywords.txt.
*/
static public KeywordMap getKeywords() {
@@ -76,7 +78,7 @@ public class PdeKeywords extends CTokenMarker {
// KEYWORD1 -> 0, KEYWORD2 -> 1, etc
int num = coloring.charAt(coloring.length() - 1) - '1';
byte id = (byte) ((isKey ? Token.KEYWORD1 : Token.LITERAL1) + num);
- //System.out.println("got " + (isKey ? "keyword" : "literal") +
+ //System.out.println("got " + (isKey ? "keyword" : "literal") +
// (num+1) + " for " + keyword);
keywordColoring.add(keyword, id);
}
@@ -88,8 +90,8 @@ public class PdeKeywords extends CTokenMarker {
reader.close();
} catch (Exception e) {
- PdeBase.showError("Problem loading keywords",
- "Could not find keywords.txt,\n" +
+ PdeBase.showError("Problem loading keywords",
+ "Could not find keywords.txt,\n" +
"please re-install Processing.", e);
System.exit(1);
}
diff --git a/processing/app/PdeSketch.java b/processing/app/PdeSketch.java
index acc8c5c28..5eec9604e 100644
--- a/processing/app/PdeSketch.java
+++ b/processing/app/PdeSketch.java
@@ -624,12 +624,13 @@ public class PdeSketch {
/**
- * handles 'save as' for a sketch.. essentially duplicates
- * the current sketch folder to a new location, and then calls
- * 'save'. (needs to take the current state of the open files
- * and save them to the new folder.. but not save over the old
- * versions for the old sketch..)
- *
+ * Handles 'save as' for a sketch.
+ *
+ * This basically just duplicates the current sketch folder to
+ * a new location, and then calls 'Save'. (needs to take the current
+ * state of the open files and save them to the new folder..
+ * but not save over the old versions for the old sketch..)
+ *
* also removes the previously-generated .class and .jar files,
* because they can cause trouble.
*/
@@ -853,9 +854,11 @@ public class PdeSketch {
/**
* Change what file is currently being edited.
- * 1. store the String for the text of the current file.
- * 2. retrieve the String for the text of the new file.
- * 3. change the text that's visible in the text area
+ *
+ * - store the String for the text of the current file.
+ *
- retrieve the String for the text of the new file.
+ *
- change the text that's visible in the text area
+ *
*/
public void setCurrent(int which) {
// get the text currently being edited
diff --git a/processing/app/PresentMode.java b/processing/app/PresentMode.java
new file mode 100644
index 000000000..dc4098d66
--- /dev/null
+++ b/processing/app/PresentMode.java
@@ -0,0 +1,125 @@
+/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */
+
+/*
+ PresentMode - helper class for full-screen presentation mode
+ Part of the Processing project - http://processing.org
+
+ Copyright (c) 2005- Ben Fry and Casey Reas
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+
+import java.awt.*;
+import java.awt.event.*;
+import java.util.Vector;
+import javax.swing.*;
+
+
+public class PresentMode {
+
+ static GraphicsDevice devices[];
+
+ /**
+ * Index of the default display device, probably the one that p5 was
+ * started from.
+ */
+ static int defaultIndex;
+
+ /**
+ * Menu object for preferences window
+ */
+ //JMenu preferencesMenu;
+ static JComboBox selector;
+
+ /**
+ * Index of the currently selected display to be used for present mode.
+ */
+ static GraphicsDevice device;
+
+
+ static {
+ GraphicsEnvironment environment =
+ GraphicsEnvironment.getLocalGraphicsEnvironment();
+ devices = environment.getScreenDevices();
+ GraphicsDevice defaultDevice = environment.getDefaultScreenDevice();
+
+ Vector names = new Vector();
+ for (int i = 0; i < devices.length; i++) {
+ String name = String.valueOf(i + 1);
+ if (devices[i] == defaultDevice) {
+ defaultIndex = i;
+ name += " (default)";
+ }
+ names.add(name);
+ }
+
+ selector = new JComboBox(names);
+ selector.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ int index = selector.getSelectedIndex();
+ //device = devices[index];
+ PdePreferences.setInteger("run.present.display", index + 1);
+ }
+ });
+ }
+
+
+ static public JComboBox getSelector() {
+ int deviceIndex = PdePreferences.getInteger("run.present.display") - 1;
+ selector.setSelectedIndex(deviceIndex);
+ return selector;
+ }
+
+
+ /*
+ static public JFrame create() {
+ int deviceIndex = PrePreferences.getInteger("run.present.display") - 1;
+ if ((deviceIndex < 0) || (deviceIndex >= devices.length)) {
+ PdeBase.showWarning("Display doesn't exist",
+ "Present Mode is set to use display " +
+ (deviceIndex+1) +
+ " but that doesn't seem to exist. \n" +
+ "This preference will be reset to " +
+ "use the default display.", null);
+ deviceIndex = defaultIndex;
+ }
+ //GraphicsDevice device = devices[
+ //JFrame frame = new JFrame(devices[deviceIndex]);
+ PresentFrame frame = new PresentFrame(devices[deviceIndex]);
+ }
+
+
+ public void show() {
+ setUndecorated(true);
+ setResizable(false);
+ device.setFullScreenWindow(this);
+ }
+
+
+ public Window getWindow() {
+ return device.getFullScreenWindow(); // isn't this just me?
+ }
+
+
+ public void dispose() {
+ Window window = device.getFullScreenWindow();
+ if (window != null) {
+ window.dispose();
+ }
+ device.setFullScreenWindow(null);
+ }
+ */
+}
\ No newline at end of file
diff --git a/processing/build/howto.txt b/processing/build/howto.txt
index 71c9bbc99..3f7f965fb 100755
--- a/processing/build/howto.txt
+++ b/processing/build/howto.txt
@@ -12,10 +12,12 @@ HOW TO BUILD PROCESSING ON YOUR FAVORITE PLATFORM
** of the packages, begin with the defaults, and add:
++ cvs - used for version control
+
+ gcc-mingw - used to build processing.exe
(this will also pull in gcc-core)
-+ cvs - used for version control
++ make
+ perl - use this version, activestate or other distros have trouble
diff --git a/processing/build/shared/revisions.txt b/processing/build/shared/revisions.txt
index 2fbeb66fc..b6045194e 100644
--- a/processing/build/shared/revisions.txt
+++ b/processing/build/shared/revisions.txt
@@ -7,7 +7,7 @@ releases will be super crusty.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-ABOUT REV 0081 - who knows
+ABOUT REV 0081 - 4 april 2005
* major api changes in this release *
@@ -16,17 +16,18 @@ once again broken things. this time, we've moved around how renderers
work.
- depth() is gone, and so is the renderer menu, in its place, we
- have a new method for specifying how you want to render. e.g:
+ have a new method for specifying how you want to render.
- this allocates a 2D buffer to draw into, using the Java2D
- engine or the original 1.1-compliant engine depending on whether
- or not you're using Java 1.3 or higher:
- size(200, 200);
+ so now, size(200, 200) this allocates a 2D buffer to draw into,
+ using the Java2D engine or the original 1.1-compliant engine depending
+ on whether or not you're using Java 1.3 or higher.
- this gets the original processing 2D renderer:
+ or this gets the original processing 2D renderer:
+ (which is often better for pixel operations, though is currently quite
+ borked.. lines and whatnot don't work properly)
size(200, 200, P2D);
- this provides the oroginal processing 3D renderer:
+ this provides the original processing 3D renderer:
size(200, 200, P3D);
and this loads (drum roll) opengl:
@@ -43,6 +44,54 @@ work.
back around 70 or whenever they were implemented)
import net.java.games.jogl.GL;
+- the applet placement, sizing, and window issues should now be sorted
+ out completely. no more windows showing up in weird places or applets
+ being offset strangely within them.
+
+- present mode has been rewritten to use java's proper full screen api.
+ no more ghetto full screen with menubar on osx. should be more stable
+ than it was in the past. also note that things running in presentation
+ mode will run using an external java vm, rather than inside the
+ environment itself.
+
+- processing itself requires java 1.4. it's sort of required it for a
+ little while, but this is now made explicit in the code. if you're lucky
+ a new erorr dialog will pop up and tell you to install a newer version
+ if you try running under 1.3 or whatever.
+
+- background(PImage) should now be working in opengl
+
+- saveFrame() path bug fixed
+
+- preferences madness
+ + preferences panel is now a modal dialog, and doesn't hide the
+ editor window in the weird way it used to.
+ + you can also click the link to the preferences .txt file and it'll
+ open in whatever your default text editor is on your machine.
+ + editor font size is now a preference that can be set from the
+ prefs window.
+ + fixed a bug where prefs were applied even if you hit cancel.
+
+- lots more internal fixes and tweaking that we'll be documenting
+ soon (i.e. the new renderer setup means pluggable renderers, or
+ PApplet has lots of fancy command line options like --present)
+
+
+* other bits to note *
+
+- it should also be noted again that java 1.1 stuff is almost
+ completely unusable in this release. the PApplet class temporarily
+ contains some 1.4-specific code (which will be removed) and the
+ graphics engine still doesn't work. so this version isn't useful
+ for exporting things to the web.
+
+- there are a bunch of bugs with save & save as... quirky things
+ about folders not winding up in the right place and whatnot.
+ looking to fix these this week
+
+- release 82 (or 83?) will be all about getting proper 3D lighting,
+ camera, and geometry working. simon's done some amazing work.
+
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
diff --git a/processing/build/windows/make.sh b/processing/build/windows/make.sh
index b46e0ae53..0977531e3 100755
--- a/processing/build/windows/make.sh
+++ b/processing/build/windows/make.sh
@@ -146,7 +146,7 @@ PLATFORM=windows
CLASSPATH="..\\build\\$PLATFORM\\work\\lib\\core.jar:..\\build\\$PLATFORM\\work\\java\\lib\\rt.jar"
-JIKES="..\\build\\$PLATFORM\\work\\jikes"
+JIKES="..\\build\\$PLATFORM\\work\\jikes.exe"
CORE="..\\build\\$PLATFORM\\work\\lib\\core.jar"
LIBRARIES="..\\build\\$PLATFORM\\work\\libraries"
diff --git a/processing/core/PApplet.java b/processing/core/PApplet.java
index 25026f847..7292db419 100644
--- a/processing/core/PApplet.java
+++ b/processing/core/PApplet.java
@@ -112,7 +112,7 @@ public class PApplet extends Applet
public PGraphics recorder;
/**
- * Command line options passed in from main()
+ * Command line options passed in from main().
*
* This does not include the arguments passed in to PApplet itself.
*/
@@ -4602,6 +4602,8 @@ v PApplet.this.stop();
/**
+ * main() method for running this class from the command line.
+ *
* The simplest way to turn and applet into an application is to
* add the following code to your program:
*
static public void main(String args[]) {
diff --git a/processing/serial/library/.cvsignore b/processing/serial/library/.cvsignore
new file mode 100644
index 000000000..718e029bc
--- /dev/null
+++ b/processing/serial/library/.cvsignore
@@ -0,0 +1 @@
+serial.jar
diff --git a/processing/todo.txt b/processing/todo.txt
index 3477b4859..5071a5035 100644
--- a/processing/todo.txt
+++ b/processing/todo.txt
@@ -144,6 +144,9 @@ _ and include an md5hash to see if the file is correct
_ straighten out int() -> toInt() conversion in the preproc
+_ move build scripts to something better like ant
+_ too much to maintain the multiple versions, no dependencies, too much code
+
_ some type of sketch archive format for posting examples (.psk?)
_ would be nice to open a sketch directly from a zip file
diff --git a/processing/video/Camera.java b/processing/video/Camera.java
index 72348e1aa..5602e8715 100644
--- a/processing/video/Camera.java
+++ b/processing/video/Camera.java
@@ -35,8 +35,8 @@ import quicktime.std.sg.*;
import quicktime.util.RawEncodedImage;
-public class Camera extends PImage
-implements StdQTConstants, StdQTConstants4, Runnable {
+public class Camera extends PImage implements Runnable {
+ //implements StdQTConstants, StdQTConstants4, Runnable {
PApplet parent;
Method cameraEventMethod;
String name; // keep track for error messages
diff --git a/processing/video/Movie.java b/processing/video/Movie.java
index 0b6c92b03..31d291721 100644
--- a/processing/video/Movie.java
+++ b/processing/video/Movie.java
@@ -41,7 +41,7 @@ import quicktime.util.RawEncodedImage;
public class Movie extends PImage
-implements StdQTConstants, StdQTConstants4, PConstants, Runnable {
+ implements /*StdQTConstants, StdQTConstants4,*/ PConstants, Runnable {
PApplet parent;
Method movieEventMethod;
String filename;