processing 0.5.33 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dab32bbed423946f694674083de28850917630c66d56ad2014a0697aa775174d
4
- data.tar.gz: 7ea5a81282e81365a2be85bbfd94ae4ae7586c03996aa8fb65aee32352cc633d
3
+ metadata.gz: d7ebe70f2fc384d5892bfc8bf33773451585c82aecc01e36f594803cbd3cbe4c
4
+ data.tar.gz: fccd650cf7fa9e38f499c7d279624c5a30aa5eb40bde70d9a3c6c5c4ce8805f9
5
5
  SHA512:
6
- metadata.gz: 25ac561f378c41c152c7959390a1a971621fb8633c591bd9e30df6cd06f6c7012681b2c220f5b44f6b3b619147488a949197cdbfa1c2fd2d827d17066676f832
7
- data.tar.gz: 42b75f23f7f0aed79df3298507d0c40b0b0cc9c32752268e0f853937938dc5b3eb06cc1467a5ea85d348f8655ef702611770a1359fd32a22e4b80f9ddc5a436c
6
+ metadata.gz: 875bdd9a5bdce3f8aa0b9490e7dd8fa526859999dbef0ac6fe7dcb4984f6c1f76435b550dfbf249ff817fb7e5b07dabea543e9d70c99887baebb0a7c0ecc5c23
7
+ data.tar.gz: 1f7348aaa12c5fc0893e9a6ca6c177daa2efc1c98934ebb5d50fb714638da2a7fd09c563c51c4fdd00ea2f9e634e460d3e5a6ad5ba3e68e9ca09f02c004d28b0
data/ChangeLog.md CHANGED
@@ -1,6 +1,30 @@
1
1
  # processing ChangeLog
2
2
 
3
3
 
4
+ ## [v1.0.1] - 2024-03-14
5
+
6
+ - Add 'rexml' to Gemfile
7
+
8
+
9
+ ## [v1.0] - 2024-03-14
10
+
11
+ - Add stroke(), setStroke(), and setStrokeWeight() to Shape class
12
+ - Add setStrokeCap() and setStrokeJoin() to Shape class
13
+ - Add join type 'miter-clip' and 'arcs'
14
+ - Add color codes
15
+ - Add loadShape()
16
+
17
+ - Rename the join type 'SQUARE' to 'BEVEL'
18
+
19
+ - Fix that <circle> and <ellipse> had half diameters
20
+
21
+
22
+ ## [v0.5.34] - 2024-02-16
23
+
24
+ - Add '@see' links to documents
25
+ - Fix missing nil returning
26
+
27
+
4
28
  ## [v0.5.33] - 2024-02-07
5
29
 
6
30
  - Add curveDetail() and bezierDetail()
@@ -64,7 +88,7 @@
64
88
  - Add createShape(), shape(), shapeMode()
65
89
  - Add beginShape(), endShape(), and vertex(x, y)
66
90
  - Test with p5.rb
67
- - GraphicsContext#rotate() can take z parameter
91
+ - GraphicsContext#scale() can take z parameter
68
92
  - Set default miter_limit to 10
69
93
  - Trigger github actions on all pull_request
70
94
 
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'rexml'
3
4
  gem 'rake'
4
5
  gem 'test-unit'
5
6
  gem 'yard'
data/Gemfile.lock CHANGED
@@ -12,6 +12,7 @@ GEM
12
12
  power_assert (2.0.3)
13
13
  public_suffix (5.0.3)
14
14
  rake (13.1.0)
15
+ rexml (3.2.6)
15
16
  test-unit (3.6.1)
16
17
  power_assert
17
18
  webrick (1.7.0)
@@ -28,6 +29,7 @@ PLATFORMS
28
29
  DEPENDENCIES
29
30
  ferrum
30
31
  rake
32
+ rexml
31
33
  test-unit
32
34
  yard
33
35
 
data/Rakefile CHANGED
@@ -14,15 +14,15 @@ require 'reflex/extension'
14
14
  require 'processing/extension'
15
15
 
16
16
 
17
- def test_with_p5()
18
- ENV['TEST_WITH_P5'] = '1'
17
+ def test_with_browser()
18
+ ENV['TEST_WITH_BROWSER'] = '1'
19
19
  end
20
20
 
