processing 0.5.32 → 0.5.33
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +42 -0
- data/VERSION +1 -1
- data/lib/processing/all.rb +3 -1
- data/lib/processing/context.rb +103 -16
- data/lib/processing/events.rb +22 -0
- data/lib/processing/graphics.rb +2 -2
- data/lib/processing/graphics_context.rb +537 -73
- data/lib/processing/image.rb +1 -1
- data/lib/processing/shape.rb +16 -8
- data/lib/processing/window.rb +96 -58
- data/processing.gemspec +4 -4
- data/test/helper.rb +5 -2
- data/test/p5.rb +1 -1
- data/test/test_font.rb +1 -1
- data/test/test_graphics_context.rb +442 -8
- data/test/test_utility.rb +0 -19
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dab32bbed423946f694674083de28850917630c66d56ad2014a0697aa775174d
|
4
|
+
data.tar.gz: 7ea5a81282e81365a2be85bbfd94ae4ae7586c03996aa8fb65aee32352cc633d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25ac561f378c41c152c7959390a1a971621fb8633c591bd9e30df6cd06f6c7012681b2c220f5b44f6b3b619147488a949197cdbfa1c2fd2d827d17066676f832
|
7
|
+
data.tar.gz: 42b75f23f7f0aed79df3298507d0c40b0b0cc9c32752268e0f853937938dc5b3eb06cc1467a5ea85d348f8655ef702611770a1359fd32a22e4b80f9ddc5a436c
|
data/ChangeLog.md
CHANGED
@@ -1,6 +1,48 @@
|
|
1
1
|
# processing ChangeLog
|
2
2
|
|
3
3
|
|
4
|
+
## [v0.5.33] - 2024-02-07
|
5
|
+
|
6
|
+
- Add curveDetail() and bezierDetail()
|
7
|
+
- Add curvePoint(), curveTangent(), curveTightness(), bezierPoint(), and bezierTangent()
|
8
|
+
- Add textLeading()
|
9
|
+
- Add deltaTime
|
10
|
+
- Add hue(), saturation(), and brightness()
|
11
|
+
- Add noiseSeed() and noiseDetail()
|
12
|
+
- Add randomGaussian()
|
13
|
+
- Add randomSeed()
|
14
|
+
- Add rotateX(), rotateY(), and rotateZ()
|
15
|
+
- Add rotateX(), rotateY(), and rotateZ() to Shape class
|
16
|
+
- Add shearX() and shearY()
|
17
|
+
- Add applyMatrix()
|
18
|
+
- Add printMatrix()
|
19
|
+
- Add fullscreen() (fullScreen()) function
|
20
|
+
- Add smooth() and noSmooth()
|
21
|
+
- Add keyIsDown()
|
22
|
+
- Add keyIsPressed()
|
23
|
+
- Add mouseWheel()
|
24
|
+
- Add doubleClicked()
|
25
|
+
- Add renderMode()
|
26
|
+
|
27
|
+
- Setup view projection matrix by using perspective() instead of ortho()
|
28
|
+
- Display window in the center of the screen by default
|
29
|
+
- loadImage() uses Net::HTTP.get() instead of URI.open() to retrieve images via http(s)
|
30
|
+
- loadImage() writes a file in streaming mode
|
31
|
+
- loadImage() raises Net::HTTPClientException instead of OpenURI::HTTPError
|
32
|
+
- Reimplement the noise() for better compatibility
|
33
|
+
- push/popStyle() manage colorMode, angleMode, blendMode, and miter_limit states
|
34
|
+
- size() and createCanvas() resize the window by themselves
|
35
|
+
- texture_mode/wrap -> texcoord_mode/wrap
|
36
|
+
- updatePixels() can take block
|
37
|
+
|
38
|
+
- Fix that textFont() did not return current font
|
39
|
+
- Fix that updatePixels() did not update the texture
|
40
|
+
- Fix the performance of requestImage() by calling Thread.pass
|
41
|
+
- Fix an issue with unintended canvas resizing when the screen pixel density changes
|
42
|
+
- Fix some missing attribute copies on the canvas
|
43
|
+
- Fix Matrix::to_a order
|
44
|
+
|
45
|
+
|
4
46
|
## [v0.5.32] - 2024-01-08
|
5
47
|
|
6
48
|
- Add requestImage()
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.33
|
data/lib/processing/all.rb
CHANGED
@@ -2,7 +2,8 @@ require 'set'
|
|
2
2
|
require 'digest/sha1'
|
3
3
|
require 'pathname'
|
4
4
|
require 'tmpdir'
|
5
|
-
require '
|
5
|
+
require 'net/http'
|
6
|
+
require 'uri'
|
6
7
|
require 'xot/inspectable'
|
7
8
|
require 'reflex'
|
8
9
|
|
@@ -19,4 +20,5 @@ require 'processing/shader'
|
|
19
20
|
require 'processing/capture'
|
20
21
|
require 'processing/graphics_context'
|
21
22
|
require 'processing/graphics'
|
23
|
+
require 'processing/events'
|
22
24
|
require 'processing/context'
|
data/lib/processing/context.rb
CHANGED
@@ -41,9 +41,10 @@ module Processing
|
|
41
41
|
|
42
42
|
@window__ = window
|
43
43
|
init__(
|
44
|
-
@window__.
|
45
|
-
@window__.
|
44
|
+
@window__.canvas.image,
|
45
|
+
@window__.canvas.painter.paint {background 0.8})
|
46
46
|
|
47
|
+
@smooth__ = true
|
47
48
|
@loop__ = true
|
48
49
|
@redraw__ = false
|
49
50
|
@frameCount__ = 0
|
@@ -65,7 +66,7 @@ module Processing
|
|
65
66
|
|
66
67
|
# @private
|
67
68
|
def @window__.draw_screen(painter)
|
68
|
-
@context__.drawImage__ painter
|
69
|
+
@context__.drawImage__ painter, image__: canvas.render
|
69
70
|
end
|
70
71
|
|
71
72
|
drawFrame = -> {
|
@@ -89,8 +90,8 @@ module Processing
|
|
89
90
|
@key__ = event.chars
|
90
91
|
@keyCode__ = event.key
|
91
92
|
if pressed != nil
|
92
|
-
set
|
93
|
-
pressed ? set.add(
|
93
|
+
set = @keysPressed__
|
94
|
+
pressed ? set.add(@keyCode__) : set.delete(@keyCode__)
|
94
95
|
end
|
95
96
|
}
|
96
97
|
|
@@ -143,8 +144,8 @@ module Processing
|
|
143
144
|
updatePointersPressedAndReleased.call e, false
|
144
145
|
if e.any? {|p| p.id == @pointer__.id}
|
145
146
|
@mouseReleasedBlock__&.call
|
146
|
-
@mouseClickedBlock__&.call
|
147
|
-
|
147
|
+
@mouseClickedBlock__&.call if e.click_count > 0
|
148
|
+
@doubleClickedBlock__&.call if e.click_count == 2
|
148
149
|
end
|
149
150
|
@touchEndedBlock__&.call
|
150
151
|
@pointersReleased__.clear
|
@@ -157,6 +158,10 @@ module Processing
|
|
157
158
|
@touchMovedBlock__&.call
|
158
159
|
end
|
159
160
|
|
161
|
+
@window__.wheel = proc do |e|
|
162
|
+
@mouseWheelBlock__&.call WheelEvent.new(e)
|
163
|
+
end
|
164
|
+
|
160
165
|
@window__.move = proc do |e|
|
161
166
|
@windowMovedBlock__&.call
|
162
167
|
end
|
@@ -191,6 +196,8 @@ module Processing
|
|
191
196
|
@mouseMovedBlock__ ||
|
192
197
|
@mouseDraggedBlock__ ||
|
193
198
|
@mouseClickedBlock__ ||
|
199
|
+
@doubleClickedBlock__ ||
|
200
|
+
@mouseWheelBlock__ ||
|
194
201
|
@touchStartedBlock__ ||
|
195
202
|
@touchEndedBlock__ ||
|
196
203
|
@touchMovedBlock__ ||
|
@@ -214,7 +221,7 @@ module Processing
|
|
214
221
|
#
|
215
222
|
def keyPressed(&block)
|
216
223
|
@keyPressedBlock__ = block if block
|
217
|
-
|
224
|
+
keyIsPressed
|
218
225
|
end
|
219
226
|
|
220
227
|
# Defines keyReleased block.
|
@@ -280,6 +287,24 @@ module Processing
|
|
280
287
|
nil
|
281
288
|
end
|
282
289
|
|
290
|
+
# Defines doubleClicked block.
|
291
|
+
#
|
292
|
+
# @return [nil] nil
|
293
|
+
#
|
294
|
+
def doubleClicked(&block)
|
295
|
+
@doubleClickedBlock__ = block if block
|
296
|
+
nil
|
297
|
+
end
|
298
|
+
|
299
|
+
# Defines mouseWheel block.
|
300
|
+
#
|
301
|
+
# @return [nil] nil
|
302
|
+
#
|
303
|
+
def mouseWheel(&block)
|
304
|
+
@mouseWheelBlock__ = block if block
|
305
|
+
nil
|
306
|
+
end
|
307
|
+
|
283
308
|
# Defines touchStarted block.
|
284
309
|
#
|
285
310
|
# @return [nil] nil
|
@@ -343,7 +368,8 @@ module Processing
|
|
343
368
|
# @return [nil] nil
|
344
369
|
#
|
345
370
|
def size(width, height, pixelDensity: self.pixelDensity)
|
346
|
-
|
371
|
+
windowResize width, height
|
372
|
+
resizeCanvas__ width, height, pixelDensity
|
347
373
|
nil
|
348
374
|
end
|
349
375
|
|
@@ -356,7 +382,8 @@ module Processing
|
|
356
382
|
# @return [nil] nil
|
357
383
|
#
|
358
384
|
def createCanvas(width, height, pixelDensity: self.pixelDensity)
|
359
|
-
|
385
|
+
windowResize width, height
|
386
|
+
resizeCanvas__ width, height, pixelDensity
|
360
387
|
nil
|
361
388
|
end
|
362
389
|
|
@@ -378,15 +405,49 @@ module Processing
|
|
378
405
|
# @return [Numeric] current pixel density
|
379
406
|
#
|
380
407
|
def pixelDensity(density = nil)
|
381
|
-
resizeCanvas__
|
382
|
-
@
|
408
|
+
resizeCanvas__ width, height, density if density
|
409
|
+
@window__.canvas.pixel_density
|
383
410
|
end
|
384
411
|
|
385
|
-
#
|
386
|
-
|
387
|
-
|
412
|
+
# Toggles full-screen state or returns the current state.
|
413
|
+
#
|
414
|
+
# @param state [Boolean] Whether to display full-screen or not
|
415
|
+
#
|
416
|
+
# @return [Boolean] current state
|
417
|
+
#
|
418
|
+
# @see https://processing.org/reference/fullScreen_.html
|
419
|
+
# @see https://p5js.org/reference/#/p5/fullscreen
|
420
|
+
#
|
421
|
+
def fullscreen(state = nil)
|
422
|
+
@window__.fullscreen = state if state != nil
|
423
|
+
@window__.fullscreen?
|
424
|
+
end
|
425
|
+
|
426
|
+
alias fullScreen fullscreen
|
388
427
|
|
389
|
-
|
428
|
+
# Enables anti-aliasing.
|
429
|
+
# (Anti-aliasing is disabled on high DPI screen)
|
430
|
+
#
|
431
|
+
# @return [nil] nil
|
432
|
+
#
|
433
|
+
def smooth()
|
434
|
+
@smooth__ = true
|
435
|
+
resizeCanvas__ width, height, pixelDensity
|
436
|
+
nil
|
437
|
+
end
|
438
|
+
|
439
|
+
# Disables anti-aliasing.
|
440
|
+
#
|
441
|
+
# @return [nil] nil
|
442
|
+
#
|
443
|
+
def noSmooth()
|
444
|
+
@smooth__ = false
|
445
|
+
resizeCanvas__ width, height, pixelDensity
|
446
|
+
end
|
447
|
+
|
448
|
+
# @private
|
449
|
+
def resizeCanvas__(width, height, pixelDensity)
|
450
|
+
@window__.resize_canvas width, height, pixelDensity, antialiasing: @smooth__
|
390
451
|
@window__.auto_resize = false
|
391
452
|
end
|
392
453
|
|
@@ -515,6 +576,14 @@ module Processing
|
|
515
576
|
@window__.event.fps
|
516
577
|
end
|
517
578
|
|
579
|
+
# Returns the elapsed time after previous drawing event
|
580
|
+
#
|
581
|
+
# @return [Float] elapsed time in milliseconds
|
582
|
+
#
|
583
|
+
def deltaTime()
|
584
|
+
@window__.event.dt * 1000
|
585
|
+
end
|
586
|
+
|
518
587
|
# Returns the last key that was pressed or released.
|
519
588
|
#
|
520
589
|
# @return [String] last key
|
@@ -531,6 +600,24 @@ module Processing
|
|
531
600
|
@keyCode__
|
532
601
|
end
|
533
602
|
|
603
|
+
# Returns whether or not any key is pressed.
|
604
|
+
#
|
605
|
+
# @return [Boolean] is any key pressed or not
|
606
|
+
#
|
607
|
+
def keyIsPressed()
|
608
|
+
not @keysPressed__.empty?
|
609
|
+
end
|
610
|
+
|
611
|
+
# Returns weather or not the key is currently pressed.
|
612
|
+
#
|
613
|
+
# @param keyCode [Numeric] code for the key
|
614
|
+
#
|
615
|
+
# @return [Boolean] is the key pressed or not
|
616
|
+
#
|
617
|
+
def keyIsDown(keyCode)
|
618
|
+
@keysPressed__.include? keyCode
|
619
|
+
end
|
620
|
+
|
534
621
|
# Returns mouse x position
|
535
622
|
#
|
536
623
|
# @return [Numeric] horizontal position of mouse
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Processing
|
2
|
+
|
3
|
+
|
4
|
+
# Mouse wheel event object.
|
5
|
+
#
|
6
|
+
class WheelEvent
|
7
|
+
|
8
|
+
# @private
|
9
|
+
def initialize(event)
|
10
|
+
@event = event
|
11
|
+
end
|
12
|
+
|
13
|
+
def delta()
|
14
|
+
@event.dy
|
15
|
+
end
|
16
|
+
|
17
|
+
alias getCount delta
|
18
|
+
|
19
|
+
end# WheelEvent
|
20
|
+
|
21
|
+
|
22
|
+
end# Processing
|
data/lib/processing/graphics.rb
CHANGED
@@ -18,8 +18,8 @@ module Processing
|
|
18
18
|
# Start drawing.
|
19
19
|
#
|
20
20
|
def beginDraw(&block)
|
21
|
-
beginDraw__
|
22
21
|
@painter__.__send__ :begin_paint
|
22
|
+
beginDraw__
|
23
23
|
push
|
24
24
|
if block
|
25
25
|
begin
|
@@ -34,8 +34,8 @@ module Processing
|
|
34
34
|
#
|
35
35
|
def endDraw()
|
36
36
|
pop
|
37
|
-
@painter__.__send__ :end_paint
|
38
37
|
endDraw__
|
38
|
+
@painter__.__send__ :end_paint
|
39
39
|
end
|
40
40
|
|
41
41
|
end# Graphics
|