diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index c5dc98d02..50230531b 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -46,9 +46,9 @@ import processing.core.*; public class Base { // Added accessors for 0218 because the UpdateCheck class was not properly // updating the values, due to javac inlining the static final values. - static private final int REVISION = 223; + static private final int REVISION = 224; /** This might be replaced by main() if there's a lib/version.txt file. */ - static private String VERSION_NAME = "0223"; //$NON-NLS-1$ + static private String VERSION_NAME = "0224"; //$NON-NLS-1$ /** Set true if this a proper release rather than a numbered revision. */ // static private boolean RELEASE = false; @@ -1592,7 +1592,7 @@ public class Base { } - // Because the Oracle JDK is 64-bit only, we lose this ability, feature, + // Because the Oracle JDK is 64-bit only, we lose this ability, feature, // edge case, headache. // /** // * Return whether sketches will run as 32- or 64-bits. On Linux and Windows, @@ -1605,10 +1605,10 @@ public class Base { // } // return nativeBits; // } - - /** - * Return whether sketches will run as 32- or 64-bits based - * on the JVM that's in use. + + /** + * Return whether sketches will run as 32- or 64-bits based + * on the JVM that's in use. */ static public int getNativeBits() { return nativeBits; diff --git a/build/build.xml b/build/build.xml index f53bda25a..736f95f26 100755 --- a/build/build.xml +++ b/build/build.xml @@ -1035,8 +1035,23 @@ ${windows.dist} ======================================================= + + + + + + + + + diff --git a/build/shared/lib/defaults.txt b/build/shared/lib/defaults.txt index 8ac212d59..5e0039b4d 100644 --- a/build/shared/lib/defaults.txt +++ b/build/shared/lib/defaults.txt @@ -26,6 +26,8 @@ # You'll have problems running Processing if you incorrectly # modify lines in this file. It will probably not start at all. +# AGAIN, DO NOT ALTER THIS FILE! I'M ONLY YELLING BECAUSE I LOVE YOU! + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -265,9 +267,9 @@ editor.token.invalid.style = #666666,bold # which platforms to export by default -export.application.platform.windows = true -export.application.platform.macosx = true -export.application.platform.linux = true +#export.application.platform.windows = true +#export.application.platform.macosx = true +#export.application.platform.linux = true # whether or not to export as full screen (present) mode export.application.fullscreen = false @@ -275,8 +277,8 @@ export.application.fullscreen = false # whether to show the stop button when exporting to application export.application.stop = true -# false will place all exported files into a single .jar -#export.applet.separate_jar_files = false +# embed Java by default for lower likelihood of problems +export.application.embed_java = true # set to false to no longer delete applet or application folders before export export.delete_target_folder = true diff --git a/build/shared/revisions.txt b/build/shared/revisions.txt index 474746d77..1bb92c515 100644 --- a/build/shared/revisions.txt +++ b/build/shared/revisions.txt @@ -1,4 +1,10 @@ -PROCESSING 2.1 beta 2 (REV 0223) - 2X October 2013 +PROCESSING 2.1 (REV 0223) - 27 October 2013 + +There have been major changes since 2.0.3, most of them are outlined in +the release notes for 2.1 beta 1 (look down a few dozen lines). + +This release includes a few updates to fix problems introduced in the beta +release, as well as additional general bug fixes, especially for OpenGL. + Added an option to not embed the Java runtime into an exported application. This saves you the 100 MB footprint, but requires your users to install @@ -31,6 +37,64 @@ PROCESSING 2.1 beta 2 (REV 0223) - 2X October 2013 object), we've added code so that println() works as before. But we can't do the same for arrays of objects, such as String. ++ The preference for font smoothing (anti-aliasing) in the editor has been + reset in this release. Fonts are unusably gross on OS X (and Linux) + without smoothing and Oracle's version of Java (now in use with 2.1), + and many longtime users have anti-aliasing turned off. You can still + turn off smoothing in the Preferences window, but the results may be poor. + https://github.com/processing/processing/issues/2164 + https://github.com/processing/processing/issues/2160 + + +[ bug fixes ] + ++ Fix dataPath() problem with OS X (was breaking Movie on export) + ++ Command line processing-java was broken in 2.1 beta 1 on OS X + https://github.com/processing/processing/issues/2159 + ++ Fix a situation where processing-java would return 0 instead of 1 on errors + https://github.com/processing/processing/issues/1798#issuecomment-26711847 + ++ Alpha values from the pixels array were coming back as 0 + https://github.com/processing/processing/issues/2030 + ++ Additional UI font tweaks due to decreased legibility with Oracle Java + https://github.com/processing/processing/issues/2135 + + +[ OpenGL updates ] + ++ Using sketchQuality() does not work properly with P3D, OPENGL, P2D + https://github.com/processing/processing/pull/2157 + ++ Fix crashes when the sketch window is resized + https://github.com/processing/processing/issues/1880 + https://github.com/processing/processing/pull/2156 + ++ scale() wasn't affecting stroke weight in P3D + https://github.com/processing/processing/issues/2162 + ++ Add set(boolean) to PShader + https://github.com/processing/processing/issues/1991 + https://github.com/processing/processing/pull/1993 + ++ Add PMatrix.preApply(PMatrix) + https://github.com/processing/processing/pull/2146 + https://github.com/processing/processing/issues/2145 + ++ Updated to another version of JOGL (jogl-2.1-b1115, gluegen-2.1-b735) + for OS X 10.9 support. + ++ Add warning when no uv texture coordinates are supplied + https://github.com/processing/processing/issues/2034 + ++ Flicker issues when resizing P2D/P3D/OPENGL + https://github.com/processing/processing/issues/15 + ++ Additional fix for occasional flash/flicker with drawing complex scenes + https://github.com/processing/processing/commit/cca2f08a24ef892c494f5a75aa0e4b01de7e5d8a + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/core/done.txt b/core/done.txt index ff99cce42..61f8ab853 100644 --- a/core/done.txt +++ b/core/done.txt @@ -1,3 +1,33 @@ +0223 core (2.1) +X fix dataPath() problem with OS X (was breaking Movie) +X alpha values from the pixels array coming back as 0 +X only tested on background(), not image() +X https://github.com/processing/processing/issues/2030 + +opengl +X Using sketchQuality() does not work properly with P3D, OPENGL, P2D +X https://github.com/processing/processing/pull/2157 +X Fix crashes when the sketch window is resized +X https://github.com/processing/processing/issues/1880 +X https://github.com/processing/processing/pull/2156 +X scale() wasn't affecting stroke weight in P3D +X https://github.com/processing/processing/issues/2162 +X add set(boolean) to PShader +X https://github.com/processing/processing/issues/1991 +X https://github.com/processing/processing/pull/1993 +X add PMatrix.preApply(PMatrix) +X https://github.com/processing/processing/pull/2146 +X https://github.com/processing/processing/issues/2145 +X updated to another version of JOGL +X updated to jogl-2.1-b1115, gluegen-2.1-b735 for OSX 10.9 support +X Add warning when no uv texture coordinates are supplied +X https://github.com/processing/processing/issues/2034 +X threading/flicker issues when resizing P2D/P3D/OPENGL +X https://github.com/processing/processing/issues/15 +X additional flicker avoidance +X https://github.com/processing/processing/commit/cca2f08a24ef892c494f5a75aa0e4b01de7e5d8a + + 0222 core (2.1b1) X background color for present mode has no effect X https://github.com/processing/processing/issues/2071 diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 9a63631bd..bbde1fcef 100755 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -7844,7 +7844,7 @@ public class PApplet extends Applet * This is only available with applications, not applets or Android. * On Windows and Linux, this is simply the data folder, which is located * in the same directory as the EXE file and lib folders. On Mac OS X, this - * is a path to the data folder buried inside Contents/Resources/Java. + * is a path to the data folder buried inside Contents/Java. * For the latter point, that also means that the data folder should not be * considered writable. Use sketchPath() for now, or inputPath() and * outputPath() once they're available in the 2.0 release. @@ -7871,11 +7871,12 @@ public class PApplet extends Applet String jarPath = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); - if (jarPath.contains("Contents/Resources/Java/")) { + if (jarPath.contains("Contents/Java/")) { // The path will be URL encoded (%20 for spaces) coming from above // http://code.google.com/p/processing/issues/detail?id=1073 File containingFolder = new File(urlDecode(jarPath)).getParentFile(); File dataFolder = new File(containingFolder, "data"); + System.out.println(dataFolder); return new File(dataFolder, where); } // Windows, Linux, or when not using a Mac OS X .app file @@ -7885,7 +7886,7 @@ public class PApplet extends Applet /** * On Windows and Linux, this is simply the data folder. On Mac OS X, this is - * the path to the data folder buried inside Contents/Resources/Java + * the path to the data folder buried inside Contents/Java */ // public File inputFile(String where) { // } diff --git a/core/src/processing/core/PGraphicsJava2D.java b/core/src/processing/core/PGraphicsJava2D.java index 288642bc4..a5d899076 100644 --- a/core/src/processing/core/PGraphicsJava2D.java +++ b/core/src/processing/core/PGraphicsJava2D.java @@ -376,7 +376,7 @@ public class PGraphicsJava2D extends PGraphics { PApplet.debug("PGraphicsJava2D.redraw() top of outer do { } block"); do { PApplet.debug("PGraphicsJava2D.redraw() top of inner do { } block"); - System.out.println("strategy is " + strategy); + PApplet.debug("strategy is " + strategy); Graphics bsg = strategy.getDrawGraphics(); if (vimage != null) { bsg.drawImage(vimage, 0, 0, null); @@ -1259,7 +1259,7 @@ public class PGraphicsJava2D extends PGraphics { if (cash == null) { //System.out.println("making new image cache"); - cash = new ImageCache(who); + cash = new ImageCache(); //who); setCache(who, cash); who.updatePixels(); // mark the whole thing for update who.modified = true; @@ -1310,17 +1310,17 @@ public class PGraphicsJava2D extends PGraphics { class ImageCache { boolean tinted; int tintedColor; - int tintedPixels[]; // one row of tinted pixels + int[] tintedTemp; // one row of tinted pixels BufferedImage image; - public ImageCache(PImage source) { -// this.source = source; - // even if RGB, set the image type to ARGB, because the - // image may have an alpha value for its tint(). -// int type = BufferedImage.TYPE_INT_ARGB; - //System.out.println("making new buffered image"); -// image = new BufferedImage(source.width, source.height, type); - } +// public ImageCache(PImage source) { +//// this.source = source; +// // even if RGB, set the image type to ARGB, because the +// // image may have an alpha value for its tint(). +//// int type = BufferedImage.TYPE_INT_ARGB; +// //System.out.println("making new buffered image"); +//// image = new BufferedImage(source.width, source.height, type); +// } /** * Update the pixels of the cache image. Already determined that the tint @@ -1328,29 +1328,41 @@ public class PGraphicsJava2D extends PGraphics { * with the update without further checks. */ public void update(PImage source, boolean tint, int tintColor) { - int bufferType = BufferedImage.TYPE_INT_ARGB; + //int bufferType = BufferedImage.TYPE_INT_ARGB; + int targetType = ARGB; boolean opaque = (tintColor & 0xFF000000) == 0xFF000000; if (source.format == RGB) { if (!tint || (tint && opaque)) { - bufferType = BufferedImage.TYPE_INT_RGB; + //bufferType = BufferedImage.TYPE_INT_RGB; + targetType = RGB; } } - boolean wrongType = (image != null) && (image.getType() != bufferType); - if ((image == null) || wrongType) { - image = new BufferedImage(source.width, source.height, bufferType); +// boolean wrongType = (image != null) && (image.getType() != bufferType); +// if ((image == null) || wrongType) { +// image = new BufferedImage(source.width, source.height, bufferType); +// } + // Must always use an ARGB image, otherwise will write zeros + // in the alpha channel when drawn to the screen. + // https://github.com/processing/processing/issues/2030 + if (image == null) { + image = new BufferedImage(source.width, source.height, + BufferedImage.TYPE_INT_ARGB); } WritableRaster wr = image.getRaster(); if (tint) { - if (tintedPixels == null || tintedPixels.length != source.width) { - tintedPixels = new int[source.width]; + if (tintedTemp == null || tintedTemp.length != source.width) { + tintedTemp = new int[source.width]; } int a2 = (tintColor >> 24) & 0xff; +// System.out.println("tint color is " + a2); +// System.out.println("source.pixels[0] alpha is " + (source.pixels[0] >>> 24)); int r2 = (tintColor >> 16) & 0xff; int g2 = (tintColor >> 8) & 0xff; int b2 = (tintColor) & 0xff; - if (bufferType == BufferedImage.TYPE_INT_RGB) { + //if (bufferType == BufferedImage.TYPE_INT_RGB) { + if (targetType == RGB) { // The target image is opaque, meaning that the source image has no // alpha (is not ARGB), and the tint has no alpha. int index = 0; @@ -1361,12 +1373,15 @@ public class PGraphicsJava2D extends PGraphics { int g1 = (argb1 >> 8) & 0xff; int b1 = (argb1) & 0xff; - tintedPixels[x] = //0xFF000000 | + // Prior to 2.1, the alpha channel was commented out here, + // but can't remember why (just thought unnecessary b/c of RGB?) + // https://github.com/processing/processing/issues/2030 + tintedTemp[x] = 0xFF000000 | (((r2 * r1) & 0xff00) << 8) | ((g2 * g1) & 0xff00) | (((b2 * b1) & 0xff00) >> 8); } - wr.setDataElements(0, y, source.width, 1, tintedPixels); + wr.setDataElements(0, y, source.width, 1, tintedTemp); } // could this be any slower? // float[] scales = { tintR, tintG, tintB }; @@ -1374,16 +1389,17 @@ public class PGraphicsJava2D extends PGraphics { // RescaleOp op = new RescaleOp(scales, offsets, null); // op.filter(image, image); - } else if (bufferType == BufferedImage.TYPE_INT_ARGB) { + //} else if (bufferType == BufferedImage.TYPE_INT_ARGB) { + } else if (targetType == ARGB) { if (source.format == RGB && (tintColor & 0xffffff) == 0xffffff) { int hi = tintColor & 0xff000000; int index = 0; for (int y = 0; y < source.height; y++) { for (int x = 0; x < source.width; x++) { - tintedPixels[x] = hi | (source.pixels[index++] & 0xFFFFFF); + tintedTemp[x] = hi | (source.pixels[index++] & 0xFFFFFF); } - wr.setDataElements(0, y, source.width, 1, tintedPixels); + wr.setDataElements(0, y, source.width, 1, tintedTemp); } } else { int index = 0; @@ -1395,7 +1411,7 @@ public class PGraphicsJava2D extends PGraphics { int r1 = (argb1 >> 16) & 0xff; int g1 = (argb1 >> 8) & 0xff; int b1 = (argb1) & 0xff; - tintedPixels[x] = alpha | + tintedTemp[x] = alpha | (((r2 * r1) & 0xff00) << 8) | ((g2 * g1) & 0xff00) | (((b2 * b1) & 0xff00) >> 8); @@ -1407,7 +1423,7 @@ public class PGraphicsJava2D extends PGraphics { int r1 = (argb1 >> 16) & 0xff; int g1 = (argb1 >> 8) & 0xff; int b1 = (argb1) & 0xff; - tintedPixels[x] = + tintedTemp[x] = (((a2 * a1) & 0xff00) << 16) | (((r2 * r1) & 0xff00) << 8) | ((g2 * g1) & 0xff00) | @@ -1417,11 +1433,11 @@ public class PGraphicsJava2D extends PGraphics { int lower = tintColor & 0xFFFFFF; for (int x = 0; x < source.width; x++) { int a1 = source.pixels[index++]; - tintedPixels[x] = + tintedTemp[x] = (((a2 * a1) & 0xff00) << 16) | lower; } } - wr.setDataElements(0, y, source.width, 1, tintedPixels); + wr.setDataElements(0, y, source.width, 1, tintedTemp); } } // Not sure why ARGB images take the scales in this order... @@ -1430,7 +1446,9 @@ public class PGraphicsJava2D extends PGraphics { // RescaleOp op = new RescaleOp(scales, offsets, null); // op.filter(image, image); } - } else { + } else { // !tint + // If no tint, just shove the pixels on in there verbatim +// System.out.println("!tint source.pixels[0] alpha is " + (source.pixels[0] >>> 24)); wr.setDataElements(0, 0, source.width, source.height, source.pixels); } this.tinted = tint; @@ -2336,7 +2354,15 @@ public class PGraphicsJava2D extends PGraphics { pixels = new int[width * height]; } - getRaster().getDataElements(0, 0, width, height, pixels); + WritableRaster raster = getRaster(); + raster.getDataElements(0, 0, width, height, pixels); + if (raster.getNumBands() == 3) { + // Java won't set the high bits when RGB, returns 0 for alpha + // https://github.com/processing/processing/issues/2030 + for (int i = 0; i < pixels.length; i++) { + pixels[i] = 0xff000000 | pixels[i]; + } + } //((BufferedImage) image).getRGB(0, 0, width, height, pixels, 0, width); // WritableRaster raster = ((BufferedImage) (useOffscreen && primarySurface ? offscreen : image)).getRaster(); // WritableRaster raster = image.getRaster(); @@ -2405,8 +2431,12 @@ public class PGraphicsJava2D extends PGraphics { if ((x < 0) || (y < 0) || (x >= width) || (y >= height)) return 0; //return ((BufferedImage) image).getRGB(x, y); // WritableRaster raster = ((BufferedImage) (useOffscreen && primarySurface ? offscreen : image)).getRaster(); -// WritableRaster raster = image.getRaster(); - getRaster().getDataElements(x, y, getset); + WritableRaster raster = getRaster(); + raster.getDataElements(x, y, getset); + if (raster.getNumBands() == 3) { + // https://github.com/processing/processing/issues/2030 + return getset[0] | 0xff000000; + } return getset[0]; } @@ -2432,6 +2462,10 @@ public class PGraphicsJava2D extends PGraphics { if (sourceWidth == target.width && sourceHeight == target.height) { raster.getDataElements(sourceX, sourceY, sourceWidth, sourceHeight, target.pixels); + // https://github.com/processing/processing/issues/2030 + if (raster.getNumBands() == 3) { + target.filter(OPAQUE); + } } else { // TODO optimize, incredibly inefficient to reallocate this much memory @@ -2442,7 +2476,15 @@ public class PGraphicsJava2D extends PGraphics { int sourceOffset = 0; int targetOffset = targetY*target.width + targetX; for (int y = 0; y < sourceHeight; y++) { - System.arraycopy(temp, sourceOffset, target.pixels, targetOffset, sourceWidth); + if (raster.getNumBands() == 3) { + for (int i = 0; i < sourceWidth; i++) { + // Need to set the high bits for this feller + // https://github.com/processing/processing/issues/2030 + target.pixels[targetOffset + i] = 0xFF000000 | temp[sourceOffset + i]; + } + } else { + System.arraycopy(temp, sourceOffset, target.pixels, targetOffset, sourceWidth); + } sourceOffset += sourceWidth; targetOffset += target.width; } diff --git a/core/src/processing/opengl/PGraphicsOpenGL.java b/core/src/processing/opengl/PGraphicsOpenGL.java index 3f175e207..f613fc583 100644 --- a/core/src/processing/opengl/PGraphicsOpenGL.java +++ b/core/src/processing/opengl/PGraphicsOpenGL.java @@ -2420,10 +2420,7 @@ public class PGraphicsOpenGL extends PGraphics { shader.setTexture(tex); } - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, glPolyIndex); - pgl.drawElements(PGL.TRIANGLES, icount, PGL.INDEX_TYPE, - ioffset * PGL.SIZEOF_INDEX); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, 0); + shader.draw(glPolyIndex, icount, ioffset); } shader.unbind(); @@ -2557,10 +2554,7 @@ public class PGraphicsOpenGL extends PGraphics { shader.setLineAttribute(glLineAttrib, 4, PGL.FLOAT, 0, 4 * voffset * PGL.SIZEOF_FLOAT); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, glLineIndex); - pgl.drawElements(PGL.TRIANGLES, icount, PGL.INDEX_TYPE, - ioffset * PGL.SIZEOF_INDEX); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, 0); + shader.draw(glLineIndex, icount, ioffset); } shader.unbind(); @@ -2661,10 +2655,7 @@ public class PGraphicsOpenGL extends PGraphics { shader.setPointAttribute(glPointAttrib, 2, PGL.FLOAT, 0, 2 * voffset * PGL.SIZEOF_FLOAT); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, glPointIndex); - pgl.drawElements(PGL.TRIANGLES, icount, PGL.INDEX_TYPE, - ioffset * PGL.SIZEOF_INDEX); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, 0); + shader.draw(glPointIndex, icount, ioffset); } shader.unbind(); diff --git a/core/src/processing/opengl/PShader.java b/core/src/processing/opengl/PShader.java index d7570c601..87c8e311b 100644 --- a/core/src/processing/opengl/PShader.java +++ b/core/src/processing/opengl/PShader.java @@ -579,6 +579,14 @@ public class PShader implements PConstants { } + protected void draw(int idxId, int count, int offset) { + pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, idxId); + pgl.drawElements(PGL.TRIANGLES, count, PGL.INDEX_TYPE, + offset * PGL.SIZEOF_INDEX); + pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, 0); + } + + /** * Returns the ID location of the attribute parameter given its name. * diff --git a/core/src/processing/opengl/PShapeOpenGL.java b/core/src/processing/opengl/PShapeOpenGL.java index 025795d87..704bbdea5 100644 --- a/core/src/processing/opengl/PShapeOpenGL.java +++ b/core/src/processing/opengl/PShapeOpenGL.java @@ -4681,10 +4681,7 @@ public class PShapeOpenGL extends PShape { shader.setTexture(tex); } - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, root.glPolyIndex); - pgl.drawElements(PGL.TRIANGLES, icount, PGL.INDEX_TYPE, - ioffset * PGL.SIZEOF_INDEX); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, 0); + shader.draw(root.glPolyIndex, icount, ioffset); } if (shader != null && shader.bound()) { @@ -4805,10 +4802,7 @@ public class PShapeOpenGL extends PShape { shader.setLineAttribute(root.glLineAttrib, 4, PGL.FLOAT, 0, 4 * voffset * PGL.SIZEOF_FLOAT); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, root.glLineIndex); - pgl.drawElements(PGL.TRIANGLES, icount, PGL.INDEX_TYPE, - ioffset * PGL.SIZEOF_INDEX); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, 0); + shader.draw(root.glLineIndex, icount, ioffset); } shader.unbind(); @@ -4905,10 +4899,7 @@ public class PShapeOpenGL extends PShape { shader.setPointAttribute(root.glPointAttrib, 2, PGL.FLOAT, 0, 2 * voffset * PGL.SIZEOF_FLOAT); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, root.glPointIndex); - pgl.drawElements(PGL.TRIANGLES, icount, PGL.INDEX_TYPE, - ioffset * PGL.SIZEOF_INDEX); - pgl.bindBuffer(PGL.ELEMENT_ARRAY_BUFFER, 0); + shader.draw(root.glPointIndex, icount, ioffset); } shader.unbind(); diff --git a/core/todo.txt b/core/todo.txt index e063310ca..92bb9933f 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -1,33 +1,13 @@ -0223 core +0224 core -opengl -X Using sketchQuality() does not work properly with P3D, OPENGL, P2D -X https://github.com/processing/processing/pull/2157 -X Fix crashes when the sketch window is resized -X https://github.com/processing/processing/issues/1880 -X https://github.com/processing/processing/pull/2156 -X scale() wasn't affecting stroke weight in P3D -X https://github.com/processing/processing/issues/2162 -X add set(boolean) to PShader -X https://github.com/processing/processing/issues/1991 -X https://github.com/processing/processing/pull/1993 -X add PMatrix.preApply(PMatrix) -X https://github.com/processing/processing/pull/2146 -X https://github.com/processing/processing/issues/2145 -X updated to another version of JOGL -X updated to jogl-2.1-b1115, gluegen-2.1-b735 for OSX 10.9 support -X Add warning when no uv texture coordinates are supplied -X https://github.com/processing/processing/issues/2034 -X threading/flicker issues when resizing P2D/P3D/OPENGL -X https://github.com/processing/processing/issues/15 high +_ zero alpha values still a problem with retina renderer +_ https://github.com/processing/processing/issues/2030 _ Sort out blending differences with P2D/P3D _ https://github.com/processing/processing/issues/1844 _ 'collector' class.. Dict that points to a list _ String as a key, int/float/string list as values -_ loadPixels doesn't set alpha value for pixels on Java2D -_ https://github.com/processing/processing/issues/2030 _ blendMode(ADD) is broken with default renderer _ https://github.com/processing/processing/issues/2012 _ may have been introduced between 2.0b7 and 2.0b8 diff --git a/done.txt b/done.txt index 704ed4861..73b48807d 100644 --- a/done.txt +++ b/done.txt @@ -1,3 +1,23 @@ +0223 pde (2.1) +X reset font smoothing for everyone to its default by changing the pref +X To reset everyone's default, replaced editor.antialias with editor.smooth +X for 2.1. Fonts are unusably gross on OS X (and Linux) w/o smoothing and +X the Oracle JVM, and many longtime users have anti-aliasing turned off. +X https://github.com/processing/processing/issues/2164 +X https://github.com/processing/processing/issues/2160 +X Add option to not embed the Java runtime (saves space, but breakage) +X return code needs to be 1 instead of 0 w/ Commander +X https://github.com/processing/processing/issues/1798#issuecomment-26711847 +X additional font tweaks due to decreased legibility with Oracle Java +X type looks a little feeble on OS X with non-retina machines +X https://github.com/processing/processing/issues/2135 +X should we increase the size of the mode dropdown? +X processing-java broken in 2.1 beta 1 on OS X +X https://github.com/processing/processing/issues/2159 +X need to use the embedded Java, different classpath, etc +X also might be time to put something in to check the version + + 0222 pde (2.1b1) X MovieMaker needs to be compiling as 1.6 X deal with null/missing folders for Tools and Modes diff --git a/experimental/.gitignore b/experimental/.gitignore deleted file mode 100644 index c5e82d745..000000000 --- a/experimental/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bin \ No newline at end of file diff --git a/java/libraries/serial/src/processing/serial/Serial.java b/java/libraries/serial/src/processing/serial/Serial.java index 130fc3129..52463e324 100644 --- a/java/libraries/serial/src/processing/serial/Serial.java +++ b/java/libraries/serial/src/processing/serial/Serial.java @@ -349,6 +349,16 @@ public class Serial implements SerialPortEventListener { } + public String readStringUntil(int inByte) { + byte temp[] = readBytesUntil(inByte); + if (temp == null) { + return null; + } else { + return new String(temp); + } + } + + public void serialEvent(SerialPortEvent event) { if (event.getEventType() == SerialPortEvent.RXCHAR) { int toRead; diff --git a/todo.txt b/todo.txt index 4955b854a..a725a2e26 100644 --- a/todo.txt +++ b/todo.txt @@ -1,25 +1,11 @@ -0223 pde -X reset font smoothing for everyone to its default by changing the pref -# To reset everyone's default, replaced editor.antialias with editor.smooth -# for 2.1. Fonts are unusably gross on OS X (and Linux) w/o smoothing and -# the Oracle JVM, and many longtime users have anti-aliasing turned off. -X https://github.com/processing/processing/issues/2164 -X https://github.com/processing/processing/issues/2160 -X Add option to not embed the Java runtime (saves space, but breakage) -X return code needs to be 1 instead of 0 w/ Commander -X https://github.com/processing/processing/issues/1798#issuecomment-26711847 -X additional font tweaks due to decreased legibility with Oracle Java -X type looks a little feeble on OS X with non-retina machines -X https://github.com/processing/processing/issues/2135 -X should we increase the size of the mode dropdown? -X processing-java broken in 2.1 beta 1 on OS X -X https://github.com/processing/processing/issues/2159 -X need to use the embedded Java, different classpath, etc -X also might be time to put something in to check the version +0224 pde medium _ should default to the local Java on Windows and Linux +_ have export apps default to the local JRE +_ Linux is probably using the system JRE if available +_ launch4j may be all set, but double-check _ try installing 10.7.3 on Mac Mini and check whether things run _ make sure it's only running on 64-bit machines? _ use platformDelete() to remove untitled sketches? @@ -33,6 +19,7 @@ _ changing modes brings the PDE back on the second screen _ the Find window (also the save windows) also have the same problem _ move old Google Code SVN back to processing.org _ then cull out the old branches/tags from the Github repo +_ and/or start bundling separate source downloads _ "String index out of range" error _ https://github.com/processing/processing/issues/1940 _ look through all isPopupTrigger() code