From d9302fac2bd9489570519f1716f7fac0a48f6796 Mon Sep 17 00:00:00 2001 From: benfry Date: Sun, 9 May 2004 19:47:46 +0000 Subject: [PATCH] merging changes over from processing-007X branch --- processing/app/PdeCompiler.java | 9 +- processing/app/PdeCompilerJavac.java | 2 +- processing/app/PdeEditorButtons.java | 2 +- processing/app/PdeEditorConsole.java | 35 +- processing/app/PdeEditorFind.java | 3 + processing/app/PdeEditorStatus.java | 2 +- processing/app/PdeException.java | 2 +- processing/app/PdeFontBuilder.java | 61 +++- processing/done.txt | 119 +++++++ processing/future.txt | 10 +- processing/todo.txt | 488 ++++----------------------- 11 files changed, 288 insertions(+), 445 deletions(-) diff --git a/processing/app/PdeCompiler.java b/processing/app/PdeCompiler.java index 6d5b27ee3..cf1d288c0 100644 --- a/processing/app/PdeCompiler.java +++ b/processing/app/PdeCompiler.java @@ -2,10 +2,11 @@ /* PdeCompiler - default compiler class that connects to jikes - Part of the Processing project - http://Proce55ing.net + Part of the Processing project - http://processing.org - Except where noted, code is written by Ben Fry and - Copyright (c) 2001-03 Massachusetts Institute of Technology + Copyright (c) 2001-03 + Ben Fry, Massachusetts Institute of Technology and + Casey Reas, Interaction Design Institute Ivrea 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 @@ -328,7 +329,7 @@ public class PdeCompiler implements PdeMessageConsumer { int importCount = 0; String pieces[] = - BApplet.splitStrings(path, File.pathSeparatorChar); + BApplet.split(path, File.pathSeparatorChar); for (int i = 0; i < pieces.length; i++) { //System.out.println("checking piece " + pieces[i]); diff --git a/processing/app/PdeCompilerJavac.java b/processing/app/PdeCompilerJavac.java index d60e6820d..501a69aa8 100755 --- a/processing/app/PdeCompilerJavac.java +++ b/processing/app/PdeCompilerJavac.java @@ -2,7 +2,7 @@ /* PdeCompilerJavac - compiler interface to kjc.. someday this will go away - Part of the Processing project - http://Proce55ing.net + Part of the Processing project - http://processing.org Except where noted, code is written by Ben Fry and Copyright (c) 2001-03 Massachusetts Institute of Technology diff --git a/processing/app/PdeEditorButtons.java b/processing/app/PdeEditorButtons.java index 63fd6ce0a..df3175dff 100644 --- a/processing/app/PdeEditorButtons.java +++ b/processing/app/PdeEditorButtons.java @@ -2,7 +2,7 @@ /* PdeEditorButtons - run/stop/etc buttons for the ide - Part of the Processing project - http://Proce55ing.net + Part of the Processing project - http://processing.org Except where noted, code is written by Ben Fry and Copyright (c) 2001-03 Massachusetts Institute of Technology diff --git a/processing/app/PdeEditorConsole.java b/processing/app/PdeEditorConsole.java index 26ede1435..0a09c38d8 100644 --- a/processing/app/PdeEditorConsole.java +++ b/processing/app/PdeEditorConsole.java @@ -45,6 +45,9 @@ public class PdeEditorConsole extends JScrollPane { boolean cerror; + //int maxCharCount; + int maxLineCount; + static PrintStream systemOut; static PrintStream systemErr; @@ -192,13 +195,41 @@ public class PdeEditorConsole extends JScrollPane { private void appendText(String text, boolean err) { try { + // check how many lines have been used so far + // if too many, shave off a few lines from the beginning + Element element = consoleDoc.getDefaultRootElement(); + int lineCount = element.getElementCount(); + int overage = lineCount - maxLineCount; + if (overage > 0) { + // if 1200 lines, and 1000 lines is max, + // find the position of the end of the 200th line + Element lineElement = element.getElement(overage); + int endOffset = lineElement.getEndOffset(); + // remove to the end of the 200th line + consoleDoc.remove(0, endOffset); + } + + // add the text to the end of the console, consoleDoc.insertString(consoleDoc.getLength(), text, err ? errStyle : stdStyle); - // always move to the end of the text as it's added [fry] + // always move to the end of the text as it's added consoleTextPane.setCaretPosition(consoleDoc.getLength()); - } catch (Exception e) { } + } catch (BadLocationException e) { + // ignore the error otherwise this will cause an infinite loop + // maybe not a good idea in the long run? + } + } + + + public void clear() { + try { + consoleDoc.remove(0, consoleDoc.getLength()); + } catch (BadLocationException e) { + // ignore the error otherwise this will cause an infinite loop + // maybe not a good idea in the long run? + } } } diff --git a/processing/app/PdeEditorFind.java b/processing/app/PdeEditorFind.java index 9d25ad15b..e3b36bc8a 100644 --- a/processing/app/PdeEditorFind.java +++ b/processing/app/PdeEditorFind.java @@ -103,6 +103,9 @@ public class PdeEditorFind extends JFrame implements ActionListener { } pain.add(buttons); + // 0069 TEMPORARILY DISABLED! + replaceAllButton.setEnabled(false); + // to fix ugliness.. normally macosx java 1.3 puts an // ugly white border around this object, so turn it off. if (PdeBase.platform == PdeBase.MACOSX) { diff --git a/processing/app/PdeEditorStatus.java b/processing/app/PdeEditorStatus.java index 663571eb3..b7ebcef7e 100644 --- a/processing/app/PdeEditorStatus.java +++ b/processing/app/PdeEditorStatus.java @@ -2,7 +2,7 @@ /* PdeEditorStatus - panel containing status messages - Part of the Processing project - http://Proce55ing.net + Part of the Processing project - http://processing.org Except where noted, code is written by Ben Fry and Copyright (c) 2001-03 Massachusetts Institute of Technology diff --git a/processing/app/PdeException.java b/processing/app/PdeException.java index 0d24b8056..1aad90cb5 100644 --- a/processing/app/PdeException.java +++ b/processing/app/PdeException.java @@ -2,7 +2,7 @@ /* PdeException - an exception with a line number attached - Part of the Processing project - http://Proce55ing.net + Part of the Processing project - http://processing.org Except where noted, code is written by Ben Fry and Copyright (c) 2001-03 Massachusetts Institute of Technology diff --git a/processing/app/PdeFontBuilder.java b/processing/app/PdeFontBuilder.java index 85b09b8cc..1bb53128e 100644 --- a/processing/app/PdeFontBuilder.java +++ b/processing/app/PdeFontBuilder.java @@ -2,7 +2,7 @@ /* PdeFontBuilder - gui interface to font creation heaven/hell - Part of the Processing project - http://Proce55ing.net + Part of the Processing project - http://processing.org Except where noted, code is written by Ben Fry and Copyright (c) 2001-03 Massachusetts Institute of Technology @@ -63,9 +63,18 @@ public class PdeFontBuilder extends JFrame { public PdeFontBuilder(File targetFolder) { super("Create Font"); - this.targetFolder = targetFolder; + Container paine = getContentPane(); + paine.setLayout(new BorderLayout()); //10, 10)); + + //Dimension d = new Dimension(5, 5); + //paine.add(new Box.Filler(d, d, d), BorderLayout.WEST); + + JPanel pain = new JPanel(); + //pain.setBorder(BorderFactory.createLineBorder(Color.black)); + //pain.setBorder(new EmptyBorder(10, 20, 20, 20)); + pain.setBorder(new EmptyBorder(13, 13, 13, 13)); + paine.add(pain, BorderLayout.CENTER); - Container pain = getContentPane(); pain.setLayout(new BoxLayout(pain, BoxLayout.Y_AXIS)); String labelText = @@ -75,7 +84,10 @@ public class PdeFontBuilder extends JFrame { //JLabel label = new JLabel(labelText); JTextArea textarea = new JTextArea(labelText); - textarea.setBorder(new EmptyBorder(10, 20, 10, 20)); + textarea.setBorder(new EmptyBorder(10, 10, 20, 10)); + textarea.setBackground(null); + textarea.setEditable(false); + textarea.setHighlighter(null); textarea.setFont(new Font("Dialog", Font.PLAIN, 12)); pain.add(textarea); //pain.add(label); @@ -104,26 +116,34 @@ public class PdeFontBuilder extends JFrame { // don't care about families starting with . or # // also ignore dialog, dialoginput, monospaced, serif, sansserif -#ifdef JDK13 // getFontList is deprecated in 1.4, so this has to be used GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); - //Font fonts[] = ge.getAllFonts(); - String flist[] = ge.getAvailableFontFamilyNames(); -#else - //fontSelector = new JComboBox(); - String flist[] = Toolkit.getDefaultToolkit().getFontList(); -#endif + Font fonts[] = ge.getAllFonts(); + String flist[] = new String[fonts.length]; - int index = 0; + //String flist[] = ge.getAvailableFontFamilyNames(); + //fontSelector = new JComboBox(); + // old jdk11 version + //String flist[] = Toolkit.getDefaultToolkit().getFontList(); + + /* for (int i = 0; i < flist.length; i++) { if ((flist[i].indexOf('.') == 0) || (flist[i].indexOf('#') == 0) || (flist[i].equals("Dialog")) || (flist[i].equals("DialogInput")) || (flist[i].equals("Serif")) || (flist[i].equals("SansSerif")) || (flist[i].equals("Monospaced"))) continue; - flist[index++] = flist[i]; + //flist[index++] = flist[i]; + Font f = new Font(flist[i], Font.PLAIN, 1); + flist[index++] = f.getPSName(); } + */ + int index = 0; + for (int i = 0; i < fonts.length; i++) { + flist[index++] = fonts[i].getPSName(); + } + list = new String[index]; System.arraycopy(flist, 0, list, 0, index); @@ -163,6 +183,7 @@ public class PdeFontBuilder extends JFrame { }); fontSelector.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + fontSelector.setVisibleRowCount(12); JScrollPane fontScroller = new JScrollPane(fontSelector); pain.add(fontScroller); //fontSelector.setFont(new Font("SansSerif", Font.PLAIN, 10)); @@ -174,6 +195,10 @@ public class PdeFontBuilder extends JFrame { }); */ + Dimension d1 = new Dimension(13, 13); + //paine.add(new Box.Filler(d, d, d), BorderLayout.WEST); + pain.add(new Box.Filler(d1, d1, d1)); + // see http://rinkworks.com/words/pangrams.shtml sample = new JTextArea("The quick brown fox blah blah.") { //"Forsaking monastic tradition, twelve jovial friars gave up their vocation for a questionable existence on the flying trapeze.") { @@ -219,6 +244,9 @@ public class PdeFontBuilder extends JFrame { panel.add(styleSelector); */ + Dimension d2 = new Dimension(6, 6); + pain.add(new Box.Filler(d2, d2, d2)); + JPanel panel = new JPanel(); panel.add(new JLabel("Size:")); sizeSelector = new JTextField("48 "); @@ -238,9 +266,7 @@ public class PdeFontBuilder extends JFrame { smoothBox = new JCheckBox("Smooth"); smoothBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - //System.out.println(e); smooth = smoothBox.isSelected(); - //System.out.println(smooth); } }); smoothBox.setSelected(smooth); @@ -290,6 +316,11 @@ public class PdeFontBuilder extends JFrame { setLocation((screen.width - size.width) / 2, (screen.height - size.height) / 2); + } + + + public void show(File targetFolder) { + this.targetFolder = targetFolder; show(); } diff --git a/processing/done.txt b/processing/done.txt index 478488366..22ac9bb0c 100644 --- a/processing/done.txt +++ b/processing/done.txt @@ -1,3 +1,122 @@ +0069 pde +X font builder +X crashing on small sizes for many fonts +X make the text area not selectable or highlightable +X add a few more rows +X use postscript name as suggested name +X save last used font, size, and smooth settings +X maybe just hide it the window, just like find +X include a little space around the text area +X clean up the spacing of the ui in general +X mouse wheel not working properly, need to dynamically load 1.4 code +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1065826758;start=0 +X add NETWORK to the build scripts, since a new ifdef was added for it +X add CFBundleIdentifier to macosx dist +X exact text appears in this thread, also make a note in the readme +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1078739015 +X not obliterating former LIBRARY_PATH when running externally +X this would solve a lot of problems with serial and video +X has trouble on windows, have to move quicktime out.. argh +X including qtjava in path when in java mode (oops) +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077900024 +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1069724180;start=0 +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073523928;start=0 +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076679293;start=0 +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076649501;start=0 +X add ms/mx options for things running externally +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1078699341;start=0 + +fixed previously +o set max frame rate at 60 fps? avoid the full-on spew to the console +o console runs really really slow with a lot of println() calls +o http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1064182823 + + +0068 +X option to disable smoothing on font creator +X font builder should update when the size for the font is changed +X (so long as the size itself is valid) +X font builder bug, was cutting off parts of letters +X major applet freezing error fixed with external +X printStackTrace wasn't being called for runtime errors if no leechErr +X create font doesn't support umlauts +X fix up font code to generate unicode chars, at least for iso8859-1 charset +X http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1067596427 +X international: convert unicode chars to \uXXXX in the preproc +X if this causes trouble, change the preference for lib/pde.properties +X compiler.substitute_unicode = false +X implement concave/convex polygons +X code from carlos that was patched into old graphics +X concave/complex polygon +X eventually POLYGON auto-detects convex/concave polygon +X also add POLYGON_CONVEX and POLYGON_CONCAVE +X find/replace hangs when recapitalizing things +X http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1075416670 +X http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1075416741 +X fixes for file loading from the lib/ folder (when using bagel separately) +X subset/expand functions for arrays +X preprocessor thing for converting unicode stuff +X can be turned off with: compiler.substitute_unicode = false +X problem with find locking up +X notify toxi when i know how soon before i'm going to release 68 +X remove proce55ing.net from code stuff +X move issues over from the 'active' todo to here +X and change the active todo to rev 69 +_ check this stuff into the done.txt of 69 +_ post a candidate release to see how it runs for folks +X see if there are any other things that people must have for next 2 months +o ie. removing quicktime for java ? +X what to do about examples (weren't there fixes?) +X make renderTriangle private +X change to processing.org in the exported html +X patch in toxi's image stuff + +0068c3 +X fix a bug in System.out that wasn't reporting errors +X hack workaround for the tesselator halo bug +X fix another bug with the init for noise() +X make notes in bugs.txt + +0068c4 +X console runs really really slow with a lot of println() calls +X http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1075759355 + +toxi +X sphereDetail() function + reference +X optimized the flat_rect() function for solid colours (20% faster) +X noise() is (partially) broken in v67 + +goodbye macos9 +X posted to message board about it going away +o leftover todos +o set file type for jar and html files on export +o (not done on osx, safari doesn't set for html files) +o why is bbedit the type for the other files? make simpletext +o untested/likely broken +o reference launching +o control/right-click for edit area context menu +o make sure editor window is front so that error line highlights +o is video working (qtjava in path) on macos9? + +already done in a prev release, but not checked off +X subst Image -> BImage, Font -> BFont +X this should be optional until we get the naming down +X note that this was already done pre-67 +o allow import blahblah.blah.blah to get passed through +o and included with the imports list. +X clear console each time 'run' gets hit +X don't actually clear, just advance by the number of lines visible +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051540041;start=0 +X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1065732731 +X can't copy text from console directly (winxp and macosx) + +nixed +o basic usb support? +o http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1053684925 +o try ariel's Thread.yield() suggestion +o set default framerate of 24? 30? 2x that? + + 0067 X it's possible to write non-1.1 code, even syntax X would -source 1.1 help this? -> nope diff --git a/processing/future.txt b/processing/future.txt index d80e0bebc..bc4456113 100644 --- a/processing/future.txt +++ b/processing/future.txt @@ -110,7 +110,7 @@ features we love, but probably won't be implemented 2048 -PDE / Pre-preprocessor +PDE / Pre-preprocessor & Compiler Currently using Oro for search and replace preprocessor, but Dan Mosedale is moving us to ANTLR @@ -124,6 +124,14 @@ but Dan Mosedale is moving us to ANTLR 2 _ float("1234.35") -> (new Float("1234.35").floatValue()) 2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1060940705 + 2 _ (blah, blah, blah) = split(blah, "\t") + 2 _ 'like php's "explode" function' + 2 _ http://www.php.net/manual/en/function.explode.php + 2 _ example 2 is the more interesting one... + 2 _ list($user, $pass, $uid, $gid, $gecos..) = explode(":", $data); + 2 _ also see the inverse of that: + 2 _ http://www.php.net/manual/en/function.implode.php + 2 _ foreach implementation, ala java 1.5 spec 2 _ http://jcp.org/aboutJava/communityprocess/jsr/tiger/enhanced-for.html 2 _ for (String s : c) { ... } diff --git a/processing/todo.txt b/processing/todo.txt index 9b9d6861e..69bfbd10d 100644 --- a/processing/todo.txt +++ b/processing/todo.txt @@ -1,118 +1,53 @@ -007X -X ifdef JDK14 around a piece of 1.4 specific window code -X use mozilla for opening urls in linux, switched to more compatible exec() -o note in the docs: can't use transforms inside beginShape() -o http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1068795597 -X make components all swing components -X switch to swing menus (for linux), because motif widgets are nasty -X moved 'find in reference' to the help menu -X eliminate the requirement for a 'data' folder -X only create 'data' folder when it's needed/used -X auto-create code and data folder via 'add files to sketch..' -X may need to start putting properties somewhere besides lib -X home directory (or preferences folder under macos9) -X punt on the expert release? at least until beta? -X nope, can't will annoy people and won't save enough time -X clean up the fonts in the -X do this once unicode support has been added to the regular fonts -X make a preference panel to set pde.properties stuff -X new html code for eolas patent case -X move html to external file in the lib folder -X re-merge old code back in for textareadefaults? -X re-enable line highlight -X fix background color -X get bracket highlighting to work -X why won't loop() go bold? -> java 1.4 problem on the mac -X test what it does on the pc -X seems to be a mac-specific problem (probably because of monaco) -X removed kjc classes -X addition to pde.properties to list the imports for various jdk versions -X set jdk version for export inside pde.properties -X option to set what browser is in use -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1074106123;start=0 +0070 pde -X new applet html code for proper XHTML compliance -X make sure applet.html uses processing.org +_ casting problems in the parser +_ float u = float(x)/width; works. +_ float u = (float(x)/width); doesn't work: "unexpected token: float". +_ float u = (x/float(width)); works! +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1084011098;start=0 -_ p5 classes into packages (bagel especially) -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1052908285;start=0 -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077330124;start=0 +_ beautify is ignoring the setting for number of spaces on tabs +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083708360;start=0 -_ preproc substitutions.. -_ perhaps also get rid of nf/nfs, replacing it with string() ? -_ since the two-way conversion isn't always obvious -_ could make String(), int(), etc work by substituting them for -_ actual functions like toString() toInt() etc.. would work on arrays too -_ this would make the conversion more general -_ then maybe bring back ints() and doubles() ? +_ fix code for changing the sketch folder +_ 'new sketch' goes into the wrong folder +_ but saving and all that works properly +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083184449;start=0 -_ present mode makes keyPressed() repeat like nutty -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076425568 -_ get jikes 1.19 in there -_ this may not be able to generate 1.1 code +farming things out - if i could get p5 sf cvs up and working.. +_ someone to fix the 'find' bug -_ shift-backspace doesn't work in the editor -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1074192817;start=0 +more bugs to note +_ quicktime full uninstall/reinstall +_ code folder problems +_ find bug +_ hm, lots of other things that are on here.. -eclipse when running in debug mode: -ps -w -w -axo command | grep java -/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Home/bin/java -Djava.security.policy=java.policy.applet -classpath /Users/fry/Desktop/eclipse/workspace/javatest -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp transport=dt_socket,suspend=y,address=localhost:10506 sun.applet.AppletViewer +_ history files getting mangled +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1080346981 -_ StrList.subset(3); subsets starting at 3 -_ other matlab style commands +_ find() hangs on replacing "println" with "//println" +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076740626 +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1080213711 +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083093129 -_ die should know not to die when run as an application in p5 env because -_ the leecherror will be non-null (otherwise external, so die is ok) +_ adding files to data folder that are already in the data folder +_ makes the file zero, because of internal error +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076358515 -_ commands for askSerialPort() and askVideoInput? -_ like the askFile() command, prompt for the port to use -_ or just store it for later use -_ fileBrowser / serialPortBrowser / cameraBrowser or videoBrowser ? +_ add mkdmg script to macosx build process +_ could significantly speed things up -_ once compiling again, change PdeException -_ rename the class for a minute to find all references -_ then add references to the *file index* in question -_ this could be a headache since preproc doesn't know :( +_ run java mode when large 'data' folder is in use +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081542378 -_ option for "ok to overwrite html" -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1074240197;start=0 +_ launcher.cpp broke serial.. see versions in processing.notcvs -_ fix command keys for menus (broken since switching to swing) +_ update readme with notes from bboard about "built with processing" -_ PdeRuntime isn't properly handling messages from all classes in project -_ get things up and running, and see how it looks -_ fix make.sh and dist.sh for all platforms -_ changes to the export setup and making the bagel jar files -_ change of location for examples.zip and where they extract to -_ re-implement history (disabled for 68) - -_ history: "archive this version" -_ makes a numbered archive of the current sketch as a zip file -_ checks to see if there are other versions in the current folder -_ or maybe just increments the numbers at the end of the sketch name - -VOLUNTEER -_ figure out how eclipse or other IDEs handle running applets -_ but retaining a connection to them without upsetting virus apps -_ fix export to recursively copy contents of build folder -_ currently only copies top-level classes and contents of data folder -_ sync files into lib/build rather than copying everything new -_ check file existence and modification dates to know which to copy -_ and which files to delete if some have been removed -_ this also means that the file copying has to set mod dates (JDK13) -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1074789934 - -when creating a new file, suggest untitled.pde -they can put a .java or .pde extension on the file -if no extension is found, add the .pde extension -if the file has a .pde extension, then it will be run through the preproc. - -_ option for having multiple files open -X need ui for tabs from casey -X tabbed interface for multiple files -X http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1052077800;start=0 -_ "new text java/pde file" menu item +_ include 'netscape.javascript' as a library to be added +_ but don't export it.. ugh.. SKETCHBOOK @@ -130,13 +65,14 @@ _ use System.getProperty("user.home"); _ remove the 'default' for sketchbook _ bring this up on bboard and get votes _ win2k: my documents, macosx: ~/Documents, linux: ~/sketchbook -_ fix code for changing the sketch folder o don't allow editing of multiple files in this release o but support multiple java/pde files through the 'add file' option _ open mode _ on application open, override 'open' mode _ and just open an empty sketch in the sketchbook folder _ when 'skNew' is cancelled in 'open' mode, nullpointerex at the top +_ warn about writing non-1.1 code. +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1079867179;start=0 EXAMPLES @@ -157,46 +93,9 @@ _ there should be other places that they work.. _ could even copy the dll to the p5 folder from the code folder _ simong: request a preloop and postloop call for libraries _ this would avoid having to patch BApplet - - -BAGEL _ libraries: static and non-static init for libs _ final stop() for static shutdown of lib _ but also potential stop() for individual items -_ some way to properly quit sketch when stopped -_ if people have other threads they've spawned, impossible to stop -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1067383998 -_ rewrite bagel code.. -_ for this release, because it will break things along with the lib stuff -_ switch to PImage, PApplet, etc -_ update() mode needs to be hacked in -_ separating of BGraphics and BApplet -_ change copyrights on the files again (to match ?) -_ proper lineweight -_ camera clipping -_ put screenshots into their sketch folder -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1046185738;start=0 -_ add a method BApplet.setPath() or something like that -_ add color(gray) and color(gray, alpha) -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1074180764 - - -IMAGE -_ BImage.smooth() ? -_ make grayscale image in p5 -_ could be used in conjunction with alpha() to properly set alpha values -void toGrayscale() { - int col,lum; - for(int i=0; i>16&0xff)+151*(col>>8&0xff)+28*(col&0xff))>>8; - pixels[i]=lum<<16 | lum<<8 | lum; - } -} BUGS / PDE @@ -205,119 +104,38 @@ _ an OutOfMemoryError ensues _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1067717095 _ jikes errors have no newlines because it's a buffered reader _ and the newlines are removed when read -_ mouse wheel not working properly, need to dynamically load 1.4 code -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1065826758;start=0 _ preproc bug: text(String.valueOf(i+1), left + i*20, top); _ unexpected token "String" -BUGS / Bagel -_ doesn't work when outside a function: -_ color bg_color = color(255,0,0); -_ rect is not getting it's stroke color set -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073582391;start=0 -_ alpha of zero still draws boogers on screen -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073329613;start=0 -_ new sphere code from toxi -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1067005325 -_ colorMode broken for red() green() etc -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1068664455 -_ z values not set properly on ellipses? -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1068752615 -_ ellipses are just plain ugly -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073409011;start=0 - - BUGS / Windows _ p5's exe prolly has trouble when PATH has quotes (or spaces?) _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1068388889 _ CLASSPATH figured out what to do with quotes, but not PATH - - -BUGS / Linux -_ doesn't seem interested in quitting properly (?) - - -BUGS / Mac OS X -_ also a strange box showing up in the corner -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073111031 - - -NETWORK -_ don't send unicode data -_ when you stop the client, it freezes -_ until you quit the processing running the server -_ (the server starts and stops fine) -_ add constants for building NET, move stuff around in bagel dir -_ some method for just downloading the entire contents of a url -_ add udp support - - -VIDEO -_ selecting input source (wintv board and quickcam installed.. problem) -_ including qtjava in path when in java mode (oops) -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1069724180;start=0 -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073523928;start=0 -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076679293;start=0 -_ beginVideo not colored -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1069342913;start=0 -_ video commands not color coded -_ things will freeze if winvdig not installed -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1065185464 -_ quicktime 6.4 update breaks p5 on the mac? -_ http://docs.info.apple.com/article.html?artnum=93414&sessionID=anonymous%7C26893096&kbhost=kbase.info.apple.com%3a80%2f -_ "Type quicktime.std.stdQTConstants was not found" -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1066358763 -_ http://docs.info.apple.com/article.html?artnum=120255 -_ split classes to BVideo and BMovie ? -_ video hanging without a camera installed -_ just locks up after running examples, then does the 'can't delete' thing -_ http://processing.org/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 -_ make BVideo subclass BImage -_ make sure the high bits are getting set as opaque -_ quicktime exporter or image sequence export -_ fairly quick--just use experimental code from dbn -_ this hangs frequently on the mac (prolly a sync issue) -_ karsten's stuff has same problem -_ but the roger's video tracking does not -void videoEvent() -{ - for(int i=0; i> 16 & 0xFF) > threshold) { - blackwhite.pixels[i] = #FFFFFF; - } else { - blackwhite.pixels[i] = #000000; - } - } -} - _ problems running external vm/vm is hanging _ seems to be happening because of virus scanning software (norton) _ may need to launch the applet (using 'start') _ and talk over a socket instead _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1067867520;start=0 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1067643186 +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1078714442;start=0 +_ something in that one about mouse position halting or not + + +BUGS / Linux +_ doesn't seem interested in quitting properly (?) CONSOLE _ error messages run off the edge and go invisible _ actually this is just for the editor status box _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1074894329 -_ set max frame rate at 60 fps? avoid the full-on spew to the console -_ console runs really really slow with a lot of println() calls -_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1064182823 _ console -> should be using JEditTextArea not TextPane _ make new TextAreaDefaults class for the console _ figure out how to color lines for errors and non (since not syntax) _ set decent fonts (probably same as editor above), looks bad on mac - MEDIUM _ jikes errors are missing newline/linefeed ? _ using run-expert.bat on 62 causes NullPointerException weirdness (?) @@ -328,8 +146,6 @@ _ sudo find . -name ".DS_Store" -depth -exec rm {} \; _ change run.bat, run-expert.bat to use 128m _ ability to include other .java and .pde code from sketchbook folder _ 'add files' for .java or .pde pulls into the folder -_ light(x, y, z, c1, c2, c3, TYPE) -_ also BLight with same constructor, and on() and off() fxn _ better 1.3/1.4 support.. properly detect vm _ use when deciding which classes to import _ better support for running locally @@ -342,29 +158,26 @@ _ multi-line errors a mess in jikes _ maybe a dropdown list thing, with the first just shown? _ processing.exe: problem if expert version is run, and no java installed _ call the person a genius and tell them to install java -_ update illustrator code to use bagel api -_ even if not actually working properly.. just in naming of things -_ new networking client from simong -_ simong lighting code application export -dh b _ ability to export 'applications' (not just applets) -dh b _ lock feature for present mode (part of export to application?) -dh b _ application can still do serial (qt, other stuff?) -dh b _ applet runs in browser, though applet on cbagel is everything.. -dh b _ include main class info for executable jar file with jdk > 1.2 -dh b _ not difficult to do, just some tweaking once applet export works -dh b _ wrapper that invokes the applet using a copy of the jre -dh b _ main() method needs to set layout manager if jexegen is to be used -dh b _ (msft vm defaults to null layout manager) -dh b _ also make sure pack() is happening -dh b _ add manifest.mf to exported applets so that applications will work -dh b _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1045983103;start=0 -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" -bf b _ main sticking point will be serial/qtjava in exports +_ ability to export 'applications' (not just applets) +_ lock feature for present mode (part of export to application?) +_ application can still do serial (qt, other stuff?) +_ applet runs in browser, though applet on cbagel is everything.. +_ include main class info for executable jar file with jdk > 1.2 +_ not difficult to do, just some tweaking once applet export works +_ wrapper that invokes the applet using a copy of the jre +_ main() method needs to set layout manager if jexegen is to be used +_ (msft vm defaults to null layout manager) +_ also make sure pack() is happening +_ add manifest.mf to exported applets so that applications will work +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1045983103;start=0 +_ BApplet.main(new String[] { "flashcards3" }); +_ this will need to detect whether the user has their own main() +_ or even BApplet.main(new String[] { getClass().getName() }); +_ META-INF/MANIFEST.MF contains just "Main-Class: ClassName" +_ main sticking point will be serial/qtjava in exports history @@ -376,6 +189,8 @@ _ checkbox on menu for 'record history' ? _ history converter option? _ only first 20 entries visible? _ get code from revisionist in there +_ zlib file becoming corrupt (not flushed after close?) +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1080346981;start=0 licensing @@ -395,39 +210,6 @@ VOLUNTEER TASKS _ need curveTangent() code -NEW GRAPHICS -_ stroke not set on flat_rect -_ when drawing fonts w/ sami's code, left edge has problem -_ 8-bit (alpha) textures not blending -_ near-plane clipping currently disabled for triangles, enabled for lines -_ (but culling offscreen triangles works.. but may have been -_ commented out by carlos) -_ sphere code needs only front face polygon -_ all triangles must be counter-clockwise (front-facing) - - -.................................................................. - - -KEY - -bf ben fry (http://acg.media.mit.edu/people/fry) -cr casey reas (http://www.groupc.net) -ca carlos andres rocha -hb hernando barragan (http://www.people.interaction-ivrea.it/b.barragan) -dh dan haskovec -dm dan mosedale -ks karsten schmitt (http://www.toxi.co.uk) -ap amit pitaru (http://www.pitaru.net) - - -_ developers who may be interested in p5 helping: -sdlpci@cis.rit.edu -gerritt@cloudyreason.com -kyle@kylerode.com -leonhard@rathner.com - - .................................................................. @@ -446,6 +228,7 @@ _ remove .DS_Store boogers, especially from win/linux distributions _ NullPointerException when alt is pressed _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1061802316;start=0 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077058974 +_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081751451;start=0 _ 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 @@ -454,9 +237,6 @@ _ http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display; _ include a note that 'applet' folder will get emptied/rewritten _ or rename the old applet folder to something else? _ don't allow apostrophe (i.e. casey's_cells) when naming sketch! -_ screenGrab() at the end of a draw mode program is problematic -_ app might exit before the file has finished writing to disk -_ need to block other activity inside screenGrab until finished _ non-ascii filenames seem to be causing trouble _ maybe provide a message stating this when p5 is run? _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1062794781;start=0 @@ -466,16 +246,10 @@ X when exporting applet, line numbers will be off.. _ when not exporting with new preproc code, imports all on same line _ make preproc keep track of how many lines were added _ fix the problem causing all the "couldn't delete" messages -X when exporting applet, line numbers will be off.. -_ when not exporting with new preproc code, imports all on same line -_ make preproc keep track of how many lines were added _ class naming from dan _ If you name a class the same name as the sketch project, _ you get an error about contained classes with duplicate names _ when you try to export for web. -_ 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 _ if (loop == false) and (draw == false) then provide an error _ so user knows that one or the other is needed _ make PdeEditorStatus modal @@ -493,135 +267,6 @@ _ drag & drop implementation to add files to sketch _ do a better job of maintaining cursor during beautify -thesis / acg -_ make bagel more usable as standalone -_ breakout BGraphics (have its own BImage) -_ breakout BApplet into BComponent ? (fix out-of-bounds mouse) -_ possible use of BUtils ? -_ write documentation on general use -_ along with how to download from sourceforge (anonpass is blank) -_ needs to be used as a component, without applet -_ but retain functionality, ie. image i/o -_ exports pixels or a BImage or does MemoryImageSource itself -_ move math functions into utility library associated -_ with bagel, because those will be useful on other bagel platforms -_ pApplet will call BagelMath.whatever, so still looks like cos() -_ #ifdef to remove client and server code as well -_ break out BSerial as separate object like BVideo -_ include rxtx and the rest of that setup in subfolder -_ BSerial.flush and BSerial.available in object -_ need to resolve issues between rendering screen/file -_ illustrator-based rendering needs to work for ars projects -_ screen may be 400x400 pixels, but file be 36x36" -_ opengl export / rendering mode -_ currently implemented, but somewhat broken -_ finish this once all the line code is done -_ make possible to use buzz.pl to create versions w/ stuff removed -_ build gl4java for java 1.4 -_ read table/csv formatted data into a matrix -_ pseudo-database format version of this that stores indexes to file -_ rather than loading the whole thing at once -_ more advanced splitting of files into rows/cols uses another class -_ other class also has concept for random access of lines -_ by storing the line positions, can access without loading all -_ into memory because some files will be too large -_ illustrator export / rendering mode -_ also postscript or pdf export? -_ version of Illustrator.java that uses bagel api -_ sorting of polygons/lines on simple painters algorithm -_ better lighting model to show darkness at various depths -_ maybe just ultra-high res bitmaps from gl -_ version of BApplet that replaces g. with ai. or pdf. -_ history.. add my diffs sketch -_ could just include a compiled version of the diff app, ala jikes - - - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// - -GRAPHICS LIBRARY - -A hybrid of OpenGL (3D Graphics) and some aspects of Postscript (Fill, Stroke) -The graphics library is called Bagel, which is an internal name. - - -BAGEL / Rendering - - b _ picking - b _ what is the API for picking? - b _ ability to write data other than image into the buffer - b _ user can introduce new kinds of buffers at will (!) - b _ lists of names of objects, or the 'line number' buffer - b _ but how to determine *where* on object the hit occurs - - _ add option to sort triangles back to front so alpha works - _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076660476;start=0 - -ca b _ lines -ca b X rewrite line and stroke code, it's a buggy mess -ca b X lines become 2 pixels thick after a 3D transform -ca b X better handling of single-pixel special case -ca b _ flat_line_retribution is a hack, can go away -ca b _ setting stroke width on circle makes odd patterns -ca b X line endcaps and line joins. strokeMode() -ca b _ lower priority, but at least leave room -ca b ? make sure line() commands don't try to have a fill -ca b _ box is not opaque -ca b X problem is that lines are drawn second -ca b X one pixel lines have no z value.. argh -ca b X bug re: 3d depth sorting on lines -ca b _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1043894019;start=0 -ca b _ -http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042004618 -ca b _ translate(58, 48, 0); -ca b _ rotateY(0.5); -ca b _ box(40); - - b _ stroke is still broken - b _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077013848;start=0 - -ca b X clipping objects (clipping planes?) -ca b _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1058491568;start=0 -ca b _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1052313604;start=0 -ca b X things are flying into the camera and halting apps -ca b _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042699742 -ca b X NullPointerException apparently when things way offscreen -ca b _ i.e. glyphrot with scale set to 4 -ca b _ or at least that things get ridiculously slow -ca b _ clipping issues here.. but also something in scan converter -ca b X not clipping areas from offscreen -ca b _ huge geometry slows things way down - - - -BAGEL / Details - - 1 _ why aren't cursors working on the mac? - 1 _ mousePressed, keyPressed, others.. queue them all - 1 _ queue multiple times - 1 _ toxi ellipses don't adapt properly with transformations - 1 _ what is the stroked version of a sphere? a circle? - 1 _ non-homogenous coloring for curve vertices - 1 _ properly interpolate - 1 _ too many push() will silently stop the applet inside a loop - 1 _ test winding polygons in different directions - 1 _ test lighting to see how it compares with gl - 1 _ better lockout inside beginShape() to keep other things from happening - 1 _ is quad strip broken or not behaving as expected? - 1 _ may be correct, it worked for nik - 1 _ inside draw() mode, delay() does nothing - 1 _ delay might be a good way to signal drawing to the screen/updating - - -BAGEL / Fonts - - 1 _ sbit font support - 1 _ both reading and building sbit fonts - * _ mac -> vlw (or sbit?) font converter - * _ need to also read the fond for metrics - //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// @@ -679,6 +324,7 @@ PDE / Details 1 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1043667859 1 _ scroll bar has some painting weirdness with jedit textarea 1 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042351684 + 1 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083787569 1 _ rename doesn't set focus to renamer area 1 _ under windows, immediately typing after rename doesn't select it 1 _ SystemColor doesn't differentiate between menu background and top @@ -730,6 +376,10 @@ PDE / Details PDE / Font Builder 1 _ close/hide window on 'ESC' + 1 _ loading is very slow on the first time (getting all font names) + 1 _ show a progress/status bar while it's happening + 1 _ font builder chopping off parts of letters + 1 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076358432;start=0 PDE / Features