melonjs 14.5.0 → 15.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 (195) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +2 -2
  3. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  6. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  7. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  8. package/dist/melonjs.mjs/_virtual/index2.js +1 -1
  9. package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
  10. package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
  11. package/dist/melonjs.mjs/application/application.js +1 -1
  12. package/dist/melonjs.mjs/application/header.js +1 -1
  13. package/dist/melonjs.mjs/application/resize.js +1 -1
  14. package/dist/melonjs.mjs/application/settings.js +1 -1
  15. package/dist/melonjs.mjs/audio/audio.js +2 -4
  16. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  17. package/dist/melonjs.mjs/const.js +1 -1
  18. package/dist/melonjs.mjs/entity/entity.js +1 -1
  19. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  20. package/dist/melonjs.mjs/geometries/line.js +1 -1
  21. package/dist/melonjs.mjs/geometries/path2d.js +4 -4
  22. package/dist/melonjs.mjs/geometries/point.js +1 -1
  23. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  24. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  25. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  26. package/dist/melonjs.mjs/index.js +5 -3
  27. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  28. package/dist/melonjs.mjs/input/input.js +1 -1
  29. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  30. package/dist/melonjs.mjs/input/pointer.js +1 -1
  31. package/dist/melonjs.mjs/input/pointerevent.js +2 -2
  32. package/dist/melonjs.mjs/lang/console.js +1 -1
  33. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  34. package/dist/melonjs.mjs/level/level.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  45. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  46. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  47. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  48. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  49. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  50. package/dist/melonjs.mjs/loader/cache.js +1 -1
  51. package/dist/melonjs.mjs/loader/loader.js +1 -1
  52. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  53. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  54. package/dist/melonjs.mjs/loader/parser.js +1 -1
  55. package/dist/melonjs.mjs/loader/settings.js +1 -1
  56. package/dist/melonjs.mjs/math/color.js +9 -8
  57. package/dist/melonjs.mjs/math/math.js +1 -1
  58. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  59. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  60. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  61. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  62. package/dist/melonjs.mjs/math/vector2.js +1 -1
  63. package/dist/melonjs.mjs/math/vector3.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
  65. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
  66. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
  67. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
  68. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  69. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  70. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  71. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  72. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  73. package/dist/melonjs.mjs/particles/particle.js +1 -1
  74. package/dist/melonjs.mjs/particles/settings.js +1 -1
  75. package/dist/melonjs.mjs/physics/body.js +1 -1
  76. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  77. package/dist/melonjs.mjs/physics/collision.js +1 -1
  78. package/dist/melonjs.mjs/physics/detector.js +1 -1
  79. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  80. package/dist/melonjs.mjs/physics/response.js +1 -1
  81. package/dist/melonjs.mjs/physics/sat.js +1 -1
  82. package/dist/melonjs.mjs/physics/world.js +1 -1
  83. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  84. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  85. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  86. package/dist/melonjs.mjs/renderable/container.js +1 -1
  87. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  88. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  89. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  90. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  91. package/dist/melonjs.mjs/renderable/renderable.js +25 -3
  92. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  93. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  94. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  95. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  96. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -3
  97. package/dist/melonjs.mjs/state/stage.js +1 -1
  98. package/dist/melonjs.mjs/state/state.js +1 -1
  99. package/dist/melonjs.mjs/system/device.js +2 -2
  100. package/dist/melonjs.mjs/system/dom.js +1 -1
  101. package/dist/melonjs.mjs/system/event.js +1 -1
  102. package/dist/melonjs.mjs/system/platform.js +1 -1
  103. package/dist/melonjs.mjs/system/pooling.js +1 -1
  104. package/dist/melonjs.mjs/system/save.js +1 -1
  105. package/dist/melonjs.mjs/system/timer.js +1 -1
  106. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  107. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  108. package/dist/melonjs.mjs/text/glyph.js +1 -1
  109. package/dist/melonjs.mjs/text/text.js +56 -86
  110. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  111. package/dist/melonjs.mjs/text/textstyle.js +4 -6
  112. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  113. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  114. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  115. package/dist/melonjs.mjs/utils/agent.js +1 -1
  116. package/dist/melonjs.mjs/utils/array.js +1 -1
  117. package/dist/melonjs.mjs/utils/file.js +1 -1
  118. package/dist/melonjs.mjs/utils/function.js +1 -1
  119. package/dist/melonjs.mjs/utils/string.js +1 -1
  120. package/dist/melonjs.mjs/utils/utils.js +1 -1
  121. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +7 -11
  122. package/dist/melonjs.mjs/video/renderer.js +2 -13
  123. package/dist/melonjs.mjs/video/texture/atlas.js +3 -9
  124. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  125. package/dist/melonjs.mjs/video/texture/canvas_texture.js +1 -1
  126. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  127. package/dist/melonjs.mjs/video/video.js +1 -1
  128. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +21 -17
  129. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +77 -77
  130. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +77 -0
  131. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +249 -0
  132. package/dist/melonjs.mjs/video/webgl/compositors/webgl_compositor.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  134. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  135. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
  136. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  137. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
  138. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  139. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  140. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  141. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  142. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  143. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +139 -149
  144. package/dist/melonjs.module.js +25111 -25202
  145. package/dist/types/entity/entity.d.ts +1 -1
  146. package/dist/types/index.d.ts +4 -2
  147. package/dist/types/renderable/renderable.d.ts +6 -0
  148. package/dist/types/renderable/ui/uitextbutton.d.ts +0 -1
  149. package/dist/types/text/text.d.ts +6 -20
  150. package/dist/types/text/textstyle.d.ts +1 -1
  151. package/dist/types/video/canvas/canvas_renderer.d.ts +0 -5
  152. package/dist/types/video/renderer.d.ts +1 -5
  153. package/dist/types/video/webgl/buffer/vertex.d.ts +3 -3
  154. package/dist/types/video/webgl/compositors/compositor.d.ts +38 -32
  155. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +22 -0
  156. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +72 -0
  157. package/dist/types/video/webgl/webgl_renderer.d.ts +34 -28
  158. package/package.json +13 -14
  159. package/src/audio/audio.js +1 -3
  160. package/src/geometries/path2d.js +3 -3
  161. package/src/index.js +6 -2
  162. package/src/math/color.js +8 -7
  163. package/src/polyfill/index.js +0 -2
  164. package/src/renderable/renderable.js +24 -2
  165. package/src/renderable/ui/uitextbutton.js +0 -2
  166. package/src/system/device.js +1 -1
  167. package/src/text/text.js +55 -85
  168. package/src/text/textstyle.js +3 -5
  169. package/src/video/canvas/canvas_renderer.js +5 -9
  170. package/src/video/renderer.js +0 -11
  171. package/src/video/texture/atlas.js +2 -8
  172. package/src/video/webgl/buffer/vertex.js +20 -16
  173. package/src/video/webgl/compositors/compositor.js +76 -77
  174. package/src/video/webgl/compositors/primitive_compositor.js +68 -0
  175. package/src/video/webgl/compositors/{webgl_compositor.js → quad_compositor.js} +38 -98
  176. package/src/video/webgl/shaders/primitive.vert +2 -5
  177. package/src/video/webgl/shaders/quad.vert +3 -1
  178. package/src/video/webgl/webgl_renderer.js +137 -147
  179. package/dist/melonjs.mjs/_virtual/make-built-in.js +0 -10
  180. package/dist/melonjs.mjs/_virtual/object-define-property.js +0 -10
  181. package/dist/melonjs.mjs/_virtual/object-get-own-property-descriptor.js +0 -10
  182. package/dist/melonjs.mjs/_virtual/object-get-own-property-names.js +0 -10
  183. package/dist/melonjs.mjs/_virtual/object-get-own-property-symbols.js +0 -10
  184. package/dist/melonjs.mjs/_virtual/object-property-is-enumerable.js +0 -10
  185. package/dist/melonjs.mjs/_virtual/shared.js +0 -10
  186. package/dist/melonjs.mjs/game.js +0 -29
  187. package/dist/melonjs.mjs/polyfill/console.js +0 -18
  188. package/dist/melonjs.mjs/polyfill/performance.js +0 -27
  189. package/dist/melonjs.mjs/polyfill/requestAnimationFrame.js +0 -46
  190. package/dist/melonjs.mjs/polyfill/roundrect.js +0 -242
  191. package/dist/melonjs.mjs/renderable/re_container.js +0 -1016
  192. package/dist/melonjs.mjs/video/utils/resize.js +0 -116
  193. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +0 -494
  194. package/src/polyfill/performance.js +0 -20
  195. package/src/polyfill/requestAnimationFrame.js +0 -39
