melonjs 15.1.4 → 15.1.6

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 (174) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  5. package/dist/melonjs.mjs/application/application.js +1 -1
  6. package/dist/melonjs.mjs/application/header.js +1 -1
  7. package/dist/melonjs.mjs/application/resize.js +1 -1
  8. package/dist/melonjs.mjs/application/settings.js +1 -1
  9. package/dist/melonjs.mjs/audio/audio.js +1 -1
  10. package/dist/melonjs.mjs/camera/camera2d.js +3 -3
  11. package/dist/melonjs.mjs/const.js +1 -1
  12. package/dist/melonjs.mjs/entity/entity.js +3 -6
  13. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  14. package/dist/melonjs.mjs/geometries/line.js +1 -1
  15. package/dist/melonjs.mjs/geometries/path2d.js +5 -5
  16. package/dist/melonjs.mjs/geometries/point.js +1 -1
  17. package/dist/melonjs.mjs/geometries/poly.js +3 -3
  18. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  19. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  20. package/dist/melonjs.mjs/index.js +4 -3
  21. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  22. package/dist/melonjs.mjs/input/input.js +1 -1
  23. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  24. package/dist/melonjs.mjs/input/pointer.js +1 -1
  25. package/dist/melonjs.mjs/input/pointerevent.js +10 -10
  26. package/dist/melonjs.mjs/lang/console.js +1 -1
  27. package/dist/melonjs.mjs/lang/deprecated.js +3 -2
  28. package/dist/melonjs.mjs/level/level.js +1 -1
  29. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +4 -4
  31. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +4 -4
  37. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +2 -2
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -1
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  44. package/dist/melonjs.mjs/loader/cache.js +1 -1
  45. package/dist/melonjs.mjs/loader/loader.js +4 -3
  46. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  47. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  48. package/dist/melonjs.mjs/loader/parser.js +1 -1
  49. package/dist/melonjs.mjs/loader/settings.js +1 -1
  50. package/dist/melonjs.mjs/math/color.js +1 -1
  51. package/dist/melonjs.mjs/math/math.js +1 -1
  52. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  53. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  54. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  55. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  56. package/dist/melonjs.mjs/math/vector2.js +1 -1
  57. package/dist/melonjs.mjs/math/vector3.js +1 -1
  58. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  64. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  65. package/dist/melonjs.mjs/particles/particle.js +1 -1
  66. package/dist/melonjs.mjs/particles/settings.js +1 -1
  67. package/dist/melonjs.mjs/physics/body.js +3 -3
  68. package/dist/melonjs.mjs/physics/bounds.js +2 -2
  69. package/dist/melonjs.mjs/physics/collision.js +1 -1
  70. package/dist/melonjs.mjs/physics/detector.js +5 -5
  71. package/dist/melonjs.mjs/physics/quadtree.js +2 -2
  72. package/dist/melonjs.mjs/physics/response.js +1 -1
  73. package/dist/melonjs.mjs/physics/sat.js +13 -12
  74. package/dist/melonjs.mjs/physics/world.js +1 -1
  75. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  76. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  77. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  78. package/dist/melonjs.mjs/renderable/container.js +48 -38
  79. package/dist/melonjs.mjs/renderable/draggable.js +121 -0
  80. package/dist/melonjs.mjs/renderable/dragndrop.js +3 -113
  81. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  82. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  83. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  84. package/dist/melonjs.mjs/renderable/renderable.js +7 -10
  85. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  86. package/dist/melonjs.mjs/renderable/trigger.js +2 -2
  87. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +7 -4
  88. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +8 -2
  89. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  90. package/dist/melonjs.mjs/state/stage.js +1 -1
  91. package/dist/melonjs.mjs/state/state.js +1 -1
  92. package/dist/melonjs.mjs/system/device.js +1 -1
  93. package/dist/melonjs.mjs/system/dom.js +1 -1
  94. package/dist/melonjs.mjs/system/event.js +1 -1
  95. package/dist/melonjs.mjs/system/platform.js +1 -1
  96. package/dist/melonjs.mjs/system/pooling.js +1 -1
  97. package/dist/melonjs.mjs/system/save.js +1 -1
  98. package/dist/melonjs.mjs/system/timer.js +1 -1
  99. package/dist/melonjs.mjs/text/bitmaptext.js +3 -3
  100. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  101. package/dist/melonjs.mjs/text/glyph.js +1 -1
  102. package/dist/melonjs.mjs/text/text.js +2 -2
  103. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  104. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  105. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  106. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  107. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  108. package/dist/melonjs.mjs/utils/agent.js +1 -1
  109. package/dist/melonjs.mjs/utils/array.js +1 -1
  110. package/dist/melonjs.mjs/utils/file.js +1 -1
  111. package/dist/melonjs.mjs/utils/function.js +1 -1
  112. package/dist/melonjs.mjs/utils/string.js +1 -1
  113. package/dist/melonjs.mjs/utils/utils.js +1 -1
  114. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +3 -6
  115. package/dist/melonjs.mjs/video/renderer.js +1 -1
  116. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  117. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  118. package/dist/melonjs.mjs/video/texture/canvas_texture.js +2 -2
  119. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  120. package/dist/melonjs.mjs/video/video.js +1 -1
  121. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  122. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  123. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  124. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  125. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  126. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  127. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  128. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  129. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  130. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  131. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  132. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
  136. package/dist/melonjs.module.js +153 -135
  137. package/dist/types/camera/camera2d.d.ts +4 -4
  138. package/dist/types/index.d.ts +1 -1
  139. package/dist/types/loader/loader.d.ts +9 -4
  140. package/dist/types/physics/body.d.ts +4 -4
  141. package/dist/types/physics/detector.d.ts +5 -5
  142. package/dist/types/physics/sat.d.ts +12 -12
  143. package/dist/types/renderable/container.d.ts +25 -25
  144. package/dist/types/renderable/draggable.d.ts +53 -0
  145. package/dist/types/renderable/dragndrop.d.ts +0 -52
  146. package/dist/types/renderable/renderable.d.ts +3 -3
  147. package/package.json +11 -11
  148. package/src/camera/camera2d.js +2 -2
  149. package/src/entity/entity.js +2 -5
  150. package/src/geometries/path2d.js +4 -4
  151. package/src/geometries/poly.js +2 -2
  152. package/src/index.js +2 -1
  153. package/src/input/pointerevent.js +9 -9
  154. package/src/lang/deprecated.js +2 -1
  155. package/src/level/tiled/TMXLayer.js +3 -3
  156. package/src/level/tiled/TMXUtils.js +3 -3
  157. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  158. package/src/loader/loader.js +3 -2
  159. package/src/physics/body.js +2 -2
  160. package/src/physics/bounds.js +1 -1
  161. package/src/physics/detector.js +4 -4
  162. package/src/physics/quadtree.js +1 -1
  163. package/src/physics/sat.js +11 -11
  164. package/src/renderable/container.js +47 -37
  165. package/src/renderable/draggable.js +114 -0
  166. package/src/renderable/dragndrop.js +0 -109
  167. package/src/renderable/renderable.js +6 -9
  168. package/src/renderable/trigger.js +1 -1
  169. package/src/renderable/ui/uibaseelement.js +6 -3
  170. package/src/renderable/ui/uispriteelement.js +7 -1
  171. package/src/text/bitmaptext.js +2 -2
  172. package/src/text/text.js +1 -1
  173. package/src/video/canvas/canvas_renderer.js +2 -5
  174. package/src/video/texture/canvas_texture.js +1 -1
