mirror of
https://github.com/processing/processing4.git
synced 2026-02-04 06:09:17 +01:00
checking in dmose parser and changes to make it usable
This commit is contained in:
@@ -27,7 +27,7 @@ import java.io.*;
|
||||
import javax.swing.*;
|
||||
|
||||
|
||||
public class PdeCompiler implements PdeMessageConsumer{
|
||||
public class PdeCompiler implements PdeMessageConsumer {
|
||||
static final String SUPER_BADNESS =
|
||||
"Strange error while compiling, " +
|
||||
"please send code to processing@media.mit.edu";
|
||||
@@ -71,7 +71,7 @@ public class PdeCompiler implements PdeMessageConsumer{
|
||||
abuffer.append(":/System/Library/Java/Extensions/" + list[i]);
|
||||
}
|
||||
}
|
||||
additional = abuffer.toString();
|
||||
additional = abuffer.toString();
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ public class PdeCompiler implements PdeMessageConsumer{
|
||||
String command[] = new String[] {
|
||||
#ifdef MACOS
|
||||
// linux doesn't seem to like this
|
||||
// though windows probably doesn't care
|
||||
userdir + "jikes",
|
||||
#else
|
||||
"jikes",
|
||||
@@ -95,8 +96,9 @@ public class PdeCompiler implements PdeMessageConsumer{
|
||||
"-bootclasspath",
|
||||
System.getProperty("sun.boot.class.path") + additional,
|
||||
|
||||
// definitely needed on macos, but not tested elsewhere
|
||||
// probably wouldn't hurt on the others
|
||||
// needed for macosx so that the classpath is set properly
|
||||
// also for windows because qtjava will most likely be here
|
||||
// and for linux, it just doesn't hurt
|
||||
"-classpath",
|
||||
System.getProperty("java.class.path"),
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ public class PdeEditor extends JPanel {
|
||||
|
||||
PdeBase base;
|
||||
|
||||
PrintStream leechErr;
|
||||
//PrintStream leechErr;
|
||||
PdeMessageStream messageStream;
|
||||
String buildPath;
|
||||
|
||||
@@ -538,6 +538,78 @@ public class PdeEditor extends JPanel {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
protected boolean build(String program, String className) {
|
||||
try {
|
||||
// do the preprocessing and write a .java file
|
||||
//
|
||||
// in an advanced program, the returned classname could be different,
|
||||
// which is why we need to set className based on the return value
|
||||
//
|
||||
PdePreprocessor preprocessor = null;
|
||||
|
||||
if (PdeBase.getBoolean("preprocessor.antlr", true)) {
|
||||
preprocessor = new PdePreprocessor(program, buildPath);
|
||||
try {
|
||||
//System.out.println("using antlr");
|
||||
className = preprocessor.writeJava(className,
|
||||
base.normalItem.getState(),
|
||||
false);
|
||||
} catch (antlr.RecognitionException ae) {
|
||||
// this even returns a column
|
||||
System.out.println(ae.toString());
|
||||
throw new PdeException(ae.getMessage(),
|
||||
ae.getLine() - 1, ae.getColumn());
|
||||
|
||||
} catch (Exception ex) {
|
||||
System.err.println("Uncaught exception type:" + ex.getClass());
|
||||
ex.printStackTrace();
|
||||
throw new PdeException(ex.toString());
|
||||
//System.out.println("pissed about: '" + ex.getMessage() + "'");
|
||||
//ex.printStackTrace();
|
||||
// if there was an issue (including unrecoverable parse errors)
|
||||
// try falling back to the old preprocessor
|
||||
//preprocessor = new PdePreprocessorOro(program, buildPath);
|
||||
//className = preprocessor.writeJava(className,
|
||||
// base.normalItem.getState(),
|
||||
// false);
|
||||
}
|
||||
} else {
|
||||
//System.out.println("not using antlr");
|
||||
preprocessor = new PdePreprocessorOro(program, buildPath);
|
||||
className = preprocessor.writeJava(className,
|
||||
base.normalItem.getState(),
|
||||
false);
|
||||
}
|
||||
|
||||
// compile the program
|
||||
//
|
||||
PdeCompiler compiler =
|
||||
new PdeCompiler(buildPath, className, this);
|
||||
// macos9 now officially broken.. see PdeCompilerJavac
|
||||
//PdeCompiler compiler =
|
||||
// ((PdeBase.platform == PdeBase.MACOS9) ?
|
||||
// new PdeCompilerJavac(buildPath, className, this) :
|
||||
// new PdeCompiler(buildPath, className, this));
|
||||
|
||||
// run the compiler, and funnel errors to the leechErr
|
||||
// which is a wrapped around
|
||||
// (this will catch and parse errors during compilation
|
||||
// the messageStream will call message() for 'compiler')
|
||||
messageStream = new PdeMessageStream(compiler);
|
||||
PrintStream leechErr = new PrintStream(messageStream);
|
||||
//boolean result = compiler.compileJava(leechErr);
|
||||
return compiler.compileJava(leechErr);
|
||||
|
||||
} catch (PdeException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
public void doRun(boolean present) {
|
||||
//System.out.println(System.getProperty("java.class.path"));
|
||||
|
||||
@@ -614,16 +686,50 @@ public class PdeEditor extends JPanel {
|
||||
int numero2 = (int) (Math.random() * 10000);
|
||||
String className = TEMP_CLASS + "_" + numero1 + "_" + numero2;
|
||||
|
||||
|
||||
///
|
||||
|
||||
|
||||
// do the preprocessing and write a .java file
|
||||
//
|
||||
// in an advanced program, the returned classname could be different,
|
||||
// which is why we need to set className based on the return value
|
||||
//
|
||||
PdePreprocessor preprocessorOro =
|
||||
new PdePreprocessorOro(program, buildPath);
|
||||
className = preprocessorOro.writeJava(className,
|
||||
base.normalItem.getState(),
|
||||
false);
|
||||
PdePreprocessor preprocessor = null;
|
||||
|
||||
if (PdeBase.getBoolean("preprocessor.antlr", true)) {
|
||||
preprocessor = new PdePreprocessor(program, buildPath);
|
||||
try {
|
||||
//System.out.println("using antlr");
|
||||
className = preprocessor.writeJava(className,
|
||||
base.normalItem.getState(),
|
||||
false);
|
||||
} catch (antlr.RecognitionException ae) {
|
||||
// this even returns a column
|
||||
System.out.println(ae.toString());
|
||||
throw new PdeException(ae.getMessage(),
|
||||
ae.getLine() - 1, ae.getColumn());
|
||||
|
||||
} catch (Exception ex) {
|
||||
System.err.println("Uncaught exception type:" + ex.getClass());
|
||||
ex.printStackTrace();
|
||||
throw new PdeException(ex.toString());
|
||||
//System.out.println("pissed about: '" + ex.getMessage() + "'");
|
||||
//ex.printStackTrace();
|
||||
// if there was an issue (including unrecoverable parse errors)
|
||||
// try falling back to the old preprocessor
|
||||
//preprocessor = new PdePreprocessorOro(program, buildPath);
|
||||
//className = preprocessor.writeJava(className,
|
||||
// base.normalItem.getState(),
|
||||
// false);
|
||||
}
|
||||
} else {
|
||||
//System.out.println("not using antlr");
|
||||
preprocessor = new PdePreprocessorOro(program, buildPath);
|
||||
className = preprocessor.writeJava(className,
|
||||
base.normalItem.getState(),
|
||||
false);
|
||||
}
|
||||
|
||||
// compile the program
|
||||
//
|
||||
@@ -635,12 +741,21 @@ public class PdeEditor extends JPanel {
|
||||
// new PdeCompilerJavac(buildPath, className, this) :
|
||||
// new PdeCompiler(buildPath, className, this));
|
||||
|
||||
// this will catch and parse errors during compilation
|
||||
messageStream = new PdeMessageStream(this, compiler);
|
||||
leechErr = new PrintStream(messageStream);
|
||||
|
||||
// run the compiler, and funnel errors to the leechErr
|
||||
// which is a wrapped around
|
||||
// (this will catch and parse errors during compilation
|
||||
// the messageStream will call message() for 'compiler')
|
||||
messageStream = new PdeMessageStream(compiler);
|
||||
// leechErr also used while runnign the applet
|
||||
PrintStream leechErr = new PrintStream(messageStream);
|
||||
boolean result = compiler.compileJava(leechErr);
|
||||
|
||||
// messageStream gets reset after this anyways
|
||||
|
||||
|
||||
///
|
||||
|
||||
|
||||
// if the compilation worked, run the applet
|
||||
//
|
||||
if (result) {
|
||||
@@ -649,42 +764,38 @@ public class PdeEditor extends JPanel {
|
||||
pdeRuntime = new PdeRuntime(this, className);
|
||||
|
||||
// use the runtime object to consume the errors now
|
||||
messageStream.setMessageConsumer(pdeRuntime);
|
||||
//messageStream.setMessageConsumer(pdeRuntime);
|
||||
PdeMessageStream messageStream = new PdeMessageStream(pdeRuntime);
|
||||
|
||||
// start the applet
|
||||
pdeRuntime.start(presenting ? presentLocation : appletLocation,
|
||||
leechErr);
|
||||
new PrintStream(messageStream));
|
||||
//leechErr);
|
||||
|
||||
// spawn a thread to update PDE GUI state
|
||||
watcher = new RunButtonWatcher();
|
||||
|
||||
} else {
|
||||
// [dmose] throw an exception here?
|
||||
// [fry] i think the exception already gets thrown by the runtime
|
||||
cleanTempFiles(buildPath);
|
||||
}
|
||||
} catch (PdeException e) {
|
||||
//state = RUNNER_ERROR;
|
||||
//forceStop = false;
|
||||
//this.stop();
|
||||
|
||||
// if we made it to the runtime stage, stop that thread
|
||||
//
|
||||
if (pdeRuntime != null) {
|
||||
pdeRuntime.stop();
|
||||
}
|
||||
if (pdeRuntime != null) pdeRuntime.stop();
|
||||
cleanTempFiles(buildPath);
|
||||
e.printStackTrace();
|
||||
//editor.error(e);
|
||||
|
||||
// printing the stack trace may be overkill since it happens
|
||||
// even on a simple parse error
|
||||
//e.printStackTrace();
|
||||
|
||||
error(e);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
//this.stop();
|
||||
|
||||
// if we made it to the runtime stage, stop that thread
|
||||
//
|
||||
if (pdeRuntime != null) {
|
||||
pdeRuntime.stop();
|
||||
}
|
||||
if (pdeRuntime != null) pdeRuntime.stop();
|
||||
|
||||
cleanTempFiles(buildPath);
|
||||
}
|
||||
@@ -1151,20 +1262,46 @@ public class PdeEditor extends JPanel {
|
||||
//projectDir.mkdirs();
|
||||
appletDir.mkdirs();
|
||||
|
||||
|
||||
///
|
||||
|
||||
|
||||
// preprocess the program
|
||||
//
|
||||
PdePreprocessor preprocessorOro =
|
||||
new PdePreprocessorOro(program, appletDir.getPath());
|
||||
PdePreprocessor preprocessor = null;
|
||||
if (PdeBase.getBoolean("preprocessor.antlr", true)) {
|
||||
preprocessor = new PdePreprocessor(program,
|
||||
appletDir.getPath());
|
||||
try {
|
||||
exportSketchName =
|
||||
preprocessor.writeJava(exportSketchName,
|
||||
base.normalItem.getState(),
|
||||
true);
|
||||
} catch (Exception ex) {
|
||||
// if there was an issue (including unrecoverable parse errors)
|
||||
// try falling back to the old preprocessor
|
||||
preprocessor =
|
||||
new PdePreprocessorOro(program, appletDir.getPath());
|
||||
exportSketchName =
|
||||
preprocessor.writeJava(exportSketchName,
|
||||
base.normalItem.getState(),
|
||||
true);
|
||||
}
|
||||
} else { // use old preproc
|
||||
preprocessor =
|
||||
new PdePreprocessorOro(program, appletDir.getPath());
|
||||
|
||||
exportSketchName =
|
||||
preprocessor.writeJava(exportSketchName,
|
||||
base.normalItem.getState(), true);
|
||||
}
|
||||
|
||||
exportSketchName =
|
||||
preprocessorOro.writeJava(exportSketchName,
|
||||
base.normalItem.getState(), true);
|
||||
PdeCompiler compiler =
|
||||
new PdeCompiler(appletDir.getPath(), exportSketchName, this);
|
||||
|
||||
// this will catch and parse errors during compilation
|
||||
messageStream = new PdeMessageStream(this, compiler);
|
||||
leechErr = new PrintStream(messageStream);
|
||||
messageStream = new PdeMessageStream(/*this,*/ compiler);
|
||||
PrintStream leechErr = new PrintStream(messageStream);
|
||||
|
||||
if (!compiler.compileJava(leechErr)) {
|
||||
//throw new Exception("error while compiling, couldn't export");
|
||||
@@ -1172,10 +1309,14 @@ public class PdeEditor extends JPanel {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
|
||||
|
||||
int wide = BApplet.DEFAULT_WIDTH;
|
||||
int high = BApplet.DEFAULT_HEIGHT;
|
||||
|
||||
int index = program.indexOf("size(");
|
||||
int index = program.indexOf("size("); // space in size ( problem!
|
||||
if (index != -1) {
|
||||
try {
|
||||
String str = program.substring(index + 5);
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
public class PdeException extends Exception {
|
||||
int line = -1;
|
||||
int column = -1;
|
||||
|
||||
public PdeException() { }
|
||||
|
||||
@@ -39,6 +40,13 @@ public class PdeException extends Exception {
|
||||
this.line = line;
|
||||
}
|
||||
|
||||
// 0060 currently only used by the new preprocessor
|
||||
public PdeException(String message, int line, int column) {
|
||||
super(massage(message));
|
||||
this.line = line;
|
||||
this.column = column;
|
||||
}
|
||||
|
||||
// make static so that super() can call it
|
||||
static public final String massage(String msg) {
|
||||
if (msg.indexOf("java.lang.") == 0) {
|
||||
|
||||
@@ -43,8 +43,9 @@ class PdeMessageSiphon implements Runnable {
|
||||
thread.start();
|
||||
}
|
||||
|
||||
public void run() {
|
||||
|
||||
|
||||
public void run() {
|
||||
|
||||
String currentLine;
|
||||
|
||||
try {
|
||||
@@ -56,9 +57,8 @@ class PdeMessageSiphon implements Runnable {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.err.println("PdeMessageSiphon err " + e);
|
||||
thread.stop();
|
||||
//thread.stop(); // implicit (and no longer supported)
|
||||
}
|
||||
|
||||
//System.err.println("siphon thread exiting");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,26 +26,33 @@
|
||||
import java.io.*;
|
||||
|
||||
|
||||
/**
|
||||
* this is used by PdeEditor, System.err is set to
|
||||
* new PrintStream(new PdeMessageStream())
|
||||
*
|
||||
* it's also used by PdeCompiler
|
||||
*/
|
||||
class PdeMessageStream extends OutputStream {
|
||||
|
||||
PdeEditor editor;
|
||||
//PdeEditor editor;
|
||||
PdeMessageConsumer messageConsumer;
|
||||
|
||||
public PdeMessageStream(PdeEditor editor,
|
||||
public PdeMessageStream(/*PdeEditor editor,*/
|
||||
PdeMessageConsumer messageConsumer) {
|
||||
this.editor = editor;
|
||||
//this.editor = editor;
|
||||
this.messageConsumer = messageConsumer;
|
||||
}
|
||||
|
||||
public void setMessageConsumer(PdeMessageConsumer messageConsumer) {
|
||||
this.messageConsumer = messageConsumer;
|
||||
}
|
||||
//public void setMessageConsumer(PdeMessageConsumer messageConsumer) {
|
||||
//this.messageConsumer = messageConsumer;
|
||||
//}
|
||||
|
||||
public void close() { }
|
||||
|
||||
public void flush() { }
|
||||
|
||||
public void write(byte b[]) {
|
||||
// this never seems to get called
|
||||
System.out.println("leech1: " + new String(b));
|
||||
}
|
||||
|
||||
@@ -55,6 +62,7 @@ class PdeMessageStream extends OutputStream {
|
||||
}
|
||||
|
||||
public void write(int b) {
|
||||
// this never seems to get called
|
||||
System.out.println("leech3: '" + ((char)b) + "'");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,10 +58,9 @@ public class PdePreprocessor {
|
||||
#endif
|
||||
};
|
||||
|
||||
static final int BEGINNER = 0;
|
||||
static final int INTERMEDIATE = 1;
|
||||
static final int ADVANCED = 2;
|
||||
|
||||
static final int BEGINNER = 0; // "static" according to the docs
|
||||
static final int INTERMEDIATE = 1; // "active"
|
||||
static final int ADVANCED = 2; // "java"
|
||||
static int programType = -1;
|
||||
|
||||
String tempClass;
|
||||
|
||||
@@ -42,7 +42,7 @@ public class PdePreprocessorOro extends PdePreprocessor {
|
||||
String extendsWhat = extendsNormal ? "BApplet" : "BAppletGL";
|
||||
|
||||
try {
|
||||
int programType = BEGINNER;
|
||||
/*int*/ programType = BEGINNER;
|
||||
|
||||
// remove (encode) comments temporarily
|
||||
program = commentsCodec(program /*, true*/);
|
||||
@@ -94,6 +94,7 @@ public class PdePreprocessorOro extends PdePreprocessor {
|
||||
// had to add [ to that guy for color[] stuff
|
||||
//"([;\\s])color([\\s])", "$1int$2");
|
||||
//"([^A-Za-z0-9_.])color([^A-Za-z0-9_\\(.])", "$1int$2");
|
||||
|
||||
// color(something) like int() and the rest is no good
|
||||
// because there is already a function called 'color' in BGraphics
|
||||
//program = substipoot(program, "([^A-Za-z0-9_])color\\((.*)\\)", "$1(int)($2)");
|
||||
@@ -190,94 +191,94 @@ public class PdePreprocessorOro extends PdePreprocessor {
|
||||
///////// grab (first) reference to size()
|
||||
|
||||
|
||||
matcher = new Perl5Matcher();
|
||||
compiler = new Perl5Compiler();
|
||||
try {
|
||||
pattern =
|
||||
compiler.compile("[\\s\\;](size\\(\\s*\\d+,\\s*\\d+\\s*\\);)");
|
||||
//compiler.compile("^([^A-Za-z0-9_]+)(size\\(\\s*\\d+,\\s*\\d+\\s*\\);)");
|
||||
matcher = new Perl5Matcher();
|
||||
compiler = new Perl5Compiler();
|
||||
try {
|
||||
pattern =
|
||||
compiler.compile("[\\s\\;](size\\(\\s*\\d+,\\s*\\d+\\s*\\);)");
|
||||
//compiler.compile("^([^A-Za-z0-9_]+)(size\\(\\s*\\d+,\\s*\\d+\\s*\\);)");
|
||||
|
||||
} catch (MalformedPatternException e){
|
||||
e.printStackTrace();
|
||||
//System.err.println("Bad pattern.");
|
||||
//System.err.println(e.getMessage());
|
||||
System.exit(1);
|
||||
}
|
||||
} catch (MalformedPatternException e){
|
||||
e.printStackTrace();
|
||||
//System.err.println("Bad pattern.");
|
||||
//System.err.println(e.getMessage());
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
String sizeInfo = null;
|
||||
input = new PatternMatcherInput(program);
|
||||
if (matcher.contains(input, pattern)) {
|
||||
MatchResult result = matcher.getMatch();
|
||||
//int wide = Integer.parseInt(result.group(1).toString());
|
||||
//int high = Integer.parseInt(result.group(2).toString());
|
||||
//sizeInfo = "void setup() { " + result.group(0) + " } ";
|
||||
sizeInfo = result.group(0);
|
||||
String sizeInfo = null;
|
||||
input = new PatternMatcherInput(program);
|
||||
if (matcher.contains(input, pattern)) {
|
||||
MatchResult result = matcher.getMatch();
|
||||
//int wide = Integer.parseInt(result.group(1).toString());
|
||||
//int high = Integer.parseInt(result.group(2).toString());
|
||||
//sizeInfo = "void setup() { " + result.group(0) + " } ";
|
||||
sizeInfo = result.group(0);
|
||||
|
||||
} else {
|
||||
// no size() defined, make it default
|
||||
sizeInfo = "size(" + BApplet.DEFAULT_WIDTH + ", " +
|
||||
BApplet.DEFAULT_HEIGHT + "); ";
|
||||
}
|
||||
} else {
|
||||
// no size() defined, make it default
|
||||
sizeInfo = "size(" + BApplet.DEFAULT_WIDTH + ", " +
|
||||
BApplet.DEFAULT_HEIGHT + "); ";
|
||||
}
|
||||
|
||||
|
||||
// remove references to size()
|
||||
// this winds up removing every reference to size()
|
||||
// not really intended, but will help things work
|
||||
// remove references to size()
|
||||
// this winds up removing every reference to size()
|
||||
// not really intended, but will help things work
|
||||
|
||||
subst = new Perl5Substitution("", Perl5Substitution.INTERPOLATE_ALL);
|
||||
//subst = new Perl5Substitution("$1", Perl5Substitution.INTERPOLATE_ALL);
|
||||
program = Util.substitute(matcher, pattern, subst, program,
|
||||
Util.SUBSTITUTE_ALL);
|
||||
subst = new Perl5Substitution("", Perl5Substitution.INTERPOLATE_ALL);
|
||||
//subst = new Perl5Substitution("$1", Perl5Substitution.INTERPOLATE_ALL);
|
||||
program = Util.substitute(matcher, pattern, subst, program,
|
||||
Util.SUBSTITUTE_ALL);
|
||||
|
||||
|
||||
/////////// grab (first) reference to background()
|
||||
|
||||
matcher = new Perl5Matcher();
|
||||
compiler = new Perl5Compiler();
|
||||
try {
|
||||
pattern =
|
||||
compiler.compile("[\\s\\;](background\\(.*\\);)");
|
||||
//[\\s\\;]
|
||||
//compiler.compile("([^A-Za-z0-9_]+)(background\\(.*\\);)");
|
||||
|
||||
} catch (MalformedPatternException e){
|
||||
//System.err.println("Bad pattern.");
|
||||
//System.err.println(e.getMessage());
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
String backgroundInfo = "";
|
||||
input = new PatternMatcherInput(program);
|
||||
if (matcher.contains(input, pattern)) {
|
||||
MatchResult result = matcher.getMatch();
|
||||
//int wide = Integer.parseInt(result.group(1).toString());
|
||||
//int high = Integer.parseInt(result.group(2).toString());
|
||||
//sizeInfo = "void setup() { " + result.group(0) + " } ";
|
||||
backgroundInfo = result.group(0);
|
||||
|
||||
//} else {
|
||||
// no size() defined, make it default
|
||||
//sizeInfo = "size(" + BApplet.DEFAULT_WIDTH + ", " +
|
||||
//BApplet.DEFAULT_HEIGHT + "); ";
|
||||
}
|
||||
|
||||
// remove references to size()
|
||||
// this winds up removing every reference to size()
|
||||
// not really intended, but will help things work
|
||||
subst = new Perl5Substitution("", Perl5Substitution.INTERPOLATE_ALL);
|
||||
//subst = new Perl5Substitution("$1", Perl5Substitution.INTERPOLATE_ALL);
|
||||
program = Util.substitute(matcher, pattern, subst, program,
|
||||
Util.SUBSTITUTE_ALL);
|
||||
/////////// grab (first) reference to background()
|
||||
|
||||
|
||||
//////// spew out the size and background info
|
||||
matcher = new Perl5Matcher();
|
||||
compiler = new Perl5Compiler();
|
||||
try {
|
||||
pattern =
|
||||
compiler.compile("[\\s\\;](background\\(.*\\);)");
|
||||
//[\\s\\;]
|
||||
//compiler.compile("([^A-Za-z0-9_]+)(background\\(.*\\);)");
|
||||
|
||||
writer.print("void setup() { ");
|
||||
writer.print(sizeInfo);
|
||||
writer.print(backgroundInfo);
|
||||
writer.print("} ");
|
||||
writer.print("void draw() {");
|
||||
} catch (MalformedPatternException e){
|
||||
//System.err.println("Bad pattern.");
|
||||
//System.err.println(e.getMessage());
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
String backgroundInfo = "";
|
||||
input = new PatternMatcherInput(program);
|
||||
if (matcher.contains(input, pattern)) {
|
||||
MatchResult result = matcher.getMatch();
|
||||
//int wide = Integer.parseInt(result.group(1).toString());
|
||||
//int high = Integer.parseInt(result.group(2).toString());
|
||||
//sizeInfo = "void setup() { " + result.group(0) + " } ";
|
||||
backgroundInfo = result.group(0);
|
||||
|
||||
//} else {
|
||||
// no size() defined, make it default
|
||||
//sizeInfo = "size(" + BApplet.DEFAULT_WIDTH + ", " +
|
||||
//BApplet.DEFAULT_HEIGHT + "); ";
|
||||
}
|
||||
|
||||
// remove references to background()
|
||||
// this winds up removing every reference to background()
|
||||
subst = new Perl5Substitution("", Perl5Substitution.INTERPOLATE_ALL);
|
||||
program = Util.substitute(matcher, pattern, subst, program,
|
||||
Util.SUBSTITUTE_ALL);
|
||||
|
||||
|
||||
//////// spew out the size and background info
|
||||
|
||||
|
||||
writer.print("void setup() { ");
|
||||
writer.print(sizeInfo);
|
||||
writer.print(backgroundInfo);
|
||||
writer.print("} ");
|
||||
writer.print("void draw() {");
|
||||
}
|
||||
|
||||
// decode comments to bring them back
|
||||
|
||||
@@ -227,7 +227,7 @@ public class PdeRuntime implements PdeMessageConsumer {
|
||||
//System.out.println();
|
||||
//System.out.println("* stopping");
|
||||
|
||||
// in case stop is called during compilation
|
||||
// check for null in case stop is called during compilation
|
||||
if (applet != null) applet.stop();
|
||||
//if (window != null) window.hide();
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
0060
|
||||
X gaps in lines for pmouseX, mouseX
|
||||
X http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1044438078;start=0
|
||||
X only allow one pmouseX update outside of loop
|
||||
X to avoid jumping lines (drawing -> continuous_lines)
|
||||
X email glen/amit/creas about the change
|
||||
@@ -9,6 +11,103 @@ o java vm could be removed from cvs
|
||||
o in favor of requiring a specific jvm, and using registry to find
|
||||
X see if mods to PdeCompiler work on windows
|
||||
|
||||
fixes because of dmose parser
|
||||
X compiler barfs on: float[] moo = new int[10];
|
||||
X although no error comes through to p5 (benelek)
|
||||
X this was a kjc error, so it's fixed with jikes
|
||||
X int() doesn't work inside other functions
|
||||
X argh, need a real parser
|
||||
X something about the line println("4"); turns things to mush:
|
||||
X http://proce55ing.net/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1062461664;start=0
|
||||
X two int(random(5)) on the same line caused problem
|
||||
X http://proce55ing.net/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1062461786;start=0
|
||||
X setup( ){} has an error, setup(){} does not
|
||||
X http://proce55ing.net/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1062461971;start=0
|
||||
X weird comments bug (// on last line causes oro trouble)
|
||||
X http://proce55ing.net/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1062462227;start=0
|
||||
|
||||
|
||||
|
||||
the big stuff:
|
||||
|
||||
LOADING CODE FROM CLASSES DIR
|
||||
|
||||
"JAVA MODE" (VIA EXTERNAL VM?)
|
||||
|
||||
FONT SUCKAGE
|
||||
|
||||
API MODS: tint/size/background/lights
|
||||
|
||||
API NAMING
|
||||
|
||||
..
|
||||
|
||||
|
||||
new code from sami/carlos
|
||||
|
||||
integrating dan's new parser
|
||||
|
||||
..
|
||||
|
||||
|
||||
_ modify antlr stuff to conditionally recompile in make.sh
|
||||
_ only recompile if asked or if changes
|
||||
|
||||
_ modify how size() works
|
||||
_ allow size() to be called multiple times
|
||||
_ only works once in applet
|
||||
_ if size() not found in export/compile, ask the user
|
||||
_ check what other functions require BGraphics to exist but shouldn't
|
||||
_ color has to be called inside or after setup
|
||||
_ loadImage must be used inside or after setup
|
||||
_ either document this and/or provide a better error message
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1060879468;start=0
|
||||
|
||||
b _ be able to draw something inside setup (?)
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1044689650;start=0
|
||||
b _ be able to set size() later in the program
|
||||
b _ but still maintain other features like background
|
||||
b _ make the BGraphics constructor less fragile
|
||||
b _ and also more open to being resized when not in applet mode
|
||||
|
||||
b _ draw mode issues.. size and background must be int/float constants
|
||||
b _ might be a better 'mode' for bagel so bkg and size cmds work
|
||||
b _ rather than app being enclosed in beginFrame/endFrame loop
|
||||
|
||||
_ setup (200, 200) causes the default size to be used
|
||||
_ no longer require size() to come first.
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038368420
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1028560140
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1059517526
|
||||
|
||||
|
||||
_ modify background() to actually clear the screen
|
||||
_ modify readme.txt regarding background() requiring constants
|
||||
|
||||
|
||||
_ remove "couldn't delete.." messages
|
||||
|
||||
_ help->reference and find in reference don't work on some machines
|
||||
_ complaints from osx and windows..
|
||||
|
||||
_ tint() colors images, not fill()
|
||||
|
||||
_ don't allow apostrophe (i.e. casey's_cells) when naming sketch!
|
||||
|
||||
_ implement text(int something) and text(float something)
|
||||
_ and perhaps others?
|
||||
_ font.stringWidth -> font.width(char c) or width(String s)
|
||||
|
||||
_ BGraphics, BVideo both subclass BImage
|
||||
_ inherits all image manipulation and image use methods
|
||||
|
||||
internal structural stuff
|
||||
_ add constants for building NET, move stuff around in bagel dir
|
||||
_ change the naming of the two versions of calc_color
|
||||
_ internal naming of _fill, image_mode, textureOrientation
|
||||
_ these all need to jive better with one another
|
||||
_ ie. perhaps just 'fill', so that it can be used for a get
|
||||
|
||||
bf b _ BApplet.main(new String[] { "flashcards3" });
|
||||
bf b _ or even BApplet.main(new String[] { getClass().getName() });
|
||||
bf b _ META-INF/MANIFEST.MF contains just "Main-Class: ClassName"
|
||||
@@ -26,42 +125,22 @@ dh b _ also make sure pack() is happening
|
||||
dh b _ add manifest.mf to exported applets so that applications will work
|
||||
dh b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1045983103;start=0
|
||||
|
||||
_ reference key list isn't in dist (?)
|
||||
_ help->reference and find in reference don't work on osx
|
||||
|
||||
_ implement text(int something) and text(float something)
|
||||
_ and perhaps others?
|
||||
_ font.stringWidth -> font.width(char c) or width(String s)
|
||||
|
||||
_ modify how size() works
|
||||
_ allow size() to be called multiple times
|
||||
_ only works once in applet
|
||||
_ if size() not found in export/compile, ask the user
|
||||
|
||||
_ modify background() to actually clear the screen
|
||||
_ modify readme.txt regarding background() requiring constants
|
||||
|
||||
_ tint() colors images, not fill()
|
||||
_ color has to be called inside or after setup
|
||||
_ loadImage must be used inside or after setup
|
||||
_ either document this and/or provide a better error message
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1060879468;start=0
|
||||
|
||||
_ BGraphics, BVideo both subclass BImage
|
||||
_ inherits all image manipulation and image use methods
|
||||
awaiting verification
|
||||
b _ windows 95/98/ME seems to be broken
|
||||
b _ ME doesn't seem to like the .exe, but run.bat worked ok
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1028990066
|
||||
b _ lockup/freezes (mKoser and zeitgeist)
|
||||
b _ jre icon not appearing in the systray
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1030538508
|
||||
b _ getting mouse movement outside the window
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1051916278;start=0
|
||||
|
||||
cosmetic
|
||||
_ remove .DS_Store boogers, especially from win/linux distributions
|
||||
_ NullPointerException when alt is pressed
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1061802316;start=0
|
||||
|
||||
internal structural stuff
|
||||
_ add constants for building NET, move stuff around in bagel dir
|
||||
_ change the naming of the two versions of calc_color
|
||||
_ internal naming of _fill, image_mode, textureOrientation
|
||||
_ these all need to jive better with one another
|
||||
_ ie. perhaps just 'fill', so that it can be used for a get
|
||||
|
||||
|
||||
..................................................................
|
||||
|
||||
@@ -70,13 +149,6 @@ Volunteers / Possible tasks
|
||||
|
||||
_ perlin noise is broken
|
||||
|
||||
_ building releases from scratch
|
||||
_ this is a useful developer task before release
|
||||
_ build all releases from a clean cvs
|
||||
_ tries to make work/ without bagel serial existing and blows up
|
||||
_ b/c bagel checkout happens later
|
||||
_ all code needs to be buildable from scratch
|
||||
|
||||
thought this was complete, but it's totally broken
|
||||
dh b _ present mode, click background window and front window hides
|
||||
dh b _ wasn't present in jdk 1.3, focus manager changed in 1.4
|
||||
@@ -87,6 +159,13 @@ dh b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software
|
||||
b _ escape key not quitting presentation mode
|
||||
b _ no events seem to be coming through at all
|
||||
|
||||
_ building releases from scratch
|
||||
_ this is a useful developer task before release
|
||||
_ build all releases from a clean cvs
|
||||
_ tries to make work/ without bagel serial existing and blows up
|
||||
_ b/c bagel checkout happens later
|
||||
_ all code needs to be buildable from scratch
|
||||
|
||||
_ developers who may be interested in p5 helping:
|
||||
sdlpci@cis.rit.edu
|
||||
gerritt@cloudyreason.com
|
||||
@@ -99,41 +178,22 @@ leonhard@rathner.com
|
||||
|
||||
FRY PILE
|
||||
|
||||
b _ what 'known issues' can be fixed before beta
|
||||
b _ make sure these are noted in the documentation as well
|
||||
|
||||
b _ some flag to know whether applet is online or not
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051758365;start=0
|
||||
b _ fix link, loadStrings, saveBytes code once that's fixed
|
||||
b _ param() function
|
||||
b _ saveBytes not in proper dir is annoying
|
||||
|
||||
b _ modify build instructions for the many changes
|
||||
b _ i.e. buzz.pl requires jdk13+ set for JDK13 flag, used by p5
|
||||
|
||||
_ sketchbook location not properly read or written
|
||||
_ do not delete sketch folder if empty sketch but non-empty data dir
|
||||
_ maybe needs to be a holding area for the current sketch
|
||||
_ this is how the read-only examples would be used
|
||||
|
||||
lotsa video issues
|
||||
_ just locks up after running examples, then does the 'can't delete' thing
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1060313779
|
||||
_ first row of video pixels are black
|
||||
_ casey says it may only be his camera
|
||||
_ video.pixels don't seem to have high bytes set
|
||||
_ so fill(video.pixels[blah]) doesn't work
|
||||
_ test against 'pixels' example
|
||||
|
||||
_ better 1.3/1.4 support.. properly detect vm
|
||||
_ use when deciding which classes to import
|
||||
|
||||
_ some flag to know whether applet is online or not
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051758365;start=0
|
||||
_ fix link, loadStrings, saveBytes code once that's fixed
|
||||
|
||||
_ set a better ctrl-key for reference (anything but 'F')
|
||||
_ probably need to use mac or pc specific keys?
|
||||
|
||||
_ catch security exceptions around applet i/o calls
|
||||
_ not just for saving files, but provide better error msgs when
|
||||
_ attempting to download from another server
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1059928189;start=0
|
||||
b _ better 1.3/1.4 support.. properly detect vm
|
||||
b _ use when deciding which classes to import
|
||||
b _ set a better ctrl-key for reference (anything but 'F')
|
||||
b _ probably need to use mac or pc specific keys?
|
||||
b _ catch security exceptions around applet i/o calls
|
||||
b _ not just for saving files, but provide better error msgs when
|
||||
b _ attempting to download from another server
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1059928189;start=0
|
||||
java.security.AccessControlException: access denied (java.io.FilePermission screen-0000.tif read)
|
||||
at java.security.AccessControlContext.checkPermission(Unknown Source)
|
||||
at java.security.AccessController.checkPermission(Unknown Source)
|
||||
@@ -147,6 +207,39 @@ java.security.AccessControlException: access denied (java.io.FilePermission scre
|
||||
at java.lang.Thread.run(Unknown Source)
|
||||
|
||||
|
||||
sketchbook
|
||||
bf _ if sketchbook.dir is set, makes new sketchbook folder
|
||||
bf _ reads sketchbook properly from other folder
|
||||
bf _ but creates a new folder for new sketches to go into
|
||||
bf _ install sketchbook into another location on person's machine
|
||||
bf _ remove the 'default' for sketchbook
|
||||
bf _ bring this up on bboard and get votes
|
||||
bf _ win2k: my documents, macosx: ~/Documents,
|
||||
bf _ macos9: hd:Users?, linux: ~/sketchbook
|
||||
bf _ move examples to folder that goes w/ p5 app
|
||||
bf _ set examples somehow read-only
|
||||
dh 1 _ 'save as' from examples puts into examples dir.. :(
|
||||
dh 1 _ make it default to the user's sketch dir
|
||||
bf _ sketchbook.dir not properly read or written
|
||||
bf _ do not delete sketch folder if empty sketch but non-empty data dir
|
||||
bf _ maybe needs to be a holding area for the current sketch
|
||||
bf _ this is how the read-only examples would be used
|
||||
dh b _ may need to start putting properties somewhere besides lib
|
||||
dh b _ home directory (or preferences folder under macos9)
|
||||
dh b _ put screenshots into sketch folder
|
||||
dh b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1046185738;start=0
|
||||
|
||||
|
||||
lotsa video issues
|
||||
_ just locks up after running examples, then does the 'can't delete' thing
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1060313779
|
||||
_ first row of video pixels are black
|
||||
_ casey says it may only be his camera
|
||||
_ video.pixels don't seem to have high bytes set
|
||||
_ so fill(video.pixels[blah]) doesn't work
|
||||
_ test against 'pixels' example
|
||||
|
||||
|
||||
additional console fixes
|
||||
dh b _ clear console each time 'run' gets hit
|
||||
dh b _ don't actually clear, just advance by the number of lines visible
|
||||
@@ -170,7 +263,7 @@ b _ Contents/Resources/Java can take jnilib files
|
||||
|
||||
linux
|
||||
_ can't find jikes, so users have to put it in their PATH
|
||||
_ doesn't seem interested in quitting properly
|
||||
_ doesn't seem interested in quitting properly (?)
|
||||
_ switch to swing menus, because motif widgets are nasty
|
||||
|
||||
|
||||
@@ -199,19 +292,10 @@ bf _ screen may be 400x400 pixels, but file be 36x36"
|
||||
bf _ opengl export / rendering mode
|
||||
bf _ currently implemented, but somewhat broken
|
||||
bf _ finish this once all the line code is done
|
||||
bf _ if sketchbook.dir is set, makes new sketchbook folder
|
||||
bf _ reads sketchbook properly from other folder
|
||||
bf _ but creates a new folder for new sketches to go into
|
||||
bf _ install sketchbook into another location on person's machine
|
||||
bf _ remove the 'default' for sketchbook
|
||||
bf _ bring this up on bboard and get votes
|
||||
bf _ win2k: my documents, macosx: ~/Documents,
|
||||
bf _ macos9: hd:Users?, linux: ~/sketchbook
|
||||
bf _ move examples to folder that goes w/ p5 app
|
||||
bf _ set examples somehow read-only
|
||||
bf _ make possible to use buzz.pl to create versions w/ stuff removed
|
||||
bf _ build gl4java for java 1.4
|
||||
|
||||
|
||||
licensing
|
||||
bf _ about box
|
||||
bf _ bring up information about gpl, lgpl, and ibmpl
|
||||
@@ -294,6 +378,14 @@ _ begin/end.. beginSerial/endSerial ->
|
||||
_ openSerial/closeSerial ?
|
||||
_ startSerial/stopSerial
|
||||
|
||||
_ need some model for i/o that makes more sense
|
||||
_ getting whole words from serial, network, and files
|
||||
_ or buffers of specific length with a sync byte
|
||||
_ split to take strings (ie. for ", ")
|
||||
_ quicksort should probably just be made into 'sort' class
|
||||
_ it's the only one ever used
|
||||
_ can this be done using an inner class?
|
||||
|
||||
|
||||
additions that i want
|
||||
_ image(BImage, x, y, float scale) (found in illustrator stuff)
|
||||
@@ -305,6 +397,45 @@ _ for an actual 'transformations' object
|
||||
_ write tiff (or other) header for image stream
|
||||
|
||||
|
||||
..................................................................
|
||||
|
||||
|
||||
additional pde files
|
||||
..to still maintain rect() instead of g.rect()
|
||||
..and the rest of the p5 features
|
||||
|
||||
// shape or "processing" means to add all kinds of methods like:
|
||||
// public void point(float x, float y) { g.point(x, y); }
|
||||
// and that the class 'implements' ShapeInterface..
|
||||
//
|
||||
shape class Something {
|
||||
|
||||
void setup() {
|
||||
// not used, or called on first draw
|
||||
|
||||
// but maybe required (even if behind the scenes)
|
||||
// so that this can use "implements ShapeInterface"
|
||||
}
|
||||
|
||||
void draw() { // uses internal g. that's been set by parent
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
in the .pde parent:
|
||||
|
||||
void loop() {
|
||||
shape(somethingInstance);
|
||||
}
|
||||
|
||||
where the shape() method in BApplet looks like:
|
||||
|
||||
shape(ShapeInterface o) {
|
||||
o.graphics(this.g); // has to be a method, since intf
|
||||
o.draw();
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
@@ -415,21 +546,17 @@ ks b _ finish fill mode of flat circle function
|
||||
ks b _ stroked version of sphere is just a circle (?)
|
||||
ks b _ setting accuracy of circles/sphere
|
||||
|
||||
bf b _ illustrator export / rendering mode
|
||||
bf b _ also postscript or pdf export?
|
||||
bf b _ version of Illustrator.java that uses bagel api
|
||||
bf b _ sorting of polygons/lines on simple painters algorithm
|
||||
bf b _ better lighting model to show darkness at various depths
|
||||
bf b _ maybe just ultra-high res bitmaps from gl
|
||||
bf b _ version of ProcessingApplet that replaces g. with ai. or pdf.
|
||||
bf 1 _ illustrator export / rendering mode
|
||||
bf 1 _ also postscript or pdf export?
|
||||
bf 1 _ version of Illustrator.java that uses bagel api
|
||||
bf 1 _ sorting of polygons/lines on simple painters algorithm
|
||||
bf 1 _ better lighting model to show darkness at various depths
|
||||
bf 1 _ maybe just ultra-high res bitmaps from gl
|
||||
bf 1 _ version of ProcessingApplet that replaces g. with ai. or pdf.
|
||||
|
||||
|
||||
BAGEL / Data API
|
||||
|
||||
bf b _ split to take strings (ie. for ", ")
|
||||
bf b _ quicksort should probably just be made into 'sort' class
|
||||
bf b _ it's the only one ever used
|
||||
bf b _ can this be done using an inner class?
|
||||
bf b _ read table/csv formatted data into a matrix
|
||||
bf b _ pseudo-database format version of this that stores indexes to file
|
||||
bf b _ rather than loading the whole thing at once
|
||||
@@ -437,9 +564,6 @@ bf b _ more advanced splitting of files into rows/cols uses another class
|
||||
bf b _ other class also has concept for random access of lines
|
||||
bf b _ by storing the line positions, can access without loading all
|
||||
bf b _ into memory because some files will be too large
|
||||
bf b _ need some model for i/o that makes more sense
|
||||
bf b _ getting whole words from serial, network, and files
|
||||
bf b _ or buffers of specific length with a sync byte
|
||||
|
||||
|
||||
BAGEL / Serial
|
||||
@@ -451,19 +575,13 @@ BAGEL / Serial
|
||||
BAGEL / Details
|
||||
|
||||
bf b _ make zbuffer available instead of g.zbuffer
|
||||
b _ getting mouse movement outside the window
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1051916278;start=0
|
||||
b _ gaps in lines for pmouseX, mouseX
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1044438078;start=0
|
||||
|
||||
b _ too many push() will silently stop the applet inside a loop
|
||||
b _ test winding polygons in different directions
|
||||
b _ test lighting to see how it compares with gl
|
||||
b _ better lockout inside beginShape() to keep other things from happening
|
||||
b _ is quad strip broken or not behaving as expected?
|
||||
b _ may be correct, it worked for nik
|
||||
b _ draw mode issues.. size and background must be int/float constants
|
||||
b _ might be a better 'mode' for bagel so bkg and size cmds work
|
||||
b _ rather than app being enclosed in beginFrame/endFrame loop
|
||||
b _ images drawn from center don't work for simage()
|
||||
b _ currently calling slower image routine
|
||||
b _ inside draw() mode, delay() does nothing
|
||||
@@ -545,21 +663,13 @@ SOUND / Bagel Standard Extension by Carlos
|
||||
PDE - Processing Development Environment
|
||||
|
||||
|
||||
PDE / General
|
||||
|
||||
b _ be able to draw something inside setup (?)
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1044689650;start=0
|
||||
b _ be able to set size() later in the program
|
||||
b _ but still maintain other features like background
|
||||
b _ make the BGraphics constructor less fragile
|
||||
b _ and also more open to being resized when not in applet mode
|
||||
|
||||
|
||||
PDE / Pre-preprocessor
|
||||
Currently using Oro for search and replace preprocessor,
|
||||
but Dan Mosedale is moving us to ANTLR
|
||||
|
||||
dm b _ move to antlr
|
||||
dm X move to antlr
|
||||
|
||||
dm b _ additional data conversions to avoid this syntax:
|
||||
dm b _ Integer.toString(), Integer.parseInt()
|
||||
dm b _ works like class casting: int(23.4) same as ((int) 23.4)
|
||||
@@ -635,29 +745,7 @@ Possible?
|
||||
block. but that wouldn't seem to work either.
|
||||
|
||||
|
||||
PDE / PreprocessorOro bugs (will go away with new preproc)
|
||||
|
||||
_ weird comments bug (// on last line causes oro trouble)
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1040466898
|
||||
_ setup( ){} has an error, setup(){} does not
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1045059758;start=0
|
||||
_ also, setup (200, 200) causes the default size to be used
|
||||
_ no longer require size() to come first.
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038368420
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1028560140
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1059517526
|
||||
_ compiler barfs on: float[] moo = new int[10];
|
||||
_ although no error comes through to p5 (benelek)
|
||||
_ int() doesn't work inside other functions
|
||||
_ argh, need a real parser
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1052994613
|
||||
_ more int() troubles
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1056479871;start=0
|
||||
_ something about the line println("4"); turns things to mush:
|
||||
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1051654054;start=0
|
||||
|
||||
|
||||
PDE / Runtime (includes classloading)
|
||||
Pde / Runtime (includes classloading)
|
||||
|
||||
dh b _ environment locks up when error stream isn't for the class
|
||||
dh b _ this happens when it's another thread (i.e. image fetcher)
|
||||
@@ -691,10 +779,10 @@ dh b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software
|
||||
|
||||
PDE / Details
|
||||
|
||||
dh b _ p5 becomes a memory hog (benelek and glen murphy)
|
||||
dh b _ even without sketches open, perhaps not gc'ing properly
|
||||
dh b _ objects probably not getting finalized
|
||||
dh b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1050134854;start=0
|
||||
dh 1 _ p5 becomes a memory hog (benelek and glen murphy)
|
||||
dh 1 _ even without sketches open, perhaps not gc'ing properly
|
||||
dh 1 _ objects probably not getting finalized
|
||||
dh 1 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1050134854;start=0
|
||||
dh 1 _ beautify() ignores colons for case statements
|
||||
dh 1 _ need to tie this to the parser instead
|
||||
dh 1 _ SystemColor doesn't differentiate between menu background and top
|
||||
@@ -709,8 +797,6 @@ dh b _ not draw the sketch name bar doesn't appear"
|
||||
dh 1 _ size() has memory limitations (pitaru)
|
||||
dh 1 _ catch OutOfMemoryError inside size() and let the user know
|
||||
dh 1 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038847001
|
||||
dh 1 _ 'save as' from examples puts into examples dir.. :(
|
||||
dh 1 _ make it default to the user's sketch dir
|
||||
dh 1 _ verify editor buttons working properly
|
||||
dh 1 _ is play button properly unhighlighting?
|
||||
dh 1 _ does it unhighlight after compile or runtime errors?
|
||||
@@ -764,10 +850,6 @@ dh b _ add all .jar files in lib/plugins on startup
|
||||
dh b _ make some kind of internal color picker
|
||||
dh b _ could be a separate window that's always around if needed
|
||||
dh b _ shortcut to walk through history, ala photoshop (ctrl-alt-z)
|
||||
dh b _ may need to start putting properties somewhere besides lib
|
||||
dh b _ home directory (or preferences folder under macos9)
|
||||
dh b _ put screenshots into sketch folder
|
||||
dh b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1046185738;start=0
|
||||
dh b _ external editor -> add a command to launch
|
||||
dh b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1043734580;start=0
|
||||
dh b _ event to explorer to open 'data' directory of project
|
||||
@@ -857,11 +939,10 @@ How the environment gets packed up, downloaded, and installed.
|
||||
|
||||
|
||||
DISTRIBUTION / General
|
||||
|
||||
b _ need more comprehensive list of 'known bugs'
|
||||
b _ need to purge 55 spelling from lots of things
|
||||
b _ need to purge 55 spelling from lots of things
|
||||
b _ window title code, name of .exe and .app files
|
||||
b _ need more comprehensive list of ' known suggestions'
|
||||
b _ need more comprehensive list of 'known suggestions'
|
||||
b _ people like downloadable reference + net isn't cheap everywhere
|
||||
b _ beta release will include source code
|
||||
b _ write notes about running p5 on another platforms
|
||||
@@ -869,25 +950,18 @@ b _ this was some feedback from running on bsd:
|
||||
b _ /usr/local/jdk1.3.1/bin/java -cp lib:lib/build:lib/pde.jar:lib/kjc.jar:lib/oro.jar:java/lib/ext/comm.jar PdeBase
|
||||
b _ need to use the 1.3 vm, and get a fake platform name
|
||||
b _ otherwise, goes looking for lib/pde_.properties or something
|
||||
b _ tie .pde files as documents of the application
|
||||
b _ figure out proper registry key for windows
|
||||
b _ can be handled when the app first run (jni?)
|
||||
b _ write handler for main() to take document names
|
||||
b _ need document icons
|
||||
b _ add MRJOpenApplicationHandler and MRJOpenDocumentHandler
|
||||
b _ especially the open document fella
|
||||
b _ under osx, app won't get doc unless app already launched
|
||||
|
||||
|
||||
DISTRIBUTION / Windows
|
||||
b _ need splash screen, startup takes a long time
|
||||
b _ file association for .pde files
|
||||
b _ windows 95/98/ME seems to be broken
|
||||
b _ ME doesn't seem to like the .exe, but run.bat worked ok
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1028990066
|
||||
b _ lockup/freezes (mKoser and zeitgeist)
|
||||
b _ jre icon not appearing in the systray
|
||||
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1030538508
|
||||
1 _ need splash screen, startup takes a long time
|
||||
1 _ tie .pde files as documents of the application
|
||||
1 _ figure out proper registry key for windows
|
||||
1 _ can be handled when the app first run (jni?)
|
||||
1 _ write handler for main() to take document names
|
||||
1 _ need document icons
|
||||
1 _ add MRJOpenApplicationHandler and MRJOpenDocumentHandler
|
||||
1 _ especially the open document fella
|
||||
1 _ under osx, app won't get doc unless app already launched
|
||||
|
||||
|
||||
DISTRIBUTION / Linux
|
||||
@@ -895,12 +969,10 @@ b _ splash screen
|
||||
|
||||
|
||||
DISTRIBUTION / Mac OS X
|
||||
|
||||
1 _ set file type/creator for .pde files of examples
|
||||
1 _ would be nice to have macosx packaged up as a single .app file
|
||||
|
||||
|
||||
|
||||
DISTRIBUTION / Mac OS 9
|
||||
|
||||
todo
|
||||
|
||||
Reference in New Issue
Block a user