processing / processing/libprocessing
Track Processing API coverage in libprocessing/mewnala
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 69
- Fork
- 14
- Merge medio
- 15g 22h
- PR unite (30g)
- 3
Descrizione
This issue tracks progress toward implementing the Processing API in libprocessing/mewnala.
The goal is to reach broad compatibility with the existing Processing API so that sketches can be ported with minimal friction.
Guidelines
Keywords below are listed using the original Java syntax. Some differences are expected due to the specifics of Python.
Breaking changes should be intentional, and their motivation should be documented in the corresponding issues or PRs.
Definition of done
Mark items as done only once they:
- match the original Processing behavior (see the linked reference page)
- have been validated with example sketches (e.g. in Processing examples, Nature of Code, or the
examplesdirectory) - are included in the latest mewnala release (https://pypi.org/project/mewnala/)
Progress Tracker
[!IMPORTANT]
The list is based on the official Processing reference. This is NOT an exhaustive list of every class, method, or keyword in Processing. Parts of the API are undocumented or listed in individual class pages, see theMethodssection of PVector or PImage for example. For a more complete API overview, see the Processing 4 Javadoc.
Data
Composite
- Array
- ArrayList
- FloatDict
- FloatList
- HashMap
- IntDict
- IntList
- JSONArray
- JSONObject
- Object
- String
- StringDict
- StringList
- Table
- TableRow
- XML
Array Functions
Conversion
Primitive
String Functions
Input
Files
- BufferedReader
- createInput()
- createReader()
- launch()
- loadBytes()
- loadJSONArray()
- loadJSONObject()
- loadStrings()
- loadXML()
- parseJSONArray()
- parseJSONObject()
- parseXML()
- selectFolder()
- selectInput()
- loadTable()
Time & Date
Keyboard
Mouse
- mouseButton
- mouseClicked()
- mouseDragged()
- mouseMoved()
- mousePressed
- mousePressed()
- mouseReleased()
- mouseWheel()
- mouseX
- mouseY
- pmouseX
- pmouseY
Constants
Typography
Loading & Displaying
Attributes
Metrics
Rendering
Shaders
Image
Pixels
Loading & Displaying
Textures
Shape
2d primitives
Vertex
- beginContour()
- beginShape()
- bezierVertex()
- curveVertex()
- endContour()
- endShape()
- quadraticVertex()
- vertex()
Curves
- bezierDetail()
- bezierPoint()
- bezierTangent()
- bezier()
- curveDetail()
- curvePoint()
- curveTangent()
- curveTightness()
- curve()
3D Primitives
Attributes
Loading & Displaying
Math
Calculation
- abs()
- ceil()
- constrain()
- dist()
- exp()
- floor()
- lerp()
- log()
- mag()
- map()
- max()
- min()
- norm()
- pow()
- round()
- sq()
- sqrt()
Trigonometry
Operators
- += (add assign)
- + (addition)
- -- (decrement)
- / (divide)
- /= (divide assign)
- ++ (increment)
- - (minus)
- % (modulo)
- * (multiply)
- *= (multiply assign)
- -= (subtract assign)
Bitwise Operators
Random
Output
Files
- PrintWriter
- beginRaw()
- beginRecord()
- createOutput()
- createWriter()
- endRaw()
- endRecord()
- saveBytes()
- saveJSONArray()
- saveJSONObject()
- saveStream()
- saveStrings()
- saveTable()
- saveXML()
- selectOutput()
Text Area
Image
Color
Creating & Reading
Setting
Lights Camera
Lights
- ambientLight()
- directionalLight()
- lightFalloff()
- lightSpecular()
- lights()
- noLights()
- normal()
- pointLight()
- spotLight()
Material Properties
Camera
Coordinates
Transform
- applyMatrix()
- popMatrix()
- printMatrix()
- pushMatrix()
- resetMatrix()
- rotateX()
- rotateY()
- rotateZ()
- rotate()
- scale()
- shearX()
- shearY()
- translate()
Structure
- [] (array access)
- = (assign)
- catch
- class
- , (comma)
- // (comment)
- {} (curly braces)
- /** */ (doc comment)
- . (dot)
- draw()
- exit()
- extends
- false
- final
- implements
- import
- loop()
- /* */ (multiline comment)
- new
- noLoop()
- null
- () (parentheses)
- popStyle()
- pop()
- private
- public
- pushStyle()
- push()
- redraw()
- return
- ; (semicolon)
- setLocation()
- setResizable()
- setTitle()
- setup()
- static
- super
- this
- thread()
- true
- try
- void
Control
Conditionals
Relational Operators
- == (equality)
- > (greater than)
- >= (greater than or equal to)
- != (inequality)
- < (less than)
- <= (less than or equal to)
Iteration
Logical Operators
Environment
- cursor()
- delay()
- displayDensity()
- displayHeight
- displayWidth
- focused
- frameCount
- frameRate
- frameRate()
- fullScreen()
- height
- noCursor()
- noSmooth()
- pixelDensity()
- pixelHeight
- pixelWidth
- settings()
- size()
- smooth()
- width
- windowMove()
- windowMoved()
- windowRatio()
- windowResizable()
- windowResize()
- windowResized()
- windowTitle()
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia dalle voci non selezionate nel Progress Tracker e confronta le pagine di riferimento o gli Javadocs pertinenti di Processing con l’implementazione attuale di libprocessing/mewnala. Un elemento completato deve corrispondere al comportamento di Processing, essere validato con uno sketch di esempio ed essere incluso nell’ultima release di mewnala.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- api
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100