@@ -33,7 +33,7 @@ export default class Entity extends Renderable {
33
33
  frameheight?: number | undefined;
34
34
  type?: string | undefined;
35
35
  collisionMask?: number | undefined;
36
- shapes?: Line[] | Polygon[] | Ellipse[] | Rect[] | undefined;
36
+ shapes?: Polygon[] | Line[] | Ellipse[] | Rect[] | undefined;
37
37
  });
38
38
  /**
39
39
  * The array of renderable children of this entity.
@@ -64,7 +64,9 @@ import RoundRect from "./geometries/roundrect.js";
64
64
  import Tween from "./tweens/tween.js";
65
65
  import QuadTree from "./physics/quadtree.js";
66
66
  import GLShader from "./video/webgl/glshader.js";
67
- import WebGLCompositor from "./video/webgl/compositors/webgl_compositor.js";
67
+ import Compositor from "./video/webgl/compositors/compositor.js";
68
+ import PrimitiveCompositor from "./video/webgl/compositors/primitive_compositor.js";
69
+ import QuadCompositor from "./video/webgl/compositors/quad_compositor.js";
68
70
  import Renderer from "./video/renderer.js";
69
71
  import WebGLRenderer from "./video/webgl/webgl_renderer.js";
70
72
  import CanvasRenderer from "./video/canvas/canvas_renderer.js";
@@ -107,4 +109,4 @@ import ParticleEmitterSettings from "./particles/settings.js";
107
109
  import Particle from "./particles/particle.js";
108
110
  import Entity from "./entity/entity.js";
109
111
  import Application from "./application/application.js";
110
- export { audio, collision, device, event, loader, level, input, Math, plugin, plugins, utils, save, timer, pool, state, video, Color, Vector2d, Vector3d, ObservableVector2d, ObservableVector3d, Matrix2d, Matrix3d, Polygon, Line, Ellipse, Point, Rect, RoundRect, Tween, QuadTree, GLShader, WebGLCompositor, Renderer, WebGLRenderer, CanvasRenderer, TextureAtlas, Renderable, Body, Bounds, Text, BitmapText, BitmapTextData, ColorLayer, ImageLayer, Sprite, NineSliceSprite, UIBaseElement, UITextButton, UISpriteElement, Collectable, Trigger, Light2d, Draggable, DropTarget, TMXRenderer, TMXOrthogonalRenderer, TMXIsometricRenderer, TMXHexagonalRenderer, TMXStaggeredRenderer, Tile, TMXTileset, TMXTilesetGroup, TMXTileMap, TMXLayer, Pointer, Stage, Camera2d, Container, World, ParticleEmitter, ParticleEmitterSettings, Particle, Entity, Application };
112
+ export { audio, collision, device, event, loader, level, input, Math, plugin, plugins, utils, save, timer, pool, state, video, Color, Vector2d, Vector3d, ObservableVector2d, ObservableVector3d, Matrix2d, Matrix3d, Polygon, Line, Ellipse, Point, Rect, RoundRect, Tween, QuadTree, GLShader, Compositor, PrimitiveCompositor, QuadCompositor, Renderer, WebGLRenderer, CanvasRenderer, TextureAtlas, Renderable, Body, Bounds, Text, BitmapText, BitmapTextData, ColorLayer, ImageLayer, Sprite, NineSliceSprite, UIBaseElement, UITextButton, UISpriteElement, Collectable, Trigger, Light2d, Draggable, DropTarget, TMXRenderer, TMXOrthogonalRenderer, TMXIsometricRenderer, TMXHexagonalRenderer, TMXStaggeredRenderer, Tile, TMXTileset, TMXTilesetGroup, TMXTileMap, TMXLayer, Pointer, Stage, Camera2d, Container, World, ParticleEmitter, ParticleEmitterSettings, Particle, Entity, Application };
@@ -162,6 +162,12 @@ export default class Renderable extends Rect {
162
162
  * ]);
163
163
  */
