Education/Projects/ProcessingForTheWeb/Tasks: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 497: Line 497:
|-
|-
| [https://wiki.mozilla.org/Education/Projects/ProcessingForTheWeb/PImage PImage()]
| [https://wiki.mozilla.org/Education/Projects/ProcessingForTheWeb/PImage PImage()]
| Pimage is in the library but it would be great to get PJS loading the images into the DOM dynamically. This is also a fairly common request on the Google group.
| colspan="4" | [http://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/72-pimage See lighthouse ticket]
| [http://annasob.wordpress.com/category/processing-js/ annasob]
|
| Medium
|-
|-
| imageMode()  
| imageMode()  

Revision as of 19:30, 30 November 2009

THIS LIST IS BEING DEPRECATED! PLEASE READ FIRST!

The task list is in the process of being ported over to the Lighthouse issue tracking system. See the list of tickets there.

Several people have been helping to move issues over. If you'd like to help, please follow the pattern below of finding or creating a lighthouse ticket to track each function, and linking that ticket from the table below.

If you have to create a new ticket for a function, include a link it the ticket's decription to the original Processing reference for that function, which you can find on this list.

Once the list is fully ported over, this page can be deleted and everything can be run from Lighthouse.

Summary

This page lists tasks to be done as part of the Processing For The Web project, in order to fully implement all of Processing in processing.js. The work is being led by David Humphrey and Al MacDonald, and done by students at Seneca College. You are welcome to join this work.

Task List

The following lists of Bugs, Features, and Functions was compiled by Al MacDonald.

Bugs

Bug Description Attachment/link Difficulty
variable + space + semicolon Defining a variable such as "float y ;" with a space between the number and the semicolon can cause regex parsing errors. Difficult
// Comment Using double slashed comments // at the end of any script will cause REGEX to loop on parsing, subsequently crashing browser. Quick solution is to add a blank line at the end of every script. Difficult
mouseX & mouseY mouseX and mouseY are returned as incorrect values when the canvas is a child of a relative element. Medium
nf() Using nf() on some numbers crashes FireFox. EG: String sf = nf(9.012, 3, 5); from http://processing.org/reference/color_datatype.html will not work. dhodgin will look into this one, has an idea. also needs support for 3 args Difficult
keyCode, CODED, etc Keyboard functions need fleshing out and cross-browser/cross-platform testing. Medium
The Angel Bug When the regex parse encounters strings with a comma in, it parses the word before the comma as a variable. Work around is to escape strings... String myString = “this \, is a string”; But that is in no way ideal. More info: http://hyper-metrix.com/processing-js/docs/?page=Angels%20Weep Difficult
Table bug Processing.js demos will not render if they are in a table. However any canvas demo does. Table test Undetermined
Boolean array bug Processing.js fails if an array of booleans is created with a variable defined before array. Boolean array test Undetermined
Overloading function bug Undetermined
Drop frame system A method to drop frames that are not drawn in time. This would be great for media-syncing if you want your app to stay in-time with audio and video. Not sure how plain-old JS timers will handle this... but it's worth testing Medium
array.clone looks like it only does a shallow copy and will cause issues with objects in an arrayList dhodgin will look into this one and test Unconfirmed

Missing Features

This is a list of all the out-standing functions in the Processing.js implementation. A more detailed description of the unfinished functions can be found at: http://processingjs.org/reference. (Click “toggle all” to see the list.)

3D Features

Name Description Who's working on it. STATUS Difficulty
curve() See lighthouse ticket
box() See lighthouse ticket
sphere() See lighthouse ticket
sphereDetail() See lighthouse ticket
rotateX() See lighthouse ticket
rotateY() See lighthouse ticket
rotateZ() See lighthouse ticket
ambientLight() See lighthouse ticket
directionalLight() See lighthouse ticket
lightFalloff() See Lighthouse ticket
lightSpecular() See Lighthouse ticket
lights() See lighthouse ticket
noLights() See lighthouse ticket
normal() See lighthouse ticket
pointLight() See lighthouse ticket
spotLight() See lighthouse ticket
beginCamera() See lighthouse ticket
camera() See lighthouse ticket
endCamera() See lighthouse ticket
frustum() See lighthouse ticket
ortho() See lighthouse ticket
perspective() See lighthouse ticket
printCamera() See lighthouse ticket
printProjection() See lighthouse ticket
modelX() See lighthouse ticket
modelY() See lighthouse ticket
modelZ() See lighthouse ticket
screenX() See lighthouse ticket
screenY() See lighthouse ticket
screenZ() See lighthouse ticket
ambient() See lighthouse ticket
emissive() See lighthouse ticket
shininess() See lighthouse ticket
specular() See lighthouse ticket
scale() See lighthouse ticket
rotate() See lighthouse ticket
translate() See lighthouse ticket
hint() See lighthouse ticket
PVector See lighthouse ticket

Misc. Features

Name Description Who's working on it. STATUS Difficulty
delay() See lighthouse ticket
popStyle() See lighthouse ticket
private See lighthouse ticket
pushStyle() See lighthouse ticket
focused See lighthouse ticket
noCursor() See lighthouse ticket
online See lighthouse ticket
screen See lighthouse ticket
long See lighthouse ticket
Hashmap See lighthouse ticket
XMLElement See lighthouse ticket
binary() See lighthouse ticket
boolean() See lighthouse ticket
hex() See lighthouse ticket
unbinary() See lighthouse ticket
unhex() See lighthouse ticket
join() See lighthouse ticket
match() See lighthouse ticket
matchAll() See lighthouse ticket
nfc() See lighthouse ticket
nfp() See lighthouse ticket
nfs() See lighthouse ticket
trim() See lighthouse ticket
split() See lighthouse ticket
splitTokens() See lighthouse ticket
append() See lighthouse ticket
arrayCopy() See lighthouse ticket
concat() See lighthouse ticket
expand() See lighthouse ticket
reverse() See lighthouse ticket
shorten() See lighthouse ticket
sort() See lighthouse ticket
splice() See lighthouse ticket
subset() See lighthouse ticket

Misc. Features 3

Name Description Who's working on it. STATUS Difficulty
PShape() See lighthouse ticket
bezierDetail() See lighthouse ticket
bezierPoint() See lighthouse ticket
bezierTangent() See lighthouse ticket
curveDetail() See lighthouse ticket
curvePoint() See lighthouse ticket
curveTangent() See lighthouse ticket
curveTightness() See lighthouse ticket
noSmooth() See lighthouse ticket
strokeCap() See lighthouse ticket
strokeJoin() See lighthouse ticket
texture() See lighthouse ticket
textureMode() See lighthouse ticket
loadShape() See lighthouse ticket
shape() See lighthouse ticket
shapeMode() See lighthouse ticket
createInput() See lighthouse ticket
loadBytes() See lighthouse ticket
open() See lighthouse ticket
selectFolder() See lighthouse ticket
selectInput() See lighthouse ticket
param() See lighthouse ticket
status() Don't think Firefox will let you change status bar with JS re: security. NOTE: we can do this, but the user must set the dom.disable_window_status_change preference to false for it to show-up. Medium?
save() Some work done by Google group. Could be combined with binary functions ot HTML5 functions to write directly to server? One idea would be to use the canvas.toDataUrl() (you can specify a graphic mime type) in order to get a string that could then be written to localStorage, keyed on the filename. Difficult
saveFrame() As above in save(). Probably don't want to start saving TIFs in a web environment. Canvas exports png, gif, jpg natively already. Spec deviation from Processing proper may be wise. One idea would be to use the canvas.toDataUrl() (you can specify a graphic mime type) in order to get a string that could then be written to localStorage, keyed on the filename. Difficult
PrintWriter See lighthouse ticket
beginRaw() See lighthouse ticket
beginRecord() See lighthouse ticket
createOutput() See lighthouse ticket
createReader() See lighthouse ticket
createWriter() See lighthouse ticket
endRaw() See lighthouse ticket
endRecord() See lighthouse ticket
saveBytes() See lighthouse ticket
saveStream() See lighthouse ticket
saveStrings() See lighthouse ticket
loadStrings() See lighthouse ticket
selectOutput() See lighthouse ticket
applyMatrix() See lighthouse ticket
printMatrix() See lighthouse ticket
resetMatrix() See lighthouse ticket
blendColor() See lighthouse ticket
brightness() See lighthouse ticket
hue() See lighthouse ticket
saturation() See lighthouse ticket

Misc. Features 2

Name Description Who's working on it. STATUS Difficulty
PImage() See lighthouse ticket
imageMode() MinyXO Medium
noTint() MinyXO Medium
requestImage() No sure if this is actually needed in JS as DOM image would load async anyway. Probably worth looking into a little more. Medium
blend() See lighthouse ticket
copy() See lighthouse ticket
filter() See lighthouse ticket
PGraphics Could be worth-while to get PGraphics to use a separate canvas and getPixels() from it. Great for say... animating the mouth moving on one canvas before applying the result to a UV map for a 3D object. Medium-Difficult
Would this offer any performance/feature reward over using a reagular Javascript 1 dimensional array containing pixels?
PFont Already working. The existing routines will likely get either a) merged with PShape's SVG functions or b) dropped in favor of something faster re: real browser fonts if we can borrow a little time from Mozilla developers. (We are currently using SVGs.) Difficult (Fx dev. & talk to Bespin guys)
PVector See lighthouse ticket
exp() See lighthouse ticket
log() See lighthouse ticket
mag() See lighthouse ticket
map() See lighthouse ticket
acos() See lighthouse ticket
asin() See lighthouse ticket
atan() See lighthouse ticket