processing / processing/libprocessing
Track Processing API coverage in libprocessing/mewnala
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Rust
- Estrelas
- 69
- Forks
- 14
- Merge médio
- 15d 22h
- PRs com merge (30d)
- 3
Descrição
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()
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pelas entradas não marcadas no Progress Tracker e compare as páginas de referência ou os Javadocs relevantes do Processing com a implementação atual de libprocessing/mewnala. Um item concluído deve corresponder ao comportamento do Processing, ser validado com um sketch de exemplo e ser incluído na versão mais recente do mewnala.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- rust
- Domínio
- api
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Pouca atividade
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100