more release notes, bezier bug, other tweaks

This commit is contained in:
benfry
2008-10-11 20:14:24 +00:00
parent 13f7cf5d0f
commit a3fc674734
5 changed files with 136 additions and 79 deletions
+81 -36
View File
@@ -7,7 +7,7 @@ releases will be super crusty.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ABOUT REV 0149 - XX September 2008
ABOUT REV 0149 - 11 October 2008
Very large number of bug fixes and changes. All renderers that use
PGraphics will need to be updated for this release.
@@ -20,8 +20,81 @@ Also many updates to the examples in this release.
* RELEASES SINCE 0135 CONTAIN MANY SIGNIFICANT CHANGES, PLEASE READ *
* THE NOTES IN THIS FILE FOR ANY RELEASE THAT YOU'VE NOT YET USED. *
[ changes ]
+ Change how PGraphics objects are created for better consistency. Sadly,
this will require any libraries that subclass PGraphics to be rebuilt
for this release. (However, internally it's a great improvement.)
Renderer library authors please read the reference for PGraphics:
http://dev.processing.org/reference/core/javadoc/processing/core/PGraphics.html
For library developers, a gritty list of the internal function changes
can be found in processing/core/done.txt in the revision 0149 section under
the heading "PGraphics API changes". (It's not poetic, but it's real.)
+ We've decided that vector geometry is as important as image data, so the
Candy library has been removed, and replaced by a built-in loadShape()
method in PApplet, which returns a PShape object. (Candy lives on as the
PShapeSVG class, which is the PShape subclass created by loadShape.)
A shape() command has been added (like the image() command for images).
See the new SVG examples for more information. In the future, we'd like
to support other vector formats (such as OBJ) with loadShape(), or
provide a means for libraries to register themselves to load shape data.
+ The PShape object is just a container for now, but will someday provide
methods for accessing actual vertex information.
+ Because of the SVG changes, the XML library is now built into the core.
This means that processing.xml will be imported by default (no need for
"import processing.xml" in your sketch). This also means that "XML"
will no longer be seen in the "Import Library" menu.
+ Altered how createInput(), save(), and saveFrame() work so that they
are more friendly to signed applets.
+ Implemented new error/warning system inside PGraphics so that errors
are only shown once, and non-fatal errors do not shut down the sketch.
+ The unhint() method has been removed, see the hint() reference for changes.
+ Changes to how match() works to bring back in line with other regexp
implementations. Instead of only returning matching groups, match 0
is the matching sequence, and array elements [1] and higher represent
each of the groups (sequences found in parens).
Also starting in this release, multiline matching (Pattern.MULTILINE)
and dotall mode (Pattern.DOTALL) are used by default, so that ^ and $
match the beginning and end of any lines found in the source,
and the . operator will also pick up newline characters.
+ Removed MACOS9 constant from processing.core.PConstants. Bye bye 2001.
+ Deprecated the NORMALIZED constant, use NORMAL instead.
+ Removed some items from the default imports because they're 1) likely
to cause naming collisions and 2) more likely to be used by advanced
users (who can add 'em themselves anyway). The removed items include:
javax.sound.midi,javax.sound.midi.spi,
javax.sound.sampled,javax.sound.sampled.spi,
javax.xml.parsers,javax.xml.transform,javax.xml.transform.dom,
javax.xml.transform.sax,javax.xml.transform.stream,
org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers
You can add default imports to your preferences.txt file by adding to
the preproc.imports line. But keep in mind that this will make your
code incompatible with Processing on any machine that doesn't have
its preferences.txt mangled in the same manner.
+ Update Quaqua to 4.4.7 on Mac OS X (http://www.randelshofer.ch/quaqua/)
+ Disable abyssmally slow Sun renderer on OS X 10.5, by setting
apple.awt.graphics.UseQuartz to true inside PApplet.main().
[ bug fixes ]
+ Prevent caps/joins from throwing an error and halting the render.
This was a problem when drawing SVG files with OpenGL:
http://dev.processing.org/bugs/show_bug.cgi?id=628
However, complex shapes or shapes with holes will produce an error in OpenGL:
http://dev.processing.org/bugs/show_bug.cgi?id=947
+ The point() command should now work always and consistently
in OpenGL as well as Java 2D.
http://dev.processing.org/bugs/show_bug.cgi?id=121
@@ -66,44 +139,16 @@ Also many updates to the examples in this release.
been seen or confirmed recently, closing it.
http://dev.processing.org/bugs/show_bug.cgi?id=56
[ changes ]
+ Add additional newline hack so that Auto Format has less errors.
+ Change how PGraphics objects are created for better consistency. Sadly,
this will require any libraries that subclass PGraphics to be rebuilt
for this release. (However, internally it's a great improvement.)
Renderer library authors please read the reference for PGraphics:
http://dev.processing.org/reference/core/javadoc/processing/core/PGraphics.html
+ Fix video capture problems with OpenGL on Mac OS X.
http://dev.processing.org/bugs/show_bug.cgi?id=882
+ Altered how createInput(), save(), and saveFrame() work so that they
are more friendly to signed applets.
+ Sketch export results in 100x100 default size, regardless of size() setting
http://dev.processing.org/bugs/show_bug.cgi?id=945
+ The unhint() method has been removed, see the hint() reference for changes.
+ Changes to how match() works to bring back in line with other regexp
implementations. Instead of only returning matching groups, match 0
is the matching sequence, and array elements [1] and higher represent
each of the groups (sequences found in parens).
Also starting in this release, multiline matching (Pattern.MULTILINE)
and dotall mode (Pattern.DOTALL) are used by default, so that ^ and $
match the beginning and end of any lines found in the source,
and the . operator will also pick up newline characters.
+ Removed MACOS9 constant from processing.core.PConstants. Bye bye 2001.
+ Removed some items from the default imports because they're 1) likely
to cause naming collisions and 2) more likely to be used by advanced
users (who can add 'em themselves anyway). The removed items include:
javax.sound.midi,javax.sound.midi.spi,
javax.sound.sampled,javax.sound.sampled.spi,
javax.xml.parsers,javax.xml.transform,javax.xml.transform.dom,
javax.xml.transform.sax,javax.xml.transform.stream,
org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers
You can add default imports to your preferences.txt file by adding to
the preproc.imports line. But keep in mind that this will make your
code incompatible with Processing on any machine that doesn't have
its preferences.txt mangled in the same manner.
+ Update Quaqua to 4.4.7 on Mac OS X (http://www.randelshofer.ch/quaqua/)
+ Fix case where creating a new tab throws a NullPointerException.
http://dev.processing.org/bugs/show_bug.cgi?id=940
[ additions ]
+14
View File
@@ -6289,6 +6289,9 @@ public class PApplet extends Applet
* </PRE>
*/
static public void main(String args[]) {
// Disable abyssmally slow Sun renderer on OS X 10.5.
System.setProperty("apple.awt.graphics.UseQuartz", "true");
if (args.length < 1) {
System.err.println("Usage: PApplet <appletname>");
System.err.println("For additional options, " +
@@ -7287,6 +7290,11 @@ public class PApplet extends Applet
}
public PMatrix getMatrix() {
return g.getMatrix();
}
public PMatrix2D getMatrix(PMatrix2D target) {
return g.getMatrix(target);
}
@@ -7297,6 +7305,12 @@ public class PApplet extends Applet
}
public void setMatrix(PMatrix source) {
if (recorder != null) recorder.setMatrix(source);
g.setMatrix(source);
}
public void setMatrix(PMatrix2D source) {
if (recorder != null) recorder.setMatrix(source);
g.setMatrix(source);
+7 -4
View File
@@ -1119,9 +1119,11 @@ public class PGraphics extends PImage implements PConstants {
else if (textureV > 1) textureV = 1;
}
/** This feature is in testing, do not use or rely upon its implementation */
public void breakShape() {
showWarning("This renderer cannot currently handle concave shapes, " +
"or shapes with holes.");
}
@@ -1155,6 +1157,7 @@ public class PGraphics extends PImage implements PConstants {
public void bezierVertex(float x2, float y2,
float x3, float y3,
float x4, float y4) {
bezierInitCheck();
bezierVertexCheck();
PMatrix3D draw = bezierDrawMatrix;
@@ -1181,6 +1184,7 @@ public class PGraphics extends PImage implements PConstants {
public void bezierVertex(float x2, float y2, float z2,
float x3, float y3, float z3,
float x4, float y4, float z4) {
bezierInitCheck();
bezierVertexCheck();
PMatrix3D draw = bezierDrawMatrix;
@@ -1965,7 +1969,8 @@ public class PGraphics extends PImage implements PConstants {
protected void bezierInit() {
// overkill to be broken out, but better parity with the curve stuff below
bezierDetail(bezierDetail);
bezierDetail(bezierDetail);
bezierInited = true;
}
@@ -1984,8 +1989,6 @@ public class PGraphics extends PImage implements PConstants {
//mult_spline_matrix(bezierForwardMatrix, bezier_basis, bezierDrawMatrix, 4);
//bezierDrawMatrix.set(bezierForwardMatrix);
bezierDrawMatrix.apply(bezierBasisMatrix);
bezierInited = true;
}
+32 -37
View File
@@ -48,6 +48,8 @@ X this is an opengl restriction, should we stick with it elsewhere?
X and changing stroke weight in general (with lines/shapes)
o no renderer does this, we should probably disable it
X added a note to the reference about it
X may need to add to PApplet.main() for OS X 10.5
X System.setProperty("apple.awt.graphics.UseQuartz", "true");
cleaning
o chooseFile() and chooseFolder() with named fxn callbacks
@@ -96,52 +98,45 @@ X in case the hint() has been enabled in the meantime
X or rather, always load native font, even w/o the hint() being set
PGraphics API changes
setMainDrawingSurface() -> setPrimarySurface()
mainDrawingSurface = primarySurface;
resize() -> setSize() (roughly)
endShape() with no params is no longer 'final'
X/Y/Z -> TX/TY/TZ
MX/MY/MZ -> X/Y/Z (for sake of PShape)
render_triangles -> renderTriangles()
depth_sort_triangles -> sortTriangles()
render_lines -> renderLines()
depth_sort_lines -> sortLines()
no longer any abstract methods in PGraphics itself
removed support for specular alpha (and its 'SPA' constant)
clear() -> backgroundImpl()
add DIAMETER as synonym for CENTER for ellipseMode and friends
textFontNative and textFontNativeMetrics have been removed
they require a font rendering context on which to draw
and were a weird sort of hack
see how the classes implement them now
hint(ENABLE_NATIVE_FONTS) goes away
need to mention in createFont() reference
also maybe cover in the loadFont() reference? (maybe problem...)
image.cache has been removed, replaced with get/set/removeCache()
this allows per-renderer image cache data to be stored
removed textFontNative and textFontNativeMetrics carp
imageMode ignored for get(), set(), blend() and copy()
smooth is now part of PGraphics, moved out of PImage
imageMode has been removed from PImage, too awkward
raw must handle points, lines, triangles, and textures
light position and normal are now PVector object
change NORMALIZED to NORMAL for textureMode()
X setMainDrawingSurface() -> setPrimarySurface()
X mainDrawingSurface = primarySurface;
X resize() -> setSize() (roughly)
X endShape() with no params is no longer 'final'
X X/Y/Z -> TX/TY/TZ
X MX/MY/MZ -> X/Y/Z (for sake of PShape)
X render_triangles -> renderTriangles()
X depth_sort_triangles -> sortTriangles()
X render_lines -> renderLines()
X depth_sort_lines -> sortLines()
X no longer any abstract methods in PGraphics itself
X removed support for specular alpha (and its 'SPA' constant)
X clear() -> backgroundImpl()
X add DIAMETER as synonym for CENTER for ellipseMode and friends
X textFontNative and textFontNativeMetrics have been removed
X they've been re-implemented per-PGraphics in a less hacky way
X hint(ENABLE_NATIVE_FONTS) goes away
X need to mention in createFont() reference
X also maybe cover in the loadFont() reference? (maybe problem...)
X image.cache has been removed, replaced with get/set/removeCache()
X this allows per-renderer image cache data to be stored
X imageMode has been removed from PImage, too awkward
X this also means that imageMode ignored for get(), set(), blend() and copy()
X smooth is now part of PGraphics, moved out of PImage
X raw must handle points, lines, triangles, and textures
X light position and normal are now PVector object
X changed NORMALIZED to NORMAL for textureMode()
_ may need to add to PApplet.main() for OS X 10.5
_ System.setProperty("apple.awt.graphics.UseQuartz","true");
svg/pshape/pgraphics priority before 0149
shapes
X maybe finish off the svg crap for this release
X working on pshape
X add shape() methods to PGraphics/PApplet
X test and fix svg examples
_ revisions.txt for x/y/z/ tx/ty/tz.. other changes in api.txt
X revisions.txt for x/y/z/ tx/ty/tz.. other changes in api.txt
X bring svg into main lib
X need to straighten out 'table' object for quick object lookup
X maybe add to all parent tables? (no, this gets enormous quickly)
X fix svg caps/joins for opengl with svg library
_ http://dev.processing.org/bugs/show_bug.cgi?id=628
X http://dev.processing.org/bugs/show_bug.cgi?id=628
X save/restore more of the p5 graphics drawing state
X not setting colorMode(), strokeCap, etc.
X ignoreStyles is broken - how to handle
@@ -1874,8 +1874,8 @@ public class PGraphicsOpenGL extends PGraphics3D {
//////////////////////////////////////////////////////////////
// STROKE CAP/JOIN/WEIGHT
public void strokeWeight(float weight) {
this.strokeWeight = weight;
}