processing / processing/libprocessing
Track Processing API coverage in libprocessing/mewnala
Personne n'a encore pris cette issue.
- Langage dominant
- Rust
- Étoiles
- 69
- Forks
- 14
- Merge moyen
- 15 j 22 h
- PR mergées (30 j)
- 3
Description
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()
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par les éléments non cochés du Progress Tracker et comparez les pages de référence ou les Javadocs pertinents de Processing avec l’implémentation actuelle de libprocessing/mewnala. Un élément terminé doit correspondre au comportement de Processing, être validé avec un sketch d’exemple et être inclus dans la dernière version de mewnala.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- api
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100