@@ -1,115 +1,6 @@
1
- import Vector2d from "./../math/vector2.js";
2
- import * as input from "./../input/input.js";
3
1
  import * as event from "./../system/event.js";
4
2
  import Renderable from "./../renderable/renderable.js";
5
3
 
6
- /**
7
- * @classdesc
8
- * A Draggable base object
9
- * @see DropTarget
10
- * @augments Renderable
11
- */
12
- export class Draggable extends Renderable {
13
- /**
14
- * @param {number} x - the x coordinates of the draggable object
15
- * @param {number} y - the y coordinates of the draggable object
16
- * @param {number} width - draggable object width
17
- * @param {number} height - draggable object height
18
- */
19
- constructor(x, y, width, height) {
20
- super(x, y, width, height);
21
- this.isKinematic = false;
22
- this.dragging = false;
23
- this.dragId = null;
24
- this.grabOffset = new Vector2d(0, 0);
25
- this.initEvents();
26
- }
27
-
28
- /**
29
- * Initializes the events the modules needs to listen to
30
- * It translates the pointer events to me.events
31
- * in order to make them pass through the system and to make
32
- * this module testable. Then we subscribe this module to the
33
- * transformed events.
34
- * @name initEvents
35
- * @memberof Draggable
36
- * @private
37
- */
38
- initEvents() {
39
- input.registerPointerEvent("pointerdown", this, (e) => event.emit(event.DRAGSTART, e, this));
40
- input.registerPointerEvent("pointerup", this, (e) => event.emit(event.DRAGEND, e, this));
41
- input.registerPointerEvent("pointercancel", this, (e) => event.emit(event.DRAGEND, e, this));
42
- event.on(event.POINTERMOVE, (e) => this.dragMove(e));
43
- event.on(event.DRAGSTART, (e, draggable) => {
44
- if (draggable === this) {
45
- this.dragStart(e);
46
- }
47
- });
48
- event.on(event.DRAGEND, (e, draggable) => {
49
- if (draggable === this) {
50
- this.dragEnd(e);
51
- }
52
- });
53
- }
54
-
55
- /**
56
- * Gets called when the user starts dragging the entity
57
- * @name dragStart
58
- * @memberof Draggable
59
- * @param {object} e - the pointer event
60
- * @returns {boolean} false if the object is being dragged
61
- */
62
- dragStart(e) {
63
- if (this.dragging === false) {
64
- this.dragging = true;
65
- this.grabOffset.set(e.gameX, e.gameY);
66
- this.grabOffset.sub(this.pos);
67
- return false;
68
- }
69
- }
70
-
71
- /**
72
- * Gets called when the user drags this entity around
73
- * @name dragMove
74
- * @memberof Draggable
75
- * @param {object} e - the pointer event
76
- */
77
- dragMove(e) {
78
- if (this.dragging === true) {
79
- this.pos.set(e.gameX, e.gameY, this.pos.z); //TODO : z ?
80
- this.pos.sub(this.grabOffset);
81
- }
82
- }
83
-
84
- /**
85
- * Gets called when the user stops dragging the entity
86
- * @name dragEnd
87
- * @memberof Draggable
88
- * @returns {boolean} false if the object stopped being dragged
89
- */
90
- dragEnd() {
91
- if (this.dragging === true) {
92
- this.dragging = false;
93
- return false;
94
- }
95
- }
96
-
97
- /**
98
- * Destructor
99
- * @name destroy
100
- * @memberof Draggable
101
- * @ignore
102
- */
103
- destroy() {
104
- event.off(event.POINTERMOVE, this.dragMove);
105
- event.off(event.DRAGSTART, this.dragStart);
106
- event.off(event.DRAGEND, this.dragEnd);
107
- input.releasePointerEvent("pointerdown", this);
108
- input.releasePointerEvent("pointerup", this);
109
- input.releasePointerEvent("pointercancel", this);
110
- super.destroy();
111
- }
112
- }
113
4
 
