diff --git a/processing/todo.txt b/processing/todo.txt new file mode 100644 index 000000000..bc891c9cf --- /dev/null +++ b/processing/todo.txt @@ -0,0 +1,82 @@ +ENV +_ env. toggle for showing a function name each time its hit +_ env. toggle for showing line numbers within a function +_ i'm here messages, tie in with breakpoints for debugger +_ lightweight debugger, doesn't slow down, runs in back +_ env. toggle to show attr/value for some var in simple way +_ comments as debugging descriptors, output to console, shown in context +_ comments as naming for shapes drawn after it, +_ or some other model of naming based on inserted text with "" or // or # +_ could fit nicely with printf-style statements and comments +_ comments would contain descriptions //!blah for printing and formatting +_ sketchbook - doodling/scribbling area.. since wacom tablet easily accessible + + +PROCESSING - HIGH (finish these sunday, before class) +_ kill button (without stop) doesn't clear play +_ running out of memory, presumably b/c applets not being cleared +_ figure out why threads aren't actually dying +_ disassociate processing applet with a window on stop? +_ possible to maintain bagel, but kill applet? +_ or copy bagel's image, and kill that too? +_ put debugging stuff back into Kjc (i disabled some stuff) +_ make tab key work +_ include auto-indent? +_ convert documentation to html +_ what happens if size() not called inside setup() ? +_ when using draw() instead of loop() +_ applet needs to notify runner that it has terminated +_ image grabbing code (write to tiff) +_ multiple types of KjcEngine (so that simplest model is available) +_ tweak updater a little bit so it's more likely to work +_ use numbered versioning? +_ anti-aliasing +_ alpha + + +PROCESSING - MEDIUM +_ per-vertex shading doesn't work +_ the lights prolly shouldn't follow objects around +_ work on courseware applet code signing +_ why is z going negative, seems weird +_ maybe view needs to go from -100 to 100 with zero at screen plane +_ code to save a project to the main machine +_ setting up 'project' directories +_ delayUntil would be nice to have +_ but at some point there has to be a cutoff +_ have a library of useful code that people can add to programs +_ otherwise things are too simple, and env is a crutch +_ courseware menu +_ list of 'people' and 'projects'; refresh +_ based on local dir named 'projects' or 'sketchbook'? +_ copyPixel(x, y, to_x, to_y) +_ copyArea(x, y, w, h, to_x, to_y) +_ copyImage(image, x, y, w, h, to_x, to_y) +_ lesson plans (easier to translate) +_ write example applets in processing +_ courseware system +_ uploading pieces when finished - scrapbook/sketchbook model? +_ download new versions of pde.jar from main machine +_ some kind of text +_ setup imrf linux machine? +_ quicktime exporter or image sequence export +_ nice to have a random number generator between -1..1 +_ as well as an integer random; instead of just 0..1 +_ show creas how to get access to cvs +_ how to use ssh identity file to maintain auth for brancusi + + +PROCESSING - LOWER +_ move math functions into utility library associated +_ with bagel, because those will be useful on other bagel platforms +_ perlin noise function +_ give updater feedback (progress dialog, error msg) +_ get proce55ing.net, make that the target launch site +_ make some kind of internal color picker +_ could be a separate window that's always around if needed +_ write a dbn compatability mode (forever() instead of loop() ?) +_ save window x, y, width, height to pde.properties on exit +_ bagelpublic.pl: open ProcessingApplet, rewrite after special token +_ look at glut for other needed shapes +_ make PdeEditorButtons wait until mouseup to change +_ (currently doesn't feel as good as it could) diff --git a/processing/tools/maclf/MacLF.class b/processing/tools/maclf/MacLF.class new file mode 100644 index 000000000..be0300074 Binary files /dev/null and b/processing/tools/maclf/MacLF.class differ diff --git a/processing/tools/maclf/MacLF.java b/processing/tools/maclf/MacLF.java new file mode 100644 index 000000000..dc42798fd --- /dev/null +++ b/processing/tools/maclf/MacLF.java @@ -0,0 +1,126 @@ +import java.io.*; + + +public class MacLF +{ + static final int MAC = 0; + static final int UNIX = 1; + static final int WINDOWS = 2; + + static public void main(String args[]) { + if (args.length == 0) { + System.err.println("maclf "); + System.exit(0); + } + int kind = MAC; + + for (int i = 0; i < args.length; i++) { + File file = new File(args[i]); + if (file.isDirectory()) { + dir(file, kind); + } else { + load(file, kind); + } + } + } + + static public void dir(File dir, int kind) { + String files[] = dir.list(); + for (int i = 0; i < files.length; i++) { + File file = new File(dir, files[i]); + if (file.isDirectory()) { + dir(file, kind); + } else { + load(file, kind); + } + } + } + + static public void load(File file, int kind) { + try { + if (file.isDirectory()) { + String list[] = file.list(); + for (int i = 0; i < list.length; i++) { + load(new File(file, list[i]), kind); + } + } else { + new MacLF(file, kind); + } + } catch (Exception e) { + System.err.println(file); + e.printStackTrace(); + } + } + + public MacLF(File file, int outputKind) + throws FileNotFoundException, IOException { + String path = null; + try { + path = file.getCanonicalPath(); + } catch (IOException e) { + path = file.getPath(); + } + FileInputStream input = new FileInputStream(file); + byte data[] = null; + data = readBytes(input, 0, (int)file.length()); + input.close(); + + File tempFile = new File(path + ".temp"); + FileOutputStream output = null; + output = new FileOutputStream(tempFile); + for (int i = 0; i < data.length; i++) { + if (data[i] == 10) { + // got a unix lf + outputLF(output, outputKind); + } else if (data[i] == 13) { + // mac or windows + outputLF(output, outputKind); + if (((i + 1) != data.length) && + (data[i+1] == 10)) { + // windows, skip LF after CR + i++; + } + } else { + output.write(data[i]); + } + } + output.flush(); + output.close(); + if (!file.delete()) { + System.err.println("Could not delete original file."); + } else { + if (!tempFile.renameTo(file)) { + System.err.println("Could not rename temp file."); + } + } + } + + protected void outputLF(OutputStream output, int outputKind) + throws IOException { + if (outputKind == UNIX) { + output.write(10); + } else if (outputKind == WINDOWS) { + output.write(13); + output.write(10); + } else if (outputKind == MAC) { + output.write(13); + } + } + + + static public byte[] readBytes(InputStream input, int start, int length) + throws IOException + { + byte[] returning = new byte[length]; + + while (true) { + int byteCount = input.read(returning, start, length); + if (byteCount <= 0) + break; + + start += byteCount; + length -= byteCount; + } + return returning; + } +} diff --git a/processing/tools/maclf/maclf.exe b/processing/tools/maclf/maclf.exe new file mode 100755 index 000000000..4a71261e4 Binary files /dev/null and b/processing/tools/maclf/maclf.exe differ diff --git a/processing/tools/maclf/make.bat b/processing/tools/maclf/make.bat new file mode 100755 index 000000000..315114abb --- /dev/null +++ b/processing/tools/maclf/make.bat @@ -0,0 +1,3 @@ +@echo off +jikes *.java +jexegen /nologo /out:maclf.exe /main:MacLF MacLF.class