UNPKG

phaser3-rex-plugins

Version:
62 lines (47 loc) 1.6 kB
import BaseGeom from '../base/BaseGeom.js'; import FillPathWebGL from '../../../utils/render/FillPathWebGL.js'; import StrokePathWebGL from '../../../utils/render/StrokePathWebGL.js'; import FillPathCanvas from '../../../utils/render/FillPathCanvas.js'; import StrokePathCanvas from '../../../utils/render/StrokePathCanvas.js'; import StrokePathMethods from '../../../utils/strokepath/StrokePathMethods.js'; const Earcut = Phaser.Geom.Polygon.Earcut; class PathBase extends BaseGeom { constructor() { super(); this.pathData = []; this.isDashed = false; this.strokePathData = undefined; this.strokePathMask = undefined; this.dashPattern = undefined; this.dashOffset = 0; this.pathIndexes = []; this.closePath = false; } updateData() { this.pathIndexes = Earcut(this.pathData); super.updateData(); this.buildStrokePath(); return this; } webglRender(pipeline, calcMatrix, alpha, dx, dy) { if (this.isFilled) { FillPathWebGL(pipeline, calcMatrix, this, alpha, dx, dy); } if (this.isStroked) { StrokePathWebGL(pipeline, this, alpha, dx, dy); } } canvasRender(ctx, dx, dy) { if (this.isFilled) { FillPathCanvas(ctx, this, dx, dy); } if (this.isStroked) { StrokePathCanvas(ctx, this, dx, dy); } } } Object.assign( PathBase.prototype, StrokePathMethods, ) export default PathBase;