114
5
  /**
115
6
  * @classdesc
@@ -263,12 +263,12 @@ import Color from "./../math/color.js";
263
263
  }
264
264
 
265
265
  /**
266
- * Whether the renderable object is floating, or contained in a floating container
266
+ * Whether the renderable object is floating (i.e. used screen coordinates), or contained in a floating parent container
267
267
  * @see Renderable#floating
268
268
  * @type {boolean}
269
269
  */
270
270
  get isFloating() {
271
- return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.floating === true);
271
+ return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.isFloating === true);
272
272
  }
273
273
 
274
274
  /**
@@ -577,11 +577,8 @@ import Color from "./../math/color.js";
577
577
  }
578
578
 
579
579
  if (absolute === true) {
580
- bounds.centerOn(this.pos.x + bounds.x + bounds.width / 2, this.pos.y + bounds.y + bounds.height / 2);
581
- if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
582
- bounds.translate(this.ancestor.getAbsolutePosition());
583
- }
584
-
580
+ var absPos = this.getAbsolutePosition();
581
+ bounds.centerOn(absPos.x + bounds.x + bounds.width / 2, absPos.y + bounds.y + bounds.height / 2);
585
582
  }
586
583
  return bounds;
587
584
 
@@ -610,7 +607,7 @@ import Color from "./../math/color.js";
610
607
  }
611
608
  // XXX Cache me or something
612
609
  this._absPos.set(this.pos.x, this.pos.y);
613
- if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
610
+ if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getAbsolutePosition === "function" && this.floating !== true) {
614
611
  this._absPos.add(this.ancestor.getAbsolutePosition());
615
612
  }
616
613
  return this._absPos;
@@ -728,7 +725,7 @@ import Color from "./../math/color.js";
728
725
  * onCollision callback, triggered in case of collision,
729
726
  * when this renderable body is colliding with another one
730
727
  * @param {ResponseObject} response - the collision response object
731
- * @param {Renderable} other - the other renderable touching this one (a reference to response.a or response.b)
728
+ * @param {Renderable|Container|Entity|Sprite|NineSliceSprite} other - the other renderable touching this one (a reference to response.a or response.b)
732
729
  * @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
733
730
  * @example
734
731
  * // colision handler
@@ -136,7 +136,7 @@ import pool from "./../system/pooling.js";
136
136
  * @name onCollision
137
137
  * @memberof Trigger
138
138
  * @param {ResponseObject} response - the collision response object
139
- * @param {Renderable} other - the other renderable touching this one (a reference to response.a or response.b)
139
+ * @param {Renderable|Container|Entity|Sprite|NineSliceSprite} other - the other renderable touching this one (a reference to response.a or response.b)
140
140
  * @returns {boolean} true if the object should respond to the collision (its position and velocity will be corrected)
141
141
  */
