- Add method docs for background(), fill(), stroke(), point(), line(), rect(), ellipse(), circle(), image(), translate(), scale(), and rotate()
- Add deepwiki badge
- Add control_change event handler block
- Update dependencies
- Update dependencies
- Update dependencies
- Update dependencies: xot, rucy, rays, reflex
- Add PULL_REQUEST_TEMPLATE.md
- Add CONTRIBUTING.md
-
Add keyIsRepeat
-
Add Vector#-@
-
Painter#background: Clearing background with transparency uses blend_mode with :replace to replace alpha value
-
Fix p5.rb version
-
Fix smaller-than-expected height of screenshots rendered in headless chrome
- Do not define snake_case methods by default
- Event blocks can be defined as methods with 'def'
- Alias snake case methods
- ellipse() can take 3 params
- Update dependencies
- Update workflow files
- Set minumum version for runtime dependency
-
Update URLs as p5js.org has been relaunched
-
Update LICENSE
-
Fix a bug in which the display magnification was fixed at 1x when the size specified by size() was different from the window size and the aspect ratio of both windows was the same
- Support Windows
- Update workflows for test
- Update to actions/checkout@v4
- Add 'rexml' to gemspec dependency
- Add 'rexml' to Gemfile
-
Add stroke(), setStroke(), and setStrokeWeight() to Shape class
-
Add setStrokeCap() and setStrokeJoin() to Shape class
-
Add join type 'miter-clip' and 'arcs'
-
Add color codes
-
Add loadShape()
-
Rename the join type 'SQUARE' to 'BEVEL'
-
Fix that and had half diameters
- Add '@see' links to documents
- Fix missing nil returning
-
Add curveDetail() and bezierDetail()
-
Add curvePoint(), curveTangent(), curveTightness(), bezierPoint(), and bezierTangent()
-
Add textLeading()
-
Add deltaTime
-
Add hue(), saturation(), and brightness()
-
Add noiseSeed() and noiseDetail()
-
Add randomGaussian()
-
Add randomSeed()
-
Add rotateX(), rotateY(), and rotateZ()
-
Add rotateX(), rotateY(), and rotateZ() to Shape class
-
Add shearX() and shearY()
-
Add applyMatrix()
-
Add printMatrix()
-
Add fullscreen() (fullScreen()) function
-
Add smooth() and noSmooth()
-
Add keyIsDown()
-
Add keyIsPressed()
-
Add mouseWheel()
-
Add doubleClicked()
-
Add renderMode()
-
Setup view projection matrix by using perspective() instead of ortho()
-
Display window in the center of the screen by default
-
loadImage() uses Net::HTTP.get() instead of URI.open() to retrieve images via http(s)
-
loadImage() writes a file in streaming mode
-
loadImage() raises Net::HTTPClientException instead of OpenURI::HTTPError
-
Reimplement the noise() for better compatibility
-
push/popStyle() manage colorMode, angleMode, blendMode, and miter_limit states
-
size() and createCanvas() resize the window by themselves
-
texture_mode/wrap -> texcoord_mode/wrap
-
updatePixels() can take block
-
Fix that textFont() did not return current font
-
Fix that updatePixels() did not update the texture
-
Fix the performance of requestImage() by calling Thread.pass
-
Fix an issue with unintended canvas resizing when the screen pixel density changes
-
Fix some missing attribute copies on the canvas
-
Fix Matrix::to_a order
-
Add requestImage()
-
Add texture(), textureMode(), and textureWrap()
-
Add loadPixels(), updatePixels(), and pixels()
-
Add curveVertex(), bezierVertex(), and quadraticVertex()
-
Add beginContour() and endContour()
-
Add createFont(), loadFont(), and Font.list()
-
Add Shape#setFill
-
vertex() can teke UV parameters
-
vertex() records the fill color
-
Drawing shapes with texture is affected by tin() instead of the fill()
- Add Shape class
- Add createShape(), shape(), shapeMode()
- Add beginShape(), endShape(), and vertex(x, y)
- Test with p5.rb
- GraphicsContext#scale() can take z parameter
- Set default miter_limit to 10
- Trigger github actions on all pull_request
- Test drawing methods with p5.rb
- Add .github/workflows/test-draw.yml
- Use Gemfile to install gems for development instead of add_development_dependency in gemspec
- Update dependencies
- Add GraphicsContext#clear
- Add Graphics#save
- save() returns nil
- Update dependencies
- add windowOrientation()
- Timer block can call drawing methods
- Add Processing::Window#update_window, and delete RubySketch::Window class
- Resize the canvas when the window is resized
- Update dependencies
- Update dependencies
- calling setup() without block does nothing
- Update dependencies
- Update dependencies
- mousePressed, mouseReleased, mouseMoved, mouseDragged, mouseClicked ignore multiple touches
- Fix that pointer event handles only the first pointer’s type and ignoring rest pointer's types
- Add Image#set() and Image#get()
- Add color(), red(), green(), blue(), and alpha()
- Add lerpColor()
- Add focused()
- Fix failed tests and add tests
- Set initial canvas size to same as the window size
- Use WIDTH and HEIGHT env vars for initial canvas size
- Shader class can take shadertoy frament shader source
- createGraphics() can take pixelDensity parameter
- Pass self to the block call of beginDraw(), and ensure endDraw
- Add windowMove() and windowResize()
- Add windowMoved(), windowResized(), and windowResizable()
- Add windowX() and windowY()
- Add displayWidth(), displayHeight(), pixelWidth(), pixelHeight(), and pixelDensity()
- Add doc for width() and height()
- Fix crash on calling size()
- pushMatrix(), pushStyle(), and push() return the result of the expression at the end of the block when a block given
- required_ruby_version >= 3.0.0
- Add spec.license
- pushStyle/popStyle do not manage filter state
- copy() and blend() now work with tint color
- Vector#array takes parameter for number of dimensions
- Update dependencies
- Update dependencies
- Add examples/shake.rb
- Fix Vector.random2D() not working correctly when angleMode is set to DEGREES
- Add inspect() to classes
- Alias draw methods
- colorMode(), angleMode(), and blendMode() returns current mode value
- fix that mouseButton returns 0 on mouseReleased
- Update documents
- Update reflex to v0.1.34
- Delete RubyProcessing.podspec
- Do not depend on Beeps
- If there are no user blocks, the window is not displayed and exits
- delete rubysketch.rb and rubysketch-processing.rb
- requiring 'rubysketch-processing' is deprecated
- requiring 'processing/include' is deprecated
- require 'processing' and 'using Processing' is now required
- do not show the window if a draw block is not given
- renamed from rubysketch.gem to processing.gem
- renamed from RubySketch Pod to RubyProcessing Pod
- delete glsl mode
RubySketch::Processing
- add Shader class
- add shader(), resetShader(), createShader(), loadShader(), and filter()
- update the pixel density of context if the screen pixel density is changed
- setUniform() can also take array of numbers, vector, and texture image.
- pushStyle() manages states of textAlign, tint, and filter
- push/pushMatrix/pushStyle call pop() on ensure
RubySketch::GLSL
- displays with pixel density 1.0
- add rubysketch-glsl.rb
- add blend(), createImage(), setTitle(), tint() and noTint()
- add save() that saves screen image to file
- circle() function is affected by ellipseMode()
- point() draws by line(x, y, x, y)
- change initial values for strokeCap and strokeJoin to ROUND and MITER
- add mouseClicked()
- add blendMode()
- add clip() and noClip()
- translate() can take 'z' parameter
- fix that resizing canvas consumes too much memory
- fix runtime error
- add 'mouseButton'
- pointer cancel event calls pointer_up block
- add Touch#id
- add key, keyCode and keyPressed system values
- add keyPressed(), keyReleased() and keyTyped() functions
- add motionGravity value and motion() function
- delete temporary directory on launch
- fix loadImage() fails when Encoding.default_internal is not nil
- size(), createCanvas(): default pixelDensity is same as current value
- size() and createCanvas() take 'pixelDensity' parameter and default value is 1
- add size(), createCanvas() and pixelDensity()
- invert angle parameter value for arc() to fix compatibility to processing API
- Graphics#beginDraw() can take block to call endDraw automatically
- Capture#start() always returns nil
- add delay_camera.rb
- Capture#initialize() can take requestWidth, requestHeight and cameraName
- add Capture#width and Capture#height
- add Capture class
- add log(), exp(), sqrt() and PI
- add examples/camera.rb
- add examples/breakout.rb
- fix error on calling image()
- random() can take array or nothing
- use github actions to release gem package
- add random()
- add sin(), cos(), tan(), asin(), acos(), atan() and atan2()
- make Vector class accessible from user script context
- fix error on calling rotate()
- delete Utility module
- add Vector class
- text() draws to the baseline by default
- add textWidth(), textAscent(), textDescent() and textAlign()
- change initial color for fill() and stroke()
- change initial background color to grayscale 0.8
- add touchStarted(), touchEnded(), touchMoved() and touches()
- make all event handler drawable
- limit font max size to 256
- add createGraphics()
- add strokeCap() and strokeJoin()
- push(), pushMatrix() and pushStyle() take block to automatic pop
- refine startup process
- add curve() and bezier()
- add imageMode(), Image#resize(), Image#copy() and copy()
- add loop(), noLoop() and redraw()
- delete debug prints
- show unsupported image type