dxopal 1.0.0

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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.ignore +5 -0
  4. data/.nojekyll +4 -0
  5. data/CHANGELOG.md +90 -0
  6. data/DEVELOPMENT.md +57 -0
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +39 -0
  9. data/README.md +22 -0
  10. data/Rakefile +66 -0
  11. data/TODO.md +278 -0
  12. data/build/dxopal.js +46590 -0
  13. data/build/dxopal.min.js +1 -0
  14. data/config.ru +39 -0
  15. data/doc/api/DXOpal.html +129 -0
  16. data/doc/api/DXOpal/Font.html +485 -0
  17. data/doc/api/DXOpal/Image.html +2533 -0
  18. data/doc/api/DXOpal/Input.html +1086 -0
  19. data/doc/api/DXOpal/Input/MouseCodes.html +146 -0
  20. data/doc/api/DXOpal/RemoteResource.html +641 -0
  21. data/doc/api/DXOpal/Sound.html +568 -0
  22. data/doc/api/DXOpal/SoundEffect.html +444 -0
  23. data/doc/api/DXOpal/SoundEffect/WaveTypes.html +130 -0
  24. data/doc/api/DXOpal/Sprite.html +1419 -0
  25. data/doc/api/DXOpal/Window.html +1915 -0
  26. data/doc/api/_index.html +228 -0
  27. data/doc/api/class_list.html +51 -0
  28. data/doc/api/css/common.css +1 -0
  29. data/doc/api/css/full_list.css +58 -0
  30. data/doc/api/css/style.css +492 -0
  31. data/doc/api/file.CHANGELOG.html +162 -0
  32. data/doc/api/file.README.html +124 -0
  33. data/doc/api/file_list.html +61 -0
  34. data/doc/api/frames.html +17 -0
  35. data/doc/api/index.html +124 -0
  36. data/doc/api/js/app.js +248 -0
  37. data/doc/api/js/full_list.js +216 -0
  38. data/doc/api/js/jquery.js +4 -0
  39. data/doc/api/method_list.html +939 -0
  40. data/doc/api/top-level-namespace.html +110 -0
  41. data/doc/en/index.html +93 -0
  42. data/doc/ja/index.html +92 -0
  43. data/dxopal.gemspec +29 -0
  44. data/exe/dxopal +44 -0
  45. data/index.html +56 -0
  46. data/opal/dxopal.rb +54 -0
  47. data/opal/dxopal/constants/colors.rb +16 -0
  48. data/opal/dxopal/font.rb +20 -0
  49. data/opal/dxopal/image.rb +301 -0
  50. data/opal/dxopal/input.rb +170 -0
  51. data/opal/dxopal/input/key_codes.rb +168 -0
  52. data/opal/dxopal/remote_resource.rb +65 -0
  53. data/opal/dxopal/sound.rb +53 -0
  54. data/opal/dxopal/sound_effect.rb +84 -0
  55. data/opal/dxopal/sprite.rb +94 -0
  56. data/opal/dxopal/sprite/collision_area.rb +288 -0
  57. data/opal/dxopal/sprite/collision_check.rb +106 -0
  58. data/opal/dxopal/sprite/collision_checker.rb +169 -0
  59. data/opal/dxopal/sprite/physics.rb +82 -0
  60. data/opal/dxopal/version.rb +3 -0
  61. data/opal/dxopal/window.rb +173 -0
  62. data/template/index.html +13 -0
  63. data/template/main.rb +9 -0
  64. metadata +191 -0
