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.
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +1 -1
- package/dist/melonjs.mjs/_virtual/re.js +1 -1
- package/dist/melonjs.mjs/application/application.js +7 -1
- package/dist/melonjs.mjs/application/header.js +6 -1
- package/dist/melonjs.mjs/application/resize.js +6 -1
- package/dist/melonjs.mjs/application/settings.js +6 -1
- package/dist/melonjs.mjs/audio/audio.js +7 -2
- package/dist/melonjs.mjs/camera/camera2d.js +9 -1
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/geometries/ellipse.js +10 -2
- package/dist/melonjs.mjs/geometries/line.js +6 -1
- package/dist/melonjs.mjs/geometries/path2d.js +6 -1
- package/dist/melonjs.mjs/geometries/point.js +6 -1
- package/dist/melonjs.mjs/geometries/poly.js +9 -1
- package/dist/melonjs.mjs/geometries/rectangle.js +6 -1
- package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
- package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
- package/dist/melonjs.mjs/index.js +2 -2
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +1 -1
- package/dist/melonjs.mjs/input/pointer.js +1 -1
- package/dist/melonjs.mjs/input/pointerevent.js +5 -1
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +1 -1
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +8 -7
- package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/image.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/tmx.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/video.js +1 -1
- package/dist/melonjs.mjs/math/color.js +1 -1
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +9 -1
- package/dist/melonjs.mjs/math/matrix3.js +8 -1
- package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector3.js +7 -1
- package/dist/melonjs.mjs/math/vector2.js +3 -3
- package/dist/melonjs.mjs/math/vector3.js +9 -4
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/range.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
- package/dist/melonjs.mjs/particles/emitter.js +1 -1
- package/dist/melonjs.mjs/particles/particle.js +5 -1
- package/dist/melonjs.mjs/particles/settings.js +1 -1
- package/dist/melonjs.mjs/physics/body.js +12 -1
- package/dist/melonjs.mjs/physics/bounds.js +7 -1
- package/dist/melonjs.mjs/physics/collision.js +6 -1
- package/dist/melonjs.mjs/physics/detector.js +10 -1
- package/dist/melonjs.mjs/physics/quadtree.js +7 -1
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +10 -1
- package/dist/melonjs.mjs/physics/world.js +5 -1
- package/dist/melonjs.mjs/plugin/plugin.js +8 -4
- package/dist/melonjs.mjs/renderable/collectable.js +1 -1
- package/dist/melonjs.mjs/renderable/colorlayer.js +9 -4
- package/dist/melonjs.mjs/renderable/container.js +26 -4
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +6 -1
- package/dist/melonjs.mjs/renderable/entity/entity.js +11 -2
- package/dist/melonjs.mjs/renderable/imagelayer.js +6 -1
- package/dist/melonjs.mjs/renderable/light2d.js +10 -2
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +7 -1
- package/dist/melonjs.mjs/renderable/renderable.js +20 -2
- package/dist/melonjs.mjs/renderable/sprite.js +8 -2
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
- package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
- package/dist/melonjs.mjs/renderable/text/text.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/renderable/trigger.js +7 -2
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
- package/dist/melonjs.mjs/state/stage.js +1 -1
- package/dist/melonjs.mjs/state/state.js +1 -1
- package/dist/melonjs.mjs/system/device.js +1 -1
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +1 -1
- package/dist/melonjs.mjs/system/platform.js +1 -1
- package/dist/melonjs.mjs/system/pooling.js +1 -1
- package/dist/melonjs.mjs/system/save.js +1 -1
- package/dist/melonjs.mjs/system/timer.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +1 -1
- package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
- package/dist/melonjs.mjs/tweens/tween.js +1 -1
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +1 -1
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +32 -1
- package/dist/melonjs.mjs/video/renderer.js +11 -2
- package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +9 -3
- package/dist/melonjs.mjs/video/texture/atlas.js +6 -1
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +1 -1
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +1 -1
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +7 -1
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +6 -1
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +6 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +78 -31
- package/dist/melonjs.module.js +424 -62
- package/dist/types/application/application.d.ts +7 -0
- package/dist/types/application/header.d.ts +5 -0
- package/dist/types/application/resize.d.ts +1 -0
- package/dist/types/application/settings.d.ts +2 -1
- package/dist/types/audio/audio.d.ts +3 -2
- package/dist/types/camera/camera2d.d.ts +8 -3
- package/dist/types/geometries/ellipse.d.ts +14 -3
- package/dist/types/geometries/line.d.ts +4 -0
- package/dist/types/geometries/path2d.d.ts +5 -0
- package/dist/types/geometries/point.d.ts +4 -0
- package/dist/types/geometries/poly.d.ts +12 -1
- package/dist/types/geometries/rectangle.d.ts +5 -0
- package/dist/types/input/pointerevent.d.ts +2 -1
- package/dist/types/level/tiled/TMXTileset.d.ts +1 -1
- package/dist/types/loader/loader.d.ts +13 -43
- package/dist/types/math/matrix2.d.ts +9 -0
- package/dist/types/math/matrix3.d.ts +9 -0
- package/dist/types/math/observable_vector3.d.ts +24 -1
- package/dist/types/math/vector2.d.ts +3 -3
- package/dist/types/math/vector3.d.ts +9 -4
- package/dist/types/particles/emitter.d.ts +9 -30
- package/dist/types/particles/particle.d.ts +4 -0
- package/dist/types/physics/body.d.ts +20 -2
- package/dist/types/physics/bounds.d.ts +8 -0
- package/dist/types/physics/collision.d.ts +3 -1
- package/dist/types/physics/detector.d.ts +6 -0
- package/dist/types/physics/quadtree.d.ts +4 -1
- package/dist/types/physics/sat.d.ts +7 -0
- package/dist/types/physics/world.d.ts +4 -0
- package/dist/types/plugin/plugin.d.ts +7 -3
- package/dist/types/renderable/colorlayer.d.ts +17 -0
- package/dist/types/renderable/container.d.ts +40 -8
- package/dist/types/renderable/dragndrop.d.ts +5 -0
- package/dist/types/renderable/entity/entity.d.ts +14 -7
- package/dist/types/renderable/imagelayer.d.ts +14 -2
- package/dist/types/renderable/light2d.d.ts +3 -1
- package/dist/types/renderable/nineslicesprite.d.ts +8 -1
- package/dist/types/renderable/renderable.d.ts +33 -9
- package/dist/types/renderable/sprite.d.ts +8 -1
- package/dist/types/renderable/text/bitmaptext.d.ts +1 -1
- package/dist/types/renderable/trigger.d.ts +4 -0
- package/dist/types/state/state.d.ts +1 -1
- package/dist/types/video/canvas/canvas_renderer.d.ts +32 -4
- package/dist/types/video/renderer.d.ts +15 -1
- package/dist/types/video/rendertarget/canvasrendertarget.d.ts +32 -4
- package/dist/types/video/texture/atlas.d.ts +6 -1
- package/dist/types/video/webgl/compositors/compositor.d.ts +7 -0
- package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +5 -0
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +2 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +25 -21
- package/package.json +10 -11
- package/src/application/application.js +6 -0
- package/src/application/header.js +5 -0
- package/src/application/resize.js +5 -0
- package/src/application/settings.js +5 -0
- package/src/audio/audio.js +6 -1
- package/src/camera/camera2d.js +7 -0
- package/src/geometries/ellipse.js +9 -1
- package/src/geometries/line.js +5 -0
- package/src/geometries/path2d.js +6 -0
- package/src/geometries/point.js +5 -0
- package/src/geometries/poly.js +8 -0
- package/src/geometries/rectangle.js +5 -0
- package/src/input/pointerevent.js +4 -0
- package/src/loader/loader.js +7 -6
- package/src/math/matrix2.js +8 -0
- package/src/math/matrix3.js +7 -0
- package/src/math/observable_vector3.js +6 -0
- package/src/math/vector2.js +2 -2
- package/src/math/vector3.js +8 -3
- package/src/particles/particle.js +4 -0
- package/src/physics/body.js +11 -0
- package/src/physics/bounds.js +6 -0
- package/src/physics/collision.js +5 -0
- package/src/physics/detector.js +9 -0
- package/src/physics/quadtree.js +6 -0
- package/src/physics/sat.js +11 -1
- package/src/physics/world.js +4 -0
- package/src/plugin/plugin.js +5 -1
- package/src/renderable/colorlayer.js +7 -3
- package/src/renderable/container.js +26 -3
- package/src/renderable/dragndrop.js +4 -0
- package/src/renderable/entity/entity.js +9 -1
- package/src/renderable/imagelayer.js +4 -0
- package/src/renderable/light2d.js +9 -1
- package/src/renderable/nineslicesprite.js +6 -0
- package/src/renderable/renderable.js +18 -1
- package/src/renderable/sprite.js +7 -1
- package/src/renderable/trigger.js +6 -1
- package/src/video/canvas/canvas_renderer.js +31 -0
- package/src/video/renderer.js +10 -1
- package/src/video/rendertarget/canvasrendertarget.js +8 -2
- package/src/video/texture/atlas.js +5 -0
- package/src/video/webgl/compositors/compositor.js +6 -0
- package/src/video/webgl/compositors/primitive_compositor.js +5 -0
- package/src/video/webgl/compositors/quad_compositor.js +5 -0
- package/src/video/webgl/webgl_renderer.js +77 -30
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v17.
|
|
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
|
|
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 {
|
|
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<
|
|
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(
|
|
772
|
-
super.setAntiAlias(
|
|
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,
|
|
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
|
|
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.
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
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
|
-
|
|
944
|
-
this.
|
|
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.
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
this.
|
|
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.
|
|
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
|
|