164
164
  mask: Rect | RoundRect | Polygon | Line | Ellipse;
165
+ /**
166
+ * (Experimental) an optional shader, to be used instead of the default built-in one, when drawing this renderable (WebGL only)
167
+ * @type {GLShader}
168
+ * @default undefined
169
+ */
170
+ shader: GLShader;
165
171
  /**
166
172
  * the blend mode to be applied to this renderable (see renderer setBlendMode for available blend mode)
167
173
  * @type {string}
@@ -18,7 +18,6 @@ export default class UITextButton extends UIBaseElement {
18
18
  * @param {string} [settings.backgroundColor] - The css value of a background color
19
19
  * @param {string} [settings.hoverColor] - The css value of a color to be used if the pointer hovers over the button
20
20
  * @param {string} [settings.borderStrokeColor] - The css value of a color to be used to draw the border
21
- * @param {boolean} [settings.offScreenCanvas] - Weather to use an offScreen canvas or not
22
21
  * @param {string} [settings.fillStyle] - The css value of a tint color to be used to tint the text
23
22
  * @param {number} [settings.borderWidth] - Width of the button
24
23
  * @param {number} [settings.borderHeight] - Height of the button
@@ -12,12 +12,11 @@ export default class Text extends Renderable {
12
12
  * @param {number|string} settings.size - size, or size + suffix (px, em, pt)
13
13
  * @param {Color|string} [settings.fillStyle="#000000"] - a CSS color value
14
14
  * @param {Color|string} [settings.strokeStyle="#000000"] - a CSS color value
15
- * @param {number} [settings.lineWidth=1] - line width, in pixels, when drawing stroke
15
+ * @param {number} [settings.lineWidth=0] - line width, in pixels, when drawing stroke
16
16
  * @param {string} [settings.textAlign="left"] - horizontal text alignment
17
17
  * @param {string} [settings.textBaseline="top"] - the text baseline
18
18
  * @param {number} [settings.lineHeight=1.0] - line spacing height
19
19
  * @param {Vector2d} [settings.anchorPoint={x:0.0, y:0.0}] - anchor point to draw the text at
20
- * @param {boolean} [settings.offScreenCanvas=false] - whether to draw the font to an individual "cache" texture first
21
20
  * @param {number} [settings.wordWrapWidth] - the maximum length in CSS pixel for a single segment of text
22
21
  * @param {(string|string[])} [settings.text=""] - a string, or an array of strings
23
22
  * @example
@@ -33,7 +32,6 @@ export default class Text extends Renderable {
33
32
  textBaseline?: string | undefined;
34
33
  lineHeight?: number | undefined;
35
34
  anchorPoint?: any;
36
- offScreenCanvas?: boolean | undefined;
37
35
  wordWrapWidth?: number | undefined;
38
36
  text?: string | string[] | undefined;
39
37
  });
@@ -45,7 +43,7 @@ export default class Text extends Renderable {
45
43
  * sets the current line width, in pixels, when drawing stroke
46
44
  * @public
47
45
  * @type {number}
48
- * @default 1
46
+ * @default 0
49
47
  */
50
48
  public lineWidth: number | undefined;
51
49
  /**
@@ -72,15 +70,6 @@ export default class Text extends Renderable {
72
70
  * @default 1.0
73
71
  */
74
72
  public lineHeight: number | undefined;
75
- /**
76
- * whether to draw the font to a indidividual offscreen canvas texture first <br>
77
- * Note: this will improve performances when using WebGL, but will impact
78
- * memory consumption as every text element will have its own canvas texture
79
- * @public
80
- * @type {boolean}
81
- * @default false
82
- */
83
- public offScreenCanvas: boolean | undefined;
84
73
  /**
85
74
  * the maximum length in CSS pixel for a single segment of text.
86
75
  * (use -1 to disable word wrapping)
@@ -144,13 +133,11 @@ export default class Text extends Renderable {
144
133
  * @param {string} [text]
145
134
  * @param {number} [x]
146
135
  * @param {number} [y]
147
- * @param {boolean} [stroke=false] - draw stroke the the text if true
148
136
  */