@@ -0,0 +1,2533 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: DXOpal::Image
8
+
9
+ &mdash; Documentation by YARD 0.9.9
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "DXOpal::Image";
19
+ relpath = '../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../_index.html">Index (I)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../DXOpal.html" title="DXOpal (module)">DXOpal</a></span></span>
41
+ &raquo;
42
+ <span class="title">Image</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: DXOpal::Image
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName"><span class='object_link'><a href="RemoteResource.html" title="DXOpal::RemoteResource (class)">RemoteResource</a></span></span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next"><span class='object_link'><a href="RemoteResource.html" title="DXOpal::RemoteResource (class)">RemoteResource</a></span></li>
78
+
79
+ <li class="next">DXOpal::Image</li>
80
+
81
+ </ul>
82
+ <a href="#" class="inheritanceTree">show all</a>
83
+
84
+ </dd>
85
+ </dl>
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <dl>
98
+ <dt>Defined in:</dt>
99
+ <dd>opal/dxopal/image.rb</dd>
100
+ </dl>
101
+
102
+ </div>
103
+
104
+
105
+
106
+
107
+
108
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
109
+ <ul class="summary">
110
+
111
+ <li class="public ">
112
+ <span class="summary_signature">
113
+
114
+ <a href="#canvas-instance_method" title="#canvas (instance method)">#<strong>canvas</strong> &#x21d2; Object </a>
115
+
116
+
117
+
118
+ </span>
119
+
120
+
121
+
122
+
123
+ <span class="note title readonly">readonly</span>
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ <span class="summary_desc"><div class='inline'>
134
+ <p>Returns the value of attribute canvas.</p>
135
+ </div></span>
136
+
137
+ </li>
138
+
139
+
140
+ <li class="public ">
141
+ <span class="summary_signature">
142
+
143
+ <a href="#ctx-instance_method" title="#ctx (instance method)">#<strong>ctx</strong> &#x21d2; Object </a>
144
+
145
+
146
+
147
+ </span>
148
+
149
+
150
+
151
+
152
+ <span class="note title readonly">readonly</span>
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+ <span class="summary_desc"><div class='inline'>
163
+ <p>Returns the value of attribute ctx.</p>
164
+ </div></span>
165
+
166
+ </li>
167
+
168
+
169
+ <li class="public ">
170
+ <span class="summary_signature">
171
+
172
+ <a href="#height-instance_method" title="#height (instance method)">#<strong>height</strong> &#x21d2; Object </a>
173
+
174
+
175
+
176
+ </span>
177
+
178
+
179
+
180
+
181
+ <span class="note title readonly">readonly</span>
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+ <span class="summary_desc"><div class='inline'>
192
+ <p>Returns the value of attribute height.</p>
193
+ </div></span>
194
+
195
+ </li>
196
+
197
+
198
+ <li class="public ">
199
+ <span class="summary_signature">
200
+
201
+ <a href="#width-instance_method" title="#width (instance method)">#<strong>width</strong> &#x21d2; Object </a>
202
+
203
+
204
+
205
+ </span>
206
+
207
+
208
+
209
+
210
+ <span class="note title readonly">readonly</span>
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+ <span class="summary_desc"><div class='inline'>
221
+ <p>Returns the value of attribute width.</p>
222
+ </div></span>
223
+
224
+ </li>
225
+
226
+
227
+ </ul>
228
+
229
+
230
+
231
+
232
+
233
+ <h2>
234
+ Class Method Summary
235
+ <small><a href="#" class="summary_toggle">collapse</a></small>
236
+ </h2>
237
+
238
+ <ul class="summary">
239
+
240
+ <li class="public ">
241
+ <span class="summary_signature">
242
+
243
+ <a href="#_load-class_method" title="_load (class method)">.<strong>_load</strong>(path_or_url) &#x21d2; Object </a>
244
+
245
+
246
+
247
+ </span>
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+ <span class="summary_desc"><div class='inline'>
258
+ <p>Load remote image (called via Window.load_resources).</p>
259
+ </div></span>
260
+
261
+ </li>
262
+
263
+
264
+ </ul>
265
+
266
+ <h2>
267
+ Instance Method Summary
268
+ <small><a href="#" class="summary_toggle">collapse</a></small>
269
+ </h2>
270
+
271
+ <ul class="summary">
272
+
273
+ <li class="public ">
274
+ <span class="summary_signature">
275
+
276
+ <a href="#[]-instance_method" title="#[] (instance method)">#<strong>[]</strong>(x, y) &#x21d2; Object </a>
277
+
278
+
279
+
280
+ </span>
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+ <span class="summary_desc"><div class='inline'>
291
+ <p>Get a pixel as ARGB array.</p>
292
+ </div></span>
293
+
294
+ </li>
295
+
296
+
297
+ <li class="public ">
298
+ <span class="summary_signature">
299
+
300
+ <a href="#[]=-instance_method" title="#[]= (instance method)">#<strong>[]=</strong>(x, y, color) &#x21d2; Object </a>
301
+
302
+
303
+
304
+ </span>
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+ <span class="summary_desc"><div class='inline'>
315
+ <p>Put a pixel on this image.</p>
316
+ </div></span>
317
+
318
+ </li>
319
+
320
+
321
+ <li class="public ">
322
+ <span class="summary_signature">
323
+
324
+ <a href="#_draw_raw_image-instance_method" title="#_draw_raw_image (instance method)">#<strong>_draw_raw_image</strong>(x, y, raw_img) &#x21d2; Object </a>
325
+
326
+
327
+
328
+ </span>
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+ <span class="summary_desc"><div class='inline'>
339
+ <p>Copy an &lt;img&gt; onto this image.</p>
340
+ </div></span>
341
+
342
+ </li>
343
+
344
+
345
+ <li class="public ">
346
+ <span class="summary_signature">
347
+
348
+ <a href="#_image_data-instance_method" title="#_image_data (instance method)">#<strong>_image_data</strong>(x = 0, y = 0, w = @width, h = @height) &#x21d2; Object </a>
349
+
350
+
351
+
352
+ </span>
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+ <span class="summary_desc"><div class='inline'>
363
+ <p>Return .getImageData.</p>
364
+ </div></span>
365
+
366
+ </li>
367
+
368
+
369
+ <li class="public ">
370
+ <span class="summary_signature">
371
+
372
+ <a href="#_put_image_data-instance_method" title="#_put_image_data (instance method)">#<strong>_put_image_data</strong>(image_data, x, y) &#x21d2; Object </a>
373
+
374
+
375
+
376
+ </span>
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+ <span class="summary_desc"><div class='inline'>
387
+ <p>Call .putImageData.</p>
388
+ </div></span>
389
+
390
+ </li>
391
+
392
+
393
+ <li class="public ">
394
+ <span class="summary_signature">
395
+
396
+ <a href="#_resize-instance_method" title="#_resize (instance method)">#<strong>_resize</strong>(w, h) &#x21d2; Object </a>
397
+
398
+
399
+
400
+ </span>
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+ <span class="summary_desc"><div class='inline'>
411
+ <p>Set size of this image.</p>
412
+ </div></span>
413
+
414
+ </li>
415
+
416
+
417
+ <li class="public ">
418
+ <span class="summary_signature">
419
+
420
+ <a href="#_rgb-instance_method" title="#_rgb (instance method)">#<strong>_rgb</strong>(color) &#x21d2; Object </a>
421
+
422
+
423
+
424
+ </span>
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+ <span class="summary_desc"><div class='inline'>
435
+ <p>Return a string like &#39;rgb(255, 255, 255)&#39; `color` is 3 or 4
436
+ numbers.</p>
437
+ </div></span>
438
+
439
+ </li>
440
+
441
+
442
+ <li class="public ">
443
+ <span class="summary_signature">
444
+
445
+ <a href="#_rgba-instance_method" title="#_rgba (instance method)">#<strong>_rgba</strong>(color) &#x21d2; Object </a>
446
+
447
+
448
+
449
+ </span>
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+ <span class="summary_desc"><div class='inline'>
460
+ <p>Return a string like &#39;rgba(255, 255, 255, 128)&#39; `color` is 3 or 4
461
+ numbers.</p>
462
+ </div></span>
463
+
464
+ </li>
465
+
466
+
467
+ <li class="public ">
468
+ <span class="summary_signature">
469
+
470
+ <a href="#_rgba_ary-instance_method" title="#_rgba_ary (instance method)">#<strong>_rgba_ary</strong>(color) &#x21d2; Object </a>
471
+
472
+
473
+
474
+ </span>
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+ <span class="summary_desc"><div class='inline'>
485
+ <p>Return an array like `[255, 255, 255, 128]`.</p>
486
+ </div></span>
487
+
488
+ </li>
489
+
490
+
491
+ <li class="public ">
492
+ <span class="summary_signature">
493
+
494
+ <a href="#box-instance_method" title="#box (instance method)">#<strong>box</strong>(x1, y1, x2, y2, color) &#x21d2; Object </a>
495
+
496
+
497
+
498
+ </span>
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+ <span class="summary_desc"><div class='inline'>
509
+ <p>Draw a rectangle on this image.</p>
510
+ </div></span>
511
+
512
+ </li>
513
+
514
+
515
+ <li class="public ">
516
+ <span class="summary_signature">
517
+
518
+ <a href="#box_fill-instance_method" title="#box_fill (instance method)">#<strong>box_fill</strong>(x1, y1, x2, y2, color) &#x21d2; Object </a>
519
+
520
+
521
+
522
+ </span>
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+ <span class="summary_desc"><div class='inline'>
533
+ <p>Draw a filled box on this image.</p>
534
+ </div></span>
535
+
536
+ </li>
537
+
538
+
539
+ <li class="public ">
540
+ <span class="summary_signature">
541
+
542
+ <a href="#circle-instance_method" title="#circle (instance method)">#<strong>circle</strong>(x, y, r, color) &#x21d2; Object </a>
543
+
544
+
545
+
546
+ </span>
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+ <span class="summary_desc"><div class='inline'>
557
+ <p>Draw a circle on this image.</p>
558
+ </div></span>
559
+
560
+ </li>
561
+
562
+
563
+ <li class="public ">
564
+ <span class="summary_signature">
565
+
566
+ <a href="#circle_fill-instance_method" title="#circle_fill (instance method)">#<strong>circle_fill</strong>(x, y, r, color) &#x21d2; Object </a>
567
+
568
+
569
+
570
+ </span>
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+ <span class="summary_desc"><div class='inline'>
581
+ <p>Draw a filled circle on this image.</p>
582
+ </div></span>
583
+
584
+ </li>
585
+
586
+
587
+ <li class="public ">
588
+ <span class="summary_signature">
589
+
590
+ <a href="#clear-instance_method" title="#clear (instance method)">#<strong>clear</strong> &#x21d2; Object </a>
591
+
592
+
593
+
594
+ </span>
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+ <span class="summary_desc"><div class='inline'>
605
+ <p>Clear this image (i.e. fill with `[0,0,0,0]`).</p>
606
+ </div></span>
607
+
608
+ </li>
609
+
610
+
611
+ <li class="public ">
612
+ <span class="summary_signature">
613
+
614
+ <a href="#compare-instance_method" title="#compare (instance method)">#<strong>compare</strong>(x, y, color) &#x21d2; Object </a>
615
+
616
+
617
+
618
+ </span>
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+
628
+ <span class="summary_desc"><div class='inline'>
629
+ <p>Return true if the pixel at `(x, y)` has the `color`.</p>
630
+ </div></span>
631
+
632
+ </li>
633
+
634
+
635
+ <li class="public ">
636
+ <span class="summary_signature">
637
+
638
+ <a href="#draw-instance_method" title="#draw (instance method)">#<strong>draw</strong>(x, y, image) &#x21d2; Object </a>
639
+
640
+
641
+
642
+ </span>
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+
652
+ <span class="summary_desc"><div class='inline'>
653
+ <p>Draw an Image on this image.</p>
654
+ </div></span>
655
+
656
+ </li>
657
+
658
+
659
+ <li class="public ">
660
+ <span class="summary_signature">
661
+
662
+ <a href="#draw_ex-instance_method" title="#draw_ex (instance method)">#<strong>draw_ex</strong>(x, y, image, options = {}) &#x21d2; Object </a>
663
+
664
+
665
+
666
+ </span>
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+ <span class="summary_desc"><div class='inline'></div></span>
677
+
678
+ </li>
679
+
680
+
681
+ <li class="public ">
682
+ <span class="summary_signature">
683
+
684
+ <a href="#draw_font-instance_method" title="#draw_font (instance method)">#<strong>draw_font</strong>(x, y, string, font, color = [255,255,255]) &#x21d2; Object </a>
685
+
686
+
687
+
688
+ </span>
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+ <span class="summary_desc"><div class='inline'>
699
+ <p>Draw some text on this image.</p>
700
+ </div></span>
701
+
702
+ </li>
703
+
704
+
705
+ <li class="public ">
706
+ <span class="summary_signature">
707
+
708
+ <a href="#draw_rot-instance_method" title="#draw_rot (instance method)">#<strong>draw_rot</strong>(x, y, image, angle, center_x = nil, center_y = nil) &#x21d2; Object </a>
709
+
710
+
711
+
712
+ </span>
713
+
714
+
715
+
716
+
717
+
718
+
719
+
720
+
721
+
722
+ <span class="summary_desc"><div class='inline'>
723
+ <p>Draw an Image on this image with rotation - angle: Rotation angle (radian)
724
+ - center_x, center_y: Rotation center in the `image` (default: center of
725
+ the `image`).</p>
726
+ </div></span>
727
+
728
+ </li>
729
+
730
+
731
+ <li class="public ">
732
+ <span class="summary_signature">
733
+
734
+ <a href="#fill-instance_method" title="#fill (instance method)">#<strong>fill</strong>(color) &#x21d2; Object </a>
735
+
736
+
737
+
738
+ </span>
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+ <span class="summary_desc"><div class='inline'>
749
+ <p>Fill this image with `color`.</p>
750
+ </div></span>
751
+
752
+ </li>
753
+
754
+
755
+ <li class="public ">
756
+ <span class="summary_signature">
757
+
758
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(width, height, color = C_DEFAULT, canvas: nil) &#x21d2; Image </a>
759
+
760
+
761
+
762
+ </span>
763
+
764
+
765
+ <span class="note title constructor">constructor</span>
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+ <span class="summary_desc"><div class='inline'>
775
+ <p>Create an instance of Image.</p>
776
+ </div></span>
777
+
778
+ </li>
779
+
780
+
781
+ <li class="public ">
782
+ <span class="summary_signature">
783
+
784
+ <a href="#line-instance_method" title="#line (instance method)">#<strong>line</strong>(x1, y1, x2, y2, color) &#x21d2; Object </a>
785
+
786
+
787
+
788
+ </span>
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+ <span class="summary_desc"><div class='inline'>
799
+ <p>Draw a line on this image.</p>
800
+ </div></span>
801
+
802
+ </li>
803
+
804
+
805
+ <li class="public ">
806
+ <span class="summary_signature">
807
+
808
+ <a href="#slice-instance_method" title="#slice (instance method)">#<strong>slice</strong>(x, y, width, height) &#x21d2; Object </a>
809
+
810
+
811
+
812
+ </span>
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+ <span class="summary_desc"><div class='inline'>
823
+ <p>Return an Image which is a copy of the specified area.</p>
824
+ </div></span>
825
+
826
+ </li>
827
+
828
+
829
+ <li class="public ">
830
+ <span class="summary_signature">
831
+
832
+ <a href="#slice_tiles-instance_method" title="#slice_tiles (instance method)">#<strong>slice_tiles</strong>(xcount, ycount) &#x21d2; Object </a>
833
+
834
+
835
+
836
+ </span>
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+ <span class="summary_desc"><div class='inline'>
847
+ <p>Slice this image into xcount*ycount tiles.</p>
848
+ </div></span>
849
+
850
+ </li>
851
+
852
+
853
+ <li class="public ">
854
+ <span class="summary_signature">
855
+
856
+ <a href="#triangle-instance_method" title="#triangle (instance method)">#<strong>triangle</strong>(x1, y1, x2, y2, x3, y3, color) &#x21d2; Object </a>
857
+
858
+
859
+
860
+ </span>
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+ <span class="summary_desc"><div class='inline'>
871
+ <p>Draw a triangle on this image.</p>
872
+ </div></span>
873
+
874
+ </li>
875
+
876
+
877
+ <li class="public ">
878
+ <span class="summary_signature">
879
+
880
+ <a href="#triangle_fill-instance_method" title="#triangle_fill (instance method)">#<strong>triangle_fill</strong>(x1, y1, x2, y2, x3, y3, color) &#x21d2; Object </a>
881
+
882
+
883
+
884
+ </span>
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+ <span class="summary_desc"><div class='inline'>
895
+ <p>Draw a filled triangle on this image.</p>
896
+ </div></span>
897
+
898
+ </li>
899
+
900
+
901
+ </ul>
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+ <h3 class="inherited">Methods inherited from <span class='object_link'><a href="RemoteResource.html" title="DXOpal::RemoteResource (class)">RemoteResource</a></span></h3>
914
+ <p class="inherited"><span class='object_link'><a href="RemoteResource.html#[]-class_method" title="DXOpal::RemoteResource.[] (method)">[]</a></span>, <span class='object_link'><a href="RemoteResource.html#_klass_name-class_method" title="DXOpal::RemoteResource._klass_name (method)">_klass_name</a></span>, <span class='object_link'><a href="RemoteResource.html#_load_resources-class_method" title="DXOpal::RemoteResource._load_resources (method)">_load_resources</a></span>, <span class='object_link'><a href="RemoteResource.html#add_class-class_method" title="DXOpal::RemoteResource.add_class (method)">add_class</a></span>, <span class='object_link'><a href="RemoteResource.html#register-class_method" title="DXOpal::RemoteResource.register (method)">register</a></span></p>
915
+ <div id="constructor_details" class="method_details_list">
916
+ <h2>Constructor Details</h2>
917
+
918
+ <div class="method_details first">
919
+ <h3 class="signature first" id="initialize-instance_method">
920
+
921
+ #<strong>initialize</strong>(width, height, color = C_DEFAULT, canvas: nil) &#x21d2; <tt><span class='object_link'><a href="" title="DXOpal::Image (class)">Image</a></span></tt>
922
+
923
+
924
+
925
+
926
+
927
+ </h3><div class="docstring">
928
+ <div class="discussion">
929
+
930
+ <p>Create an instance of Image</p>
931
+
932
+
933
+ </div>
934
+ </div>
935
+ <div class="tags">
936
+
937
+
938
+ </div><table class="source_code">
939
+ <tr>
940
+ <td>
941
+ <pre class="lines">
942
+
943
+
944
+ 30
945
+ 31
946
+ 32
947
+ 33
948
+ 34
949
+ 35
950
+ 36</pre>
951
+ </td>
952
+ <td>
953
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 30</span>
954
+
955
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_height'>height</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='op'>=</span><span class='const'>C_DEFAULT</span><span class='comma'>,</span> <span class='label'>canvas:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
956
+ <span class='ivar'>@width</span><span class='comma'>,</span> <span class='ivar'>@height</span> <span class='op'>=</span> <span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_height'>height</span>
957
+ <span class='ivar'>@canvas</span> <span class='op'>=</span> <span class='id identifier rubyid_canvas'>canvas</span> <span class='op'>||</span> <span class='backtick'>`</span><span class='tstring_content'>document.createElement(&quot;canvas&quot;)</span><span class='tstring_end'>`</span></span>
958
+ <span class='ivar'>@ctx</span> <span class='op'>=</span> <span class='backtick'>`</span><span class='embexpr_beg'>#{</span><span class='ivar'>@canvas</span><span class='embexpr_end'>}</span><span class='tstring_content'>.getContext(&#39;2d&#39;)</span><span class='tstring_end'>`</span></span>
959
+ <span class='id identifier rubyid__resize'>_resize</span><span class='lparen'>(</span><span class='ivar'>@width</span><span class='comma'>,</span> <span class='ivar'>@height</span><span class='rparen'>)</span>
960
+ <span class='id identifier rubyid_box_fill'>box_fill</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='ivar'>@width</span><span class='comma'>,</span> <span class='ivar'>@height</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
961
+ <span class='kw'>end</span></pre>
962
+ </td>
963
+ </tr>
964
+ </table>
965
+ </div>
966
+
967
+ </div>
968
+
969
+ <div id="instance_attr_details" class="attr_details">
970
+ <h2>Instance Attribute Details</h2>
971
+
972
+
973
+ <span id=""></span>
974
+ <div class="method_details first">
975
+ <h3 class="signature first" id="canvas-instance_method">
976
+
977
+ #<strong>canvas</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
978
+
979
+
980
+
981
+
982
+
983
+ </h3><div class="docstring">
984
+ <div class="discussion">
985
+
986
+ <p>Returns the value of attribute canvas</p>
987
+
988
+
989
+ </div>
990
+ </div>
991
+ <div class="tags">
992
+
993
+
994
+ </div><table class="source_code">
995
+ <tr>
996
+ <td>
997
+ <pre class="lines">
998
+
999
+
1000
+ 37
1001
+ 38
1002
+ 39</pre>
1003
+ </td>
1004
+ <td>
1005
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 37</span>
1006
+
1007
+ <span class='kw'>def</span> <span class='id identifier rubyid_canvas'>canvas</span>
1008
+ <span class='ivar'>@canvas</span>
1009
+ <span class='kw'>end</span></pre>
1010
+ </td>
1011
+ </tr>
1012
+ </table>
1013
+ </div>
1014
+
1015
+
1016
+ <span id=""></span>
1017
+ <div class="method_details ">
1018
+ <h3 class="signature " id="ctx-instance_method">
1019
+
1020
+ #<strong>ctx</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+ </h3><div class="docstring">
1027
+ <div class="discussion">
1028
+
1029
+ <p>Returns the value of attribute ctx</p>
1030
+
1031
+
1032
+ </div>
1033
+ </div>
1034
+ <div class="tags">
1035
+
1036
+
1037
+ </div><table class="source_code">
1038
+ <tr>
1039
+ <td>
1040
+ <pre class="lines">
1041
+
1042
+
1043
+ 37
1044
+ 38
1045
+ 39</pre>
1046
+ </td>
1047
+ <td>
1048
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 37</span>
1049
+
1050
+ <span class='kw'>def</span> <span class='id identifier rubyid_ctx'>ctx</span>
1051
+ <span class='ivar'>@ctx</span>
1052
+ <span class='kw'>end</span></pre>
1053
+ </td>
1054
+ </tr>
1055
+ </table>
1056
+ </div>
1057
+
1058
+
1059
+ <span id=""></span>
1060
+ <div class="method_details ">
1061
+ <h3 class="signature " id="height-instance_method">
1062
+
1063
+ #<strong>height</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+ </h3><div class="docstring">
1070
+ <div class="discussion">
1071
+
1072
+ <p>Returns the value of attribute height</p>
1073
+
1074
+
1075
+ </div>
1076
+ </div>
1077
+ <div class="tags">
1078
+
1079
+
1080
+ </div><table class="source_code">
1081
+ <tr>
1082
+ <td>
1083
+ <pre class="lines">
1084
+
1085
+
1086
+ 37
1087
+ 38
1088
+ 39</pre>
1089
+ </td>
1090
+ <td>
1091
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 37</span>
1092
+
1093
+ <span class='kw'>def</span> <span class='id identifier rubyid_height'>height</span>
1094
+ <span class='ivar'>@height</span>
1095
+ <span class='kw'>end</span></pre>
1096
+ </td>
1097
+ </tr>
1098
+ </table>
1099
+ </div>
1100
+
1101
+
1102
+ <span id=""></span>
1103
+ <div class="method_details ">
1104
+ <h3 class="signature " id="width-instance_method">
1105
+
1106
+ #<strong>width</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+ </h3><div class="docstring">
1113
+ <div class="discussion">
1114
+
1115
+ <p>Returns the value of attribute width</p>
1116
+
1117
+
1118
+ </div>
1119
+ </div>
1120
+ <div class="tags">
1121
+
1122
+
1123
+ </div><table class="source_code">
1124
+ <tr>
1125
+ <td>
1126
+ <pre class="lines">
1127
+
1128
+
1129
+ 37
1130
+ 38
1131
+ 39</pre>
1132
+ </td>
1133
+ <td>
1134
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 37</span>
1135
+
1136
+ <span class='kw'>def</span> <span class='id identifier rubyid_width'>width</span>
1137
+ <span class='ivar'>@width</span>
1138
+ <span class='kw'>end</span></pre>
1139
+ </td>
1140
+ </tr>
1141
+ </table>
1142
+ </div>
1143
+
1144
+ </div>
1145
+
1146
+
1147
+ <div id="class_method_details" class="method_details_list">
1148
+ <h2>Class Method Details</h2>
1149
+
1150
+
1151
+ <div class="method_details first">
1152
+ <h3 class="signature first" id="_load-class_method">
1153
+
1154
+ .<strong>_load</strong>(path_or_url) &#x21d2; <tt>Object</tt>
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+ </h3><div class="docstring">
1161
+ <div class="discussion">
1162
+
1163
+ <p>Load remote image (called via Window.load_resources)</p>
1164
+
1165
+
1166
+ </div>
1167
+ </div>
1168
+ <div class="tags">
1169
+
1170
+
1171
+ </div><table class="source_code">
1172
+ <tr>
1173
+ <td>
1174
+ <pre class="lines">
1175
+
1176
+
1177
+ 8
1178
+ 9
1179
+ 10
1180
+ 11
1181
+ 12
1182
+ 13
1183
+ 14
1184
+ 15
1185
+ 16
1186
+ 17
1187
+ 18
1188
+ 19
1189
+ 20
1190
+ 21
1191
+ 22
1192
+ 23
1193
+ 24
1194
+ 25
1195
+ 26
1196
+ 27</pre>
1197
+ </td>
1198
+ <td>
1199
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 8</span>
1200
+
1201
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid__load'>_load</span><span class='lparen'>(</span><span class='id identifier rubyid_path_or_url'>path_or_url</span><span class='rparen'>)</span>
1202
+ <span class='id identifier rubyid_raw_img'>raw_img</span> <span class='op'>=</span> <span class='backtick'>`</span><span class='tstring_content'>new Image()</span><span class='tstring_end'>`</span></span>
1203
+ <span class='id identifier rubyid_img_promise'>img_promise</span> <span class='op'>=</span> <span class='backtick'>%x{</span><span class='tstring_content'>
1204
+ new Promise(function(resolve, reject) {
1205
+ raw_img.onload = function() {
1206
+ resolve(raw_img);
1207
+ };
1208
+ raw_img.src = path_or_url;
1209
+ });
1210
+ </span><span class='tstring_end'>}</span></span>
1211
+
1212
+ <span class='id identifier rubyid_img'>img</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rparen'>)</span>
1213
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1214
+ </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_img_promise'>img_promise</span><span class='embexpr_end'>}</span><span class='tstring_content'>.then(function(raw_img){
1215
+ img.$_resize(raw_img.width, raw_img.height);
1216
+ img.$_draw_raw_image(0, 0, raw_img);
1217
+ });
1218
+ </span><span class='tstring_end'>}</span></span>
1219
+ <span class='kw'>return</span> <span class='id identifier rubyid_img'>img</span><span class='comma'>,</span> <span class='id identifier rubyid_img_promise'>img_promise</span>
1220
+ <span class='kw'>end</span></pre>
1221
+ </td>
1222
+ </tr>
1223
+ </table>
1224
+ </div>
1225
+
1226
+ </div>
1227
+
1228
+ <div id="instance_method_details" class="method_details_list">
1229
+ <h2>Instance Method Details</h2>
1230
+
1231
+
1232
+ <div class="method_details first">
1233
+ <h3 class="signature first" id="[]-instance_method">
1234
+
1235
+ #<strong>[]</strong>(x, y) &#x21d2; <tt>Object</tt>
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+ </h3><div class="docstring">
1242
+ <div class="discussion">
1243
+
1244
+ <p>Get a pixel as ARGB array</p>
1245
+
1246
+
1247
+ </div>
1248
+ </div>
1249
+ <div class="tags">
1250
+
1251
+
1252
+ </div><table class="source_code">
1253
+ <tr>
1254
+ <td>
1255
+ <pre class="lines">
1256
+
1257
+
1258
+ 97
1259
+ 98
1260
+ 99
1261
+ 100
1262
+ 101
1263
+ 102
1264
+ 103
1265
+ 104
1266
+ 105
1267
+ 106</pre>
1268
+ </td>
1269
+ <td>
1270
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 97</span>
1271
+
1272
+ <span class='kw'>def</span> <span class='op'>[]</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='rparen'>)</span>
1273
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
1274
+ <span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='kw'>nil</span>
1275
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1276
+ var pixel = ctx.getImageData(x, y, 1, 1);
1277
+ var rgba = pixel.data;
1278
+ ret = [rgba[3], rgba[0], rgba[1], rgba[2]];
1279
+ </span><span class='tstring_end'>}</span></span>
1280
+ <span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span>
1281
+ <span class='kw'>end</span></pre>
1282
+ </td>
1283
+ </tr>
1284
+ </table>
1285
+ </div>
1286
+
1287
+ <div class="method_details ">
1288
+ <h3 class="signature " id="[]=-instance_method">
1289
+
1290
+ #<strong>[]=</strong>(x, y, color) &#x21d2; <tt>Object</tt>
1291
+
1292
+
1293
+
1294
+
1295
+
1296
+ </h3><div class="docstring">
1297
+ <div class="discussion">
1298
+
1299
+ <p>Put a pixel on this image</p>
1300
+
1301
+
1302
+ </div>
1303
+ </div>
1304
+ <div class="tags">
1305
+
1306
+
1307
+ </div><table class="source_code">
1308
+ <tr>
1309
+ <td>
1310
+ <pre class="lines">
1311
+
1312
+
1313
+ 109
1314
+ 110
1315
+ 111</pre>
1316
+ </td>
1317
+ <td>
1318
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 109</span>
1319
+
1320
+ <span class='kw'>def</span> <span class='op'>[]=</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1321
+ <span class='id identifier rubyid_box_fill'>box_fill</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1322
+ <span class='kw'>end</span></pre>
1323
+ </td>
1324
+ </tr>
1325
+ </table>
1326
+ </div>
1327
+
1328
+ <div class="method_details ">
1329
+ <h3 class="signature " id="_draw_raw_image-instance_method">
1330
+
1331
+ #<strong>_draw_raw_image</strong>(x, y, raw_img) &#x21d2; <tt>Object</tt>
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+ </h3><div class="docstring">
1338
+ <div class="discussion">
1339
+
1340
+ <p>Copy an &lt;img&gt; onto this image</p>
1341
+
1342
+
1343
+ </div>
1344
+ </div>
1345
+ <div class="tags">
1346
+
1347
+
1348
+ </div><table class="source_code">
1349
+ <tr>
1350
+ <td>
1351
+ <pre class="lines">
1352
+
1353
+
1354
+ 250
1355
+ 251
1356
+ 252
1357
+ 253
1358
+ 254</pre>
1359
+ </td>
1360
+ <td>
1361
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 250</span>
1362
+
1363
+ <span class='kw'>def</span> <span class='id identifier rubyid__draw_raw_image'>_draw_raw_image</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_raw_img'>raw_img</span><span class='rparen'>)</span>
1364
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1365
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.drawImage(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_raw_img'>raw_img</span><span class='embexpr_end'>}</span><span class='tstring_content'>, x, y)
1366
+ </span><span class='tstring_end'>}</span></span>
1367
+ <span class='kw'>end</span></pre>
1368
+ </td>
1369
+ </tr>
1370
+ </table>
1371
+ </div>
1372
+
1373
+ <div class="method_details ">
1374
+ <h3 class="signature " id="_image_data-instance_method">
1375
+
1376
+ #<strong>_image_data</strong>(x = 0, y = 0, w = @width, h = @height) &#x21d2; <tt>Object</tt>
1377
+
1378
+
1379
+
1380
+
1381
+
1382
+ </h3><div class="docstring">
1383
+ <div class="discussion">
1384
+
1385
+ <p>Return .getImageData</p>
1386
+
1387
+
1388
+ </div>
1389
+ </div>
1390
+ <div class="tags">
1391
+
1392
+
1393
+ </div><table class="source_code">
1394
+ <tr>
1395
+ <td>
1396
+ <pre class="lines">
1397
+
1398
+
1399
+ 257
1400
+ 258
1401
+ 259</pre>
1402
+ </td>
1403
+ <td>
1404
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 257</span>
1405
+
1406
+ <span class='kw'>def</span> <span class='id identifier rubyid__image_data'>_image_data</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='op'>=</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='op'>=</span><span class='int'>0</span><span class='comma'>,</span> <span class='id identifier rubyid_w'>w</span><span class='op'>=</span><span class='ivar'>@width</span><span class='comma'>,</span> <span class='id identifier rubyid_h'>h</span><span class='op'>=</span><span class='ivar'>@height</span><span class='rparen'>)</span>
1407
+ <span class='kw'>return</span> <span class='backtick'>`</span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.getImageData(x, y, w, h)</span><span class='tstring_end'>`</span></span>
1408
+ <span class='kw'>end</span></pre>
1409
+ </td>
1410
+ </tr>
1411
+ </table>
1412
+ </div>
1413
+
1414
+ <div class="method_details ">
1415
+ <h3 class="signature " id="_put_image_data-instance_method">
1416
+
1417
+ #<strong>_put_image_data</strong>(image_data, x, y) &#x21d2; <tt>Object</tt>
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+ </h3><div class="docstring">
1424
+ <div class="discussion">
1425
+
1426
+ <p>Call .putImageData</p>
1427
+
1428
+
1429
+ </div>
1430
+ </div>
1431
+ <div class="tags">
1432
+
1433
+
1434
+ </div><table class="source_code">
1435
+ <tr>
1436
+ <td>
1437
+ <pre class="lines">
1438
+
1439
+
1440
+ 262
1441
+ 263
1442
+ 264</pre>
1443
+ </td>
1444
+ <td>
1445
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 262</span>
1446
+
1447
+ <span class='kw'>def</span> <span class='id identifier rubyid__put_image_data'>_put_image_data</span><span class='lparen'>(</span><span class='id identifier rubyid_image_data'>image_data</span><span class='comma'>,</span> <span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='rparen'>)</span>
1448
+ <span class='backtick'>`</span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.putImageData(image_data, x, y)</span><span class='tstring_end'>`</span></span>
1449
+ <span class='kw'>end</span></pre>
1450
+ </td>
1451
+ </tr>
1452
+ </table>
1453
+ </div>
1454
+
1455
+ <div class="method_details ">
1456
+ <h3 class="signature " id="_resize-instance_method">
1457
+
1458
+ #<strong>_resize</strong>(w, h) &#x21d2; <tt>Object</tt>
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+ </h3><div class="docstring">
1465
+ <div class="discussion">
1466
+
1467
+ <p>Set size of this image</p>
1468
+
1469
+
1470
+ </div>
1471
+ </div>
1472
+ <div class="tags">
1473
+
1474
+
1475
+ </div><table class="source_code">
1476
+ <tr>
1477
+ <td>
1478
+ <pre class="lines">
1479
+
1480
+
1481
+ 40
1482
+ 41
1483
+ 42
1484
+ 43
1485
+ 44
1486
+ 45
1487
+ 46</pre>
1488
+ </td>
1489
+ <td>
1490
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 40</span>
1491
+
1492
+ <span class='kw'>def</span> <span class='id identifier rubyid__resize'>_resize</span><span class='lparen'>(</span><span class='id identifier rubyid_w'>w</span><span class='comma'>,</span> <span class='id identifier rubyid_h'>h</span><span class='rparen'>)</span>
1493
+ <span class='ivar'>@width</span><span class='comma'>,</span> <span class='ivar'>@height</span> <span class='op'>=</span> <span class='id identifier rubyid_w'>w</span><span class='comma'>,</span> <span class='id identifier rubyid_h'>h</span>
1494
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1495
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@canvas</span><span class='embexpr_end'>}</span><span class='tstring_content'>.width = w;
1496
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@canvas</span><span class='embexpr_end'>}</span><span class='tstring_content'>.height = h;
1497
+ </span><span class='tstring_end'>}</span></span>
1498
+ <span class='kw'>end</span></pre>
1499
+ </td>
1500
+ </tr>
1501
+ </table>
1502
+ </div>
1503
+
1504
+ <div class="method_details ">
1505
+ <h3 class="signature " id="_rgb-instance_method">
1506
+
1507
+ #<strong>_rgb</strong>(color) &#x21d2; <tt>Object</tt>
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+ </h3><div class="docstring">
1514
+ <div class="discussion">
1515
+
1516
+ <p>Return a string like &#39;rgb(255, 255, 255)&#39; `color` is 3 or 4 numbers</p>
1517
+
1518
+
1519
+ </div>
1520
+ </div>
1521
+ <div class="tags">
1522
+
1523
+
1524
+ </div><table class="source_code">
1525
+ <tr>
1526
+ <td>
1527
+ <pre class="lines">
1528
+
1529
+
1530
+ 268
1531
+ 269
1532
+ 270
1533
+ 271
1534
+ 272
1535
+ 273
1536
+ 274
1537
+ 275
1538
+ 276
1539
+ 277
1540
+ 278
1541
+ 279</pre>
1542
+ </td>
1543
+ <td>
1544
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 268</span>
1545
+
1546
+ <span class='kw'>def</span> <span class='id identifier rubyid__rgb'>_rgb</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1547
+ <span class='kw'>case</span> <span class='id identifier rubyid_color'>color</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>
1548
+ <span class='kw'>when</span> <span class='int'>4</span>
1549
+ <span class='comment'># Just ignore alpha
1550
+ </span> <span class='id identifier rubyid_rgb'>rgb</span> <span class='op'>=</span> <span class='id identifier rubyid_color'>color</span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>3</span><span class='rbracket'>]</span>
1551
+ <span class='kw'>when</span> <span class='int'>3</span>
1552
+ <span class='id identifier rubyid_rgb'>rgb</span> <span class='op'>=</span> <span class='id identifier rubyid_color'>color</span>
1553
+ <span class='kw'>else</span>
1554
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>invalid color: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_color'>color</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1555
+ <span class='kw'>end</span>
1556
+ <span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rgb(</span><span class='tstring_end'>&quot;</span></span> <span class='op'>+</span> <span class='id identifier rubyid_rgb'>rgb</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>, </span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span><span class='semicolon'>;</span>
1557
+ <span class='kw'>end</span></pre>
1558
+ </td>
1559
+ </tr>
1560
+ </table>
1561
+ </div>
1562
+
1563
+ <div class="method_details ">
1564
+ <h3 class="signature " id="_rgba-instance_method">
1565
+
1566
+ #<strong>_rgba</strong>(color) &#x21d2; <tt>Object</tt>
1567
+
1568
+
1569
+
1570
+
1571
+
1572
+ </h3><div class="docstring">
1573
+ <div class="discussion">
1574
+
1575
+ <p>Return a string like &#39;rgba(255, 255, 255, 128)&#39; `color` is 3 or 4
1576
+ numbers</p>
1577
+
1578
+
1579
+ </div>
1580
+ </div>
1581
+ <div class="tags">
1582
+
1583
+
1584
+ </div><table class="source_code">
1585
+ <tr>
1586
+ <td>
1587
+ <pre class="lines">
1588
+
1589
+
1590
+ 283
1591
+ 284
1592
+ 285</pre>
1593
+ </td>
1594
+ <td>
1595
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 283</span>
1596
+
1597
+ <span class='kw'>def</span> <span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1598
+ <span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>rgba(</span><span class='tstring_end'>&quot;</span></span> <span class='op'>+</span> <span class='id identifier rubyid__rgba_ary'>_rgba_ary</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>, </span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
1599
+ <span class='kw'>end</span></pre>
1600
+ </td>
1601
+ </tr>
1602
+ </table>
1603
+ </div>
1604
+
1605
+ <div class="method_details ">
1606
+ <h3 class="signature " id="_rgba_ary-instance_method">
1607
+
1608
+ #<strong>_rgba_ary</strong>(color) &#x21d2; <tt>Object</tt>
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+ </h3><div class="docstring">
1615
+ <div class="discussion">
1616
+
1617
+ <p>Return an array like `[255, 255, 255, 128]`</p>
1618
+
1619
+
1620
+ </div>
1621
+ </div>
1622
+ <div class="tags">
1623
+
1624
+
1625
+ </div><table class="source_code">
1626
+ <tr>
1627
+ <td>
1628
+ <pre class="lines">
1629
+
1630
+
1631
+ 288
1632
+ 289
1633
+ 290
1634
+ 291
1635
+ 292
1636
+ 293
1637
+ 294
1638
+ 295
1639
+ 296
1640
+ 297
1641
+ 298
1642
+ 299</pre>
1643
+ </td>
1644
+ <td>
1645
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 288</span>
1646
+
1647
+ <span class='kw'>def</span> <span class='id identifier rubyid__rgba_ary'>_rgba_ary</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1648
+ <span class='kw'>case</span> <span class='id identifier rubyid_color'>color</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span>
1649
+ <span class='kw'>when</span> <span class='int'>4</span>
1650
+ <span class='comment'># color is ARGB in DXRuby, so move A to the last
1651
+ </span> <span class='id identifier rubyid_color'>color</span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span> <span class='int'>3</span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='id identifier rubyid_color'>color</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='op'>/</span><span class='float'>255.0</span><span class='rbracket'>]</span>
1652
+ <span class='kw'>when</span> <span class='int'>3</span>
1653
+ <span class='comment'># Complement 255 as alpha
1654
+ </span> <span class='id identifier rubyid_color'>color</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='float'>1.0</span><span class='rbracket'>]</span>
1655
+ <span class='kw'>else</span>
1656
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>invalid color: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_color'>color</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1657
+ <span class='kw'>end</span>
1658
+ <span class='kw'>end</span></pre>
1659
+ </td>
1660
+ </tr>
1661
+ </table>
1662
+ </div>
1663
+
1664
+ <div class="method_details ">
1665
+ <h3 class="signature " id="box-instance_method">
1666
+
1667
+ #<strong>box</strong>(x1, y1, x2, y2, color) &#x21d2; <tt>Object</tt>
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+ </h3><div class="docstring">
1674
+ <div class="discussion">
1675
+
1676
+ <p>Draw a rectangle on this image</p>
1677
+
1678
+
1679
+ </div>
1680
+ </div>
1681
+ <div class="tags">
1682
+
1683
+
1684
+ </div><table class="source_code">
1685
+ <tr>
1686
+ <td>
1687
+ <pre class="lines">
1688
+
1689
+
1690
+ 145
1691
+ 146
1692
+ 147
1693
+ 148
1694
+ 149
1695
+ 150
1696
+ 151
1697
+ 152
1698
+ 153
1699
+ 154</pre>
1700
+ </td>
1701
+ <td>
1702
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 145</span>
1703
+
1704
+ <span class='kw'>def</span> <span class='id identifier rubyid_box'>box</span><span class='lparen'>(</span><span class='id identifier rubyid_x1'>x1</span><span class='comma'>,</span> <span class='id identifier rubyid_y1'>y1</span><span class='comma'>,</span> <span class='id identifier rubyid_x2'>x2</span><span class='comma'>,</span> <span class='id identifier rubyid_y2'>y2</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1705
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
1706
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1707
+ ctx.beginPath();
1708
+ ctx.strokeStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
1709
+ ctx.rect(x1, y1, x2-x1+1, y2-y1+1);
1710
+ ctx.stroke();
1711
+ </span><span class='tstring_end'>}</span></span>
1712
+ <span class='kw'>return</span> <span class='kw'>self</span>
1713
+ <span class='kw'>end</span></pre>
1714
+ </td>
1715
+ </tr>
1716
+ </table>
1717
+ </div>
1718
+
1719
+ <div class="method_details ">
1720
+ <h3 class="signature " id="box_fill-instance_method">
1721
+
1722
+ #<strong>box_fill</strong>(x1, y1, x2, y2, color) &#x21d2; <tt>Object</tt>
1723
+
1724
+
1725
+
1726
+
1727
+
1728
+ </h3><div class="docstring">
1729
+ <div class="discussion">
1730
+
1731
+ <p>Draw a filled box on this image</p>
1732
+
1733
+
1734
+ </div>
1735
+ </div>
1736
+ <div class="tags">
1737
+
1738
+
1739
+ </div><table class="source_code">
1740
+ <tr>
1741
+ <td>
1742
+ <pre class="lines">
1743
+
1744
+
1745
+ 157
1746
+ 158
1747
+ 159
1748
+ 160
1749
+ 161
1750
+ 162
1751
+ 163
1752
+ 164
1753
+ 165</pre>
1754
+ </td>
1755
+ <td>
1756
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 157</span>
1757
+
1758
+ <span class='kw'>def</span> <span class='id identifier rubyid_box_fill'>box_fill</span><span class='lparen'>(</span><span class='id identifier rubyid_x1'>x1</span><span class='comma'>,</span> <span class='id identifier rubyid_y1'>y1</span><span class='comma'>,</span> <span class='id identifier rubyid_x2'>x2</span><span class='comma'>,</span> <span class='id identifier rubyid_y2'>y2</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1759
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
1760
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1761
+ ctx.beginPath();
1762
+ ctx.fillStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
1763
+ ctx.fillRect(x1, y1, x2-x1+1, y2-y1+1);
1764
+ </span><span class='tstring_end'>}</span></span>
1765
+ <span class='kw'>return</span> <span class='kw'>self</span>
1766
+ <span class='kw'>end</span></pre>
1767
+ </td>
1768
+ </tr>
1769
+ </table>
1770
+ </div>
1771
+
1772
+ <div class="method_details ">
1773
+ <h3 class="signature " id="circle-instance_method">
1774
+
1775
+ #<strong>circle</strong>(x, y, r, color) &#x21d2; <tt>Object</tt>
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+ </h3><div class="docstring">
1782
+ <div class="discussion">
1783
+
1784
+ <p>Draw a circle on this image</p>
1785
+
1786
+
1787
+ </div>
1788
+ </div>
1789
+ <div class="tags">
1790
+
1791
+
1792
+ </div><table class="source_code">
1793
+ <tr>
1794
+ <td>
1795
+ <pre class="lines">
1796
+
1797
+
1798
+ 168
1799
+ 169
1800
+ 170
1801
+ 171
1802
+ 172
1803
+ 173
1804
+ 174
1805
+ 175
1806
+ 176
1807
+ 177</pre>
1808
+ </td>
1809
+ <td>
1810
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 168</span>
1811
+
1812
+ <span class='kw'>def</span> <span class='id identifier rubyid_circle'>circle</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1813
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
1814
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1815
+ ctx.beginPath();
1816
+ ctx.strokeStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
1817
+ ctx.arc(x, y, r, 0, Math.PI*2, false)
1818
+ ctx.stroke();
1819
+ </span><span class='tstring_end'>}</span></span>
1820
+ <span class='kw'>return</span> <span class='kw'>self</span>
1821
+ <span class='kw'>end</span></pre>
1822
+ </td>
1823
+ </tr>
1824
+ </table>
1825
+ </div>
1826
+
1827
+ <div class="method_details ">
1828
+ <h3 class="signature " id="circle_fill-instance_method">
1829
+
1830
+ #<strong>circle_fill</strong>(x, y, r, color) &#x21d2; <tt>Object</tt>
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+ </h3><div class="docstring">
1837
+ <div class="discussion">
1838
+
1839
+ <p>Draw a filled circle on this image</p>
1840
+
1841
+
1842
+ </div>
1843
+ </div>
1844
+ <div class="tags">
1845
+
1846
+
1847
+ </div><table class="source_code">
1848
+ <tr>
1849
+ <td>
1850
+ <pre class="lines">
1851
+
1852
+
1853
+ 180
1854
+ 181
1855
+ 182
1856
+ 183
1857
+ 184
1858
+ 185
1859
+ 186
1860
+ 187
1861
+ 188
1862
+ 189</pre>
1863
+ </td>
1864
+ <td>
1865
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 180</span>
1866
+
1867
+ <span class='kw'>def</span> <span class='id identifier rubyid_circle_fill'>circle_fill</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_r'>r</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1868
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
1869
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1870
+ ctx.beginPath();
1871
+ ctx.fillStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
1872
+ ctx.arc(x, y, r, 0, Math.PI*2, false)
1873
+ ctx.fill();
1874
+ </span><span class='tstring_end'>}</span></span>
1875
+ <span class='kw'>return</span> <span class='kw'>self</span>
1876
+ <span class='kw'>end</span></pre>
1877
+ </td>
1878
+ </tr>
1879
+ </table>
1880
+ </div>
1881
+
1882
+ <div class="method_details ">
1883
+ <h3 class="signature " id="clear-instance_method">
1884
+
1885
+ #<strong>clear</strong> &#x21d2; <tt>Object</tt>
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+ </h3><div class="docstring">
1892
+ <div class="discussion">
1893
+
1894
+ <p>Clear this image (i.e. fill with `[0,0,0,0]`)</p>
1895
+
1896
+
1897
+ </div>
1898
+ </div>
1899
+ <div class="tags">
1900
+
1901
+
1902
+ </div><table class="source_code">
1903
+ <tr>
1904
+ <td>
1905
+ <pre class="lines">
1906
+
1907
+
1908
+ 226
1909
+ 227
1910
+ 228</pre>
1911
+ </td>
1912
+ <td>
1913
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 226</span>
1914
+
1915
+ <span class='kw'>def</span> <span class='id identifier rubyid_clear'>clear</span>
1916
+ <span class='id identifier rubyid_fill'>fill</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1917
+ <span class='kw'>end</span></pre>
1918
+ </td>
1919
+ </tr>
1920
+ </table>
1921
+ </div>
1922
+
1923
+ <div class="method_details ">
1924
+ <h3 class="signature " id="compare-instance_method">
1925
+
1926
+ #<strong>compare</strong>(x, y, color) &#x21d2; <tt>Object</tt>
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+ </h3><div class="docstring">
1933
+ <div class="discussion">
1934
+
1935
+ <p>Return true if the pixel at `(x, y)` has the `color`</p>
1936
+
1937
+
1938
+ </div>
1939
+ </div>
1940
+ <div class="tags">
1941
+
1942
+
1943
+ </div><table class="source_code">
1944
+ <tr>
1945
+ <td>
1946
+ <pre class="lines">
1947
+
1948
+
1949
+ 114
1950
+ 115
1951
+ 116
1952
+ 117
1953
+ 118
1954
+ 119
1955
+ 120
1956
+ 121
1957
+ 122
1958
+ 123
1959
+ 124
1960
+ 125
1961
+ 126
1962
+ 127
1963
+ 128
1964
+ 129</pre>
1965
+ </td>
1966
+ <td>
1967
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 114</span>
1968
+
1969
+ <span class='kw'>def</span> <span class='id identifier rubyid_compare'>compare</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1970
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
1971
+ <span class='id identifier rubyid_rgba1'>rgba1</span> <span class='op'>=</span> <span class='id identifier rubyid__rgba_ary'>_rgba_ary</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
1972
+ <span class='id identifier rubyid_rgba2'>rgba2</span> <span class='op'>=</span> <span class='kw'>nil</span>
1973
+ <span class='id identifier rubyid_ret'>ret</span> <span class='op'>=</span> <span class='kw'>nil</span>
1974
+ <span class='backtick'>%x{</span><span class='tstring_content'>
1975
+ var pixel = ctx.getImageData(x, y, 1, 1);
1976
+ rgba2 = pixel.data;
1977
+ // TODO: what is the right way to compare an Array and an Uint8ClampedArray?
1978
+ ret = rgba1[0] == rgba2[0] &amp;&amp;
1979
+ rgba1[1] == rgba2[1] &amp;&amp;
1980
+ rgba1[2] == rgba2[2] &amp;&amp;
1981
+ rgba1[3] == rgba2[3]
1982
+ </span><span class='tstring_end'>}</span></span>
1983
+ <span class='kw'>return</span> <span class='id identifier rubyid_ret'>ret</span>
1984
+ <span class='kw'>end</span></pre>
1985
+ </td>
1986
+ </tr>
1987
+ </table>
1988
+ </div>
1989
+
1990
+ <div class="method_details ">
1991
+ <h3 class="signature " id="draw-instance_method">
1992
+
1993
+ #<strong>draw</strong>(x, y, image) &#x21d2; <tt>Object</tt>
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+ </h3><div class="docstring">
2000
+ <div class="discussion">
2001
+
2002
+ <p>Draw an Image on this image</p>
2003
+
2004
+
2005
+ </div>
2006
+ </div>
2007
+ <div class="tags">
2008
+
2009
+
2010
+ </div><table class="source_code">
2011
+ <tr>
2012
+ <td>
2013
+ <pre class="lines">
2014
+
2015
+
2016
+ 49
2017
+ 50
2018
+ 51
2019
+ 52
2020
+ 53
2021
+ 54</pre>
2022
+ </td>
2023
+ <td>
2024
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 49</span>
2025
+
2026
+ <span class='kw'>def</span> <span class='id identifier rubyid_draw'>draw</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_image'>image</span><span class='rparen'>)</span>
2027
+ <span class='backtick'>%x{</span><span class='tstring_content'>
2028
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.drawImage(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_image'>image</span><span class='period'>.</span><span class='id identifier rubyid_canvas'>canvas</span><span class='embexpr_end'>}</span><span class='tstring_content'>, x, y);
2029
+ </span><span class='tstring_end'>}</span></span>
2030
+ <span class='kw'>return</span> <span class='kw'>self</span>
2031
+ <span class='kw'>end</span></pre>
2032
+ </td>
2033
+ </tr>
2034
+ </table>
2035
+ </div>
2036
+
2037
+ <div class="method_details ">
2038
+ <h3 class="signature " id="draw_ex-instance_method">
2039
+
2040
+ #<strong>draw_ex</strong>(x, y, image, options = {}) &#x21d2; <tt>Object</tt>
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+ </h3><table class="source_code">
2047
+ <tr>
2048
+ <td>
2049
+ <pre class="lines">
2050
+
2051
+
2052
+ 63
2053
+ 64
2054
+ 65
2055
+ 66
2056
+ 67
2057
+ 68
2058
+ 69
2059
+ 70
2060
+ 71
2061
+ 72
2062
+ 73
2063
+ 74
2064
+ 75
2065
+ 76
2066
+ 77
2067
+ 78
2068
+ 79
2069
+ 80
2070
+ 81
2071
+ 82</pre>
2072
+ </td>
2073
+ <td>
2074
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 63</span>
2075
+
2076
+ <span class='kw'>def</span> <span class='id identifier rubyid_draw_ex'>draw_ex</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_image'>image</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='op'>=</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
2077
+ <span class='id identifier rubyid_scale_x'>scale_x</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:scale_x</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='int'>1</span>
2078
+ <span class='id identifier rubyid_scale_y'>scale_y</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:scale_y</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='int'>1</span>
2079
+ <span class='id identifier rubyid_center_x'>center_x</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:center_x</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_image'>image</span><span class='period'>.</span><span class='id identifier rubyid_width'>width</span><span class='op'>/</span><span class='int'>2</span>
2080
+ <span class='id identifier rubyid_center_y'>center_y</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:center_y</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='id identifier rubyid_image'>image</span><span class='period'>.</span><span class='id identifier rubyid_height'>height</span><span class='op'>/</span><span class='int'>2</span>
2081
+ <span class='comment'># TODO: alpha
2082
+ </span> <span class='comment'># TODO: blend
2083
+ </span> <span class='id identifier rubyid_angle'>angle</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:angle</span><span class='rbracket'>]</span> <span class='op'>||</span> <span class='int'>0</span>
2084
+
2085
+ <span class='id identifier rubyid_cx'>cx</span> <span class='op'>=</span> <span class='id identifier rubyid_x'>x</span> <span class='op'>+</span> <span class='id identifier rubyid_center_x'>center_x</span>
2086
+ <span class='id identifier rubyid_cy'>cy</span> <span class='op'>=</span> <span class='id identifier rubyid_y'>y</span> <span class='op'>+</span> <span class='id identifier rubyid_center_y'>center_y</span>
2087
+ <span class='backtick'>%x{</span><span class='tstring_content'>
2088
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.translate(cx, cy);
2089
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.rotate(angle * Math.PI / 180.0);
2090
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.scale(scale_x, scale_y);
2091
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.drawImage(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_image'>image</span><span class='period'>.</span><span class='id identifier rubyid_canvas'>canvas</span><span class='embexpr_end'>}</span><span class='tstring_content'>, x-cx, y-cy);
2092
+ </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ctx</span><span class='embexpr_end'>}</span><span class='tstring_content'>.setTransform(1, 0, 0, 1, 0, 0); // reset
2093
+ </span><span class='tstring_end'>}</span></span>
2094
+ <span class='kw'>return</span> <span class='kw'>self</span>
2095
+ <span class='kw'>end</span></pre>
2096
+ </td>
2097
+ </tr>
2098
+ </table>
2099
+ </div>
2100
+
2101
+ <div class="method_details ">
2102
+ <h3 class="signature " id="draw_font-instance_method">
2103
+
2104
+ #<strong>draw_font</strong>(x, y, string, font, color = [255,255,255]) &#x21d2; <tt>Object</tt>
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+ </h3><div class="docstring">
2111
+ <div class="discussion">
2112
+
2113
+ <p>Draw some text on this image</p>
2114
+
2115
+
2116
+ </div>
2117
+ </div>
2118
+ <div class="tags">
2119
+
2120
+
2121
+ </div><table class="source_code">
2122
+ <tr>
2123
+ <td>
2124
+ <pre class="lines">
2125
+
2126
+
2127
+ 85
2128
+ 86
2129
+ 87
2130
+ 88
2131
+ 89
2132
+ 90
2133
+ 91
2134
+ 92
2135
+ 93
2136
+ 94</pre>
2137
+ </td>
2138
+ <td>
2139
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 85</span>
2140
+
2141
+ <span class='kw'>def</span> <span class='id identifier rubyid_draw_font'>draw_font</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_string'>string</span><span class='comma'>,</span> <span class='id identifier rubyid_font'>font</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='op'>=</span><span class='lbracket'>[</span><span class='int'>255</span><span class='comma'>,</span><span class='int'>255</span><span class='comma'>,</span><span class='int'>255</span><span class='rbracket'>]</span><span class='rparen'>)</span>
2142
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
2143
+ <span class='backtick'>%x{</span><span class='tstring_content'>
2144
+ ctx.font = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_font'>font</span><span class='period'>.</span><span class='id identifier rubyid__spec_str'>_spec_str</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
2145
+ ctx.textBaseline = &#39;top&#39;;
2146
+ ctx.fillStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
2147
+ ctx.fillText(string, x, y);
2148
+ </span><span class='tstring_end'>}</span></span>
2149
+ <span class='kw'>return</span> <span class='kw'>self</span>
2150
+ <span class='kw'>end</span></pre>
2151
+ </td>
2152
+ </tr>
2153
+ </table>
2154
+ </div>
2155
+
2156
+ <div class="method_details ">
2157
+ <h3 class="signature " id="draw_rot-instance_method">
2158
+
2159
+ #<strong>draw_rot</strong>(x, y, image, angle, center_x = nil, center_y = nil) &#x21d2; <tt>Object</tt>
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+ </h3><div class="docstring">
2166
+ <div class="discussion">
2167
+
2168
+ <p>Draw an Image on this image with rotation</p>
2169
+ <ul><li>
2170
+ <p>angle: Rotation angle (radian)</p>
2171
+ </li><li>
2172
+ <p>center_x, center_y: Rotation center in the `image` (default: center of the
2173
+ `image`)</p>
2174
+ </li></ul>
2175
+
2176
+
2177
+ </div>
2178
+ </div>
2179
+ <div class="tags">
2180
+
2181
+
2182
+ </div><table class="source_code">
2183
+ <tr>
2184
+ <td>
2185
+ <pre class="lines">
2186
+
2187
+
2188
+ 59
2189
+ 60
2190
+ 61</pre>
2191
+ </td>
2192
+ <td>
2193
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 59</span>
2194
+
2195
+ <span class='kw'>def</span> <span class='id identifier rubyid_draw_rot'>draw_rot</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_image'>image</span><span class='comma'>,</span> <span class='id identifier rubyid_angle'>angle</span><span class='comma'>,</span> <span class='id identifier rubyid_center_x'>center_x</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_center_y'>center_y</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
2196
+ <span class='id identifier rubyid_draw_ex'>draw_ex</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_image'>image</span><span class='comma'>,</span> <span class='label'>angle:</span> <span class='id identifier rubyid_angle'>angle</span><span class='comma'>,</span> <span class='label'>center_x:</span> <span class='id identifier rubyid_center_x'>center_x</span><span class='comma'>,</span> <span class='label'>center_y:</span> <span class='id identifier rubyid_center_y'>center_y</span><span class='rparen'>)</span>
2197
+ <span class='kw'>end</span></pre>
2198
+ </td>
2199
+ </tr>
2200
+ </table>
2201
+ </div>
2202
+
2203
+ <div class="method_details ">
2204
+ <h3 class="signature " id="fill-instance_method">
2205
+
2206
+ #<strong>fill</strong>(color) &#x21d2; <tt>Object</tt>
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+ </h3><div class="docstring">
2213
+ <div class="discussion">
2214
+
2215
+ <p>Fill this image with `color`</p>
2216
+
2217
+
2218
+ </div>
2219
+ </div>
2220
+ <div class="tags">
2221
+
2222
+
2223
+ </div><table class="source_code">
2224
+ <tr>
2225
+ <td>
2226
+ <pre class="lines">
2227
+
2228
+
2229
+ 221
2230
+ 222
2231
+ 223</pre>
2232
+ </td>
2233
+ <td>
2234
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 221</span>
2235
+
2236
+ <span class='kw'>def</span> <span class='id identifier rubyid_fill'>fill</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
2237
+ <span class='id identifier rubyid_box_fill'>box_fill</span><span class='lparen'>(</span><span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='ivar'>@width</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='ivar'>@height</span><span class='op'>-</span><span class='int'>1</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
2238
+ <span class='kw'>end</span></pre>
2239
+ </td>
2240
+ </tr>
2241
+ </table>
2242
+ </div>
2243
+
2244
+ <div class="method_details ">
2245
+ <h3 class="signature " id="line-instance_method">
2246
+
2247
+ #<strong>line</strong>(x1, y1, x2, y2, color) &#x21d2; <tt>Object</tt>
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+ </h3><div class="docstring">
2254
+ <div class="discussion">
2255
+
2256
+ <p>Draw a line on this image</p>
2257
+
2258
+
2259
+ </div>
2260
+ </div>
2261
+ <div class="tags">
2262
+
2263
+
2264
+ </div><table class="source_code">
2265
+ <tr>
2266
+ <td>
2267
+ <pre class="lines">
2268
+
2269
+
2270
+ 132
2271
+ 133
2272
+ 134
2273
+ 135
2274
+ 136
2275
+ 137
2276
+ 138
2277
+ 139
2278
+ 140
2279
+ 141
2280
+ 142</pre>
2281
+ </td>
2282
+ <td>
2283
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 132</span>
2284
+
2285
+ <span class='kw'>def</span> <span class='id identifier rubyid_line'>line</span><span class='lparen'>(</span><span class='id identifier rubyid_x1'>x1</span><span class='comma'>,</span> <span class='id identifier rubyid_y1'>y1</span><span class='comma'>,</span> <span class='id identifier rubyid_x2'>x2</span><span class='comma'>,</span> <span class='id identifier rubyid_y2'>y2</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
2286
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
2287
+ <span class='backtick'>%x{</span><span class='tstring_content'>
2288
+ ctx.beginPath();
2289
+ ctx.strokeStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
2290
+ ctx.moveTo(x1, y1);
2291
+ ctx.lineTo(x2, y2);
2292
+ ctx.stroke();
2293
+ </span><span class='tstring_end'>}</span></span>
2294
+ <span class='kw'>return</span> <span class='kw'>self</span>
2295
+ <span class='kw'>end</span></pre>
2296
+ </td>
2297
+ </tr>
2298
+ </table>
2299
+ </div>
2300
+
2301
+ <div class="method_details ">
2302
+ <h3 class="signature " id="slice-instance_method">
2303
+
2304
+ #<strong>slice</strong>(x, y, width, height) &#x21d2; <tt>Object</tt>
2305
+
2306
+
2307
+
2308
+
2309
+
2310
+ </h3><div class="docstring">
2311
+ <div class="discussion">
2312
+
2313
+ <p>Return an Image which is a copy of the specified area</p>
2314
+
2315
+
2316
+ </div>
2317
+ </div>
2318
+ <div class="tags">
2319
+
2320
+
2321
+ </div><table class="source_code">
2322
+ <tr>
2323
+ <td>
2324
+ <pre class="lines">
2325
+
2326
+
2327
+ 231
2328
+ 232
2329
+ 233
2330
+ 234
2331
+ 235
2332
+ 236</pre>
2333
+ </td>
2334
+ <td>
2335
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 231</span>
2336
+
2337
+ <span class='kw'>def</span> <span class='id identifier rubyid_slice'>slice</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_height'>height</span><span class='rparen'>)</span>
2338
+ <span class='id identifier rubyid_newimg'>newimg</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="" title="DXOpal::Image (class)">Image</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="DXOpal::Image#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_height'>height</span><span class='rparen'>)</span>
2339
+ <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid__image_data'>_image_data</span><span class='lparen'>(</span><span class='id identifier rubyid_x'>x</span><span class='comma'>,</span> <span class='id identifier rubyid_y'>y</span><span class='comma'>,</span> <span class='id identifier rubyid_width'>width</span><span class='comma'>,</span> <span class='id identifier rubyid_height'>height</span><span class='rparen'>)</span>
2340
+ <span class='id identifier rubyid_newimg'>newimg</span><span class='period'>.</span><span class='id identifier rubyid__put_image_data'>_put_image_data</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='int'>0</span><span class='comma'>,</span> <span class='int'>0</span><span class='rparen'>)</span>
2341
+ <span class='kw'>return</span> <span class='id identifier rubyid_newimg'>newimg</span>
2342
+ <span class='kw'>end</span></pre>
2343
+ </td>
2344
+ </tr>
2345
+ </table>
2346
+ </div>
2347
+
2348
+ <div class="method_details ">
2349
+ <h3 class="signature " id="slice_tiles-instance_method">
2350
+
2351
+ #<strong>slice_tiles</strong>(xcount, ycount) &#x21d2; <tt>Object</tt>
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+ </h3><div class="docstring">
2358
+ <div class="discussion">
2359
+
2360
+ <p>Slice this image into xcount*ycount tiles</p>
2361
+
2362
+
2363
+ </div>
2364
+ </div>
2365
+ <div class="tags">
2366
+
2367
+
2368
+ </div><table class="source_code">
2369
+ <tr>
2370
+ <td>
2371
+ <pre class="lines">
2372
+
2373
+
2374
+ 239
2375
+ 240
2376
+ 241
2377
+ 242
2378
+ 243
2379
+ 244
2380
+ 245
2381
+ 246
2382
+ 247</pre>
2383
+ </td>
2384
+ <td>
2385
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 239</span>
2386
+
2387
+ <span class='kw'>def</span> <span class='id identifier rubyid_slice_tiles'>slice_tiles</span><span class='lparen'>(</span><span class='id identifier rubyid_xcount'>xcount</span><span class='comma'>,</span> <span class='id identifier rubyid_ycount'>ycount</span><span class='rparen'>)</span>
2388
+ <span class='id identifier rubyid_tile_w'>tile_w</span> <span class='op'>=</span> <span class='ivar'>@width</span> <span class='op'>/</span> <span class='id identifier rubyid_xcount'>xcount</span>
2389
+ <span class='id identifier rubyid_tile_h'>tile_h</span> <span class='op'>=</span> <span class='ivar'>@height</span> <span class='op'>/</span> <span class='id identifier rubyid_ycount'>ycount</span>
2390
+ <span class='kw'>return</span> <span class='lparen'>(</span><span class='int'>0</span><span class='op'>...</span><span class='id identifier rubyid_ycount'>ycount</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_flat_map'>flat_map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span>
2391
+ <span class='lparen'>(</span><span class='int'>0</span><span class='op'>...</span><span class='id identifier rubyid_xcount'>xcount</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_u'>u</span><span class='op'>|</span>
2392
+ <span class='id identifier rubyid_slice'>slice</span><span class='lparen'>(</span><span class='id identifier rubyid_tile_w'>tile_w</span> <span class='op'>*</span> <span class='id identifier rubyid_u'>u</span><span class='comma'>,</span> <span class='id identifier rubyid_tile_h'>tile_h</span> <span class='op'>*</span> <span class='id identifier rubyid_v'>v</span><span class='comma'>,</span> <span class='id identifier rubyid_tile_w'>tile_w</span><span class='comma'>,</span> <span class='id identifier rubyid_tile_h'>tile_h</span><span class='rparen'>)</span>
2393
+ <span class='rbrace'>}</span>
2394
+ <span class='rbrace'>}</span>
2395
+ <span class='kw'>end</span></pre>
2396
+ </td>
2397
+ </tr>
2398
+ </table>
2399
+ </div>
2400
+
2401
+ <div class="method_details ">
2402
+ <h3 class="signature " id="triangle-instance_method">
2403
+
2404
+ #<strong>triangle</strong>(x1, y1, x2, y2, x3, y3, color) &#x21d2; <tt>Object</tt>
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+ </h3><div class="docstring">
2411
+ <div class="discussion">
2412
+
2413
+ <p>Draw a triangle on this image</p>
2414
+
2415
+
2416
+ </div>
2417
+ </div>
2418
+ <div class="tags">
2419
+
2420
+
2421
+ </div><table class="source_code">
2422
+ <tr>
2423
+ <td>
2424
+ <pre class="lines">
2425
+
2426
+
2427
+ 192
2428
+ 193
2429
+ 194
2430
+ 195
2431
+ 196
2432
+ 197
2433
+ 198
2434
+ 199
2435
+ 200
2436
+ 201
2437
+ 202
2438
+ 203
2439
+ 204</pre>
2440
+ </td>
2441
+ <td>
2442
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 192</span>
2443
+
2444
+ <span class='kw'>def</span> <span class='id identifier rubyid_triangle'>triangle</span><span class='lparen'>(</span><span class='id identifier rubyid_x1'>x1</span><span class='comma'>,</span> <span class='id identifier rubyid_y1'>y1</span><span class='comma'>,</span> <span class='id identifier rubyid_x2'>x2</span><span class='comma'>,</span> <span class='id identifier rubyid_y2'>y2</span><span class='comma'>,</span> <span class='id identifier rubyid_x3'>x3</span><span class='comma'>,</span> <span class='id identifier rubyid_y3'>y3</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
2445
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
2446
+ <span class='backtick'>%x{</span><span class='tstring_content'>
2447
+ ctx.beginPath();
2448
+ ctx.strokeStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
2449
+ ctx.moveTo(x1, y1);
2450
+ ctx.lineTo(x2, y2);
2451
+ ctx.lineTo(x3, y3);
2452
+ ctx.lineTo(x1, y1);
2453
+ ctx.stroke();
2454
+ </span><span class='tstring_end'>}</span></span>
2455
+ <span class='kw'>return</span> <span class='kw'>self</span>
2456
+ <span class='kw'>end</span></pre>
2457
+ </td>
2458
+ </tr>
2459
+ </table>
2460
+ </div>
2461
+
2462
+ <div class="method_details ">
2463
+ <h3 class="signature " id="triangle_fill-instance_method">
2464
+
2465
+ #<strong>triangle_fill</strong>(x1, y1, x2, y2, x3, y3, color) &#x21d2; <tt>Object</tt>
2466
+
2467
+
2468
+
2469
+
2470
+
2471
+ </h3><div class="docstring">
2472
+ <div class="discussion">
2473
+
2474
+ <p>Draw a filled triangle on this image</p>
2475
+
2476
+
2477
+ </div>
2478
+ </div>
2479
+ <div class="tags">
2480
+
2481
+
2482
+ </div><table class="source_code">
2483
+ <tr>
2484
+ <td>
2485
+ <pre class="lines">
2486
+
2487
+
2488
+ 207
2489
+ 208
2490
+ 209
2491
+ 210
2492
+ 211
2493
+ 212
2494
+ 213
2495
+ 214
2496
+ 215
2497
+ 216
2498
+ 217
2499
+ 218</pre>
2500
+ </td>
2501
+ <td>
2502
+ <pre class="code"><span class="info file"># File 'opal/dxopal/image.rb', line 207</span>
2503
+
2504
+ <span class='kw'>def</span> <span class='id identifier rubyid_triangle_fill'>triangle_fill</span><span class='lparen'>(</span><span class='id identifier rubyid_x1'>x1</span><span class='comma'>,</span> <span class='id identifier rubyid_y1'>y1</span><span class='comma'>,</span> <span class='id identifier rubyid_x2'>x2</span><span class='comma'>,</span> <span class='id identifier rubyid_y2'>y2</span><span class='comma'>,</span> <span class='id identifier rubyid_x3'>x3</span><span class='comma'>,</span> <span class='id identifier rubyid_y3'>y3</span><span class='comma'>,</span> <span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span>
2505
+ <span class='id identifier rubyid_ctx'>ctx</span> <span class='op'>=</span> <span class='ivar'>@ctx</span>
2506
+ <span class='backtick'>%x{</span><span class='tstring_content'>
2507
+ ctx.beginPath();
2508
+ ctx.fillStyle = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid__rgba'>_rgba</span><span class='lparen'>(</span><span class='id identifier rubyid_color'>color</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
2509
+ ctx.moveTo(x1, y1);
2510
+ ctx.lineTo(x2, y2);
2511
+ ctx.lineTo(x3, y3);
2512
+ ctx.fill();
2513
+ </span><span class='tstring_end'>}</span></span>
2514
+ <span class='kw'>return</span> <span class='kw'>self</span>
2515
+ <span class='kw'>end</span></pre>
2516
+ </td>
2517
+ </tr>
2518
+ </table>
2519
+ </div>
2520
+
2521
+ </div>
2522
+
2523
+ </div>
2524
+
2525
+ <div id="footer">
2526
+ Generated on Tue Oct 17 13:56:27 2017 by
2527
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2528
+ 0.9.9 (ruby-2.4.2).
2529
+ </div>
2530
+
2531
+ </div>
2532
+ </body>
2533
+ </html>