142
142
  onCollision(response, other) { // eslint-disable-line no-unused-vars
@@ -64,7 +64,7 @@ import pool from "../../system/pooling.js";
64
64
 
65
65
  /**
66
66
  * UI base elements use screen coordinates by default
67
- * (Note: any child elements added to a UIBaseElement should set their floating property to false)
67
+ * (Note: any child elements added to a UIBaseElement should have their floating property to false)
68
68
  * @see Renderable.floating
69
69
  * @type {boolean}
70
70
  * @default true
@@ -76,6 +76,9 @@ import pool from "../../system/pooling.js";
76
76
 
77
77
  // enable event detection
78
78
  this.isKinematic = false;
79
+
80
+ // update container and children bounds automatically
81
+ this.enableChildBoundsUpdate = true;
79
82
  }
80
83
 
81
84
  /**
@@ -110,7 +113,7 @@ import pool from "../../system/pooling.js";
110
113
  * @returns {boolean} return false if we need to stop propagating the event
111
114
  */
112
115
  onClick(event) { // eslint-disable-line no-unused-vars
113
- return false;
116
+ return true;
114
117
  }
115
118
 
116
119
  /**
@@ -203,7 +206,7 @@ import pool from "../../system/pooling.js";
203
206
  * @returns {boolean} return false if we need to stop propagating the event
204
207
  */
205
208
  onRelease() {
206
- return false;
209
+ return true;
207
210
  }
208
211
 
209
212
  /**
@@ -73,7 +73,13 @@ import { registerPointerEvent, releasePointerEvent} from "./../../input/input.js
73
73
  this.holdTimeout = -1;
74
74
  this.released = true;
75
75
 
76
- // GUI items use screen coordinates
76
+ /**
77
+ * if this UISpriteElement should use screen coordinates or local coordinates
78
+ * (Note: any UISpriteElement elements added to a floating parent container should have their floating property to false)
79
+ * @see Renderable.floating
80
+ * @type {boolean}
81
+ * @default true
82
+ */
77
83
  this.floating = true;
78
84
 
79
85
  // enable event detection
@@ -232,7 +232,7 @@ import TextMetrics from "./textmetrics.js";
232
232
  }
