@vpmedia/phaser 1.0.2 → 1.0.3
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/README.md +20 -3
- package/dist/phaser.cjs +1 -1
- package/dist/phaser.cjs.LICENSE.txt +1 -1
- package/dist/phaser.cjs.map +1 -1
- package/dist/phaser.js +1 -1
- package/dist/phaser.js.LICENSE.txt +1 -1
- package/dist/phaser.js.map +1 -1
- package/package.json +22 -15
- package/src/index.js +58 -15
- package/src/phaser/core/animation_parser.js +14 -11
- package/src/phaser/core/array_set.js +0 -1
- package/src/phaser/core/const.js +2 -2
- package/src/phaser/core/device_util.js +20 -18
- package/src/phaser/core/frame_util.js +6 -4
- package/src/phaser/core/loader.js +123 -12
- package/src/phaser/core/loader_parser.js +18 -14
- package/src/phaser/core/scene.js +0 -1
- package/src/phaser/core/scene_manager.js +0 -1
- package/src/phaser/core/sound_manager.js +0 -1
- package/src/phaser/core/tween_easing.js +62 -37
- package/src/phaser/display/canvas/graphics.js +5 -5
- package/src/phaser/display/canvas/masker.js +3 -3
- package/src/phaser/display/canvas/pool.js +10 -5
- package/src/phaser/display/canvas/tinter.js +12 -9
- package/src/phaser/display/canvas/util.js +33 -25
- package/src/phaser/display/graphics_data_util.js +2 -1
- package/src/phaser/display/sprite_util.js +14 -12
- package/src/phaser/display/webgl/earcut.js +106 -91
- package/src/phaser/display/webgl/graphics.js +31 -25
- package/src/phaser/display/webgl/mask_manager.js +4 -4
- package/src/phaser/display/webgl/texture_util.js +6 -4
- package/src/phaser/display/webgl/util.js +14 -10
- package/src/phaser/geom/polygon.js +0 -1
- package/src/phaser/geom/util/circle.js +26 -19
- package/src/phaser/geom/util/ellipse.js +7 -3
- package/src/phaser/geom/util/line.js +21 -16
- package/src/phaser/geom/util/matrix.js +7 -2
- package/src/phaser/geom/util/point.js +76 -56
- package/src/phaser/geom/util/polygon.js +6 -2
- package/src/phaser/geom/util/rectangle.js +59 -42
- package/src/phaser/geom/util/rounded_rectangle.js +6 -2
- package/src/phaser/util/math.js +61 -43
- package/src/phaser/util/string.js +6 -0
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* @author Mat Groves http://matgroves.com/ @Doormat23
|
|
5
5
|
* @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
|
|
6
6
|
*/
|
|
7
|
-
/* eslint-disable no-continue */
|
|
8
7
|
import Node from './earcut_node';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
*
|
|
12
|
-
* @param list
|
|
11
|
+
* @param {object} list TBD
|
|
12
|
+
* @returns {object} TBD
|
|
13
13
|
*/
|
|
14
14
|
export function sortLinked(list) {
|
|
15
15
|
let i;
|
|
@@ -74,8 +74,9 @@ export function sortLinked(list) {
|
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
76
|
*
|
|
77
|
-
* @param a
|
|
78
|
-
* @param b
|
|
77
|
+
* @param {object} a TBD
|
|
78
|
+
* @param {object} b TBD
|
|
79
|
+
* @returns {number} TBD
|
|
79
80
|
*/
|
|
80
81
|
export function compareX(a, b) {
|
|
81
82
|
return a.x - b.x;
|
|
@@ -83,11 +84,12 @@ export function compareX(a, b) {
|
|
|
83
84
|
|
|
84
85
|
/**
|
|
85
86
|
*
|
|
86
|
-
* @param x
|
|
87
|
-
* @param y
|
|
88
|
-
* @param minX
|
|
89
|
-
* @param minY
|
|
90
|
-
* @param size
|
|
87
|
+
* @param {number} x TBD
|
|
88
|
+
* @param {number} y TBD
|
|
89
|
+
* @param {number} minX TBD
|
|
90
|
+
* @param {number} minY TBD
|
|
91
|
+
* @param {number} size TBD
|
|
92
|
+
* @returns {number} TBD
|
|
91
93
|
*/
|
|
92
94
|
export function zOrder(x, y, minX, minY, size) {
|
|
93
95
|
// coords are transformed into non-negative 15-bit integer range
|
|
@@ -106,10 +108,10 @@ export function zOrder(x, y, minX, minY, size) {
|
|
|
106
108
|
|
|
107
109
|
/**
|
|
108
110
|
*
|
|
109
|
-
* @param start
|
|
110
|
-
* @param minX
|
|
111
|
-
* @param minY
|
|
112
|
-
* @param size
|
|
111
|
+
* @param {object} start TBD
|
|
112
|
+
* @param {number} minX TBD
|
|
113
|
+
* @param {number} minY TBD
|
|
114
|
+
* @param {number} size TBD
|
|
113
115
|
*/
|
|
114
116
|
export function indexCurve(start, minX, minY, size) {
|
|
115
117
|
let p = start;
|
|
@@ -126,7 +128,8 @@ export function indexCurve(start, minX, minY, size) {
|
|
|
126
128
|
|
|
127
129
|
/**
|
|
128
130
|
*
|
|
129
|
-
* @param start
|
|
131
|
+
* @param {object} start TBD
|
|
132
|
+
* @returns {object} TBD
|
|
130
133
|
*/
|
|
131
134
|
export function getLeftmost(start) {
|
|
132
135
|
let p = start;
|
|
@@ -140,14 +143,15 @@ export function getLeftmost(start) {
|
|
|
140
143
|
|
|
141
144
|
/**
|
|
142
145
|
*
|
|
143
|
-
* @param ax
|
|
144
|
-
* @param ay
|
|
145
|
-
* @param bx
|
|
146
|
-
* @param by
|
|
147
|
-
* @param cx
|
|
148
|
-
* @param cy
|
|
149
|
-
* @param px
|
|
150
|
-
* @param py
|
|
146
|
+
* @param {number} ax TBD
|
|
147
|
+
* @param {number} ay TBD
|
|
148
|
+
* @param {number} bx TBD
|
|
149
|
+
* @param {number} by TBD
|
|
150
|
+
* @param {number} cx TBD
|
|
151
|
+
* @param {number} cy TBD
|
|
152
|
+
* @param {number} px TBD
|
|
153
|
+
* @param {number} py TBD
|
|
154
|
+
* @returns {object} TBD
|
|
151
155
|
*/
|
|
152
156
|
export function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
|
|
153
157
|
return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;
|
|
@@ -155,9 +159,10 @@ export function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {
|
|
|
155
159
|
|
|
156
160
|
/**
|
|
157
161
|
*
|
|
158
|
-
* @param p
|
|
159
|
-
* @param q
|
|
160
|
-
* @param r
|
|
162
|
+
* @param {object} p TBD
|
|
163
|
+
* @param {object} q TBD
|
|
164
|
+
* @param {object} r TBD
|
|
165
|
+
* @returns {number} TBD
|
|
161
166
|
*/
|
|
162
167
|
export function area(p, q, r) {
|
|
163
168
|
return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
|
|
@@ -165,8 +170,9 @@ export function area(p, q, r) {
|
|
|
165
170
|
|
|
166
171
|
/**
|
|
167
172
|
*
|
|
168
|
-
* @param p1
|
|
169
|
-
* @param p2
|
|
173
|
+
* @param {object} p1 TBD
|
|
174
|
+
* @param {object} p2 TBD
|
|
175
|
+
* @returns {boolean} TBD
|
|
170
176
|
*/
|
|
171
177
|
export function equals(p1, p2) {
|
|
172
178
|
return p1.x === p2.x && p1.y === p2.y;
|
|
@@ -174,10 +180,11 @@ export function equals(p1, p2) {
|
|
|
174
180
|
|
|
175
181
|
/**
|
|
176
182
|
*
|
|
177
|
-
* @param p1
|
|
178
|
-
* @param q1
|
|
179
|
-
* @param p2
|
|
180
|
-
* @param q2
|
|
183
|
+
* @param {object} p1 TBD
|
|
184
|
+
* @param {object} q1 TBD
|
|
185
|
+
* @param {object} p2 TBD
|
|
186
|
+
* @param {object} q2 TBD
|
|
187
|
+
* @returns {boolean} TBD
|
|
181
188
|
*/
|
|
182
189
|
export function intersects(p1, q1, p2, q2) {
|
|
183
190
|
return area(p1, q1, p2) > 0 !== area(p1, q1, q2) > 0 && area(p2, q2, p1) > 0 !== area(p2, q2, q1) > 0;
|
|
@@ -185,8 +192,9 @@ export function intersects(p1, q1, p2, q2) {
|
|
|
185
192
|
|
|
186
193
|
/**
|
|
187
194
|
*
|
|
188
|
-
* @param a
|
|
189
|
-
* @param b
|
|
195
|
+
* @param {object} a TBD
|
|
196
|
+
* @param {object} b TBD
|
|
197
|
+
* @returns {boolean} TBD
|
|
190
198
|
*/
|
|
191
199
|
export function intersectsPolygon(a, b) {
|
|
192
200
|
let p = a;
|
|
@@ -199,8 +207,9 @@ export function intersectsPolygon(a, b) {
|
|
|
199
207
|
|
|
200
208
|
/**
|
|
201
209
|
*
|
|
202
|
-
* @param a
|
|
203
|
-
* @param b
|
|
210
|
+
* @param {object} a TBD
|
|
211
|
+
* @param {object} b TBD
|
|
212
|
+
* @returns {object} TBD
|
|
204
213
|
*/
|
|
205
214
|
export function locallyInside(a, b) {
|
|
206
215
|
return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;
|
|
@@ -208,8 +217,9 @@ export function locallyInside(a, b) {
|
|
|
208
217
|
|
|
209
218
|
/**
|
|
210
219
|
*
|
|
211
|
-
* @param a
|
|
212
|
-
* @param b
|
|
220
|
+
* @param {object} a TBD
|
|
221
|
+
* @param {object} b TBD
|
|
222
|
+
* @returns {boolean} TBD
|
|
213
223
|
*/
|
|
214
224
|
export function middleInside(a, b) {
|
|
215
225
|
let p = a;
|
|
@@ -227,8 +237,9 @@ export function middleInside(a, b) {
|
|
|
227
237
|
|
|
228
238
|
/**
|
|
229
239
|
*
|
|
230
|
-
* @param a
|
|
231
|
-
* @param b
|
|
240
|
+
* @param {object} a TBD
|
|
241
|
+
* @param {object} b TBD
|
|
242
|
+
* @returns {boolean} TBD
|
|
232
243
|
*/
|
|
233
244
|
export function isValidDiagonal(a, b) {
|
|
234
245
|
return equals(a, b) || a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b);
|
|
@@ -236,8 +247,9 @@ export function isValidDiagonal(a, b) {
|
|
|
236
247
|
|
|
237
248
|
/**
|
|
238
249
|
*
|
|
239
|
-
* @param a
|
|
240
|
-
* @param b
|
|
250
|
+
* @param {object} a TBD
|
|
251
|
+
* @param {object} b TBD
|
|
252
|
+
* @returns {object} TBD
|
|
241
253
|
*/
|
|
242
254
|
export function splitPolygon(a, b) {
|
|
243
255
|
const a2 = new Node(a.i, a.x, a.y);
|
|
@@ -257,10 +269,11 @@ export function splitPolygon(a, b) {
|
|
|
257
269
|
|
|
258
270
|
/**
|
|
259
271
|
*
|
|
260
|
-
* @param i
|
|
261
|
-
* @param x
|
|
262
|
-
* @param y
|
|
263
|
-
* @param last
|
|
272
|
+
* @param {number} i TBD
|
|
273
|
+
* @param {number} x TBD
|
|
274
|
+
* @param {number} y TBD
|
|
275
|
+
* @param {object} last TBD
|
|
276
|
+
* @returns {object} TBD
|
|
264
277
|
*/
|
|
265
278
|
export function insertNode(i, x, y, last) {
|
|
266
279
|
const p = new Node(i, x, y);
|
|
@@ -278,7 +291,7 @@ export function insertNode(i, x, y, last) {
|
|
|
278
291
|
|
|
279
292
|
/**
|
|
280
293
|
*
|
|
281
|
-
* @param p
|
|
294
|
+
* @param {object} p TBD
|
|
282
295
|
*/
|
|
283
296
|
export function removeNode(p) {
|
|
284
297
|
p.next.prev = p.prev;
|
|
@@ -293,7 +306,8 @@ export function removeNode(p) {
|
|
|
293
306
|
|
|
294
307
|
/**
|
|
295
308
|
*
|
|
296
|
-
* @param ear
|
|
309
|
+
* @param {object} ear TBD
|
|
310
|
+
* @returns {boolean} TBD
|
|
297
311
|
*/
|
|
298
312
|
export function isEar(ear) {
|
|
299
313
|
const a = ear.prev;
|
|
@@ -311,10 +325,11 @@ export function isEar(ear) {
|
|
|
311
325
|
|
|
312
326
|
/**
|
|
313
327
|
*
|
|
314
|
-
* @param ear
|
|
315
|
-
* @param minX
|
|
316
|
-
* @param minY
|
|
317
|
-
* @param size
|
|
328
|
+
* @param {object} ear TBD
|
|
329
|
+
* @param {number} minX TBD
|
|
330
|
+
* @param {number} minY TBD
|
|
331
|
+
* @param {number} size TBD
|
|
332
|
+
* @returns {boolean} TBD
|
|
318
333
|
*/
|
|
319
334
|
export function isEarHashed(ear, minX, minY, size) {
|
|
320
335
|
const a = ear.prev;
|
|
@@ -322,13 +337,9 @@ export function isEarHashed(ear, minX, minY, size) {
|
|
|
322
337
|
const c = ear.next;
|
|
323
338
|
if (area(a, b, c) >= 0) return false; // reflex, can't be an ear
|
|
324
339
|
// triangle bbox; min & max are calculated like this for speed
|
|
325
|
-
/* eslint-disable no-nested-ternary */
|
|
326
340
|
const minTX = a.x < b.x ? (a.x < c.x ? a.x : c.x) : (b.x < c.x ? b.x : c.x);
|
|
327
|
-
/* eslint-disable no-nested-ternary */
|
|
328
341
|
const minTY = a.y < b.y ? (a.y < c.y ? a.y : c.y) : (b.y < c.y ? b.y : c.y);
|
|
329
|
-
/* eslint-disable no-nested-ternary */
|
|
330
342
|
const maxTX = a.x > b.x ? (a.x > c.x ? a.x : c.x) : (b.x > c.x ? b.x : c.x);
|
|
331
|
-
/* eslint-disable no-nested-ternary */
|
|
332
343
|
const maxTY = a.y > b.y ? (a.y > c.y ? a.y : c.y) : (b.y > c.y ? b.y : c.y);
|
|
333
344
|
// z-order range for the current triangle bbox;
|
|
334
345
|
const minZ = zOrder(minTX, minTY, minX, minY, size);
|
|
@@ -354,11 +365,12 @@ export function isEarHashed(ear, minX, minY, size) {
|
|
|
354
365
|
|
|
355
366
|
/**
|
|
356
367
|
*
|
|
357
|
-
* @param data
|
|
358
|
-
* @param start
|
|
359
|
-
* @param end
|
|
360
|
-
* @param dim
|
|
361
|
-
* @param clockwise
|
|
368
|
+
* @param {object} data TBD
|
|
369
|
+
* @param {number} start TBD
|
|
370
|
+
* @param {number} end TBD
|
|
371
|
+
* @param {number} dim TBD
|
|
372
|
+
* @param {boolean} clockwise TBD
|
|
373
|
+
* @returns {object} TBD
|
|
362
374
|
*/
|
|
363
375
|
export function linkedList(data, start, end, dim, clockwise) {
|
|
364
376
|
let sum = 0;
|
|
@@ -381,8 +393,9 @@ export function linkedList(data, start, end, dim, clockwise) {
|
|
|
381
393
|
|
|
382
394
|
/**
|
|
383
395
|
*
|
|
384
|
-
* @param start
|
|
385
|
-
* @param end
|
|
396
|
+
* @param {object} start TBD
|
|
397
|
+
* @param {object} end TBD
|
|
398
|
+
* @returns {object} TBD
|
|
386
399
|
*/
|
|
387
400
|
export function filterPoints(start, end) {
|
|
388
401
|
if (!start) return start;
|
|
@@ -406,8 +419,9 @@ export function filterPoints(start, end) {
|
|
|
406
419
|
|
|
407
420
|
/**
|
|
408
421
|
*
|
|
409
|
-
* @param hole
|
|
410
|
-
* @param outerNode
|
|
422
|
+
* @param {object} hole TBD
|
|
423
|
+
* @param {object} outerNode TBD
|
|
424
|
+
* @returns {object} TBD
|
|
411
425
|
*/
|
|
412
426
|
export function findHoleBridge(hole, outerNode) {
|
|
413
427
|
let p = outerNode;
|
|
@@ -451,8 +465,8 @@ export function findHoleBridge(hole, outerNode) {
|
|
|
451
465
|
|
|
452
466
|
/**
|
|
453
467
|
*
|
|
454
|
-
* @param hole
|
|
455
|
-
* @param outerNode
|
|
468
|
+
* @param {object} hole TBD
|
|
469
|
+
* @param {object} outerNode TBD
|
|
456
470
|
*/
|
|
457
471
|
export function eliminateHole(hole, outerNode) {
|
|
458
472
|
outerNode = findHoleBridge(hole, outerNode);
|
|
@@ -464,10 +478,11 @@ export function eliminateHole(hole, outerNode) {
|
|
|
464
478
|
|
|
465
479
|
/**
|
|
466
480
|
*
|
|
467
|
-
* @param data
|
|
468
|
-
* @param holeIndices
|
|
469
|
-
* @param outerNode
|
|
470
|
-
* @param dim
|
|
481
|
+
* @param {object} data TBD
|
|
482
|
+
* @param {object} holeIndices TBD
|
|
483
|
+
* @param {object} outerNode TBD
|
|
484
|
+
* @param {object} dim TBD
|
|
485
|
+
* @returns {object} TBD
|
|
471
486
|
*/
|
|
472
487
|
export function eliminateHoles(data, holeIndices, outerNode, dim) {
|
|
473
488
|
const queue = [];
|
|
@@ -494,9 +509,10 @@ export function eliminateHoles(data, holeIndices, outerNode, dim) {
|
|
|
494
509
|
|
|
495
510
|
/**
|
|
496
511
|
*
|
|
497
|
-
* @param start
|
|
498
|
-
* @param triangles
|
|
499
|
-
* @param dim
|
|
512
|
+
* @param {object} start TBD
|
|
513
|
+
* @param {object} triangles TBD
|
|
514
|
+
* @param {number} dim TBD
|
|
515
|
+
* @returns {object} TBD
|
|
500
516
|
*/
|
|
501
517
|
export function cureLocalIntersections(start, triangles, dim) {
|
|
502
518
|
let p = start;
|
|
@@ -521,12 +537,12 @@ export function cureLocalIntersections(start, triangles, dim) {
|
|
|
521
537
|
|
|
522
538
|
/**
|
|
523
539
|
*
|
|
524
|
-
* @param start
|
|
525
|
-
* @param triangles
|
|
526
|
-
* @param dim
|
|
527
|
-
* @param minX
|
|
528
|
-
* @param minY
|
|
529
|
-
* @param size
|
|
540
|
+
* @param {object} start TBD
|
|
541
|
+
* @param {object} triangles TBD
|
|
542
|
+
* @param {number} dim TBD
|
|
543
|
+
* @param {number} minX TBD
|
|
544
|
+
* @param {number} minY TBD
|
|
545
|
+
* @param {number} size TBD
|
|
530
546
|
*/
|
|
531
547
|
export function splitEarcut(start, triangles, dim, minX, minY, size) {
|
|
532
548
|
// look for a valid diagonal that divides the polygon into two
|
|
@@ -541,9 +557,7 @@ export function splitEarcut(start, triangles, dim, minX, minY, size) {
|
|
|
541
557
|
a = filterPoints(a, a.next);
|
|
542
558
|
c = filterPoints(c, c.next);
|
|
543
559
|
// run earcut on each half
|
|
544
|
-
/* eslint-disable no-use-before-define */
|
|
545
560
|
earcutLinked(a, triangles, dim, minX, minY, size);
|
|
546
|
-
/* eslint-disable no-use-before-define */
|
|
547
561
|
earcutLinked(c, triangles, dim, minX, minY, size);
|
|
548
562
|
return;
|
|
549
563
|
}
|
|
@@ -555,13 +569,13 @@ export function splitEarcut(start, triangles, dim, minX, minY, size) {
|
|
|
555
569
|
|
|
556
570
|
/**
|
|
557
571
|
*
|
|
558
|
-
* @param ear
|
|
559
|
-
* @param triangles
|
|
560
|
-
* @param dim
|
|
561
|
-
* @param minX
|
|
562
|
-
* @param minY
|
|
563
|
-
* @param size
|
|
564
|
-
* @param pass
|
|
572
|
+
* @param {object} ear TBD
|
|
573
|
+
* @param {object} triangles TBD
|
|
574
|
+
* @param {number} dim TBD
|
|
575
|
+
* @param {number} minX TBD
|
|
576
|
+
* @param {number} minY TBD
|
|
577
|
+
* @param {number} size TBD
|
|
578
|
+
* @param {object} pass TBD
|
|
565
579
|
*/
|
|
566
580
|
export function earcutLinked(ear, triangles, dim, minX, minY, size, pass) {
|
|
567
581
|
if (!ear) return;
|
|
@@ -606,9 +620,10 @@ export function earcutLinked(ear, triangles, dim, minX, minY, size, pass) {
|
|
|
606
620
|
|
|
607
621
|
/**
|
|
608
622
|
*
|
|
609
|
-
* @param data
|
|
610
|
-
* @param holeIndices
|
|
611
|
-
* @param dim
|
|
623
|
+
* @param {object} data TBD
|
|
624
|
+
* @param {object} holeIndices TBD
|
|
625
|
+
* @param {number} dim TBD
|
|
626
|
+
* @returns {object} TBD
|
|
612
627
|
*/
|
|
613
628
|
export function triangulate(data, holeIndices, dim) {
|
|
614
629
|
dim = dim || 2;
|
|
@@ -11,7 +11,9 @@ import { hex2rgb } from '../../util/math';
|
|
|
11
11
|
import { triangulate } from './earcut';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
+
* TBD
|
|
14
15
|
*
|
|
16
|
+
* @returns {number} TBD
|
|
15
17
|
*/
|
|
16
18
|
export function getStencilBufferLimit() {
|
|
17
19
|
if (!window.PhaserRegistry.stencilBufferLimit) {
|
|
@@ -21,7 +23,9 @@ export function getStencilBufferLimit() {
|
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
/**
|
|
26
|
+
* TBD
|
|
24
27
|
*
|
|
28
|
+
* @returns {object[]} TBD
|
|
25
29
|
*/
|
|
26
30
|
export function getGraphicsDataPool() {
|
|
27
31
|
if (!window.PhaserRegistry.graphicsDataPool) {
|
|
@@ -32,8 +36,9 @@ export function getGraphicsDataPool() {
|
|
|
32
36
|
|
|
33
37
|
/**
|
|
34
38
|
*
|
|
35
|
-
* @param webGL
|
|
36
|
-
* @param type
|
|
39
|
+
* @param {object} webGL TBD
|
|
40
|
+
* @param {number} type TBD
|
|
41
|
+
* @returns {object} TBD
|
|
37
42
|
*/
|
|
38
43
|
export function switchMode(webGL, type) {
|
|
39
44
|
let webGLData;
|
|
@@ -55,8 +60,8 @@ export function switchMode(webGL, type) {
|
|
|
55
60
|
|
|
56
61
|
/**
|
|
57
62
|
*
|
|
58
|
-
* @param graphicsData
|
|
59
|
-
* @param webGLData
|
|
63
|
+
* @param {object} graphicsData TBD
|
|
64
|
+
* @param {object} webGLData TBD
|
|
60
65
|
*/
|
|
61
66
|
export function buildLine(graphicsData, webGLData) {
|
|
62
67
|
// TODO OPTIMISE!
|
|
@@ -168,7 +173,6 @@ export function buildLine(graphicsData, webGLData) {
|
|
|
168
173
|
denom += 10.1;
|
|
169
174
|
verts.push(p2x - perpx, p2y - perpy, r, g, b, alpha);
|
|
170
175
|
verts.push(p2x + perpx, p2y + perpy, r, g, b, alpha);
|
|
171
|
-
/* eslint-disable no-continue */
|
|
172
176
|
continue;
|
|
173
177
|
}
|
|
174
178
|
px = (b1 * c2 - b2 * c1) / denom;
|
|
@@ -221,8 +225,8 @@ export function buildLine(graphicsData, webGLData) {
|
|
|
221
225
|
|
|
222
226
|
/**
|
|
223
227
|
*
|
|
224
|
-
* @param graphicsData
|
|
225
|
-
* @param webGLData
|
|
228
|
+
* @param {object} graphicsData TBD
|
|
229
|
+
* @param {object} webGLData TBD
|
|
226
230
|
*/
|
|
227
231
|
export function buildRectangle(graphicsData, webGLData) {
|
|
228
232
|
//
|
|
@@ -265,12 +269,13 @@ export function buildRectangle(graphicsData, webGLData) {
|
|
|
265
269
|
|
|
266
270
|
/**
|
|
267
271
|
*
|
|
268
|
-
* @param fromX
|
|
269
|
-
* @param fromY
|
|
270
|
-
* @param cpX
|
|
271
|
-
* @param cpY
|
|
272
|
-
* @param toX
|
|
273
|
-
* @param toY
|
|
272
|
+
* @param {number} fromX TBD
|
|
273
|
+
* @param {number} fromY TBD
|
|
274
|
+
* @param {number} cpX TBD
|
|
275
|
+
* @param {number} cpY TBD
|
|
276
|
+
* @param {number} toX TBD
|
|
277
|
+
* @param {number} toY TBD
|
|
278
|
+
* @returns {number[]} TBD
|
|
274
279
|
*/
|
|
275
280
|
export function quadraticBezierCurve(fromX, fromY, cpX, cpY, toX, toY) {
|
|
276
281
|
let xa;
|
|
@@ -303,8 +308,8 @@ export function quadraticBezierCurve(fromX, fromY, cpX, cpY, toX, toY) {
|
|
|
303
308
|
|
|
304
309
|
/**
|
|
305
310
|
*
|
|
306
|
-
* @param graphicsData
|
|
307
|
-
* @param webGLData
|
|
311
|
+
* @param {object} graphicsData TBD
|
|
312
|
+
* @param {object} webGLData TBD
|
|
308
313
|
*/
|
|
309
314
|
export function buildRoundedRectangle(graphicsData, webGLData) {
|
|
310
315
|
const rrectData = graphicsData.shape;
|
|
@@ -351,8 +356,8 @@ export function buildRoundedRectangle(graphicsData, webGLData) {
|
|
|
351
356
|
|
|
352
357
|
/**
|
|
353
358
|
*
|
|
354
|
-
* @param graphicsData
|
|
355
|
-
* @param webGLData
|
|
359
|
+
* @param {object} graphicsData TBD
|
|
360
|
+
* @param {object} webGLData TBD
|
|
356
361
|
*/
|
|
357
362
|
export function buildCircle(graphicsData, webGLData) {
|
|
358
363
|
// need to convert points to a nice regular data
|
|
@@ -402,8 +407,8 @@ export function buildCircle(graphicsData, webGLData) {
|
|
|
402
407
|
|
|
403
408
|
/**
|
|
404
409
|
*
|
|
405
|
-
* @param graphicsData
|
|
406
|
-
* @param webGLData
|
|
410
|
+
* @param {object} graphicsData TBD
|
|
411
|
+
* @param {object} webGLData TBD
|
|
407
412
|
*/
|
|
408
413
|
export function buildComplexPoly(graphicsData, webGLData) {
|
|
409
414
|
// TODO - no need to copy this as it gets turned into a Float32Array anyways..
|
|
@@ -446,8 +451,9 @@ export function buildComplexPoly(graphicsData, webGLData) {
|
|
|
446
451
|
|
|
447
452
|
/**
|
|
448
453
|
*
|
|
449
|
-
* @param graphicsData
|
|
450
|
-
* @param webGLData
|
|
454
|
+
* @param {object} graphicsData TBD
|
|
455
|
+
* @param {object} webGLData TBD
|
|
456
|
+
* @returns {boolean} TBD
|
|
451
457
|
*/
|
|
452
458
|
export function buildPoly(graphicsData, webGLData) {
|
|
453
459
|
const points = graphicsData.points;
|
|
@@ -484,8 +490,8 @@ export function buildPoly(graphicsData, webGLData) {
|
|
|
484
490
|
|
|
485
491
|
/**
|
|
486
492
|
*
|
|
487
|
-
* @param graphics
|
|
488
|
-
* @param gl
|
|
493
|
+
* @param {object} graphics TBD
|
|
494
|
+
* @param {object} gl TBD
|
|
489
495
|
*/
|
|
490
496
|
export function updateGraphics(graphics, gl) {
|
|
491
497
|
const stencilBufferLimit = getStencilBufferLimit();
|
|
@@ -572,8 +578,8 @@ export function updateGraphics(graphics, gl) {
|
|
|
572
578
|
|
|
573
579
|
/**
|
|
574
580
|
*
|
|
575
|
-
* @param graphics
|
|
576
|
-
* @param renderSession
|
|
581
|
+
* @param {object} graphics TBD
|
|
582
|
+
* @param {object} renderSession TBD
|
|
577
583
|
*/
|
|
578
584
|
export function renderGraphics(graphics, renderSession) {
|
|
579
585
|
const gl = renderSession.gl;
|
|
@@ -8,8 +8,8 @@ import { updateGraphics } from './graphics';
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
*
|
|
11
|
-
* @param maskData
|
|
12
|
-
* @param renderSession
|
|
11
|
+
* @param {object} maskData TBD
|
|
12
|
+
* @param {object} renderSession TBD
|
|
13
13
|
*/
|
|
14
14
|
export function pushMask(maskData, renderSession) {
|
|
15
15
|
const gl = renderSession.gl;
|
|
@@ -24,8 +24,8 @@ export function pushMask(maskData, renderSession) {
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
*
|
|
27
|
-
* @param maskData
|
|
28
|
-
* @param renderSession
|
|
27
|
+
* @param {object} maskData TBD
|
|
28
|
+
* @param {object} renderSession TBD
|
|
29
29
|
*/
|
|
30
30
|
export function popMask(maskData, renderSession) {
|
|
31
31
|
const gl = renderSession.gl;
|
|
@@ -9,8 +9,9 @@ import Texture from './texture';
|
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
*
|
|
12
|
-
* @param canvas
|
|
13
|
-
* @param scaleMode
|
|
12
|
+
* @param {object} canvas TBD
|
|
13
|
+
* @param {number} scaleMode TBD
|
|
14
|
+
* @returns {object} TBD
|
|
14
15
|
*/
|
|
15
16
|
export function baseTextureFromCanvas(canvas, scaleMode) {
|
|
16
17
|
if (canvas.width === 0) {
|
|
@@ -24,8 +25,9 @@ export function baseTextureFromCanvas(canvas, scaleMode) {
|
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
*
|
|
27
|
-
* @param canvas
|
|
28
|
-
* @param scaleMode
|
|
28
|
+
* @param {object} canvas TBD
|
|
29
|
+
* @param {number} scaleMode TBD
|
|
30
|
+
* @returns {object} TBD
|
|
29
31
|
*/
|
|
30
32
|
export function textureFromCanvas(canvas, scaleMode) {
|
|
31
33
|
return new Texture(baseTextureFromCanvas(canvas, scaleMode));
|
|
@@ -13,9 +13,10 @@ export function initDefaultShaders() {
|
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
|
-
* @param gl
|
|
17
|
-
* @param shaderSrc
|
|
18
|
-
* @param shaderType
|
|
16
|
+
* @param {object} gl TBD
|
|
17
|
+
* @param {string[]|string} shaderSrc TBD
|
|
18
|
+
* @param {object} shaderType TBD
|
|
19
|
+
* @returns {object} TBD
|
|
19
20
|
*/
|
|
20
21
|
export function compileShader(gl, shaderSrc, shaderType) {
|
|
21
22
|
let src = shaderSrc;
|
|
@@ -34,8 +35,9 @@ export function compileShader(gl, shaderSrc, shaderType) {
|
|
|
34
35
|
|
|
35
36
|
/**
|
|
36
37
|
*
|
|
37
|
-
* @param gl
|
|
38
|
-
* @param shaderSrc
|
|
38
|
+
* @param {object} gl TBD
|
|
39
|
+
* @param {string[]|string} shaderSrc TBD
|
|
40
|
+
* @returns {object} TBD
|
|
39
41
|
*/
|
|
40
42
|
export function compileVertexShader(gl, shaderSrc) {
|
|
41
43
|
return compileShader(gl, shaderSrc, gl.VERTEX_SHADER);
|
|
@@ -43,8 +45,9 @@ export function compileVertexShader(gl, shaderSrc) {
|
|
|
43
45
|
|
|
44
46
|
/**
|
|
45
47
|
*
|
|
46
|
-
* @param gl
|
|
47
|
-
* @param shaderSrc
|
|
48
|
+
* @param {object} gl TBD
|
|
49
|
+
* @param {string[]|string} shaderSrc TBD
|
|
50
|
+
* @returns {object} TBD
|
|
48
51
|
*/
|
|
49
52
|
export function compileFragmentShader(gl, shaderSrc) {
|
|
50
53
|
return compileShader(gl, shaderSrc, gl.FRAGMENT_SHADER);
|
|
@@ -52,9 +55,10 @@ export function compileFragmentShader(gl, shaderSrc) {
|
|
|
52
55
|
|
|
53
56
|
/**
|
|
54
57
|
*
|
|
55
|
-
* @param gl
|
|
56
|
-
* @param vertexSrc
|
|
57
|
-
* @param fragmentSrc
|
|
58
|
+
* @param {object} gl TBD
|
|
59
|
+
* @param {string[]|string} vertexSrc TBD
|
|
60
|
+
* @param {string[]|string} fragmentSrc TBD
|
|
61
|
+
* @returns {object} TBD
|
|
58
62
|
*/
|
|
59
63
|
export function compileProgram(gl, vertexSrc, fragmentSrc) {
|
|
60
64
|
const fragmentShader = compileFragmentShader(gl, fragmentSrc);
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* @author Richard Davey <rich@photonstorm.com>
|
|
4
4
|
* @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
|
|
5
5
|
*/
|
|
6
|
-
/* eslint-disable no-cond-assign, no-plusplus */
|
|
7
6
|
import Point from './point';
|
|
8
7
|
import { clone } from './util/polygon';
|
|
9
8
|
import { GEOM_POLYGON } from '../core/const';
|