melonjs 17.3.0 → 17.4.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 (295) 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/_virtual/re.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +7 -1
  7. package/dist/melonjs.mjs/application/header.js +6 -1
  8. package/dist/melonjs.mjs/application/resize.js +6 -1
  9. package/dist/melonjs.mjs/application/settings.js +6 -1
  10. package/dist/melonjs.mjs/audio/audio.js +7 -2
  11. package/dist/melonjs.mjs/camera/camera2d.js +9 -1
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/geometries/ellipse.js +10 -2
  14. package/dist/melonjs.mjs/geometries/line.js +6 -1
  15. package/dist/melonjs.mjs/geometries/path2d.js +6 -1
  16. package/dist/melonjs.mjs/geometries/point.js +6 -1
  17. package/dist/melonjs.mjs/geometries/poly.js +9 -1
  18. package/dist/melonjs.mjs/geometries/rectangle.js +6 -1
  19. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  20. package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
  21. package/dist/melonjs.mjs/index.js +2 -2
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  25. package/dist/melonjs.mjs/input/pointer.js +1 -1
  26. package/dist/melonjs.mjs/input/pointerevent.js +5 -1
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +1 -1
  46. package/dist/melonjs.mjs/loader/loader.js +8 -7
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
  50. package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +1 -1
  51. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +1 -1
  52. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +1 -1
  53. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +1 -1
  54. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +1 -1
  55. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +1 -1
  56. package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
  57. package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
  58. package/dist/melonjs.mjs/loader/parsers/image.js +1 -1
  59. package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
  60. package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
  61. package/dist/melonjs.mjs/loader/parsers/tmx.js +1 -1
  62. package/dist/melonjs.mjs/loader/parsers/video.js +1 -1
  63. package/dist/melonjs.mjs/math/color.js +1 -1
  64. package/dist/melonjs.mjs/math/math.js +1 -1
  65. package/dist/melonjs.mjs/math/matrix2.js +9 -1
  66. package/dist/melonjs.mjs/math/matrix3.js +8 -1
  67. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  68. package/dist/melonjs.mjs/math/observable_vector3.js +7 -1
  69. package/dist/melonjs.mjs/math/vector2.js +3 -3
  70. package/dist/melonjs.mjs/math/vector3.js +9 -4
  71. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  72. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  73. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  74. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  75. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  76. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  77. package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
  78. package/dist/melonjs.mjs/node_modules/semver/classes/range.js +1 -1
  79. package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +1 -1
  80. package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
  81. package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
  82. package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
  83. package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
  84. package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
  85. package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
  86. package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
  87. package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
  88. package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
  89. package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
  90. package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
  91. package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
  92. package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
  93. package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
  94. package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
  95. package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
  96. package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
  97. package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
  98. package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
  99. package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
  100. package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
  101. package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
  102. package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
  103. package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
  104. package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
  105. package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
  106. package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
  107. package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
  108. package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +1 -1
  109. package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
  110. package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
  111. package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
  112. package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
  113. package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
  114. package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
  115. package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
  116. package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
  117. package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
  118. package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
  119. package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
  120. package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
  121. package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
  122. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  123. package/dist/melonjs.mjs/particles/particle.js +5 -1
  124. package/dist/melonjs.mjs/particles/settings.js +1 -1
  125. package/dist/melonjs.mjs/physics/body.js +12 -1
  126. package/dist/melonjs.mjs/physics/bounds.js +7 -1
  127. package/dist/melonjs.mjs/physics/collision.js +6 -1
  128. package/dist/melonjs.mjs/physics/detector.js +10 -1
  129. package/dist/melonjs.mjs/physics/quadtree.js +7 -1
  130. package/dist/melonjs.mjs/physics/response.js +1 -1
  131. package/dist/melonjs.mjs/physics/sat.js +10 -1
  132. package/dist/melonjs.mjs/physics/world.js +5 -1
  133. package/dist/melonjs.mjs/plugin/plugin.js +8 -4
  134. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  135. package/dist/melonjs.mjs/renderable/colorlayer.js +9 -4
  136. package/dist/melonjs.mjs/renderable/container.js +26 -4
  137. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  138. package/dist/melonjs.mjs/renderable/dragndrop.js +6 -1
  139. package/dist/melonjs.mjs/renderable/entity/entity.js +11 -2
  140. package/dist/melonjs.mjs/renderable/imagelayer.js +6 -1
  141. package/dist/melonjs.mjs/renderable/light2d.js +10 -2
  142. package/dist/melonjs.mjs/renderable/nineslicesprite.js +7 -1
  143. package/dist/melonjs.mjs/renderable/renderable.js +20 -2
  144. package/dist/melonjs.mjs/renderable/sprite.js +8 -2
  145. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
  146. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
  147. package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
  148. package/dist/melonjs.mjs/renderable/text/text.js +1 -1
  149. package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
  150. package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
  151. package/dist/melonjs.mjs/renderable/trigger.js +7 -2
  152. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  153. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  154. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  155. package/dist/melonjs.mjs/state/stage.js +1 -1
  156. package/dist/melonjs.mjs/state/state.js +1 -1
  157. package/dist/melonjs.mjs/system/device.js +1 -1
  158. package/dist/melonjs.mjs/system/dom.js +1 -1
  159. package/dist/melonjs.mjs/system/event.js +1 -1
  160. package/dist/melonjs.mjs/system/platform.js +1 -1
  161. package/dist/melonjs.mjs/system/pooling.js +1 -1
  162. package/dist/melonjs.mjs/system/save.js +1 -1
  163. package/dist/melonjs.mjs/system/timer.js +1 -1
  164. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  165. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  166. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  167. package/dist/melonjs.mjs/utils/agent.js +1 -1
  168. package/dist/melonjs.mjs/utils/array.js +1 -1
  169. package/dist/melonjs.mjs/utils/file.js +1 -1
  170. package/dist/melonjs.mjs/utils/function.js +1 -1
  171. package/dist/melonjs.mjs/utils/string.js +1 -1
  172. package/dist/melonjs.mjs/utils/utils.js +1 -1
  173. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +32 -1
  174. package/dist/melonjs.mjs/video/renderer.js +11 -2
  175. package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +9 -3
  176. package/dist/melonjs.mjs/video/texture/atlas.js +6 -1
  177. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  178. package/dist/melonjs.mjs/video/texture/parser/aseprite.js +1 -1
  179. package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +1 -1
  180. package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +1 -1
  181. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  182. package/dist/melonjs.mjs/video/video.js +1 -1
  183. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  184. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +7 -1
  185. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +6 -1
  186. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +6 -1
  187. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  188. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  189. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  190. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  191. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  192. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  193. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  194. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  195. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  196. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  197. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +78 -31
  198. package/dist/melonjs.module.js +424 -62
  199. package/dist/types/application/application.d.ts +7 -0
  200. package/dist/types/application/header.d.ts +5 -0
  201. package/dist/types/application/resize.d.ts +1 -0
  202. package/dist/types/application/settings.d.ts +2 -1
  203. package/dist/types/audio/audio.d.ts +3 -2
  204. package/dist/types/camera/camera2d.d.ts +8 -3
  205. package/dist/types/geometries/ellipse.d.ts +14 -3
  206. package/dist/types/geometries/line.d.ts +4 -0
  207. package/dist/types/geometries/path2d.d.ts +5 -0
  208. package/dist/types/geometries/point.d.ts +4 -0
  209. package/dist/types/geometries/poly.d.ts +12 -1
  210. package/dist/types/geometries/rectangle.d.ts +5 -0
  211. package/dist/types/input/pointerevent.d.ts +2 -1
  212. package/dist/types/level/tiled/TMXTileset.d.ts +1 -1
  213. package/dist/types/loader/loader.d.ts +13 -43
  214. package/dist/types/math/matrix2.d.ts +9 -0
  215. package/dist/types/math/matrix3.d.ts +9 -0
  216. package/dist/types/math/observable_vector3.d.ts +24 -1
  217. package/dist/types/math/vector2.d.ts +3 -3
  218. package/dist/types/math/vector3.d.ts +9 -4
  219. package/dist/types/particles/emitter.d.ts +9 -30
  220. package/dist/types/particles/particle.d.ts +4 -0
  221. package/dist/types/physics/body.d.ts +20 -2
  222. package/dist/types/physics/bounds.d.ts +8 -0
  223. package/dist/types/physics/collision.d.ts +3 -1
  224. package/dist/types/physics/detector.d.ts +6 -0
  225. package/dist/types/physics/quadtree.d.ts +4 -1
  226. package/dist/types/physics/sat.d.ts +7 -0
  227. package/dist/types/physics/world.d.ts +4 -0
  228. package/dist/types/plugin/plugin.d.ts +7 -3
  229. package/dist/types/renderable/colorlayer.d.ts +17 -0
  230. package/dist/types/renderable/container.d.ts +40 -8
  231. package/dist/types/renderable/dragndrop.d.ts +5 -0
  232. package/dist/types/renderable/entity/entity.d.ts +14 -7
  233. package/dist/types/renderable/imagelayer.d.ts +14 -2
  234. package/dist/types/renderable/light2d.d.ts +3 -1
  235. package/dist/types/renderable/nineslicesprite.d.ts +8 -1
  236. package/dist/types/renderable/renderable.d.ts +33 -9
  237. package/dist/types/renderable/sprite.d.ts +8 -1
  238. package/dist/types/renderable/text/bitmaptext.d.ts +1 -1
  239. package/dist/types/renderable/trigger.d.ts +4 -0
  240. package/dist/types/state/state.d.ts +1 -1
  241. package/dist/types/video/canvas/canvas_renderer.d.ts +32 -4
  242. package/dist/types/video/renderer.d.ts +15 -1
  243. package/dist/types/video/rendertarget/canvasrendertarget.d.ts +32 -4
  244. package/dist/types/video/texture/atlas.d.ts +6 -1
  245. package/dist/types/video/webgl/compositors/compositor.d.ts +7 -0
  246. package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +5 -0
  247. package/dist/types/video/webgl/compositors/quad_compositor.d.ts +2 -1
  248. package/dist/types/video/webgl/webgl_renderer.d.ts +25 -21
  249. package/package.json +10 -11
  250. package/src/application/application.js +6 -0
  251. package/src/application/header.js +5 -0
  252. package/src/application/resize.js +5 -0
  253. package/src/application/settings.js +5 -0
  254. package/src/audio/audio.js +6 -1
  255. package/src/camera/camera2d.js +7 -0
  256. package/src/geometries/ellipse.js +9 -1
  257. package/src/geometries/line.js +5 -0
  258. package/src/geometries/path2d.js +6 -0
  259. package/src/geometries/point.js +5 -0
  260. package/src/geometries/poly.js +8 -0
  261. package/src/geometries/rectangle.js +5 -0
  262. package/src/input/pointerevent.js +4 -0
  263. package/src/loader/loader.js +7 -6
  264. package/src/math/matrix2.js +8 -0
  265. package/src/math/matrix3.js +7 -0
  266. package/src/math/observable_vector3.js +6 -0
  267. package/src/math/vector2.js +2 -2
  268. package/src/math/vector3.js +8 -3
  269. package/src/particles/particle.js +4 -0
  270. package/src/physics/body.js +11 -0
  271. package/src/physics/bounds.js +6 -0
  272. package/src/physics/collision.js +5 -0
  273. package/src/physics/detector.js +9 -0
  274. package/src/physics/quadtree.js +6 -0
  275. package/src/physics/sat.js +11 -1
  276. package/src/physics/world.js +4 -0
  277. package/src/plugin/plugin.js +5 -1
  278. package/src/renderable/colorlayer.js +7 -3
  279. package/src/renderable/container.js +26 -3
  280. package/src/renderable/dragndrop.js +4 -0
  281. package/src/renderable/entity/entity.js +9 -1
  282. package/src/renderable/imagelayer.js +4 -0
  283. package/src/renderable/light2d.js +9 -1
  284. package/src/renderable/nineslicesprite.js +6 -0
  285. package/src/renderable/renderable.js +18 -1
  286. package/src/renderable/sprite.js +7 -1
  287. package/src/renderable/trigger.js +6 -1
  288. package/src/video/canvas/canvas_renderer.js +31 -0
  289. package/src/video/renderer.js +10 -1
  290. package/src/video/rendertarget/canvasrendertarget.js +8 -2
  291. package/src/video/texture/atlas.js +5 -0
  292. package/src/video/webgl/compositors/compositor.js +6 -0
  293. package/src/video/webgl/compositors/primitive_compositor.js +5 -0
  294. package/src/video/webgl/compositors/quad_compositor.js +5 -0
  295. package/src/video/webgl/webgl_renderer.js +77 -30
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v17.3.0
2
+ * melonJS Game Engine - v17.4.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
@@ -17,12 +17,23 @@ import { emit, on, ONCONTEXT_LOST, ONCONTEXT_RESTORED, GAME_RESET, CANVAS_ONRESI
17
17
  import pool from '../../system/pooling.js';
18
18
  import { isPowerOfTwo } from '../../math/math.js';
19
19
 
20
+ /**
21
+ * additional import for TypeScript
22
+ * @import Rect from "./../../geometries/rectangle.js";
23
+ * @import RoundRect from "./../../geometries/roundrect.js";
24
+ * @import Polygon from "./../../geometries/poly.js";
25
+ * @import Line from "./../../geometries/line.js";
26
+ * @import Ellipse from "./../../geometries/ellipse.js";
27
+ * @import Matrix3d from "./../../math/matrix3.js";
28
+ * @import Compositor from "./compositors/compositor.js";
29
+ */
30
+
20
31
  // list of supported compressed texture formats
21
32
  let supportedCompressedTextureFormats;
22
33
 
23
34
  /**
24
35
  * @classdesc
25
- * a WebGL renderer draw
36
+ * a WebGL renderer object
26
37
  * @augments Renderer
27
38
  */
28
39
  class WebGLRenderer extends Renderer {
@@ -57,13 +68,23 @@ class WebGLRenderer extends Renderer {
57
68
  this.gl = this.renderTarget.context;
58
69
 
59
70
  /**
60
- * sets or returns the thickness of lines for shape drawing (limited to strokeLine)
71
+ * sets or returns the thickness of lines for shape drawing (limited to strokeLine, strokePolygon and strokeRect)
61
72
  * @type {number}
62
73
  * @default 1
63
74
  * @see WebGLRenderer#strokeLine
75
+ * @see WebGLRenderer#strokePolygon
76
+ * @see WebGLRenderer#strokeRect
64
77
  */
65
78
  this.lineWidth = 1;
66
79
 
80
+ /**
81
+ * sets or returns the shape used to join two line segments where they meet.
82
+ * Out of the three possible values for this property: "round", "bevel", and "miter", only "round" is supported for now in WebGL
83
+ * @type {string}
84
+ * @default "round"
85
+ */
86
+ this.lineJoin = "round";
87
+
67
88
  /**
68
89
  * the vertex buffer used by this WebGL Renderer
69
90
  * @type {WebGLBuffer}
@@ -105,7 +126,7 @@ class WebGLRenderer extends Renderer {
105
126
 
106
127
  /**
107
128
  * The current compositor used by the renderer
108
- * @type {WebGLCompositor}
129
+ * @type {Compositor}
109
130
  */
110
131
  this.currentCompositor = undefined;
111
132
 
@@ -117,7 +138,7 @@ class WebGLRenderer extends Renderer {
117
138
 
118
139
  /**
119
140
  * The list of active compositors
120
- * @type {Map<WebGLCompositor>}
141
+ * @type {Map<Compositor>}
121
142
  */
122
143
  this.compositors = new Map();
123
144
 
@@ -196,7 +217,6 @@ class WebGLRenderer extends Renderer {
196
217
  * The WebGL version used by this renderer (1 or 2)
197
218
  * @type {number}
198
219
  * @default 1
199
- * @readonly
200
220
  */
201
221
  get WebGLVersion() {
202
222
  return this.renderTarget.WebGLVersion;
@@ -766,10 +786,11 @@ class WebGLRenderer extends Renderer {
766
786
 
767
787
  /**
768
788
  * not used by this renderer?
789
+ * @param {boolean} [enable=false]
769
790
  * @ignore
770
791
  */
771
- setAntiAlias(context, enable) {
772
- super.setAntiAlias(context, enable);
792
+ setAntiAlias(enable = false) {
793
+ super.setAntiAlias(enable);
773
794
  // TODO: perhaps handle GLNEAREST or other options with texture binding
774
795
  }
775
796
 
@@ -861,7 +882,7 @@ class WebGLRenderer extends Renderer {
861
882
  * @param {number} h - vertical radius of the ellipse
862
883
  */
863
884
  fillEllipse(x, y, w, h) {
864
- this.strokeEllipse(x, y, w, h, false);
885
+ this.strokeEllipse(x, y, w, h, true);
865
886
  }
866
887
 
867
888
  /**
@@ -916,7 +937,7 @@ class WebGLRenderer extends Renderer {
916
937
  }
917
938
 
918
939
  /**
919
- * Stroke a me.Polygon on the screen with a specified color
940
+ * Stroke a Polygon on the screen with a specified color
920
941
  * @param {Polygon} poly - the shape to draw
921
942
  * @param {boolean} [fill=false] - also fill the shape with the current color if true
922
943
  */
@@ -924,24 +945,38 @@ class WebGLRenderer extends Renderer {
924
945
  const points = poly.points;
925
946
  const len = points.length;
926
947
 
927
- this.setCompositor("primitive");
928
-
929
948
  this.translate(poly.pos.x, poly.pos.y);
930
949
 
931
- this.path2D.beginPath();
932
- for (let i = 0; i < len - 1; i++) {
933
- const curPoint = points[i];
934
- const nextPoint = points[i + 1];
935
- this.path2D.moveTo(curPoint.x, curPoint.y);
936
- this.path2D.lineTo(nextPoint.x, nextPoint.y);
937
- }
938
- this.path2D.closePath();
939
-
940
- if (fill === false) {
941
- this.currentCompositor.drawVertices(this.gl.LINES, this.path2D.points);
950
+ if (fill === false && this.lineWidth > 1) {
951
+ const radius = this.lineWidth / 2;
952
+ for (let i = 0; i < len - 1; i++) {
953
+ const curPoint = points[i];
954
+ const nextPoint = points[i + 1];
955
+ this.fillEllipse(nextPoint.x, nextPoint.y, radius, radius);
956
+ this.strokeLine(curPoint.x, curPoint.y, nextPoint.x, nextPoint.y);
957
+ }
958
+ const lastPoint = points[len - 1];
959
+ const firstPoint = points[0];
960
+ if (!lastPoint.equals(firstPoint)) {
961
+ this.fillEllipse(firstPoint.x, firstPoint.y, radius, radius);
962
+ this.strokeLine(lastPoint.x, lastPoint.y, firstPoint.x, firstPoint.y);
963
+ }
942
964
  } else {
943
- // draw all triangles
944
- this.currentCompositor.drawVertices(this.gl.TRIANGLES, this.path2D.triangulatePath());
965
+ this.setCompositor("primitive");
966
+ this.path2D.beginPath();
967
+ for (let i = 0; i < len - 1; i++) {
968
+ const curPoint = points[i];
969
+ const nextPoint = points[i + 1];
970
+ this.path2D.moveTo(curPoint.x, curPoint.y);
971
+ this.path2D.lineTo(nextPoint.x, nextPoint.y);
972
+ }
973
+ this.path2D.closePath();
974
+ if (fill === false) {
975
+ this.currentCompositor.drawVertices(this.gl.LINES, this.path2D.points);
976
+ } else {
977
+ // draw all triangles
978
+ this.currentCompositor.drawVertices(this.gl.TRIANGLES, this.path2D.triangulatePath());
979
+ }
945
980
  }
946
981
 
947
982
  this.translate(-poly.pos.x, -poly.pos.y);
@@ -964,13 +999,25 @@ class WebGLRenderer extends Renderer {
964
999
  * @param {boolean} [fill=false] - also fill the shape with the current color if true
965
1000
  */
966
1001
  strokeRect(x, y, width, height, fill = false) {
967
- this.setCompositor("primitive");
968
- this.path2D.beginPath();
969
- this.path2D.rect(x, y, width, height);
970
- if (fill === false) {
971
- this.currentCompositor.drawVertices(this.gl.LINES, this.path2D.points);
1002
+ if (fill === false && this.lineWidth > 1) {
1003
+ const radius = this.lineWidth / 2;
1004
+ this.strokeLine(x, y, x + width, y);
1005
+ this.strokeLine(x + width, y, x + width, y + height);
1006
+ this.strokeLine(x + width, y + height, x, y + height);
1007
+ this.strokeLine(x, y + height, x, y);
1008
+ this.fillEllipse(x, y, radius, radius);
1009
+ this.fillEllipse(x + width, y, radius, radius);
1010
+ this.fillEllipse(x + width, y + height, radius, radius);
1011
+ this.fillEllipse(x, y + height, radius, radius);
972
1012
  } else {
973
- this.currentCompositor.drawVertices(this.gl.TRIANGLES, this.path2D.triangulatePath());
1013
+ this.setCompositor("primitive");
1014
+ this.path2D.beginPath();
1015
+ this.path2D.rect(x, y, width, height);
1016
+ if (fill === false) {
1017
+ this.currentCompositor.drawVertices(this.gl.LINES, this.path2D.points);
1018
+ } else {
1019
+ this.currentCompositor.drawVertices(this.gl.TRIANGLES, this.path2D.triangulatePath());
1020
+ }
974
1021
  }
975
1022
  }
976
1023