# processing ChangeLog


## [v0.5.24] - 2023-07-11

- Resize the canvas when the window is resized


## [v0.5.23] - 2023-07-11

- Update dependencies


## [v0.5.22] - 2023-07-10

- Update dependencies


## [v0.5.21] - 2023-07-09

- calling setup() without block does nothing


## [v0.5.20] - 2023-06-27

- Update dependencies


## [v0.5.19] - 2023-06-22

- Update dependencies


## [v0.5.18] - 2023-06-11

- 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


## [v0.5.17] - 2023-06-07

- Add Image#set() and Image#get()
- Add color(), red(), green(), blue(), and alpha()
- Add lerpColor()
- Add focused()


## [v0.5.16] - 2023-06-02

- Fix failed tests and add tests


## [v0.5.15] - 2023-06-02

- 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


## [v0.5.14] - 2023-05-29

- 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()


## [v0.5.13] - 2023-05-27

- 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


## [v0.5.12] - 2023-05-26

- pushStyle/popStyle do not manage filter state


## [v0.5.11] - 2023-05-21

- copy() and blend() now work with tint color


## [v0.5.10] - 2023-05-19

- Vector#array takes parameter for number of dimensions


## [v0.5.9] - 2023-05-18

- Update dependencies


## [v0.5.8] - 2023-05-13

- Update dependencies


## [v0.5.7] - 2023-05-11

- Add examples/shake.rb
- Fix Vector.random2D() not working correctly when angleMode is set to DEGREES


## [v0.5.6] - 2023-05-08

- Add inspect() to classes
- Alias draw methods
- colorMode(), angleMode(), and blendMode() returns current mode value
- fix that mouseButton returns 0 on mouseReleased


## [v0.5.5] - 2023-04-30

- Update documents


## [v0.5.4] - 2023-04-25

- Update reflex to v0.1.34


## [v0.5.3] - 2023-04-22

- Delete RubyProcessing.podspec
- Do not depend on Beeps
- If there are no user blocks, the window is not displayed and exits


## [v0.5.2] - 2023-03-02

- delete rubysketch.rb and rubysketch-processing.rb


## [v0.5.1] - 2023-03-01

- requiring 'rubysketch-processing' is deprecated


## [v0.5.0] - 2023-02-09

- 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


## [v0.4.0] - 2022-12-29

- renamed from rubysketch.gem to processing.gem
- renamed from RubySketch Pod to RubyProcessing Pod
- delete glsl mode


## [v0.3.22] - 2022-11-14

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


## [v0.3.21] - 2022-09-05

- 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


## [v0.3.20] - 2022-07-24

- add mouseClicked()
- add blendMode()
- add clip() and noClip()
- translate() can take 'z' parameter
- fix that resizing canvas consumes too much memory


## [v0.3.19] - 2021-12-5

- fix runtime error


## [v0.3.18] - 2021-12-5

- add 'mouseButton'
- pointer cancel event calls pointer_up block


## [v0.3.17] - 2021-12-5

- add Touch#id


## [v0.3.16] - 2021-2-14

- add key, keyCode and keyPressed system values
- add keyPressed(), keyReleased() and keyTyped() functions
- add motionGravity value and motion() function


## [v0.3.15] - 2020-12-12

- delete temporary directory on launch


## [v0.3.14] - 2020-12-12

- fix loadImage() fails when Encoding.default_internal is not nil


## [v0.3.13] - 2020-12-12

- size(), createCanvas(): default pixelDensity is same as current value


## [v0.3.12] - 2020-12-10

- size() and createCanvas() take 'pixelDensity' parameter and default value is 1


## [v0.3.11] - 2020-12-9

- add size(), createCanvas() and pixelDensity()


## [v0.3.10] - 2020-12-1

- invert angle parameter value for arc() to fix compatibility to processing API


## [v0.3.9] - 2020-11-30

- Graphics#beginDraw() can take block to call endDraw automatically
- Capture#start() always returns nil
- add delay_camera.rb


## [v0.3.8] - 2020-11-27

- Capture#initialize() can take requestWidth, requestHeight and cameraName
- add Capture#width and Capture#height


## [v0.3.7] - 2020-11-18

- add Capture class
- add log(), exp(), sqrt() and PI
- add examples/camera.rb
- add examples/breakout.rb
- fix error on calling image()


## [v0.3.6] - 2020-08-02

- random() can take array or nothing
- use github actions to release gem package


## [v0.3.5] - 2020-08-02

- add random()
- add sin(), cos(), tan(), asin(), acos(), atan() and atan2()
- make Vector class accessible from user script context
- fix error on calling rotate()


## [v0.3.4] - 2020-08-02

- delete Utility module


## [v0.3.3] - 2020-08-01

- add Vector class


## [v0.3.2] - 2020-07-22

- 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


## [v0.3.1] - 2020-07-17

- add touchStarted(), touchEnded(), touchMoved() and touches()
- make all event handler drawable
- limit font max size to 256


## [v0.3.0] - 2020-05-21

- add createGraphics()


## [v0.2.7] - 2020-04-17

- add strokeCap() and strokeJoin()


## [v0.2.6] - 2020-04-17

- 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()


## [v0.2.5] - 2020-03-29

- delete debug prints
- show unsupported image type