21
21
  EXTENSIONS = [Xot, Rucy, Rays, Reflex, Processing]
22
22
 
23
23
  ENV['RDOC'] = 'yardoc --no-private'
24
24
 
25
- #test_with_p5 if ci?
25
+ #test_with_browser if ci?
26
26
 
27
27
  default_tasks
28
28
  use_bundler
@@ -37,8 +37,8 @@ namespace :test do
37
37
  sh %( rm -rf test/.png/*.png )
38
38
  end
39
39
 
40
- task :with_p5 do
41
- test_with_p5
40
+ task :with_browser do
41
+ test_with_browser
42
42
  end
43
43
 
44
44
  ::Rake::TestTask.new :draw do |t|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.33
1
+ 1.0.1
@@ -1,9 +1,11 @@
1
1
  require 'set'
2
+ require 'strscan'
2
3
  require 'digest/sha1'
3
4
  require 'pathname'
4
5
  require 'tmpdir'
5
- require 'net/http'
6
6
  require 'uri'
7
+ require 'rexml'
8
+ require 'net/http'
7
9
  require 'xot/inspectable'
8
10
  require 'reflex'
9
11
 
@@ -16,6 +18,7 @@ require 'processing/image'
16
18
  require 'processing/font'
17
19
  require 'processing/touch'
18
20
  require 'processing/shape'
21
+ require 'processing/svg'
19
22
  require 'processing/shader'
20
23
  require 'processing/capture'
21
24
  require 'processing/graphics_context'
@@ -180,6 +180,9 @@ module Processing
180
180
  #
181
181
  # @return [nil] nil
182
182
  #
183
+ # @see https://processing.org/reference/setup_.html
184
+ # @see https://p5js.org/reference/#/p5/setup
185
+ #
183
186
  def setup(&block)
184
187
  @window__.setup = block if block
185
188
  nil
@@ -210,6 +213,9 @@ module Processing
210
213
  #
211
214
  # @return [nil] nil
212
215
  #
216
+ # @see https://processing.org/reference/draw_.html
217
+ # @see https://p5js.org/reference/#/p5/draw
218
+ #
213
219
  def draw(&block)
214
220
  @drawBlock__ = block if block
215
221
  nil
@@ -219,6 +225,9 @@ module Processing
219
225
  #
220
226
  # @return [Boolean] is any key pressed or not
221
227
  #
228
+ # @see https://processing.org/reference/keyPressed_.html
229
+ # @see https://p5js.org/reference/#/p5/keyPressed
230
+ #
222
231
  def keyPressed(&block)
223
232
  @keyPressedBlock__ = block if block
224
233
  keyIsPressed
@@ -228,6 +237,9 @@ module Processing
228
237
  #
229
238
  # @return [nil] nil
230
239
  #
240
+ # @see https://processing.org/reference/keyReleased_.html
241
+ # @see https://p5js.org/reference/#/p5/keyReleased
242
+ #
231
243
  def keyReleased(&block)
232
244
  @keyReleasedBlock__ = block if block
233
245
  nil
@@ -237,6 +249,9 @@ module Processing
237
249
  #
238
250
  # @return [nil] nil
239
251
  #
252
+ # @see https://processing.org/reference/keyTyped_.html
253
+ # @see https://p5js.org/reference/#/p5/keyTyped
254
+ #
240
255
  def keyTyped(&block)
241
256
  @keyTypedBlock__ = block if block
242
257
  nil
@@ -246,6 +261,10 @@ module Processing
246
261
  #
247
262
  # @return [Boolean] is any mouse button pressed or not
248
263
  #
264
+ # @see https://processing.org/reference/mousePressed_.html
265
+ # @see https://processing.org/reference/mousePressed.html
266
+ # @see https://p5js.org/reference/#/p5/mousePressed
267
+ #
249
268
  def mousePressed(&block)
250
269
  @mousePressedBlock__ = block if block
251
270
  not @pointersPressed__.empty?
@@ -255,6 +274,9 @@ module Processing
255
274
  #
256
275
  # @return [nil] nil
257
276
  #
277
+ # @see https://processing.org/reference/mouseReleased_.html
278
+ # @see https://p5js.org/reference/#/p5/mouseReleased
279
+ #
258
280
  def mouseReleased(&block)
259
281
  @mouseReleasedBlock__ = block if block
260
282
  nil
@@ -264,6 +286,9 @@ module Processing
264
286
  #
265
287
  # @return [nil] nil
266
288
  #
289
+ # @see https://processing.org/reference/mouseMoved_.html
290
+ # @see https://p5js.org/reference/#/p5/mouseMoved
291
+ #
267
292
  def mouseMoved(&block)
268
293
  @mouseMovedBlock__ = block if block
269
294
  nil
@@ -273,6 +298,9 @@ module Processing
273
298
  #
274
299
  # @return [nil] nil
275
300
  #
301
+ # @see https://processing.org/reference/mouseDragged_.html
302
+ # @see https://p5js.org/reference/#/p5/mouseDragged
303
+ #
276
304
  def mouseDragged(&block)
277
305
  @mouseDraggedBlock__ = block if block
278
306
  nil
@@ -282,6 +310,9 @@ module Processing
282
310
  #
283
311
  # @return [nil] nil
284
312
  #
313
+ # @see https://processing.org/reference/mouseClicked_.html
314
+ # @see https://p5js.org/reference/#/p5/mouseClicked
315
+ #
285
316
  def mouseClicked(&block)
286
317
  @mouseClickedBlock__ = block if block
287
318
  nil
@@ -291,6 +322,8 @@ module Processing
291
322
  #
292
323
  # @return [nil] nil
293
324
  #
325
+ # @see https://p5js.org/reference/#/p5/doubleClicked
326
+ #
294
327
  def doubleClicked(&block)
295
328
  @doubleClickedBlock__ = block if block
296
329
  nil
@@ -300,6 +333,9 @@ module Processing
300
333
  #
301
334
  # @return [nil] nil
302
335
  #
336
+ # @see https://processing.org/reference/mouseWheel_.html
337
+ # @see https://p5js.org/reference/#/p5/mouseWheel
338
+ #
303
339
  def mouseWheel(&block)
304
340
  @mouseWheelBlock__ = block if block
305
341
  nil
@@ -309,6 +345,8 @@ module Processing
309
345
  #
310
346
  # @return [nil] nil
311
347
  #
348
+ # @see https://p5js.org/reference/#/p5/touchStarted
349
+ #
312
350
  def touchStarted(&block)
313
351
  @touchStartedBlock__ = block if block
314
352
  nil
@@ -318,6 +356,8 @@ module Processing
318
356
  #
319
357
  # @return [nil] nil
320
358
  #
359
+ # @see https://p5js.org/reference/#/p5/touchEnded
360
+ #
321
361
  def touchEnded(&block)
322
362
  @touchEndedBlock__ = block if block
323
363
  nil
@@ -327,6 +367,8 @@ module Processing
327
367
  #
328
368
  # @return [nil] nil
329
369
  #
370
+ # @see https://p5js.org/reference/#/p5/touchMoved
371
+ #
330
372
  def touchMoved(&block)
331
373
  @touchMovedBlock__ = block if block
332
374
  nil
@@ -336,6 +378,8 @@ module Processing
336
378
  #
337
379
  # @return [nil] nil
338
380
  #
381
+ # @see https://processing.org/reference/windowMoved_.html
382
+ #
339
383
  def windowMoved(&block)
340
384
  @windowMovedBlock__ = block if block
341
385
  nil
@@ -345,6 +389,9 @@ module Processing
345
389
  #
346
390
  # @return [nil] nil
347
391
  #
392
+ # @see https://processing.org/reference/windowResized_.html
393
+ # @see https://p5js.org/reference/#/p5/windowResized
394
+ #
348
395
  def windowResized(&block)
349
396
  @windowResizedBlock__ = block if block
350
397
  nil
@@ -367,6 +414,8 @@ module Processing
367
414
  #
368
415
  # @return [nil] nil
369
416
  #
417
+ # @see https://processing.org/reference/size_.html
418
+ #
370
419
  def size(width, height, pixelDensity: self.pixelDensity)
371
420
  windowResize width, height
372
421
  resizeCanvas__ width, height, pixelDensity
@@ -381,6 +430,8 @@ module Processing
381
430
  #
382
431
  # @return [nil] nil
383
432
  #
433
+ # @see https://p5js.org/reference/#/p5/createCanvas
434
+ #
384
435
  def createCanvas(width, height, pixelDensity: self.pixelDensity)
385
436
  windowResize width, height
386
437
  resizeCanvas__ width, height, pixelDensity
@@ -393,6 +444,8 @@ module Processing
393
444
  #
394
445
  # @return [nil] nil
395
446
  #
447
+ # @see https://processing.org/reference/setTitle_.html
448
+ #
396
449
  def setTitle(title)
397
450
  @window__.title = title
398
451
  nil
@@ -404,6 +457,9 @@ module Processing
404
457
  #
405
458
  # @return [Numeric] current pixel density
406
459
  #
460
+ # @see https://processing.org/reference/pixelDensity_.html
461
+ # @see https://p5js.org/reference/#/p5/pixelDensity
462
+ #
407
463
  def pixelDensity(density = nil)
408
464
  resizeCanvas__ width, height, density if density
409
465
  @window__.canvas.pixel_density
@@ -430,6 +486,9 @@ module Processing
430
486
  #
431
487
  # @return [nil] nil
432
488
  #
489
+ # @see https://processing.org/reference/smooth_.html
490
+ # @see https://p5js.org/reference/#/p5/smooth
491
+ #
433
492
  def smooth()
434
493
  @smooth__ = true
435
494
  resizeCanvas__ width, height, pixelDensity
@@ -440,6 +499,9 @@ module Processing
440
499
  #
441
500
  # @return [nil] nil
442
501
  #
502
+ # @see https://processing.org/reference/noSmooth_.html
503
+ # @see https://p5js.org/reference/#/p5/noSmooth
504
+ #
443
505
  def noSmooth()
444
506
  @smooth__ = false
445
507
  resizeCanvas__ width, height, pixelDensity
@@ -455,6 +517,9 @@ module Processing
455
517
  #
456
518
  # @return [Numeric] width
457
519
  #
520
+ # @see https://processing.org/reference/displayWidth.html
521
+ # @see https://p5js.org/reference/#/p5/displayWidth
522
+ #
458
523
  def displayWidth()
459
524
  @window__.screen.width
460
525
  end
@@ -463,6 +528,9 @@ module Processing
463
528
  #
464
529
  # @return [Numeric] height
465
530
  #
531
+ # @see https://processing.org/reference/displayHeight.html
532
+ # @see https://p5js.org/reference/#/p5/displayHeight
533
+ #
466
534
  def displayHeight()
467
535
  @window__.screen.height
468
536
  end
@@ -471,6 +539,9 @@ module Processing
471
539
  #
472
540
  # @return [Numeric] pixel density
473
541
  #
542
+ # @see https://processing.org/reference/displayDensity_.html
543
+ # @see https://p5js.org/reference/#/p5/displayDensity
544
+ #
474
545
  def displayDensity()
475
546
  @window__.painter.pixel_density
476
547
  end
@@ -482,6 +553,8 @@ module Processing
482
553
  #
483
554
  # @return [nil] nil
484
555
  #
556
+ # @see https://processing.org/reference/windowMove_.html
557
+ #
485
558
  def windowMove(x, y)
486
559
  @window__.pos = [x, y]
487
560
  nil
@@ -494,6 +567,8 @@ module Processing
494
567
  #
495
568
  # @return [nil] nil
496
569
  #
570
+ # @see https://processing.org/reference/windowResize_.html
571
+ #
497
572
  def windowResize(width, height)
498
573
  @window__.size = [width, height]
499
574
  nil
@@ -505,6 +580,8 @@ module Processing
505
580
  #
506
581
  # @return [nil] nil
507
582
  #
583
+ # @see https://processing.org/reference/windowResizable_.html
584
+ #
508
585
  def windowResizable(resizable)
509
586
  @window__.resizable = resizable
510
587
  nil
@@ -540,6 +617,8 @@ module Processing
540
617
  #
541
618
  # @return [Numeric] window width
542
619
  #
620
+ # @see https://p5js.org/reference/#/p5/windowWidth
621
+ #
543
622
  def windowWidth()
544
623
  @window__.width
545
624
  end
@@ -548,6 +627,8 @@ module Processing
548
627
  #
549
628
  # @return [Numeric] window height
550
629
  #
630
+ # @see https://p5js.org/reference/#/p5/windowHeight
631
+ #
551
632
  def windowHeight()
552
633
  @window__.height
553
634
  end
@@ -556,6 +637,9 @@ module Processing
556
637
  #
557
638
  # @return [Boolean] active or not
558
639
  #
640
+ # @see https://processing.org/reference/focused.html
641
+ # @see https://p5js.org/reference/#/p5/focused
642
+ #
559
643
  def focused()
560
644
  @window__.active?
561
645
  end
@@ -564,6 +648,9 @@ module Processing
564
648
  #
565
649
  # @return [Integer] total number of frames
566
650
  #
651
+ # @see https://processing.org/reference/frameCount.html
652
+ # @see https://p5js.org/reference/#/p5/frameCount
653
+ #
567
654
  def frameCount()
568
655
  @frameCount__
569
656
  end
@@ -572,6 +659,9 @@ module Processing
572
659
  #
573
660
  # @return [Float] frames per second
574
661
  #
662
+ # @see https://processing.org/reference/frameRate.html
663
+ # @see https://p5js.org/reference/#/p5/frameRate
664
+ #
575
665
  def frameRate()
576
666
  @window__.event.fps
577
667
  end
@@ -580,6 +670,8 @@ module Processing
580
670
  #
581
671
  # @return [Float] elapsed time in milliseconds
582
672
  #
673
+ # @see https://p5js.org/reference/#/p5/deltaTime
674
+ #
583
675
  def deltaTime()
584
676
  @window__.event.dt * 1000
585
677
  end
@@ -588,6 +680,9 @@ module Processing
588
680
  #
589
681
  # @return [String] last key
590
682
  #
683
+ # @see https://processing.org/reference/key.html
684
+ # @see https://p5js.org/reference/#/p5/key
685
+ #
591
686
  def key()
592
687
  @key__
593
688
  end
@@ -596,6 +691,9 @@ module Processing
596
691
  #
597
692
  # @return [Symbol] last key code
598
693
  #
694
+ # @see https://processing.org/reference/keyCode.html
695
+ # @see https://p5js.org/reference/#/p5/keyCode
696
+ #
599
697
  def keyCode()
600
698
  @keyCode__
601
699
  end
@@ -604,6 +702,8 @@ module Processing
604
702
  #
605
703
  # @return [Boolean] is any key pressed or not
606
704
  #
705
+ # @see https://p5js.org/reference/#/p5/keyIsPressed
706
+ #
607
707
  def keyIsPressed()
608
708
  not @keysPressed__.empty?
609
709
  end
@@ -614,6 +714,8 @@ module Processing
614
714
  #
615
715
  # @return [Boolean] is the key pressed or not
616
716
  #
717
+ # @see https://p5js.org/reference/#/p5/keyIsDown
718
+ #
617
719
  def keyIsDown(keyCode)
618
720
  @keysPressed__.include? keyCode
619
721
  end
@@ -622,6 +724,9 @@ module Processing
622
724
  #
623
725
  # @return [Numeric] horizontal position of mouse
624
726
  #
727
+ # @see https://processing.org/reference/mouseX.html
728
+ # @see https://p5js.org/reference/#/p5/mouseX
729
+ #
625
730
  def mouseX()
626
731
  @pointer__&.x || 0
627
732
  end
@@ -630,6 +735,9 @@ module Processing
630
735
  #
631
736
  # @return [Numeric] vertical position of mouse
632
737
  #
738
+ # @see https://processing.org/reference/mouseY.html
739
+ # @see https://p5js.org/reference/#/p5/mouseY
740
+ #
633
741
  def mouseY()
634
742
  @pointer__&.y || 0
635
743
  end
@@ -638,6 +746,9 @@ module Processing
638
746
  #
639
747
  # @return [Numeric] horizontal position of mouse
640
748
  #
749
+ # @see https://processing.org/reference/pmouseX.html
750
+ # @see https://p5js.org/reference/#/p5/pmouseX
751
+ #
641
752
  def pmouseX()
642
753
  @pointerPrev__&.x || 0
643
754
  end
@@ -646,6 +757,9 @@ module Processing
646
757
  #
647
758
  # @return [Numeric] vertical position of mouse
648
759
  #
760
+ # @see https://processing.org/reference/pmouseY.html
761
+ # @see https://p5js.org/reference/#/p5/pmouseY
762
+ #
649
763
  def pmouseY()
650
764
  @pointerPrev__&.y || 0
651
765
  end
@@ -654,6 +768,9 @@ module Processing
654
768
  #
655
769
  # @return [Numeric] LEFT, RIGHT, CENTER or 0
656
770
  #
771
+ # @see https://processing.org/reference/mouseButton.html
772
+ # @see https://p5js.org/reference/#/p5/mouseButton
773
+ #
657
774
  def mouseButton()
658
775
  ((@pointersPressed__ + @pointersReleased__) & [LEFT, RIGHT, CENTER]).last
659
776
  end
@@ -662,6 +779,8 @@ module Processing
662
779
  #
663
780
  # @return [Array] Touch objects
664
781
  #
782
+ # @see https://p5js.org/reference/#/p5/touches
783
+ #
665
784
  def touches()
666
785
  @touches__
667
786
  end
@@ -678,6 +797,9 @@ module Processing
678
797
  #
679
798
  # @return [nil] nil
680
799
  #
800
+ # @see https://processing.org/reference/loop_.html
801
+ # @see https://p5js.org/reference/#/p5/loop
802
+ #
681
803
  def loop()
682
804
  @loop__ = true
683
805
  end
@@ -686,6 +808,9 @@ module Processing
686
808
  #
687
809
  # @return [nil] nil
688
810
  #
811
+ # @see https://processing.org/reference/noLoop_.html
812
+ # @see https://p5js.org/reference/#/p5/noLoop
813
+ #
689
814
  def noLoop()
690
815
  @loop__ = false
691
816
  end
@@ -694,6 +819,9 @@ module Processing
694
819
  #
695
820
  # @return [nil] nil
696
821
  #
822
+ # @see https://processing.org/reference/redraw_.html
823
+ # @see https://p5js.org/reference/#/p5/redraw
824
+ #
697
825
  def redraw()
698
826
  @redraw__ = true
699
827
  end
@@ -3,6 +3,9 @@ module Processing
3
3
 
4
4
  # Font object.
5
5
  #
6
+ # @see https://processing.org/reference/PFont.html
7
+ # @see https://p5js.org/reference/#/p5.Font
8
+ #
6
9
  class Font
7
10
 
8
11
  # @private
@@ -24,6 +27,8 @@ module Processing
24
27
  #
25
28
  # @return [TextBounds] bounding box for text
26
29
  #
30
+ # @see https://p5js.org/reference/#/p5.Font/textBounds
31
+ #
27
32
  def textBounds(str, x = 0, y = 0, fontSize = nil)
28
33
  font = getInternal__ fontSize
29
34
  TextBounds.new x, y, x + font.width(str), y + font.height
@@ -3,6 +3,9 @@ module Processing
3
3
 
4
4
  # Draws graphics into an offscreen buffer
5
5
  #
6
+ # @see https://processing.org/reference/PGraphics.html
7
+ # @see https://p5js.org/reference/#/p5.Graphics
8
+ #
6
9
  class Graphics
7
10
 
8
11
  include Xot::Inspectable
@@ -10,6 +13,8 @@ module Processing
10
13
 
11
14
  # Initialize graphics object.
12
15
  #
16
+ # @see https://p5js.org/reference/#/p5.Graphics
17
+ #
13
18
  def initialize(width, height, pixelDensity = 1)
14
19
  image = Rays::Image.new width, height, Rays::RGBA, pixelDensity
15
20
  init__ image, image.painter
@@ -17,6 +22,8 @@ module Processing
17
22
 
18
23
  # Start drawing.
19
24
  #
25
+ # @see https://processing.org/reference/PGraphics_beginDraw_.html
26
+ #
20
27
  def beginDraw(&block)
21
28
  @painter__.__send__ :begin_paint
22
29
  beginDraw__
@@ -32,6 +39,8 @@ module Processing
32
39
 
33
40
  # End drawing.
34
41
  #
42
+ # @see https://processing.org/reference/PGraphics_endDraw_.html
43
+ #
35
44
  def endDraw()
36
45
  pop
37
46
  endDraw__