149
- draw(renderer: CanvasRenderer | WebGLRenderer, text?: string | undefined, x?: number | undefined, y?: number | undefined, stroke?: boolean | undefined): void;
137
+ draw(renderer: CanvasRenderer | WebGLRenderer, text?: string | undefined, x?: number | undefined, y?: number | undefined): void;
150
138
  /**
151
- * draw a stroke text at the specified coord, as defined <br>
152
- * by the `lineWidth` and `fillStroke` properties. <br>
153
- * Note : using drawStroke is not recommended for performance reasons
139
+ * draw a stroke text at the specified coord, as defined by the `lineWidth` and `fillStroke` properties.
140
+ * @deprecated since 15.0.0
154
141
  * @param {CanvasRenderer|WebGLRenderer} renderer - Reference to the destination renderer instance
155
142
  * @param {string} text
156
143
  * @param {number} x
@@ -160,7 +147,7 @@ export default class Text extends Renderable {
160
147
  /**
161
148
  * @ignore
162
149
  */
163
- _drawFont(context: any, text: any, x: any, y: any, stroke?: boolean): TextMetrics | undefined;
150
+ _drawFont(context: any, text: any, x: any, y: any): TextMetrics | undefined;
164
151
  /**
165
152
  * Destroy function
166
153
  * @ignore
@@ -169,5 +156,4 @@ export default class Text extends Renderable {
169
156
  }
170
157
  import Renderable from "./../renderable/renderable.js";
171
158
  import TextMetrics from "./textmetrics.js";
172
- import WebGLRenderer from "./../video/webgl/webgl_renderer.js";
173
159
  import Color from "./../math/color.js";
@@ -2,4 +2,4 @@
2
2
  * apply the current text style to the given context
3
3
  * @ignore
4
4
  */
5
- export default function setContextStyle(context: any, style: any, stroke?: boolean): void;
5
+ export default function setContextStyle(context: any, style: any): void;
@@ -263,11 +263,6 @@ export default class CanvasRenderer extends Renderer {
263
263
  * @param {number} height
264
264
  */
265
265
  fillPoint(x: number, y: number): void;
266
- /**
267
- * return a reference to the font 2d Context
268
- * @ignore
269
- */
270
- getFontContext(): CanvasRenderingContext2D | WebGLRenderingContext;
271
266
  /**
272
267
  * save the canvas context
273
268
  * @name save
@@ -188,7 +188,7 @@ export default class Renderer {
188
188
  * @param {Rect|RoundRect|Polygon|Line|Ellipse} [mask] - the shape defining the mask to be applied
189
189
  * @param {boolean} [invert=false] - either the given shape should define what is visible (default) or the opposite
190
190
  */
191
- setMask(mask?: Polygon | Rect | Ellipse | RoundRect | Line | undefined): void;
191
+ setMask(mask?: Polygon | Line | Ellipse | Rect | RoundRect | undefined): void;
192
192
  /**
193
193
  * disable (remove) the rendering mask set through setMask.
194
194
  * @see Renderer#setMask
@@ -205,10 +205,6 @@ export default class Renderer {
205
205
  * @see Renderer#setTint
206
206
  */
207
207
  clearTint(): void;
208
- /**
209
- * @ignore
210
- */
211
- drawFont(): void;
212
208
  }
213
209
  import Vector2d from "../math/vector2.js";
214
210
  import Path2D from "./../geometries/path2d.js";
@@ -5,9 +5,9 @@
5
5
  * @ignore
6
6
  */