233
233
 
234
234
  if (absolute === true) {
235
- if (typeof this.ancestor !== "undefined" && typeof this.ancestor.addChild === "function" && this.floating !== true) {
235
+ if (typeof this.ancestor !== "undefined" && typeof this.ancestor.getAbsolutePosition === "function" && this.floating !== true) {
236
236
  bounds.translate(this.ancestor.getAbsolutePosition());
237
237
  }
238
238
  }
@@ -311,7 +311,7 @@ import TextMetrics from "./textmetrics.js";
311
311
 
312
312
  for (let i = 0; i < this._text.length; i++) {
313
313
  x = lX;
314
- let string = this._text[i].trimEnd();
314
+ const string = this._text[i].trimEnd();
315
315
  // adjust x pos based on alignment value
316
316
  let stringWidth = this.metrics.lineWidth(string);
317
317
  switch (this.textAlign) {
package/src/text/text.js CHANGED
@@ -375,7 +375,7 @@ const toPX = [12, 24, 0.75, 1];
375
375
  setContextStyle(context, this);
376
376
 
377
377
  for (let i = 0; i < text.length; i++) {
378
- let string = text[i].trimEnd();
378
+ const string = text[i].trimEnd();
379
379
  // draw the string
380
380
  if (this.fillStyle.alpha > 0) {
381
381
  context.fillText(string, x, y);
@@ -392,9 +392,8 @@ import * as event from "./../../system/event.js";
392
392
  this.translate(poly.pos.x, poly.pos.y);
393
393
  context.beginPath();
394
394
  context.moveTo(poly.points[0].x, poly.points[0].y);
395
- let point;
396
395
  for (let i = 1; i < poly.points.length; i++) {
397
- point = poly.points[i];
396
+ const point = poly.points[i];
398
397
  context.lineTo(point.x, point.y);
399
398
  }
400
399
  context.lineTo(poly.points[0].x, poly.points[0].y);
@@ -689,11 +688,9 @@ import * as event from "./../../system/event.js";
689
688
  } else {
690
689
  // polygon
691
690
  const _x = mask.pos.x, _y = mask.pos.y;
692
- let point;
693
-
694
691
  context.moveTo(_x + mask.points[0].x, _y + mask.points[0].y);
695
692
  for (let i = 1; i < mask.points.length; i++) {
696
- point = mask.points[i];
693
+ const point = mask.points[i];
697
694
  context.lineTo(_x + point.x, _y + point.y);
698
695
  }
699
696
  }
@@ -38,7 +38,7 @@ class CanvasTexture {
38
38
  * the rendering context of this CanvasTexture
39
39
  * @type {CanvasRenderingContext2D}
40
40
  */
41
- this.context = this.canvas.getContext("2d", { willReadFrequently: attributes.willReadFrequently });
41
+ this.context = this.canvas.getContext(attributes.context, { willReadFrequently: attributes.willReadFrequently });
42
42
 
43
43
  // enable or disable antiAlias if specified
44
44
  this.setAntiAlias(attributes.antiAlias);