diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 976564c8f..75acd87c8 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -1065,10 +1065,12 @@ public class PApplet extends Applet } } + /* if (irenderer.equals(P2D)) { throw new RuntimeException("P2D is not yet implemented, " + "use JAVA2D or P3D instead."); } + */ /* // ok when calling size, but not really with createGraphics() diff --git a/core/todo.txt b/core/todo.txt index ec77550de..50cd73a75 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -26,7 +26,7 @@ X jre 1.5.0_10 is still default at java.com.. blech X http://dev.processing.org/bugs/show_bug.cgi?id=513 X constant CENTER_RADIUS will be changed to just RADIUS X CENTER_RADIUS is being deprecated, not removed -_ remove CENTER_RADIUS from any p5 code +_ remove CENTER_RADIUS from any p5 code (i.e. examples) X split() inconsistency (emailed casey, will discuss later) X make split(String, String) behave like String.split(String) X and make current split(String) into splitTokens(String) @@ -41,6 +41,7 @@ X http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action X change println(array) to be useful _ document using join() for old method X remove print(array) since it's silly? +_ make sure it's not in the reference [0] "potato" [1] "tomato" [2] "apple" @@ -60,7 +61,22 @@ o textAlign(CENTER | TOP); o could even have textAlign(CENTER) and textAlign(TOP) not replace each other X or textAlign(LEFT, MIDDLE); -> this one seems best X add reference for new param, and update keywords.txt +X given to andy +0125p3 +_ re-disable P2D before distributing + +_ ortho() behaving differently in P3D vs OPENGL +_ http://dev.processing.org/bugs/show_bug.cgi?id=100 +_ only happens on the first round + +graphics stuff being sorted out by ewjordan +_ accuracy in P3D is very low +_ http://dev.processing.org/bugs/show_bug.cgi?id=95 +_ textured polys throwing a lot of exceptions (ouch) +_ http://dev.processing.org/bugs/show_bug.cgi?id=546 +_ polygons in z axis with nonzero x or y not filling properly +_ http://dev.processing.org/bugs/show_bug.cgi?id=547 _ look into capabilities stuff from mike creighton _ also sets the aa mode on the pc so it no longer needs control panel bunk @@ -862,8 +878,6 @@ _ workaround is to write the code properly, but suggests something bad _ http://dev.processing.org/bugs/show_bug.cgi?id=150 _ make a note about the anti-aliasing types in the faq _ polygon vs line etc.. may want to enable lines but disable polys -_ ortho() behaving differently in P3D vs OPENGL -_ http://dev.processing.org/bugs/show_bug.cgi?id=100 _ invocationtargetexception in gl with aioobe: _ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115185737 _ resolve ARGB versus RGBA versus just A issues for fonts diff --git a/todo.txt b/todo.txt index b35208136..4c884b5dd 100644 --- a/todo.txt +++ b/todo.txt @@ -24,6 +24,21 @@ X re-architect svg to properly inherit fill/stroke/etc from parents X object can specify fill/stroke for everyone below X need to discern between having a fill specified and one not being present + +0125p3 +_ moviemaker +X moved around constructors (to be on par with other video lib stuff) +X cleaned up constant names (i.e. MSVideo -> MS_VIDEO) +X added constant for h264 encoding +_ add documentation + + +_ look into deleting from p5 bugs db + +_ ? doesn't work with find in reference +_ actually came up as 'null' +_ should we use if() or if in the reference + _ disallow .java tabs with same name as the sketch _ a .java tab with same name as the sketch is allowed (oog!) _ particularly look at "save as" scenario @@ -39,6 +54,8 @@ _ you will overwrite your original code from the main-tab. _ show progress bar while rebuilding sketch menu _ startup is very slow on g4 +_ "find in ref" on XMLElement brings up ref for null (ha) + LIBRARIES / Net @@ -92,8 +109,6 @@ _ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;nu _ problem with small floats: _ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1115500448 -_ need to add reference for moviemaker - _ with additional .pde files, don't allow static mode in front tab @@ -1022,6 +1037,7 @@ _ which will also just give you the last camera _ should it be new Camera(PROMPT); _ audio stops working after two seconds _ http://dev.processing.org/bugs/show_bug.cgi?id=277 +_ or audio won't stop even after hitting stop _ include a separate video class to handle just playback _ video playback can be much faster if not messing with pixels _ could instead use texsubimage in opengl, etc diff --git a/video/src/processing/video/MovieMaker.java b/video/src/processing/video/MovieMaker.java index 1d656f311..ebc94a264 100644 --- a/video/src/processing/video/MovieMaker.java +++ b/video/src/processing/video/MovieMaker.java @@ -42,6 +42,7 @@ import quicktime.std.movies.Movie; import quicktime.std.movies.Track; import quicktime.std.movies.media.VideoMedia; import quicktime.util.QTHandle; +import quicktime.util.QTUtils; import quicktime.util.RawEncodedImage; import processing.core.*; @@ -88,21 +89,26 @@ import processing.core.*; public class MovieMaker { public static final int RAW = StdQTConstants.kRawCodecType; - public static final int JPEG = StdQTConstants.kJPEGCodecType; - public static final int CINEPAK = StdQTConstants.kCinepakCodecType; - public static final int SORENSON = StdQTConstants.kSorensonCodecType; - public static final int VIDEO = StdQTConstants.kVideoCodecType; - public static final int H261 = StdQTConstants.kH261CodecType; - public static final int H263 = StdQTConstants.kH263CodecType; + + public static final int ANIMATION = StdQTConstants.kAnimationCodecType; public static final int BASE = StdQTConstants.kBaseCodecType; public static final int BMP = StdQTConstants.kBMPCodecType; - public static final int CMYK = StdQTConstants.kCMYKCodecType; + public static final int CINEPAK = StdQTConstants.kCinepakCodecType; public static final int COMPONENT = StdQTConstants.kComponentVideoCodecType; + public static final int CMYK = StdQTConstants.kCMYKCodecType; public static final int GIF = StdQTConstants.kGIFCodecType; public static final int GRAPHICS = StdQTConstants.kGraphicsCodecType; - public static final int MSVideo = StdQTConstants.kMicrosoftVideo1CodecType; - public static final int MOTIONJPEGA = StdQTConstants.kMotionJPEGACodecType; - public static final int MOTIONJPEGB = StdQTConstants.kMotionJPEGBCodecType; + public static final int JPEG = StdQTConstants.kJPEGCodecType; + public static final int MS_VIDEO = StdQTConstants.kMicrosoftVideo1CodecType; + public static final int MOTION_JPEG_A = StdQTConstants.kMotionJPEGACodecType; + public static final int MOTION_JPEG_B = StdQTConstants.kMotionJPEGBCodecType; + public static final int SORENSON = StdQTConstants.kSorensonCodecType; + public static final int VIDEO = StdQTConstants.kVideoCodecType; + + public static final int H261 = StdQTConstants.kH261CodecType; + public static final int H263 = StdQTConstants.kH263CodecType; + // H.264 encoding, added because no constant is available in QTJava + public static final int H264 = QTUtils.toOSType ("avc1"); public static final int WORST = StdQTConstants.codecMinQuality; public static final int LOW = StdQTConstants.codecLowQuality; @@ -154,24 +160,40 @@ public class MovieMaker { } */ + /** + * Create a movie with the specified width, height, and filename. + * The movie will be created at 15 frames per second. + * The codec will be set to RAW and quality set to HIGH. + */ public MovieMaker(PApplet p, int _w, int _h, String _filename) { - this(p, _w, _h, _filename, 0, 0, 30, 15); + this(p, _w, _h, _filename, 30, RAW, HIGH, 15); } - // For specifying your own width and height - public MovieMaker(PApplet p, int _w, int _h, String _filename, + /** + * Create a movie with the specified width, height, filename, and frame rate. + * The codec will be set to RAW and quality set to HIGH. + */ + public MovieMaker(PApplet p, int _w, int _h, String _filename, int _rate) { + this(p, _w, _h, _filename, _rate, RAW, HIGH, 15); + } + + + /** + * Create a movie with the specified width, height, filename, frame rate, + * and codec type and quality. Key frames will be set at 15 frames. + */ + public MovieMaker(PApplet p, int _w, int _h, String _filename, int _rate, int _codecType, int _codecQuality) { - this(p, _w, _h, _filename, _codecType, _codecQuality, 30, 15); + this(p, _w, _h, _filename, _rate, _codecType, _codecQuality, 15); } - public MovieMaker(PApplet p, int _w, int _h, String _filename, - int _codecType, int _codecQuality, int _rate) { - this(p, _w, _h, _filename, _codecType, _codecQuality, _rate, 15); - } - - public MovieMaker(PApplet p, int _w, int _h, String _filename, - int _codecType, int _codecQuality, int _rate, + /** + * Create a movie with the specified width, height, filename, frame rate, + * codec type and quality, and key frame rate. + */ + public MovieMaker(PApplet p, int _w, int _h, String _filename, int _rate, + int _codecType, int _codecQuality, int _keyFrameRate) { parent = p;