7
7
  export default class VertexArrayBuffer {
8
- constructor(vertex_size: any, vertex_per_quad: any);
8
+ constructor(vertex_size: any, vertex_per_obj: any);
9
9
  vertexSize: any;
10
- quadSize: any;
10
+ objSize: any;
11
11
  maxVertex: number;
12
12
  vertexCount: number;
13
13
  buffer: ArrayBuffer;
@@ -27,7 +27,7 @@ export default class VertexArrayBuffer {
27
27
  * resize the vertex buffer, retaining its original contents
28
28
  * @ignore
29
29
  */
30
- resize(): VertexArrayBuffer;
30
+ resize(vertexCount: any): VertexArrayBuffer;
31
31
  /**
32
32
  * push a new vertex to the buffer
33
33
  * @ignore
@@ -5,22 +5,37 @@
5
5
  export default class Compositor {
6
6
  /**
7
7
  * @param {WebGLRenderer} renderer - the current WebGL renderer session
8
+ * @param {Object} settings - additional settings to initialize this compositors
9
+ * @param {object[]} attribute - an array of attributes definition
10
+ * @param {string} attribute.name - name of the attribute in the vertex shader
11
+ * @param {number} attribute.size - number of components per vertex attribute. Must be 1, 2, 3, or 4.
12
+ * @param {GLenum} attribute.type - data type of each component in the array
13
+ * @param {boolean} attribute.normalized - whether integer data values should be normalized into a certain range when being cast to a float
14
+ * @param {number} attribute.offset - offset in bytes of the first component in the vertex attribute array
15
+ * @param {object} shader - an array of attributes definition
16
+ * @param {string} shader.vertex - a string containing the GLSL source code to set
17
+ * @param {string} shader.fragment - a string containing the GLSL source code to set
8
18
  */
9
- constructor(renderer: WebGLRenderer);
19
+ constructor(renderer: WebGLRenderer, settings: Object);
10
20
  /**
11
21
  * Initialize the compositor
12
22
  * @ignore
13
23
  */
14
- init(renderer: any): void;
24
+ init(renderer: any, settings: any): void;
15
25
  renderer: any;
16
26
  gl: any;
17
27
  color: any;
18
28
  viewMatrix: any;
19
29
  /**
20
- * a reference to the active WebGL shader
30
+ * the default shader created by this compositor
21
31
  * @type {GLShader}
22
32
  */
23
- activeShader: any;
33
+ defaultShader: GLShader | undefined;
34
+ /**
35
+ * the shader currently used by this compositor
36
+ * @type {GLShader}
37
+ */
38
+ currentShader: GLShader | undefined;
24
39
  /**
25
40
  * primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
26
41
  * @type {number}
@@ -47,11 +62,27 @@ export default class Compositor {
47
62
  * @type {number}
48
63
  */
49
64
  vertexSize: number | undefined;
65
+ /**
66
+ * the vertex data buffer used by this compositor
67
+ * @type {VertexArrayBuffer}
68
+ */
69
+ vertexData: VertexArrayBuffer | undefined;
50
70
  /**
51
71
  * Reset compositor internal state
52
72
  * @ignore
53
73
  */
54
74
  reset(): void;
75
+ /**
76
+ * @ignore
77
+ * called by the WebGL renderer when a compositor become the current one
78
+ */
79
+ bind(): void;
80
+ /**
81
+ * Select the shader to use for compositing
82
+ * @see GLShader
83
+ * @param {GLShader} shader - a reference to a GLShader instance
84
+ */
85
+ useShader(shader: GLShader): void;
55
86
  /**
56
87
  * add vertex attribute property definition to the compositor
57
88
  * @param {string} name - name of the attribute in the vertex shader
@@ -61,41 +92,16 @@ export default class Compositor {
61
92
  * @param {number} offset - offset in bytes of the first component in the vertex attribute array
62
93
  */
63
94
  addAttribute(name: string, size: number, type: GLenum, normalized: boolean, offset: number): void;
64
- /**
65
- * Sets the viewport
66
- * @param {number} x - x position of viewport
67
- * @param {number} y - y position of viewport
68
- * @param {number} w - width of viewport
69
- * @param {number} h - height of viewport
70
- */
71
- setViewport(x: number, y: number, w: number, h: number): void;
72
95
  /**
73
96
  * set/change the current projection matrix
74
97
  * @param {Matrix3d} matrix
75
98
  */
76
99
  setProjection(matrix: Matrix3d): void;
77
100
  /**
78
- * Select the shader to use for compositing
79
- * @see GLShader
80
- * @param {GLShader} shader - a reference to a GLShader instance
81
- */
82
- useShader(shader: GLShader): void;
83
- /**
84
- * Flush batched texture operations to the GPU
101
+ * Flush batched vertex data to the GPU
85
102
  * @param {number} [mode=gl.TRIANGLES] - the GL drawing mode
86
103
  */
87
104
  flush(mode?: number | undefined): void;
88
- /**
89
- * Clear the frame buffer
90
- * @param {number} [alpha = 0.0] - the alpha value used when clearing the framebuffer
91
- */
92
- clear(alpha?: number | undefined): void;
93
- /**
94
- * Specify the color values used when clearing color buffers. The values are clamped between 0 and 1.
95
- * @param {number} [r = 0] - the red color value used when the color buffers are cleared
96
- * @param {number} [g = 0] - the green color value used when the color buffers are cleared
97
- * @param {number} [b = 0] - the blue color value used when the color buffers are cleared
98
- * @param {number} [a = 0] - the alpha color value used when the color buffers are cleared
99
- */
100
- clearColor(r?: number | undefined, g?: number | undefined, b?: number | undefined, a?: number | undefined): void;
101
105
  }
106
+ import GLShader from "../glshader.js";
107
+ import VertexArrayBuffer from "../buffer/vertex.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @classdesc
3
+ * A WebGL Compositor object. This class handles all of the WebGL state<br>
4
+ * Pushes texture regions or shape geometry into WebGL buffers, automatically flushes to GPU
5
+ * @augments Compositor
6
+ */
7
+ export default class PrimitiveCompositor extends Compositor {
8
+ /**
9
+ * Initialize the compositor
10
+ * @ignore
11
+ */
12
+ init(renderer: any): void;
13
+ /**
14
+ * Draw an array of vertices
15
+ * @param {GLenum} mode - primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
16
+ * @param {Point[]} verts - an array of vertices
17
+ * @param {number} [vertexCount=verts.length] - amount of points defined in the points array
18
+ */
19
+ drawVertices(mode: GLenum, verts: Point[], vertexCount?: number | undefined): void;
20
+ mode: any;
21
+ }
22
+ import Compositor from "./compositor.js";
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @classdesc
3
+ * A WebGL Compositor object. This class handles all of the WebGL state<br>
4
+ * Pushes texture regions or shape geometry into WebGL buffers, automatically flushes to GPU
5
+ * @augments Compositor
6
+ */
7
+ export default class QuadCompositor extends Compositor {
8
+ /**
9
+ * Initialize the compositor
10
+ * @ignore
11
+ */
12
+ init(renderer: any): void;
13
+ currentTextureUnit: any;
14
+ boundTextures: any[] | undefined;
15
+ /**
16
+ * Create a WebGL texture from an image
17
+ * @param {number} unit - Destination texture unit
18
+ * @param {Image|HTMLCanvasElement|ImageData|Uint8Array[]|Float32Array[]} [pixels=null] - Source image
19
+ * @param {number} filter - gl.LINEAR or gl.NEAREST
20
+ * @param {string} [repeat="no-repeat"] - Image repeat behavior (see {@link ImageLayer#repeat})
21
+ * @param {number} [w=pixels.width] - Source image width (Only use with UInt8Array[] or Float32Array[] source image)
22
+ * @param {number} [h=pixels.height] - Source image height (Only use with UInt8Array[] or Float32Array[] source image)
23
+ * @param {boolean} [premultipliedAlpha=true] - Multiplies the alpha channel into the other color channels
24
+ * @param {boolean} [mipmap=true] - Whether mipmap levels should be generated for this texture
25
+ * @returns {WebGLTexture} a WebGL texture
26
+ */
27
+ createTexture2D(unit: number, pixels?: HTMLCanvasElement | ImageData | (new (width?: number | undefined, height?: number | undefined) => HTMLImageElement) | Uint8Array[] | Float32Array[] | undefined, filter: number, repeat?: string | undefined, w?: number | undefined, h?: number | undefined, premultipliedAlpha?: boolean | undefined, mipmap?: boolean | undefined): WebGLTexture;
28
+ /**
29
+ * delete the given WebGL texture
30
+ * @param {WebGLTexture} [texture] - a WebGL texture to delete
31
+ * @param {number} [unit] - Texture unit to delete
32
+ */
33
+ deleteTexture2D(texture?: WebGLTexture | undefined): void;
34
+ /**
35
+ * returns the WebGL texture associated to the given texture unit
36
+ * @param {number} unit - Texture unit to which a texture is bound
37
+ * @returns {WebGLTexture} texture a WebGL texture
38
+ */
39
+ getTexture2D(unit: number): WebGLTexture;
40
+ /**
41
+ * assign the given WebGL texture to the current batch
42
+ * @param {WebGLTexture} texture - a WebGL texture
43
+ * @param {number} unit - Texture unit to which the given texture is bound
44
+ */
45
+ bindTexture2D(texture: WebGLTexture, unit: number): void;
46
+ /**
47
+ * unbind the given WebGL texture, forcing it to be reuploaded
48
+ * @param {WebGLTexture} [texture] - a WebGL texture
49
+ * @param {number} [unit] - a WebGL texture
50
+ * @returns {number} unit the unit number that was associated with the given texture
51
+ */
52
+ unbindTexture2D(texture?: WebGLTexture | undefined, unit?: number | undefined): number;
53
+ /**
54
+ * @ignore
55
+ */
56
+ uploadTexture(texture: any, w: any, h: any, force?: boolean): any;
57
+ /**
58
+ * Add a textured quad
59
+ * @param {TextureAtlas} texture - Source texture atlas
60
+ * @param {number} x - Destination x-coordinate
61
+ * @param {number} y - Destination y-coordinate
62
+ * @param {number} w - Destination width
63
+ * @param {number} h - Destination height
64
+ * @param {number} u0 - Texture UV (u0) value.
65
+ * @param {number} v0 - Texture UV (v0) value.
66
+ * @param {number} u1 - Texture UV (u1) value.
67
+ * @param {number} v1 - Texture UV (v1) value.
68
+ * @param {number} tint - tint color to be applied to the texture in UINT32 (argb) format
69
+ */
70
+ addQuad(texture: TextureAtlas, x: number, y: number, w: number, h: number, u0: number, v0: number, u1: number, v1: number, tint: number): void;
71
+ }
72
+ import Compositor from "./compositor.js";
@@ -18,7 +18,7 @@ export default class WebGLRenderer extends Renderer {
18
18
  * @param {string} [options.powerPreference="default"] - a hint to the user agent indicating what configuration of GPU is suitable for the WebGL context ("default", "high-performance", "low-power"). To be noted that Safari and Chrome (since version 80) both default to "low-power" to save battery life and improve the user experience on these dual-GPU machines.
19
19
  * @param {number} [options.zoomX=width] - The actual width of the canvas with scaling applied
20
20
  * @param {number} [options.zoomY=height] - The actual height of the canvas with scaling applied
21
- * @param {WebGLCompositor} [options.compositor] - A class that implements the compositor API
21
+ * @param {Compositor} [options.compositor] - A class that implements the compositor API for sprite rendering
22
22
  */
23
23
  constructor(options: {
24
24
  width: number;
@@ -33,7 +33,7 @@ export default class WebGLRenderer extends Renderer {
33
33
  powerPreference?: string | undefined;
34
34
  zoomX?: number | undefined;
35
35
  zoomY?: number | undefined;
36
- compositor?: WebGLCompositor | undefined;
36
+ compositor?: any;
37
37
  });
38
38
  /**
39
39
  * The WebGL version used by this renderer (1 or 2)
@@ -45,14 +45,14 @@ export default class WebGLRenderer extends Renderer {
45
45
  /**
46
46
  * The vendor string of the underlying graphics driver.
47
47
  * @type {string}
48
- * @default null
48
+ * @default undefined
49
49
  * @readonly
50
50
  */
51
51
  readonly GPUVendor: string;
52
52
  /**
53
53
  * The renderer string of the underlying graphics driver.
54
54
  * @type {string}
55
- * @default null
55
+ * @default undefined
56
56
  * @readonly
57
57
  */
58
58
  readonly GPURenderer: string;
@@ -63,6 +63,11 @@ export default class WebGLRenderer extends Renderer {
63
63
  */
64
64
  context: WebGLRenderingContext;
65
65
  gl: WebGLRenderingContext;
66
+ /**
67
+ * the vertex buffer used by this WebGL Renderer
68
+ * @type {WebGLBuffer}
69
+ */
70
+ vertexBuffer: WebGLBuffer;
66
71
  /**
67
72
  * Maximum number of texture unit supported under the current context
68
73
  * @type {number}
@@ -95,33 +100,36 @@ export default class WebGLRenderer extends Renderer {
95
100
  * @type {WebGLCompositor}
96
101
  */
97
102
  currentCompositor: WebGLCompositor;
103
+ /**
104
+ * a reference to the current shader program used by the renderer
105
+ * @type {WebGLProgram}
106
+ */
107
+ currentProgram: WebGLProgram;
98
108
  /**
99
109
  * The list of active compositors
100
110
  * @type {Map<WebGLCompositor>}
101
111
  */
102
112
  compositors: Map<WebGLCompositor, any>;
113
+ customShader: any;
103
114
  cache: TextureCache;
115
+ /**
116
+ * add a new compositor to this renderer
117
+ * @param {Compositor} compositor - a compositor instance
118
+ * @param {String} name - a name uniquely identifying this compositor
119
+ * @param {Boolean} [activate=false] - true if the given compositor should be set as the active one
120
+ */
121
+ addCompositor(compositor: Compositor, name?: string, activate?: boolean | undefined): void;
104
122
  /**
105
123
  * set the active compositor for this renderer
106
- * @param {WebGLCompositor|string} compositor - a compositor name or instance
124
+ * @param {String} name - a compositor name
125
+ * @param {GLShader} [shader] - an optional shader program to be used, instead of the default one, when activating the compositor
126
+ * @return {Compositor} an instance to the current active compositor
107
127
  */
108
- setCompositor(compositor?: WebGLCompositor | string): void;
128
+ setCompositor(name?: string, shader?: any): Compositor;
109
129
  /**
110
130
  * Reset the gl transform to identity
111
131
  */
112
132
  resetTransform(): void;
113
- /**
114
- * @ignore
115
- */
116
- createFontTexture(cache: any): void;
117
- /**
118
- * @ignore
119
- */
120
- fontContext2D: CanvasRenderingContext2D | undefined;
121
- /**
122
- * @ignore
123
- */
124
- fontTexture: TextureAtlas | undefined;
125
133
  /**
126
134
  * Create a pattern with the specified repetition
127
135
  * @param {Image} image - Source image
@@ -140,6 +148,14 @@ export default class WebGLRenderer extends Renderer {
140
148
  * @param {Matrix3d} matrix
141
149
  */
142
150
  setProjection(matrix: Matrix3d): void;
151
+ /**
152
+ * Sets the WebGL viewport, which specifies the affine transformation of x and y from normalized device coordinates to window coordinates
153
+ * @param {number} [x = 0] - x the horizontal coordinate for the lower left corner of the viewport origin
154
+ * @param {number} [y = 0] - y the vertical coordinate for the lower left corner of the viewport origin
155
+ * @param {number} [w = width of the canvas] - the width of viewport
156
+ * @param {number} [h = height of the canvas] - the height of viewport
157
+ */
158
+ setViewport(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: number | undefined): void;
143
159
  /**
144
160
  * Clears the gl context with the given color.
145
161
  * @param {Color|string} [color="#000000"] - CSS color.
@@ -154,10 +170,6 @@ export default class WebGLRenderer extends Renderer {
154
170
  * @param {number} height - The rectangle's height.
155
171
  */
156
172
  clearRect(x: number, y: number, width: number, height: number): void;
157
- /**
158
- * @ignore
159
- */
160
- drawFont(bounds: any): void;
161
173
  /**
162
174
  * Draw an image to the gl context
163
175
  * @param {Image} image - An element to draw into the context. The specification permits any canvas image source (CanvasImageSource), specifically, a CSSImageValue, an HTMLImageElement, an SVGImageElement, an HTMLVideoElement, an HTMLCanvasElement, an ImageBitmap, or an OffscreenCanvas.
@@ -218,11 +230,6 @@ export default class WebGLRenderer extends Renderer {
218
230
  */
219
231
  setBlendMode(mode?: string | undefined, gl?: WebGLRenderingContext | undefined): void;
220
232
  currentBlendMode: any;
221
- /**
222
- * return a reference to the font 2d Context
223
- * @ignore
224
- */
225
- getFontContext(): CanvasRenderingContext2D | undefined;
226
233
  /**
227
234
  * restores the canvas context
228
235
  */
@@ -423,7 +430,6 @@ export default class WebGLRenderer extends Renderer {
423
430
  }
424
431
  import Renderer from "./../renderer.js";
425
432
  import Matrix2d from "./../../math/matrix2.js";
426
- import WebGLCompositor from "./compositors/webgl_compositor.js";
427
433
  import TextureCache from "./../texture/cache.js";
428
434
  import { TextureAtlas } from "./../texture/atlas.js";
429
435
  import Color from "./../../math/color.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "melonjs",
3
- "version": "14.5.0",
3
+ "version": "15.0.0",
4
4
  "description": "melonJS Game Engine",
5
5
  "homepage": "http://www.melonjs.org/",
6
6
  "type": "module",
@@ -53,13 +53,13 @@
53
53
  ],
54
54
  "dependencies": {
55
55
  "@teppeis/multimaps": "^2.0.0",
56
- "core-js": "^3.27.2",
56
+ "core-js": "^3.29.1",
57
57
  "earcut": "2.2.4",
58
58
  "eventemitter3": "^5.0.0",
59
59
  "howler": "2.2.3"
60
60
  },
61
61
  "devDependencies": {
62
- "@babel/eslint-parser": "^7.19.1",
62
+ "@babel/eslint-parser": "^7.21.3",
63
63
  "@babel/plugin-syntax-import-assertions": "^7.20.0",
64
64
  "@fastify/static": "^6.9.0",
65
65
  "@melonjs/webdoc-theme": "^1.1.1",
@@ -67,24 +67,23 @@
67
67
  "@rollup/plugin-image": "^3.0.2",
68
68
  "@rollup/plugin-node-resolve": "^15.0.1",
69
69
  "@rollup/plugin-replace": "^5.0.2",
70
- "@types/offscreencanvas": "^2019.7.0",
71
70
  "@webdoc/cli": "^2.2.0",
72
- "chromedriver": "^110.0.0",
71
+ "chromedriver": "^111.0.0",
73
72
  "cross-env": "^7.0.3",
74
73
  "del-cli": "^5.0.0",
75
- "eslint": "^8.34.0",
76
- "eslint-plugin-jsdoc": "^40.0.0",
77
- "expect": "^29.4.2",
78
- "expect-mocha-image-snapshot": "^3.0.1",
79
- "fastify": "^4.13.0",
74
+ "eslint": "^8.36.0",
75
+ "eslint-plugin-jsdoc": "^40.0.3",
76
+ "expect": "^29.5.0",
77
+ "expect-mocha-image-snapshot": "^3.0.3",
78
+ "fastify": "^4.14.1",
80
79
  "mocha": "^10.2.0",
81
80
  "npm-self-link": "^1.1.7",
82
- "puppeteer": "^19.6.3",
83
- "rollup": "^3.15.0",
81
+ "puppeteer": "^19.7.5",
82
+ "rollup": "^3.19.1",
84
83
  "rollup-plugin-bundle-size": "^1.0.3",
85
84
  "rollup-plugin-string": "^3.0.0",
86
- "terser": "^5.16.3",
87
- "typescript": "^4.9.5"
85
+ "terser": "^5.16.6",
86
+ "typescript": "^5.0.2"
88
87
  },
89
88
  "scripts": {
90
89
  "build": "npm run lint && rollup -c --silent",
@@ -455,9 +455,7 @@ export function getVolume() {
455
455
  * // mute the background music
456
456
  * me.audio.mute("awesome_music");
457
457
  */
458
- export function mute(sound_name, id, mute) {
459
- // if not defined : true
460
- mute = (typeof(mute) === "undefined" ? true : !!mute);
458
+ export function mute(sound_name, id, mute = true) {
461
459
  var sound = audioTracks[sound_name];
462
460
  if (sound && typeof(sound) !== "undefined") {
463
461
  sound.mute(mute, id);
@@ -242,9 +242,6 @@ import earcut from "earcut";
242
242
  points.push(pool.pull("Point", _x2, _y2));
243
243
  angle += direction * dangle;
244
244
  }
245
- //var x1 = radiusX * Math.cos(endAngle);
246
- //var y1 = radiusY * Math.sin(endAngle);
247
- //points.push(pool.pull("Point", x + x1 * cos_rotation - y1 * sin_rotation, y + x1 * sin_rotation + y1 * cos_rotation));
248
245
  }
249
246
 
250
247
  /**
@@ -257,8 +254,11 @@ import earcut from "earcut";
257
254
  rect(x, y, width, height) {
258
255
  this.moveTo(x, y);
259
256
  this.lineTo(x + width, y);
257
+ this.moveTo(x + width, y);
260
258
  this.lineTo(x + width, y + height);
259
+ this.moveTo(x + width, y + height);
261
260
  this.lineTo(x, y + height);
261
+ this.moveTo(x, y + height);
262
262
  this.lineTo(x, y);
263
263
  }
264
264
 
package/src/index.js CHANGED
@@ -20,7 +20,9 @@ import Body from "./physics/body.js";
20
20
  import Bounds from "./physics/bounds.js";
21
21
  import Tween from "./tweens/tween.js";
22
22
  import GLShader from "./video/webgl/glshader.js";
23
- import WebGLCompositor from "./video/webgl/compositors/webgl_compositor.js";
23
+ import Compositor from "./video/webgl/compositors/compositor.js";
24
+ import PrimitiveCompositor from "./video/webgl/compositors/primitive_compositor.js";
25
+ import QuadCompositor from "./video/webgl/compositors/quad_compositor.js";
24
26
  import Renderer from "./video/renderer.js";
25
27
  import WebGLRenderer from "./video/webgl/webgl_renderer.js";
26
28
  import CanvasRenderer from "./video/canvas/canvas_renderer.js";
@@ -127,7 +129,9 @@ export {
127
129
  Tween,
128
130
  QuadTree,
129
131
  GLShader,
130
- WebGLCompositor,
132
+ Compositor,
133
+ PrimitiveCompositor,
134
+ QuadCompositor,
131
135
  Renderer,
132
136
  WebGLRenderer,
133
137
  CanvasRenderer,