@wcardinal/wcardinal-ui 0.390.1 → 0.391.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 (32) hide show
  1. package/dist/types/wcardinal/ui/d-base-mesh-geometry.d.ts +1 -0
  2. package/dist/wcardinal/ui/d-base-background-mesh-geometry.js +3 -16
  3. package/dist/wcardinal/ui/d-base-background-mesh-geometry.js.map +1 -1
  4. package/dist/wcardinal/ui/d-base-border-mesh-geometry.js +68 -45
  5. package/dist/wcardinal/ui/d-base-border-mesh-geometry.js.map +1 -1
  6. package/dist/wcardinal/ui/d-base-mesh-geometry.js +2 -1
  7. package/dist/wcardinal/ui/d-base-mesh-geometry.js.map +1 -1
  8. package/dist/wcardinal/ui/shape/e-shape-renderer.js +1 -1
  9. package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
  10. package/dist/wcardinal/ui/shape/variant/e-shape-base.js +1 -1
  11. package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
  12. package/dist/wcardinal/ui/util/dynamic-sdf-font-generator.js +1 -1
  13. package/dist/wcardinal/ui/util/dynamic-sdf-font-generator.js.map +1 -1
  14. package/dist/wcardinal/ui/util/util-extractor.js +2 -0
  15. package/dist/wcardinal/ui/util/util-extractor.js.map +1 -1
  16. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  17. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  18. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  19. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  20. package/dist/wcardinal-ui-theme-dark.js +1 -1
  21. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  22. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  23. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  24. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  25. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  26. package/dist/wcardinal-ui-theme-white.js +1 -1
  27. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  28. package/dist/wcardinal-ui.cjs.js +81 -68
  29. package/dist/wcardinal-ui.js +81 -68
  30. package/dist/wcardinal-ui.min.js +2 -2
  31. package/dist/wcardinal-ui.min.js.map +1 -1
  32. package/package.json +1 -1
@@ -5,6 +5,7 @@ export interface DBaseMeshGeometryTable {
5
5
  sin: number[];
6
6
  }
7
7
  export declare class DBaseMeshGeometry extends MeshGeometry {
8
+ /** Note that this must be an odd number. */
8
9
  protected static N: number;
9
10
  protected static TABLES?: DBaseMeshGeometryTable[];
10
11
  protected _width: number;
@@ -13,27 +13,14 @@ var DBaseBackgroundMeshGeometry = /** @class */ (function (_super) {
13
13
  DBaseBackgroundMeshGeometry.prototype.fillVertices = function (vertices, uvs, iv, iuv, n, x, y, r, dr, table) {
14
14
  var cos = table.cos;
15
15
  var sin = table.sin;
16
- var cos0 = cos[0];
17
- var sin0 = sin[0];
18
- var cos1 = cos[n - 1];
19
- var sin1 = sin[n - 1];
16
+ var r1 = r + 0.25;
20
17
  for (var i = 0; i < n; ++i) {
21
18
  var c = cos[i];
22
19
  var s = sin[i];
23
- var dro = dr;
24
- var d0 = c * cos0 + s * sin0;
25
- if (0.0001 < d0) {
26
- dro = Math.min(dro, (1 / d0 - 1) * r);
27
- }
28
- var d1 = c * cos1 + s * sin1;
29
- if (0.0001 < d1) {
30
- dro = Math.min(dro, (1 / d1 - 1) * r);
31
- }
32
- var ro = r + dro;
33
20
  vertices[++iv] = x + c * r;
34
21
  vertices[++iv] = y + s * r;
35
- vertices[++iv] = x + c * ro;
36
- vertices[++iv] = y + s * ro;
22
+ vertices[++iv] = x + c * r1;
23
+ vertices[++iv] = y + s * r1;
37
24
  uvs[++iuv] = 0.5;
38
25
  uvs[++iuv] = 0.5;
39
26
  uvs[++iuv] = 0.5 * (1 + c);
@@ -1 +1 @@
1
- {"version":3,"file":"d-base-background-mesh-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-background-mesh-geometry.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,iBAAiB,EAA0B,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;IAAiD,+CAAiB;IACjE;eACC,kBACC,IAAI,YAAY,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAC1C,IAAI,YAAY,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAC1C,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CACnD;IACF,CAAC;IAES,kDAAY,GAAtB,UACC,QAAsB,EACtB,GAAiB,EACjB,EAAU,EACV,GAAW,EACX,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,EAAU,EACV,KAA6B;QAE7B,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,IAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;YAC3B,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAEjB,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,MAAM,GAAG,EAAE,EAAE;gBAChB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACtC;YACD,IAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,MAAM,GAAG,EAAE,EAAE;gBAChB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACtC;YACD,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;YAEnB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5B,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3B;IACF,CAAC;IAES,iDAAW,GAArB,UAAsB,OAAoB,EAAE,EAAU,EAAE,EAAU,EAAE,CAAS;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;YAC3B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,EAAE,IAAI,CAAC,CAAC;SACR;IACF,CAAC;IAES,oDAAc,GAAxB,UAAyB,OAAoB,EAAE,EAAU,EAAE,EAAU,EAAE,CAAS;QAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAC5C,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,EAAE,IAAI,CAAC,CAAC;SACR;QAED,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAElB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAClB,EAAE,IAAI,CAAC,CAAC;IACT,CAAC;IAED,4CAAM,GAAN,UAAO,QAAkB;QACxB,IAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;YACrD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAE9B,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE9B,IAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACtB,IAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YACvB,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACzD,IAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YAEzB,IAAM,EAAE,GAAG,CAAC,CAAC;YACb,IAAM,EAAE,GAAG,CAAC,CAAC;YACb,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,IAAM,EAAE,GAAG,CAAC,CAAC;YAEb,IAAM,EAAE,GAAG,CAAC,CAAC;YACb,IAAM,EAAE,GAAG,CAAC,CAAC;YACb,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,IAAM,EAAE,GAAG,CAAC,CAAC;YAEb,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;YACpC,IAAM,GAAG,GAAG,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAM,GAAG,GAAG,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YAClD,IAAM,GAAG,GAAG,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YACpD,IAAM,GAAG,GAAG,CAAC,CAAC,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAErD,iBAAiB;YACjB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;YACb,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAEZ,IAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;YAC9B,IAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAEjB,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtB,cAAc;YACd,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;iBAAM;gBACN,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrC,EAAE,IAAI,EAAE,CAAC;YACT,GAAG,IAAI,EAAE,CAAC;YACV,EAAE,IAAI,EAAE,CAAC;YACT,EAAE,IAAI,EAAE,CAAC;YAET,eAAe;YACf,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;iBAAM;gBACN,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrC,EAAE,IAAI,EAAE,CAAC;YACT,GAAG,IAAI,EAAE,CAAC;YACV,EAAE,IAAI,EAAE,CAAC;YACT,EAAE,IAAI,EAAE,CAAC;YAET,kBAAkB;YAClB,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;iBAAM;gBACN,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrC,EAAE,IAAI,EAAE,CAAC;YACT,GAAG,IAAI,EAAE,CAAC;YACV,EAAE,IAAI,EAAE,CAAC;YACT,EAAE,IAAI,EAAE,CAAC;YAET,iBAAiB;YACjB,IAAI,GAAG,EAAE;gBACR,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;iBAAM;gBACN,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACxC,EAAE,IAAI,EAAE,CAAC;YACT,GAAG,IAAI,EAAE,CAAC;YACV,EAAE,IAAI,EAAE,CAAC;YACT,EAAE,IAAI,EAAE,CAAC;YAET,SAAS;YACT,EAAE,GAAG,CAAC,CAAC;YACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;gBAC5D,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;gBACnB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACvB;YAED,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;SAC3B;IACF,CAAC;IACF,kCAAC;AAAD,CAAC,AArMD,CAAiD,iBAAiB,GAqMjE","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Renderer } from \"pixi.js\";\nimport { DBaseMeshGeometry, DBaseMeshGeometryTable } from \"./d-base-mesh-geometry\";\nimport { DCornerMask } from \"./d-corner-mask\";\n\nexport class DBaseBackgroundMeshGeometry extends DBaseMeshGeometry {\n\tconstructor() {\n\t\tsuper(\n\t\t\tnew Float32Array(16 * DBaseMeshGeometry.N),\n\t\t\tnew Float32Array(16 * DBaseMeshGeometry.N),\n\t\t\tnew Uint16Array(3 * (12 * DBaseMeshGeometry.N - 2))\n\t\t);\n\t}\n\n\tprotected fillVertices(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tiv: number,\n\t\tiuv: number,\n\t\tn: number,\n\t\tx: number,\n\t\ty: number,\n\t\tr: number,\n\t\tdr: number,\n\t\ttable: DBaseMeshGeometryTable\n\t): void {\n\t\tconst cos = table.cos;\n\t\tconst sin = table.sin;\n\t\tconst cos0 = cos[0];\n\t\tconst sin0 = sin[0];\n\t\tconst cos1 = cos[n - 1];\n\t\tconst sin1 = sin[n - 1];\n\t\tfor (let i = 0; i < n; ++i) {\n\t\t\tconst c = cos[i];\n\t\t\tconst s = sin[i];\n\n\t\t\tlet dro = dr;\n\t\t\tconst d0 = c * cos0 + s * sin0;\n\t\t\tif (0.0001 < d0) {\n\t\t\t\tdro = Math.min(dro, (1 / d0 - 1) * r);\n\t\t\t}\n\t\t\tconst d1 = c * cos1 + s * sin1;\n\t\t\tif (0.0001 < d1) {\n\t\t\t\tdro = Math.min(dro, (1 / d1 - 1) * r);\n\t\t\t}\n\t\t\tconst ro = r + dro;\n\n\t\t\tvertices[++iv] = x + c * r;\n\t\t\tvertices[++iv] = y + s * r;\n\t\t\tvertices[++iv] = x + c * ro;\n\t\t\tvertices[++iv] = y + s * ro;\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t}\n\t}\n\n\tprotected fillIndices(indices: Uint16Array, ia: number, ii: number, n: number): void {\n\t\tfor (let i = 0; i < n; ++i) {\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 2;\n\n\t\t\tindices[++ii] = ia + 2;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 3;\n\t\t\tia += 2;\n\t\t}\n\t}\n\n\tprotected fillIndicesEnd(indices: Uint16Array, ia: number, ii: number, n: number): void {\n\t\tfor (let i = 0, imax = n - 1; i < imax; ++i) {\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 2;\n\n\t\t\tindices[++ii] = ia + 2;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 3;\n\t\t\tia += 2;\n\t\t}\n\n\t\tindices[++ii] = ia + 0;\n\t\tindices[++ii] = ia + 1;\n\t\tindices[++ii] = 0;\n\n\t\tindices[++ii] = 0;\n\t\tindices[++ii] = ia + 1;\n\t\tindices[++ii] = 1;\n\t\tia += 2;\n\t}\n\n\tupdate(renderer: Renderer): void {\n\t\tconst resolution = renderer.resolution;\n\t\tif (this._isDirty || this._resolution !== resolution) {\n\t\t\tthis._isDirty = false;\n\t\t\tthis._resolution = resolution;\n\n\t\t\tconst vertices = this._vertices;\n\t\t\tconst uvs = this._uvs;\n\t\t\tconst indices = this._indices;\n\n\t\t\tconst w = this._width;\n\t\t\tconst h = this._height;\n\t\t\tconst r = Math.min(0.5 * w, 0.5 * h, this._cornerRadius);\n\t\t\tconst a = 1 / resolution;\n\n\t\t\tconst x0 = 0;\n\t\t\tconst x1 = r;\n\t\t\tconst x2 = w - r;\n\t\t\tconst x3 = w;\n\n\t\t\tconst y0 = 0;\n\t\t\tconst y1 = r;\n\t\t\tconst y2 = h - r;\n\t\t\tconst y3 = h;\n\n\t\t\tconst cornerMask = this._cornerMask;\n\t\t\tconst ctl = !(cornerMask & DCornerMask.TOP_LEFT);\n\t\t\tconst ctr = !(cornerMask & DCornerMask.TOP_RIGHT);\n\t\t\tconst cbl = !(cornerMask & DCornerMask.BOTTOM_LEFT);\n\t\t\tconst cbr = !(cornerMask & DCornerMask.BOTTOM_RIGHT);\n\n\t\t\t// Vertices & UVs\n\t\t\tlet iv = -1;\n\t\t\tlet iuv = -1;\n\t\t\tlet ia = 0;\n\t\t\tlet ii = -1;\n\n\t\t\tconst n = DBaseMeshGeometry.N;\n\t\t\tconst n4 = n << 2;\n\t\t\tconst n2 = n << 1;\n\t\t\tconst n6 = 6 * n;\n\n\t\t\tconst tables = this.getTables();\n\t\t\tconst tlt = tables[0];\n\t\t\tconst ttr = tables[1];\n\t\t\tconst trb = tables[2];\n\t\t\tconst tbl = tables[3];\n\n\t\t\t// left -> top\n\t\t\tif (ctl) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x1, y1, r, a, tlt);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x0, y0, 0, 0, tlt);\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// top -> right\n\t\t\tif (ctr) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x2, y1, r, a, ttr);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x3, y0, 0, 0, ttr);\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// right -> bottom\n\t\t\tif (cbr) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x2, y2, r, a, trb);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x3, y3, 0, 0, trb);\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// bottom -> left\n\t\t\tif (cbl) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x1, y2, r, a, tbl);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x0, y3, 0, 0, tbl);\n\t\t\t}\n\t\t\tthis.fillIndicesEnd(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// Center\n\t\t\tia = 2;\n\t\t\tfor (let i = 1, imax = 4 * n - 1; i < imax; i += 1, ia += 2) {\n\t\t\t\tindices[++ii] = 0;\n\t\t\t\tindices[++ii] = ia;\n\t\t\t\tindices[++ii] = ia + 2;\n\t\t\t}\n\n\t\t\tthis._vertexBuffer.update();\n\t\t\tthis._uvBuffer.update();\n\t\t\tthis._indexBuffer.update();\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-base-background-mesh-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-background-mesh-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Renderer } from \"pixi.js\";\nimport { DBaseMeshGeometry, DBaseMeshGeometryTable } from \"./d-base-mesh-geometry\";\nimport { DCornerMask } from \"./d-corner-mask\";\n\nexport class DBaseBackgroundMeshGeometry extends DBaseMeshGeometry {\n\tconstructor() {\n\t\tsuper(\n\t\t\tnew Float32Array(16 * DBaseMeshGeometry.N),\n\t\t\tnew Float32Array(16 * DBaseMeshGeometry.N),\n\t\t\tnew Uint16Array(3 * (12 * DBaseMeshGeometry.N - 2))\n\t\t);\n\t}\n\n\tprotected fillVertices(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tiv: number,\n\t\tiuv: number,\n\t\tn: number,\n\t\tx: number,\n\t\ty: number,\n\t\tr: number,\n\t\tdr: number,\n\t\ttable: DBaseMeshGeometryTable\n\t): void {\n\t\tconst cos = table.cos;\n\t\tconst sin = table.sin;\n\t\tconst r1 = r + 0.25;\n\t\tfor (let i = 0; i < n; ++i) {\n\t\t\tconst c = cos[i];\n\t\t\tconst s = sin[i];\n\t\t\tvertices[++iv] = x + c * r;\n\t\t\tvertices[++iv] = y + s * r;\n\t\t\tvertices[++iv] = x + c * r1;\n\t\t\tvertices[++iv] = y + s * r1;\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t}\n\t}\n\n\tprotected fillIndices(indices: Uint16Array, ia: number, ii: number, n: number): void {\n\t\tfor (let i = 0; i < n; ++i) {\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 2;\n\n\t\t\tindices[++ii] = ia + 2;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 3;\n\t\t\tia += 2;\n\t\t}\n\t}\n\n\tprotected fillIndicesEnd(indices: Uint16Array, ia: number, ii: number, n: number): void {\n\t\tfor (let i = 0, imax = n - 1; i < imax; ++i) {\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 2;\n\n\t\t\tindices[++ii] = ia + 2;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 3;\n\t\t\tia += 2;\n\t\t}\n\n\t\tindices[++ii] = ia + 0;\n\t\tindices[++ii] = ia + 1;\n\t\tindices[++ii] = 0;\n\n\t\tindices[++ii] = 0;\n\t\tindices[++ii] = ia + 1;\n\t\tindices[++ii] = 1;\n\t\tia += 2;\n\t}\n\n\tupdate(renderer: Renderer): void {\n\t\tconst resolution = renderer.resolution;\n\t\tif (this._isDirty || this._resolution !== resolution) {\n\t\t\tthis._isDirty = false;\n\t\t\tthis._resolution = resolution;\n\n\t\t\tconst vertices = this._vertices;\n\t\t\tconst uvs = this._uvs;\n\t\t\tconst indices = this._indices;\n\n\t\t\tconst w = this._width;\n\t\t\tconst h = this._height;\n\t\t\tconst r = Math.min(0.5 * w, 0.5 * h, this._cornerRadius);\n\t\t\tconst a = 1 / resolution;\n\n\t\t\tconst x0 = 0;\n\t\t\tconst x1 = r;\n\t\t\tconst x2 = w - r;\n\t\t\tconst x3 = w;\n\n\t\t\tconst y0 = 0;\n\t\t\tconst y1 = r;\n\t\t\tconst y2 = h - r;\n\t\t\tconst y3 = h;\n\n\t\t\tconst cornerMask = this._cornerMask;\n\t\t\tconst ctl = !(cornerMask & DCornerMask.TOP_LEFT);\n\t\t\tconst ctr = !(cornerMask & DCornerMask.TOP_RIGHT);\n\t\t\tconst cbl = !(cornerMask & DCornerMask.BOTTOM_LEFT);\n\t\t\tconst cbr = !(cornerMask & DCornerMask.BOTTOM_RIGHT);\n\n\t\t\t// Vertices & UVs\n\t\t\tlet iv = -1;\n\t\t\tlet iuv = -1;\n\t\t\tlet ia = 0;\n\t\t\tlet ii = -1;\n\n\t\t\tconst n = DBaseMeshGeometry.N;\n\t\t\tconst n4 = n << 2;\n\t\t\tconst n2 = n << 1;\n\t\t\tconst n6 = 6 * n;\n\n\t\t\tconst tables = this.getTables();\n\t\t\tconst tlt = tables[0];\n\t\t\tconst ttr = tables[1];\n\t\t\tconst trb = tables[2];\n\t\t\tconst tbl = tables[3];\n\n\t\t\t// left -> top\n\t\t\tif (ctl) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x1, y1, r, a, tlt);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x0, y0, 0, 0, tlt);\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// top -> right\n\t\t\tif (ctr) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x2, y1, r, a, ttr);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x3, y0, 0, 0, ttr);\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// right -> bottom\n\t\t\tif (cbr) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x2, y2, r, a, trb);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x3, y3, 0, 0, trb);\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// bottom -> left\n\t\t\tif (cbl) {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x1, y2, r, a, tbl);\n\t\t\t} else {\n\t\t\t\tthis.fillVertices(vertices, uvs, iv, iuv, n, x0, y3, 0, 0, tbl);\n\t\t\t}\n\t\t\tthis.fillIndicesEnd(indices, ia, ii, n);\n\t\t\tiv += n4;\n\t\t\tiuv += n4;\n\t\t\tia += n2;\n\t\t\tii += n6;\n\n\t\t\t// Center\n\t\t\tia = 2;\n\t\t\tfor (let i = 1, imax = 4 * n - 1; i < imax; i += 1, ia += 2) {\n\t\t\t\tindices[++ii] = 0;\n\t\t\t\tindices[++ii] = ia;\n\t\t\t\tindices[++ii] = ia + 2;\n\t\t\t}\n\n\t\t\tthis._vertexBuffer.update();\n\t\t\tthis._uvBuffer.update();\n\t\t\tthis._indexBuffer.update();\n\t\t}\n\t}\n}\n"]}
@@ -41,60 +41,83 @@ var DBaseBorderMeshGeometry = /** @class */ (function (_super) {
41
41
  configurable: true
42
42
  });
43
43
  DBaseBorderMeshGeometry.prototype.fillVertices = function (vertices, uvs, iv, iuv, n, x, y, r, dr, borderWidth, table) {
44
- var borderWidthHalf = 0.5 * borderWidth;
45
- var r0 = r - borderWidthHalf;
46
- var r2 = r + borderWidthHalf;
44
+ var hw = 0.5 * borderWidth;
45
+ var r1 = r - hw;
46
+ var r2 = r + hw;
47
+ var r0 = r1 - 0.25;
48
+ var r3 = r2 + 0.25;
47
49
  var cos = table.cos;
48
50
  var sin = table.sin;
49
- var cos0 = cos[0];
50
- var sin0 = sin[0];
51
- var cos1 = cos[n - 1];
52
- var sin1 = sin[n - 1];
53
- var x1 = x + (cos0 + cos1) * r0;
54
- var y1 = y + (sin0 + sin1) * r0;
55
- for (var i = 0; i < n; ++i) {
56
- var c = cos[i];
57
- var s = sin[i];
58
- var dr1 = dr;
59
- var dr2 = dr;
60
- var d0 = c * cos0 + s * sin0;
61
- if (0.0001 < d0) {
62
- var d0i = 1 / d0 - 1;
63
- dr1 = Math.min(dr1, d0i * r0);
64
- dr2 = Math.min(dr2, d0i * r2);
51
+ if (r0 < 0) {
52
+ var m = n >> 1;
53
+ var c0 = cos[m];
54
+ var s0 = sin[m];
55
+ if (r1 < 0) {
56
+ for (var i = 0; i < n; ++i) {
57
+ var c = cos[i];
58
+ var s = sin[i];
59
+ vertices[++iv] = x + c0 * r0;
60
+ vertices[++iv] = y + s0 * r0;
61
+ vertices[++iv] = x + c0 * r1;
62
+ vertices[++iv] = y + s0 * r1;
63
+ vertices[++iv] = x + c * r2;
64
+ vertices[++iv] = y + s * r2;
65
+ vertices[++iv] = x + c * r3;
66
+ vertices[++iv] = y + s * r3;
67
+ uvs[++iuv] = 0.5 * (1 + c);
68
+ uvs[++iuv] = 0.5 * (1 + s);
69
+ uvs[++iuv] = 0.5;
70
+ uvs[++iuv] = 0.5;
71
+ uvs[++iuv] = 0.5;
72
+ uvs[++iuv] = 0.5;
73
+ uvs[++iuv] = 0.5 * (1 + c);
74
+ uvs[++iuv] = 0.5 * (1 + s);
75
+ }
65
76
  }
66
- var d1 = c * cos1 + s * sin1;
67
- if (0.0001 < d1) {
68
- var d1i = 1 / d1 - 1;
69
- dr1 = Math.min(dr1, d1i * r0);
70
- dr2 = Math.min(dr2, d1i * r2);
77
+ else {
78
+ for (var i = 0; i < n; ++i) {
79
+ var c = cos[i];
80
+ var s = sin[i];
81
+ vertices[++iv] = x + c0 * r0;
82
+ vertices[++iv] = y + s0 * r0;
83
+ vertices[++iv] = x + c * r1;
84
+ vertices[++iv] = y + s * r1;
85
+ vertices[++iv] = x + c * r2;
86
+ vertices[++iv] = y + s * r2;
87
+ vertices[++iv] = x + c * r3;
88
+ vertices[++iv] = y + s * r3;
89
+ uvs[++iuv] = 0.5 * (1 + c);
90
+ uvs[++iuv] = 0.5 * (1 + s);
91
+ uvs[++iuv] = 0.5;
92
+ uvs[++iuv] = 0.5;
93
+ uvs[++iuv] = 0.5;
94
+ uvs[++iuv] = 0.5;
95
+ uvs[++iuv] = 0.5 * (1 + c);
96
+ uvs[++iuv] = 0.5 * (1 + s);
97
+ }
71
98
  }
72
- var r1 = r0 + dr1;
73
- var r3 = r2 + dr2;
74
- if (0 < r0) {
99
+ }
100
+ else {
101
+ for (var i = 0; i < n; ++i) {
102
+ var c = cos[i];
103
+ var s = sin[i];
75
104
  vertices[++iv] = x + c * r0;
76
105
  vertices[++iv] = y + s * r0;
77
106
  vertices[++iv] = x + c * r1;
78
107
  vertices[++iv] = y + s * r1;
108
+ vertices[++iv] = x + c * r2;
109
+ vertices[++iv] = y + s * r2;
110
+ vertices[++iv] = x + c * r3;
111
+ vertices[++iv] = y + s * r3;
112
+ uvs[++iuv] = 0.5 * (1 + c);
113
+ uvs[++iuv] = 0.5 * (1 + s);
114
+ uvs[++iuv] = 0.5;
115
+ uvs[++iuv] = 0.5;
116
+ uvs[++iuv] = 0.5;
117
+ uvs[++iuv] = 0.5;
118
+ uvs[++iuv] = 0.5 * (1 + c);
119
+ uvs[++iuv] = 0.5 * (1 + s);
79
120
  }
80
- else {
81
- vertices[++iv] = x1;
82
- vertices[++iv] = y1;
83
- vertices[++iv] = x1;
84
- vertices[++iv] = y1;
85
- }
86
- vertices[++iv] = x + c * r2;
87
- vertices[++iv] = y + s * r2;
88
- vertices[++iv] = x + c * r3;
89
- vertices[++iv] = y + s * r3;
90
- uvs[++iuv] = 0.5 * (1 + c);
91
- uvs[++iuv] = 0.5 * (1 + s);
92
- uvs[++iuv] = 0.5;
93
- uvs[++iuv] = 0.5;
94
- uvs[++iuv] = 0.5;
95
- uvs[++iuv] = 0.5;
96
- uvs[++iuv] = 0.5 * (1 + c);
97
- uvs[++iuv] = 0.5 * (1 + s);
98
121
  }
99
122
  };
100
123
  DBaseBorderMeshGeometry.prototype.fillIndices = function (indices, ia, ii, n, end, loop) {
@@ -1 +1 @@
1
- {"version":3,"file":"d-base-border-mesh-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-border-mesh-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Renderer } from \"pixi.js\";\nimport { DBaseMeshGeometry, DBaseMeshGeometryTable } from \"./d-base-mesh-geometry\";\nimport { DBorderMask } from \"./d-border-mask\";\nimport { DCornerMask } from \"./d-corner-mask\";\n\nexport class DBaseBorderMeshGeometry extends DBaseMeshGeometry {\n\tprotected _borderWidth: number;\n\tprotected _borderMask: DBorderMask;\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tnew Float32Array(32 * DBaseMeshGeometry.N),\n\t\t\tnew Float32Array(32 * DBaseMeshGeometry.N),\n\t\t\tnew Uint16Array(4 * 18 * DBaseMeshGeometry.N)\n\t\t);\n\n\t\tthis._borderWidth = 0;\n\t\tthis._borderMask = DBorderMask.NONE;\n\t}\n\n\tget borderWidth(): number {\n\t\treturn this._borderWidth;\n\t}\n\n\tset borderWidth(borderWidth: number) {\n\t\tif (this._borderWidth !== borderWidth) {\n\t\t\tthis._borderWidth = borderWidth;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget borderMask(): DBorderMask {\n\t\treturn this._borderMask;\n\t}\n\n\tset borderMask(borderMask: DBorderMask) {\n\t\tif (this._borderMask !== borderMask) {\n\t\t\tthis._borderMask = borderMask;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tprotected fillVertices(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tiv: number,\n\t\tiuv: number,\n\t\tn: number,\n\t\tx: number,\n\t\ty: number,\n\t\tr: number,\n\t\tdr: number,\n\t\tborderWidth: number,\n\t\ttable: DBaseMeshGeometryTable\n\t): void {\n\t\tconst borderWidthHalf = 0.5 * borderWidth;\n\t\tconst r0 = r - borderWidthHalf;\n\t\tconst r2 = r + borderWidthHalf;\n\t\tconst cos = table.cos;\n\t\tconst sin = table.sin;\n\t\tconst cos0 = cos[0];\n\t\tconst sin0 = sin[0];\n\t\tconst cos1 = cos[n - 1];\n\t\tconst sin1 = sin[n - 1];\n\t\tconst x1 = x + (cos0 + cos1) * r0;\n\t\tconst y1 = y + (sin0 + sin1) * r0;\n\t\tfor (let i = 0; i < n; ++i) {\n\t\t\tconst c = cos[i];\n\t\t\tconst s = sin[i];\n\n\t\t\tlet dr1 = dr;\n\t\t\tlet dr2 = dr;\n\t\t\tconst d0 = c * cos0 + s * sin0;\n\t\t\tif (0.0001 < d0) {\n\t\t\t\tconst d0i = 1 / d0 - 1;\n\t\t\t\tdr1 = Math.min(dr1, d0i * r0);\n\t\t\t\tdr2 = Math.min(dr2, d0i * r2);\n\t\t\t}\n\t\t\tconst d1 = c * cos1 + s * sin1;\n\t\t\tif (0.0001 < d1) {\n\t\t\t\tconst d1i = 1 / d1 - 1;\n\t\t\t\tdr1 = Math.min(dr1, d1i * r0);\n\t\t\t\tdr2 = Math.min(dr2, d1i * r2);\n\t\t\t}\n\t\t\tconst r1 = r0 + dr1;\n\t\t\tconst r3 = r2 + dr2;\n\n\t\t\tif (0 < r0) {\n\t\t\t\tvertices[++iv] = x + c * r0;\n\t\t\t\tvertices[++iv] = y + s * r0;\n\t\t\t\tvertices[++iv] = x + c * r1;\n\t\t\t\tvertices[++iv] = y + s * r1;\n\t\t\t} else {\n\t\t\t\tvertices[++iv] = x1;\n\t\t\t\tvertices[++iv] = y1;\n\t\t\t\tvertices[++iv] = x1;\n\t\t\t\tvertices[++iv] = y1;\n\t\t\t}\n\t\t\tvertices[++iv] = x + c * r2;\n\t\t\tvertices[++iv] = y + s * r2;\n\t\t\tvertices[++iv] = x + c * r3;\n\t\t\tvertices[++iv] = y + s * r3;\n\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5;\n\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t}\n\t}\n\n\tprotected fillIndices(\n\t\tindices: Uint16Array,\n\t\tia: number,\n\t\tii: number,\n\t\tn: number,\n\t\tend: boolean,\n\t\tloop: boolean\n\t): void {\n\t\tfor (let i = 0, imax = n - 1; i < imax; ++i) {\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 4;\n\n\t\t\tindices[++ii] = ia + 4;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 5;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 4;\n\n\t\t\tindices[++ii] = ia + 4;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 5;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 4;\n\n\t\t\tindices[++ii] = ia + 4;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 5;\n\t\t\tia += 2;\n\t\t}\n\t\tif (end) {\n\t\t\tif (loop) {\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 0;\n\n\t\t\t\tindices[++ii] = 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 1;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 1;\n\n\t\t\t\tindices[++ii] = 1;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 2;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 2;\n\n\t\t\t\tindices[++ii] = 2;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 3;\n\t\t\t\tia += 2;\n\t\t\t} else {\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 4;\n\n\t\t\t\tindices[++ii] = ia + 4;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 5;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 4;\n\n\t\t\t\tindices[++ii] = ia + 4;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 5;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 4;\n\n\t\t\t\tindices[++ii] = ia + 4;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 5;\n\t\t\t\tia += 2;\n\t\t\t}\n\t\t} else {\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tia += 2;\n\t\t}\n\t}\n\n\tupdate(renderer: Renderer): void {\n\t\tconst resolution = renderer.resolution;\n\t\tif (this._isDirty || this._resolution !== resolution) {\n\t\t\tthis._isDirty = false;\n\t\t\tthis._resolution = resolution;\n\n\t\t\tconst vrtcs = this._vertices;\n\t\t\tconst uvs = this._uvs;\n\t\t\tconst indices = this._indices;\n\n\t\t\tconst w = this._width;\n\t\t\tconst h = this._height;\n\t\t\tconst bw = this._borderWidth;\n\t\t\tconst r = Math.min(0.5 * w, 0.5 * h, this._cornerRadius);\n\t\t\tconst a = 1 / resolution;\n\n\t\t\tconst x0 = 0;\n\t\t\tconst x1 = r;\n\t\t\tconst x2 = w - r;\n\t\t\tconst x3 = w;\n\n\t\t\tconst y0 = 0;\n\t\t\tconst y1 = r;\n\t\t\tconst y2 = h - r;\n\t\t\tconst y3 = h;\n\n\t\t\tconst borderMask = this._borderMask;\n\t\t\tconst bt = !(borderMask & DBorderMask.TOP);\n\t\t\tconst bb = !(borderMask & DBorderMask.BOTTOM);\n\t\t\tconst bl = !(borderMask & DBorderMask.LEFT);\n\t\t\tconst br = !(borderMask & DBorderMask.RIGHT);\n\n\t\t\tconst cornerMask = this._cornerMask;\n\t\t\tconst ctl = !(cornerMask & DCornerMask.TOP_LEFT);\n\t\t\tconst ctr = !(cornerMask & DCornerMask.TOP_RIGHT);\n\t\t\tconst cbl = !(cornerMask & DCornerMask.BOTTOM_LEFT);\n\t\t\tconst cbr = !(cornerMask & DCornerMask.BOTTOM_RIGHT);\n\n\t\t\t// Vertices & UVs\n\t\t\tlet iv = -1;\n\t\t\tlet iuv = -1;\n\t\t\tlet ia = 0;\n\t\t\tlet ii = -1;\n\n\t\t\tconst n = DBaseMeshGeometry.N;\n\t\t\tconst n4 = n << 2;\n\t\t\tconst n8 = n << 3;\n\t\t\tconst n18 = 18 * n;\n\n\t\t\tconst tables = this.getTables();\n\t\t\tconst tlt = tables[0];\n\t\t\tconst ttr = tables[1];\n\t\t\tconst trb = tables[2];\n\t\t\tconst tbl = tables[3];\n\n\t\t\t// left -> top\n\t\t\tif (ctl) {\n\t\t\t\tif (bl || bt) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y1, r, a, bw, tlt);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y1, r, 0, 0, tlt);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (bl || bt) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y0, 0, 0, bw, tlt);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y0, 0, 0, 0, tlt);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, bt, false);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\t// top -> right\n\t\t\tif (ctr) {\n\t\t\t\tif (bt || br) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y1, r, a, bw, ttr);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y1, r, 0, 0, ttr);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (bt || br) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y0, 0, 0, bw, ttr);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y0, 0, 0, 0, ttr);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, br, false);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\t// right -> bottom\n\t\t\tif (cbr) {\n\t\t\t\tif (br || bb) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y2, r, a, bw, trb);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y2, r, 0, 0, trb);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (br || bb) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y3, 0, 0, bw, trb);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y3, 0, 0, 0, trb);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, bb, false);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\t// bottom -> left\n\t\t\tif (cbl) {\n\t\t\t\tif (bb || bl) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y2, r, a, bw, tbl);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y2, r, 0, 0, tbl);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (bb || bl) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y3, 0, 0, bw, tbl);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y3, 0, 0, 0, tbl);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, bl, true);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\tthis._vertexBuffer.update();\n\t\t\tthis._uvBuffer.update();\n\t\t\tthis._indexBuffer.update();\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-base-border-mesh-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-border-mesh-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Renderer } from \"pixi.js\";\nimport { DBaseMeshGeometry, DBaseMeshGeometryTable } from \"./d-base-mesh-geometry\";\nimport { DBorderMask } from \"./d-border-mask\";\nimport { DCornerMask } from \"./d-corner-mask\";\n\nexport class DBaseBorderMeshGeometry extends DBaseMeshGeometry {\n\tprotected _borderWidth: number;\n\tprotected _borderMask: DBorderMask;\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tnew Float32Array(32 * DBaseMeshGeometry.N),\n\t\t\tnew Float32Array(32 * DBaseMeshGeometry.N),\n\t\t\tnew Uint16Array(4 * 18 * DBaseMeshGeometry.N)\n\t\t);\n\n\t\tthis._borderWidth = 0;\n\t\tthis._borderMask = DBorderMask.NONE;\n\t}\n\n\tget borderWidth(): number {\n\t\treturn this._borderWidth;\n\t}\n\n\tset borderWidth(borderWidth: number) {\n\t\tif (this._borderWidth !== borderWidth) {\n\t\t\tthis._borderWidth = borderWidth;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget borderMask(): DBorderMask {\n\t\treturn this._borderMask;\n\t}\n\n\tset borderMask(borderMask: DBorderMask) {\n\t\tif (this._borderMask !== borderMask) {\n\t\t\tthis._borderMask = borderMask;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tprotected fillVertices(\n\t\tvertices: Float32Array,\n\t\tuvs: Float32Array,\n\t\tiv: number,\n\t\tiuv: number,\n\t\tn: number,\n\t\tx: number,\n\t\ty: number,\n\t\tr: number,\n\t\tdr: number,\n\t\tborderWidth: number,\n\t\ttable: DBaseMeshGeometryTable\n\t): void {\n\t\tconst hw = 0.5 * borderWidth;\n\t\tconst r1 = r - hw;\n\t\tconst r2 = r + hw;\n\t\tconst r0 = r1 - 0.25;\n\t\tconst r3 = r2 + 0.25;\n\t\tconst cos = table.cos;\n\t\tconst sin = table.sin;\n\t\tif (r0 < 0) {\n\t\t\tconst m = n >> 1;\n\t\t\tconst c0 = cos[m];\n\t\t\tconst s0 = sin[m];\n\t\t\tif (r1 < 0) {\n\t\t\t\tfor (let i = 0; i < n; ++i) {\n\t\t\t\t\tconst c = cos[i];\n\t\t\t\t\tconst s = sin[i];\n\t\t\t\t\tvertices[++iv] = x + c0 * r0;\n\t\t\t\t\tvertices[++iv] = y + s0 * r0;\n\t\t\t\t\tvertices[++iv] = x + c0 * r1;\n\t\t\t\t\tvertices[++iv] = y + s0 * r1;\n\t\t\t\t\tvertices[++iv] = x + c * r2;\n\t\t\t\t\tvertices[++iv] = y + s * r2;\n\t\t\t\t\tvertices[++iv] = x + c * r3;\n\t\t\t\t\tvertices[++iv] = y + s * r3;\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < n; ++i) {\n\t\t\t\t\tconst c = cos[i];\n\t\t\t\t\tconst s = sin[i];\n\t\t\t\t\tvertices[++iv] = x + c0 * r0;\n\t\t\t\t\tvertices[++iv] = y + s0 * r0;\n\t\t\t\t\tvertices[++iv] = x + c * r1;\n\t\t\t\t\tvertices[++iv] = y + s * r1;\n\t\t\t\t\tvertices[++iv] = x + c * r2;\n\t\t\t\t\tvertices[++iv] = y + s * r2;\n\t\t\t\t\tvertices[++iv] = x + c * r3;\n\t\t\t\t\tvertices[++iv] = y + s * r3;\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0; i < n; ++i) {\n\t\t\t\tconst c = cos[i];\n\t\t\t\tconst s = sin[i];\n\t\t\t\tvertices[++iv] = x + c * r0;\n\t\t\t\tvertices[++iv] = y + s * r0;\n\t\t\t\tvertices[++iv] = x + c * r1;\n\t\t\t\tvertices[++iv] = y + s * r1;\n\t\t\t\tvertices[++iv] = x + c * r2;\n\t\t\t\tvertices[++iv] = y + s * r2;\n\t\t\t\tvertices[++iv] = x + c * r3;\n\t\t\t\tvertices[++iv] = y + s * r3;\n\t\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\tuvs[++iuv] = 0.5;\n\t\t\t\tuvs[++iuv] = 0.5 * (1 + c);\n\t\t\t\tuvs[++iuv] = 0.5 * (1 + s);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected fillIndices(\n\t\tindices: Uint16Array,\n\t\tia: number,\n\t\tii: number,\n\t\tn: number,\n\t\tend: boolean,\n\t\tloop: boolean\n\t): void {\n\t\tfor (let i = 0, imax = n - 1; i < imax; ++i) {\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 4;\n\n\t\t\tindices[++ii] = ia + 4;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 5;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 4;\n\n\t\t\tindices[++ii] = ia + 4;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 5;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia + 0;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 4;\n\n\t\t\tindices[++ii] = ia + 4;\n\t\t\tindices[++ii] = ia + 1;\n\t\t\tindices[++ii] = ia + 5;\n\t\t\tia += 2;\n\t\t}\n\t\tif (end) {\n\t\t\tif (loop) {\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 0;\n\n\t\t\t\tindices[++ii] = 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 1;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 1;\n\n\t\t\t\tindices[++ii] = 1;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 2;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 2;\n\n\t\t\t\tindices[++ii] = 2;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = 3;\n\t\t\t\tia += 2;\n\t\t\t} else {\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 4;\n\n\t\t\t\tindices[++ii] = ia + 4;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 5;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 4;\n\n\t\t\t\tindices[++ii] = ia + 4;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 5;\n\t\t\t\tia += 1;\n\n\t\t\t\tindices[++ii] = ia + 0;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 4;\n\n\t\t\t\tindices[++ii] = ia + 4;\n\t\t\t\tindices[++ii] = ia + 1;\n\t\t\t\tindices[++ii] = ia + 5;\n\t\t\t\tia += 2;\n\t\t\t}\n\t\t} else {\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tia += 1;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tindices[++ii] = ia;\n\t\t\tia += 2;\n\t\t}\n\t}\n\n\tupdate(renderer: Renderer): void {\n\t\tconst resolution = renderer.resolution;\n\t\tif (this._isDirty || this._resolution !== resolution) {\n\t\t\tthis._isDirty = false;\n\t\t\tthis._resolution = resolution;\n\n\t\t\tconst vrtcs = this._vertices;\n\t\t\tconst uvs = this._uvs;\n\t\t\tconst indices = this._indices;\n\n\t\t\tconst w = this._width;\n\t\t\tconst h = this._height;\n\t\t\tconst bw = this._borderWidth;\n\t\t\tconst r = Math.min(0.5 * w, 0.5 * h, this._cornerRadius);\n\t\t\tconst a = 1 / resolution;\n\n\t\t\tconst x0 = 0;\n\t\t\tconst x1 = r;\n\t\t\tconst x2 = w - r;\n\t\t\tconst x3 = w;\n\n\t\t\tconst y0 = 0;\n\t\t\tconst y1 = r;\n\t\t\tconst y2 = h - r;\n\t\t\tconst y3 = h;\n\n\t\t\tconst borderMask = this._borderMask;\n\t\t\tconst bt = !(borderMask & DBorderMask.TOP);\n\t\t\tconst bb = !(borderMask & DBorderMask.BOTTOM);\n\t\t\tconst bl = !(borderMask & DBorderMask.LEFT);\n\t\t\tconst br = !(borderMask & DBorderMask.RIGHT);\n\n\t\t\tconst cornerMask = this._cornerMask;\n\t\t\tconst ctl = !(cornerMask & DCornerMask.TOP_LEFT);\n\t\t\tconst ctr = !(cornerMask & DCornerMask.TOP_RIGHT);\n\t\t\tconst cbl = !(cornerMask & DCornerMask.BOTTOM_LEFT);\n\t\t\tconst cbr = !(cornerMask & DCornerMask.BOTTOM_RIGHT);\n\n\t\t\t// Vertices & UVs\n\t\t\tlet iv = -1;\n\t\t\tlet iuv = -1;\n\t\t\tlet ia = 0;\n\t\t\tlet ii = -1;\n\n\t\t\tconst n = DBaseMeshGeometry.N;\n\t\t\tconst n4 = n << 2;\n\t\t\tconst n8 = n << 3;\n\t\t\tconst n18 = 18 * n;\n\n\t\t\tconst tables = this.getTables();\n\t\t\tconst tlt = tables[0];\n\t\t\tconst ttr = tables[1];\n\t\t\tconst trb = tables[2];\n\t\t\tconst tbl = tables[3];\n\n\t\t\t// left -> top\n\t\t\tif (ctl) {\n\t\t\t\tif (bl || bt) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y1, r, a, bw, tlt);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y1, r, 0, 0, tlt);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (bl || bt) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y0, 0, 0, bw, tlt);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y0, 0, 0, 0, tlt);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, bt, false);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\t// top -> right\n\t\t\tif (ctr) {\n\t\t\t\tif (bt || br) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y1, r, a, bw, ttr);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y1, r, 0, 0, ttr);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (bt || br) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y0, 0, 0, bw, ttr);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y0, 0, 0, 0, ttr);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, br, false);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\t// right -> bottom\n\t\t\tif (cbr) {\n\t\t\t\tif (br || bb) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y2, r, a, bw, trb);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x2, y2, r, 0, 0, trb);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (br || bb) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y3, 0, 0, bw, trb);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x3, y3, 0, 0, 0, trb);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, bb, false);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\t// bottom -> left\n\t\t\tif (cbl) {\n\t\t\t\tif (bb || bl) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y2, r, a, bw, tbl);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x1, y2, r, 0, 0, tbl);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (bb || bl) {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y3, 0, 0, bw, tbl);\n\t\t\t\t} else {\n\t\t\t\t\tthis.fillVertices(vrtcs, uvs, iv, iuv, n, x0, y3, 0, 0, 0, tbl);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.fillIndices(indices, ia, ii, n, bl, true);\n\t\t\tiv += n8;\n\t\t\tiuv += n8;\n\t\t\tia += n4;\n\t\t\tii += n18;\n\n\t\t\tthis._vertexBuffer.update();\n\t\t\tthis._uvBuffer.update();\n\t\t\tthis._indexBuffer.update();\n\t\t}\n\t}\n}\n"]}
@@ -109,7 +109,8 @@ var DBaseMeshGeometry = /** @class */ (function (_super) {
109
109
  sin: sin
110
110
  };
111
111
  };
112
- DBaseMeshGeometry.N = 4;
112
+ /** Note that this must be an odd number. */
113
+ DBaseMeshGeometry.N = 5;
113
114
  return DBaseMeshGeometry;
114
115
  }(MeshGeometry));
115
116
  export { DBaseMeshGeometry };
@@ -1 +1 @@
1
- {"version":3,"file":"d-base-mesh-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-mesh-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer, MeshGeometry } from \"pixi.js\";\nimport { DCornerMask } from \"./d-corner-mask\";\n\nexport interface DBaseMeshGeometryTable {\n\tcos: number[];\n\tsin: number[];\n}\n\nexport class DBaseMeshGeometry extends MeshGeometry {\n\tprotected static N = 4;\n\tprotected static TABLES?: DBaseMeshGeometryTable[];\n\n\tprotected _width: number;\n\tprotected _height: number;\n\tprotected _cornerRadius: number;\n\tprotected _cornerMask: DCornerMask;\n\tprotected _isDirty: boolean;\n\tprotected _vertices: Float32Array;\n\tprotected _uvs: Float32Array;\n\tprotected _indices: Uint16Array;\n\tprotected _vertexBuffer: Buffer;\n\tprotected _uvBuffer: Buffer;\n\tprotected _indexBuffer: Buffer;\n\tprotected _resolution: number;\n\n\tconstructor(\n\t\tvertices: Float32Array | number[],\n\t\tuvs: Float32Array | number[],\n\t\tindices: Uint16Array | number[]\n\t) {\n\t\tsuper(vertices, uvs, indices);\n\n\t\tthis._width = 100;\n\t\tthis._height = 100;\n\t\tthis._cornerRadius = 0;\n\t\tthis._cornerMask = DCornerMask.NONE;\n\t\tthis._isDirty = true;\n\t\tthis._resolution = 1;\n\n\t\tthis._vertexBuffer = this.getBuffer(\"aVertexPosition\");\n\t\tthis._vertices = this._vertexBuffer.data as Float32Array;\n\t\tthis._uvBuffer = this.getBuffer(\"aTextureCoord\");\n\t\tthis._uvs = this._uvBuffer.data as Float32Array;\n\t\tthis._indexBuffer = this.getIndex();\n\t\tthis._indices = this._indexBuffer.data as Uint16Array;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tset width(width: number) {\n\t\tif (this._width !== width) {\n\t\t\tthis._width = width;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget height(): number {\n\t\treturn this._height;\n\t}\n\n\tset height(height: number) {\n\t\tif (this._height !== height) {\n\t\t\tthis._height = height;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget cornerRadius(): number {\n\t\treturn this._cornerRadius;\n\t}\n\n\tset cornerRadius(borderSize: number) {\n\t\tif (this._cornerRadius !== borderSize) {\n\t\t\tthis._cornerRadius = borderSize;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget cornerMask(): DCornerMask {\n\t\treturn this._cornerMask;\n\t}\n\n\tset cornerMask(cornerMask: DCornerMask) {\n\t\tif (this._cornerMask !== cornerMask) {\n\t\t\tthis._cornerMask = cornerMask;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tprotected getTables(): DBaseMeshGeometryTable[] {\n\t\tlet result = DBaseMeshGeometry.TABLES;\n\t\tif (result == null) {\n\t\t\tresult = this.newTables(DBaseMeshGeometry.N);\n\t\t\tDBaseMeshGeometry.TABLES = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newTables(n: number): DBaseMeshGeometryTable[] {\n\t\tconst dp = 1.0 / (n - 1);\n\t\tconst da = 0.5 * dp;\n\t\treturn [\n\t\t\tthis.newTable(n, 1.0, da),\n\t\t\tthis.newTable(n, 0.5, da),\n\t\t\tthis.newTable(n, 0.0, da),\n\t\t\tthis.newTable(n, 1.5, da)\n\t\t];\n\t}\n\n\tprotected newTable(n: number, a0: number, da: number): DBaseMeshGeometryTable {\n\t\tconst cos: number[] = [];\n\t\tconst sin: number[] = [];\n\t\tconst pi = Math.PI;\n\t\tfor (let i = 0, a = a0; i < n; i += 1, a -= da) {\n\t\t\tconst t = a * pi;\n\t\t\tconst c = +Math.cos(t);\n\t\t\tconst s = -Math.sin(t);\n\t\t\tcos.push(c);\n\t\t\tsin.push(s);\n\t\t}\n\t\treturn {\n\t\t\tcos,\n\t\t\tsin\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-base-mesh-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-mesh-geometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer, MeshGeometry } from \"pixi.js\";\nimport { DCornerMask } from \"./d-corner-mask\";\n\nexport interface DBaseMeshGeometryTable {\n\tcos: number[];\n\tsin: number[];\n}\n\nexport class DBaseMeshGeometry extends MeshGeometry {\n\t/** Note that this must be an odd number. */\n\tprotected static N = 5;\n\tprotected static TABLES?: DBaseMeshGeometryTable[];\n\n\tprotected _width: number;\n\tprotected _height: number;\n\tprotected _cornerRadius: number;\n\tprotected _cornerMask: DCornerMask;\n\tprotected _isDirty: boolean;\n\tprotected _vertices: Float32Array;\n\tprotected _uvs: Float32Array;\n\tprotected _indices: Uint16Array;\n\tprotected _vertexBuffer: Buffer;\n\tprotected _uvBuffer: Buffer;\n\tprotected _indexBuffer: Buffer;\n\tprotected _resolution: number;\n\n\tconstructor(\n\t\tvertices: Float32Array | number[],\n\t\tuvs: Float32Array | number[],\n\t\tindices: Uint16Array | number[]\n\t) {\n\t\tsuper(vertices, uvs, indices);\n\n\t\tthis._width = 100;\n\t\tthis._height = 100;\n\t\tthis._cornerRadius = 0;\n\t\tthis._cornerMask = DCornerMask.NONE;\n\t\tthis._isDirty = true;\n\t\tthis._resolution = 1;\n\n\t\tthis._vertexBuffer = this.getBuffer(\"aVertexPosition\");\n\t\tthis._vertices = this._vertexBuffer.data as Float32Array;\n\t\tthis._uvBuffer = this.getBuffer(\"aTextureCoord\");\n\t\tthis._uvs = this._uvBuffer.data as Float32Array;\n\t\tthis._indexBuffer = this.getIndex();\n\t\tthis._indices = this._indexBuffer.data as Uint16Array;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tset width(width: number) {\n\t\tif (this._width !== width) {\n\t\t\tthis._width = width;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget height(): number {\n\t\treturn this._height;\n\t}\n\n\tset height(height: number) {\n\t\tif (this._height !== height) {\n\t\t\tthis._height = height;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget cornerRadius(): number {\n\t\treturn this._cornerRadius;\n\t}\n\n\tset cornerRadius(borderSize: number) {\n\t\tif (this._cornerRadius !== borderSize) {\n\t\t\tthis._cornerRadius = borderSize;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tget cornerMask(): DCornerMask {\n\t\treturn this._cornerMask;\n\t}\n\n\tset cornerMask(cornerMask: DCornerMask) {\n\t\tif (this._cornerMask !== cornerMask) {\n\t\t\tthis._cornerMask = cornerMask;\n\t\t\tthis._isDirty = true;\n\t\t}\n\t}\n\n\tprotected getTables(): DBaseMeshGeometryTable[] {\n\t\tlet result = DBaseMeshGeometry.TABLES;\n\t\tif (result == null) {\n\t\t\tresult = this.newTables(DBaseMeshGeometry.N);\n\t\t\tDBaseMeshGeometry.TABLES = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected newTables(n: number): DBaseMeshGeometryTable[] {\n\t\tconst dp = 1.0 / (n - 1);\n\t\tconst da = 0.5 * dp;\n\t\treturn [\n\t\t\tthis.newTable(n, 1.0, da),\n\t\t\tthis.newTable(n, 0.5, da),\n\t\t\tthis.newTable(n, 0.0, da),\n\t\t\tthis.newTable(n, 1.5, da)\n\t\t];\n\t}\n\n\tprotected newTable(n: number, a0: number, da: number): DBaseMeshGeometryTable {\n\t\tconst cos: number[] = [];\n\t\tconst sin: number[] = [];\n\t\tconst pi = Math.PI;\n\t\tfor (let i = 0, a = a0; i < n; i += 1, a -= da) {\n\t\t\tconst t = a * pi;\n\t\t\tconst c = +Math.cos(t);\n\t\t\tconst s = -Math.sin(t);\n\t\t\tcos.push(c);\n\t\t\tsin.push(s);\n\t\t}\n\t\treturn {\n\t\t\tcos,\n\t\t\tsin\n\t\t};\n\t}\n}\n"]}
@@ -8,7 +8,7 @@ import { DynamicAtlasItemImage } from "../util/dynamic-atlas-item-image";
8
8
  import { EShapeBuffer } from "./e-shape-buffer";
9
9
  import { EShapeRendererIterator } from "./e-shape-renderer-iterator";
10
10
  var VERTEX_SHADER = "\nattribute vec2 aPosition;\nattribute vec3 aClipping;\nattribute vec2 aStep;\nattribute vec4 aAntialias;\nattribute vec4 aColorFill;\nattribute vec4 aColorStroke;\nattribute vec2 aUv;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mediump float shapeScale;\nuniform mediump float pixelScale;\nuniform mediump float antialiasWeight;\n\nvarying mediump vec3 vClipping;\nvarying mediump vec2 vStep;\nvarying mediump vec4 vAntialias;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nvec2 toInverse( in vec2 v ) {\n\treturn vec2( -v.y, v.x );\n}\n\nvec2 toTransformedPosition( in vec2 v ) {\n\treturn (projectionMatrix * translationMatrix * vec3(v, 1.0)).xy;\n}\n\nvec4 toAntialias01( in vec4 antialias ) {\n\t// Taylor series of 1 / ( 1 - a ) = 1 + a + a^2 + ....\n\treturn 1.0 + min( vec4( 1.0 ), antialias * pixelScale );\n}\n\nvec4 toAntialias2( in vec4 antialias, in float strokeWidth ) {\n\tfloat x = min( 0.4, 0.4 / 12.0 * antialias.x * pixelScale * antialiasWeight );\n\tfloat w = clamp( strokeWidth / antialias.y, 0.0, 1.0 ) * 0.4;\n\tfloat p = w * antialias.z + antialias.w;\n\tfloat y = 0.5 - p;\n\tfloat z = 0.5 - p - w;\n\treturn vec4( y, z, y - max( 0.01, y - x ), z - max( 0.01, z - x ) );\n}\n\nvec2 toPosition3456( in float type, in vec2 p, in vec2 pprev, in vec2 pnext, in float strokeWidth, out float shift ) {\n\tvec2 d0 = p - pprev;\n\tvec2 d1 = pnext - p;\n\tfloat l0 = dot( d0, d0 );\n\tfloat l1 = dot( d1, d1 );\n\tvec2 nd0 = normalize( toInverse( d0 ) );\n\tvec2 nd1 = normalize( toInverse( d1 ) );\n\tvec2 nd2 = 0.00001 < l1 ? nd1 : vec2(0.0, 0.0);\n\tvec2 n0 = 0.00001 < l0 ? nd0 : nd2;\n\tvec2 n1 = 0.00001 < l1 ? nd1 : n0;\n\tvec2 n0i = toInverse( n0 );\n\tvec2 n1i = toInverse( n1 );\n\tfloat direction = sign( 4.5 - type );\n\n\t// Offset\n\tfloat cross = dot( n0i, n1 );\n\tfloat crossInverse = ( 0.00001 < abs( cross ) ? 1.0 / cross : 0.0 );\n\tfloat b = dot(n1 - n0, n0) * crossInverse;\n\tfloat offsetSize = direction * strokeWidth * 0.5;\n\tvec2 offset = n1 + n1i * b;\n\n\t// Miter\n\tvec2 pmiter = p + offsetSize * offset;\n\tfloat miterAngle0 = dot( n0i, pmiter - pprev );\n\tfloat miterAngle1 = dot( n1i, pmiter - pnext );\n\tfloat miterLength = dot( offset, offset );\n\tfloat miterSide = direction * cross;\n\n\t// Bevel\n\tvec2 n = ( type == 4.0 || type == 6.0 ? n1 : n0 );\n\tvec2 pbevel = p + offsetSize * n;\n\n\t//\n\tvec2 presult = (\n\t\t0.0 <= miterSide ?\n\t\t( miterAngle0 < 0.0 && 0.0 <= miterAngle1 ? pmiter : pbevel ) :\n\t\t( miterLength < 6.0 ? pmiter : pbevel )\n\t);\n\tvec2 ni = ( type == 4.0 || type == 6.0 ? n1i : n0i );\n\tshift = dot( ni, p - presult );\n\treturn toTransformedPosition( presult );\n}\n\nvec2 toStep3456( in float type ) {\n\treturn ( type < 4.5 ? vec2( 1.0, 0.0 ) : vec2( 0.0, 1.0 ) );\n}\n\nvec4 toAntialias3456( in float strokeWidth ) {\n\tfloat a = antialiasWeight / max( 0.0001, strokeWidth );\n\treturn toAntialias01( vec4( a, a, a, a ) );\n}\n\nfloat toDotAndDashScale( in float scale, in float strokeWidthScale ) {\n\treturn (\n\t\tscale == 4.0 || scale == 5.0 || scale == 6.0 || scale == 7.0 ?\n\t\tstrokeWidthScale : 1.0\n\t);\n}\n\nvec4 toColorStroke3456( in float shift, in float scale ) {\n\tfloat x = aColorFill.x + shift;\n\tfloat y = scale * aColorFill.y;\n\tfloat z = scale * aColorFill.z;\n\tfloat w = aColorFill.w;\n\treturn vec4( x, y, z, w );\n}\n\nfloat toStrokeWidthScale( in float scale ) {\n\treturn (\n\t\tscale == 3.0 || scale == 7.0 ?\n\t\tshapeScale : (\n\t\t\tscale == 1.0 || scale == 5.0 ?\n\t\t\tmin( 1.0, shapeScale ) : (\n\t\t\t\tscale == 2.0 || scale == 6.0 ?\n\t\t\t\tmax( 1.0, shapeScale ) : 1.0\n\t\t\t)\n\t\t)\n\t);\n}\n\nvec2 toStep01(in vec2 size, in vec2 weight, in vec2 strokeWidth) {\n\treturn weight / max(vec2(0.00001), vec2(1.0) - strokeWidth / size);\n}\n\nvec4 toAntialias01b(in vec2 size, in vec2 strokeWidth) {\n\treturn antialiasWeight / max(vec4(0.00001), vec4(size - strokeWidth, size));\n}\n\nvoid main(void) {\n\tvec2 p012 = toTransformedPosition( aPosition );\n\n\tfloat type = aClipping.z;\n\tfloat strokeWidthScale = toStrokeWidthScale( aStep.y );\n\tfloat strokeWidth = strokeWidthScale * aStep.x;\n\n\t// type === 0 or 1\n\tvec2 size01 = aAntialias.xy;\n\tvec2 weight01 = abs(aAntialias.zw - sign(aAntialias.zw));\n\tvec2 strokeWidth01 = step(vec2(0.0), aAntialias.zw) * strokeWidth;\n\tvec2 step01 = toStep01( size01, weight01, strokeWidth01 );\n\tvec4 a01 = toAntialias01( toAntialias01b( size01, strokeWidth01 ) );\n\n\t// type === 2\n\tvec4 a2 = toAntialias2( aAntialias, strokeWidth );\n\n\t// type === 3, 4, 5 or 6\n\tfloat shift3456 = 0.0;\n\tvec2 p3456 = toPosition3456( type, aPosition, aAntialias.xy, aAntialias.zw, strokeWidth, shift3456 );\n\tvec2 step3456 = toStep3456( type );\n\tvec4 a3456 = toAntialias3456( strokeWidth );\n\tvec4 colorStroke3456 = toColorStroke3456( shift3456, toDotAndDashScale( aStep.y, strokeWidthScale ) );\n\n\t//\n\tgl_Position = vec4( ( 2.5 < type ? p3456 : p012 ), 0.0, 1.0 );\n\tvAntialias = ( 1.5 < type ? ( 2.5 < type ? a3456 : a2 ) : a01 );\n\tvClipping = aClipping;\n\tvStep = ( 2.5 < type ? step3456 : step01 );\n\tvColorFill = ( 2.5 < type ? aColorStroke : aColorFill );\n\tvColorStroke = ( 2.5 < type ? colorStroke3456 : aColorStroke );\n\tvUv = aUv;\n}";
11
- var FRAGMENT_SHADER = "\nvarying mediump vec3 vClipping;\nvarying mediump vec2 vStep;\nvarying mediump vec4 vAntialias;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nuniform sampler2D sampler;\nuniform mediump float pixelScale;\n\nvoid main(void) {\n\tvec4 texture = texture2D(sampler, vUv);\n\tfloat type = vClipping.z;\n\tvec2 v0 = vStep;\n\tvec2 v1 = vClipping.xy;\n\tvec2 v2 = v0 * vAntialias.xy;\n\tvec2 v3 = v1 * vAntialias.zw;\n\tvec2 d01 = ( v0.x < v0.y ? vec2( v0.y, v2.y ) : vec2( v0.x, v2.x ) );\n\tvec2 d02 = ( v1.x < v1.y ? vec2( v1.y, v3.y ) : vec2( v1.x, v3.x ) );\n\tvec4 d0 = vec4( d01.x, d02.x, d01.y, d02.y );\n\tvec4 d1 = vec4( dot( v0, v0 ), dot( v1, v1 ), dot( v2, v2 ), dot( v3, v3 ) );\n\tvec4 d = ( type == 1.0 ? d1 : d0 );\n\tvec2 s = smoothstep( 1.0 - (d.zw - d.xy), vec2( 1.0 ), d.xy );\n\tvec4 color01 = texture * (vColorStroke * (s.x - s.y) + vColorFill * (1.0 - s.x));\n\n\tfloat l = vColorStroke.x;\n\tfloat lp0 = vColorStroke.y;\n\tfloat lp1 = vColorStroke.z;\n\tfloat lt = vColorStroke.w;\n\tfloat ld = 0.5 * pixelScale;\n\tfloat lm = mod( l, lp0 + lp1 );\n\tfloat ls0 = ( 0.0 < lp1 ? smoothstep( 0.0, ld, lm ) - smoothstep( lp0, lp0 + ld, lm ) : 1.0 );\n\tfloat ls1 = ( 0.0 <= lt ? smoothstep( 0.0, ld, l ) - smoothstep( lt - ld, lt, l ) : 1.0 );\n\tvec4 color3456 = color01 * ls0 * ls1;\n\n\tvec2 a0 = vAntialias.xy;\n\tvec2 a1 = vAntialias.zw;\n\tvec2 a2 = vec2( texture.a );\n\tvec2 a = smoothstep( a0 - a1, a0 + a1, a2 );\n\tvec4 color2 = a.x * vColorFill + ( a.y - a.x ) * vColorStroke;\n\tgl_FragColor = ( type == 2.0 ? color2 : (2.5 < type ? color3456 : color01) );\n}";
11
+ var FRAGMENT_SHADER = "\nvarying mediump vec3 vClipping;\nvarying mediump vec2 vStep;\nvarying mediump vec4 vAntialias;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nuniform sampler2D sampler;\nuniform mediump float pixelScale;\n\nvec4 color1(float type, vec4 texture) {\n\tvec2 v0 = vStep;\n\tvec2 v1 = vClipping.xy;\n\tvec2 v2 = v0 * vAntialias.xy;\n\tvec2 v3 = v1 * vAntialias.zw;\n\tvec2 d01 = ( v0.x < v0.y ? vec2( v0.y, v2.y ) : vec2( v0.x, v2.x ) );\n\tvec2 d02 = ( v1.x < v1.y ? vec2( v1.y, v3.y ) : vec2( v1.x, v3.x ) );\n\tvec4 d0 = vec4( d01.x, d02.x, d01.y, d02.y );\n\tvec4 d1 = vec4( dot( v0, v0 ), dot( v1, v1 ), dot( v2, v2 ), dot( v3, v3 ) );\n\tvec4 d = (type == 1.0 ? d1 : d0);\n\tvec2 s = smoothstep( 1.0 - (d.zw - d.xy), vec2( 1.0 ), d.xy );\n\treturn texture * (vColorStroke * (s.x - s.y) + vColorFill * (1.0 - s.x));\n}\n\nvec4 color2(float type, vec4 texture) {\n\tvec2 a0 = vAntialias.xy;\n\tvec2 a1 = vAntialias.zw;\n\tvec2 a2 = vec2( (texture.b * 0.00392156862745098 + texture.g) * 0.00392156862745098 + texture.r );\n\tvec2 a = smoothstep( a0 - a1, a0 + a1, a2 );\n\treturn a.x * vColorFill + ( a.y - a.x ) * vColorStroke;\n}\n\nfloat color3456(float type, vec4 texture) {\n\tfloat l = vColorStroke.x;\n\tfloat lp0 = vColorStroke.y;\n\tfloat lp1 = vColorStroke.z;\n\tfloat lt = vColorStroke.w;\n\tfloat ld = 0.5 * pixelScale;\n\tfloat lm = mod( l, lp0 + lp1 );\n\tfloat ls0 = ( 0.0 < lp1 ? smoothstep( 0.0, ld, lm ) - smoothstep( lp0, lp0 + ld, lm ) : 1.0 );\n\tfloat ls1 = ( 0.0 <= lt ? smoothstep( 0.0, ld, l ) - smoothstep( lt - ld, lt, l ) : 1.0 );\n\treturn ls0 * ls1;\n}\n\nvoid main(void) {\n\tfloat type = vClipping.z;\n\tvec4 texture = texture2D(sampler, vUv);\n\tgl_FragColor = (type == 2.0 ?\n\t\tcolor2(type, texture) :\n\t\tcolor1(type, texture) * (2.5 < type ? color3456(type, texture) : 1.0)\n\t);\n}";
12
12
  var EShapeRenderer = /** @class */ (function (_super) {
13
13
  __extends(EShapeRenderer, _super);
14
14
  function EShapeRenderer(renderer) {
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-renderer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-renderer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tBaseTexture,\n\tBLEND_MODES,\n\tObjectRenderer,\n\tRenderer,\n\tShader,\n\tTexture,\n\tutils\n} from \"pixi.js\";\nimport { DynamicAtlas } from \"../util/dynamic-atlas\";\nimport { DynamicAtlasItemImage } from \"../util/dynamic-atlas-item-image\";\nimport { DynamicSDFFontAtlases } from \"../util/dynamic-sdf-font-atlases\";\nimport { EShape } from \"./e-shape\";\nimport { EShapeBuffer } from \"./e-shape-buffer\";\nimport { EShapeContainer } from \"./e-shape-container\";\nimport { EShapeRendererIterator } from \"./e-shape-renderer-iterator\";\n\nconst VERTEX_SHADER = `\nattribute vec2 aPosition;\nattribute vec3 aClipping;\nattribute vec2 aStep;\nattribute vec4 aAntialias;\nattribute vec4 aColorFill;\nattribute vec4 aColorStroke;\nattribute vec2 aUv;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mediump float shapeScale;\nuniform mediump float pixelScale;\nuniform mediump float antialiasWeight;\n\nvarying mediump vec3 vClipping;\nvarying mediump vec2 vStep;\nvarying mediump vec4 vAntialias;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nvec2 toInverse( in vec2 v ) {\n\treturn vec2( -v.y, v.x );\n}\n\nvec2 toTransformedPosition( in vec2 v ) {\n\treturn (projectionMatrix * translationMatrix * vec3(v, 1.0)).xy;\n}\n\nvec4 toAntialias01( in vec4 antialias ) {\n\t// Taylor series of 1 / ( 1 - a ) = 1 + a + a^2 + ....\n\treturn 1.0 + min( vec4( 1.0 ), antialias * pixelScale );\n}\n\nvec4 toAntialias2( in vec4 antialias, in float strokeWidth ) {\n\tfloat x = min( 0.4, 0.4 / 12.0 * antialias.x * pixelScale * antialiasWeight );\n\tfloat w = clamp( strokeWidth / antialias.y, 0.0, 1.0 ) * 0.4;\n\tfloat p = w * antialias.z + antialias.w;\n\tfloat y = 0.5 - p;\n\tfloat z = 0.5 - p - w;\n\treturn vec4( y, z, y - max( 0.01, y - x ), z - max( 0.01, z - x ) );\n}\n\nvec2 toPosition3456( in float type, in vec2 p, in vec2 pprev, in vec2 pnext, in float strokeWidth, out float shift ) {\n\tvec2 d0 = p - pprev;\n\tvec2 d1 = pnext - p;\n\tfloat l0 = dot( d0, d0 );\n\tfloat l1 = dot( d1, d1 );\n\tvec2 nd0 = normalize( toInverse( d0 ) );\n\tvec2 nd1 = normalize( toInverse( d1 ) );\n\tvec2 nd2 = 0.00001 < l1 ? nd1 : vec2(0.0, 0.0);\n\tvec2 n0 = 0.00001 < l0 ? nd0 : nd2;\n\tvec2 n1 = 0.00001 < l1 ? nd1 : n0;\n\tvec2 n0i = toInverse( n0 );\n\tvec2 n1i = toInverse( n1 );\n\tfloat direction = sign( 4.5 - type );\n\n\t// Offset\n\tfloat cross = dot( n0i, n1 );\n\tfloat crossInverse = ( 0.00001 < abs( cross ) ? 1.0 / cross : 0.0 );\n\tfloat b = dot(n1 - n0, n0) * crossInverse;\n\tfloat offsetSize = direction * strokeWidth * 0.5;\n\tvec2 offset = n1 + n1i * b;\n\n\t// Miter\n\tvec2 pmiter = p + offsetSize * offset;\n\tfloat miterAngle0 = dot( n0i, pmiter - pprev );\n\tfloat miterAngle1 = dot( n1i, pmiter - pnext );\n\tfloat miterLength = dot( offset, offset );\n\tfloat miterSide = direction * cross;\n\n\t// Bevel\n\tvec2 n = ( type == 4.0 || type == 6.0 ? n1 : n0 );\n\tvec2 pbevel = p + offsetSize * n;\n\n\t//\n\tvec2 presult = (\n\t\t0.0 <= miterSide ?\n\t\t( miterAngle0 < 0.0 && 0.0 <= miterAngle1 ? pmiter : pbevel ) :\n\t\t( miterLength < 6.0 ? pmiter : pbevel )\n\t);\n\tvec2 ni = ( type == 4.0 || type == 6.0 ? n1i : n0i );\n\tshift = dot( ni, p - presult );\n\treturn toTransformedPosition( presult );\n}\n\nvec2 toStep3456( in float type ) {\n\treturn ( type < 4.5 ? vec2( 1.0, 0.0 ) : vec2( 0.0, 1.0 ) );\n}\n\nvec4 toAntialias3456( in float strokeWidth ) {\n\tfloat a = antialiasWeight / max( 0.0001, strokeWidth );\n\treturn toAntialias01( vec4( a, a, a, a ) );\n}\n\nfloat toDotAndDashScale( in float scale, in float strokeWidthScale ) {\n\treturn (\n\t\tscale == 4.0 || scale == 5.0 || scale == 6.0 || scale == 7.0 ?\n\t\tstrokeWidthScale : 1.0\n\t);\n}\n\nvec4 toColorStroke3456( in float shift, in float scale ) {\n\tfloat x = aColorFill.x + shift;\n\tfloat y = scale * aColorFill.y;\n\tfloat z = scale * aColorFill.z;\n\tfloat w = aColorFill.w;\n\treturn vec4( x, y, z, w );\n}\n\nfloat toStrokeWidthScale( in float scale ) {\n\treturn (\n\t\tscale == 3.0 || scale == 7.0 ?\n\t\tshapeScale : (\n\t\t\tscale == 1.0 || scale == 5.0 ?\n\t\t\tmin( 1.0, shapeScale ) : (\n\t\t\t\tscale == 2.0 || scale == 6.0 ?\n\t\t\t\tmax( 1.0, shapeScale ) : 1.0\n\t\t\t)\n\t\t)\n\t);\n}\n\nvec2 toStep01(in vec2 size, in vec2 weight, in vec2 strokeWidth) {\n\treturn weight / max(vec2(0.00001), vec2(1.0) - strokeWidth / size);\n}\n\nvec4 toAntialias01b(in vec2 size, in vec2 strokeWidth) {\n\treturn antialiasWeight / max(vec4(0.00001), vec4(size - strokeWidth, size));\n}\n\nvoid main(void) {\n\tvec2 p012 = toTransformedPosition( aPosition );\n\n\tfloat type = aClipping.z;\n\tfloat strokeWidthScale = toStrokeWidthScale( aStep.y );\n\tfloat strokeWidth = strokeWidthScale * aStep.x;\n\n\t// type === 0 or 1\n\tvec2 size01 = aAntialias.xy;\n\tvec2 weight01 = abs(aAntialias.zw - sign(aAntialias.zw));\n\tvec2 strokeWidth01 = step(vec2(0.0), aAntialias.zw) * strokeWidth;\n\tvec2 step01 = toStep01( size01, weight01, strokeWidth01 );\n\tvec4 a01 = toAntialias01( toAntialias01b( size01, strokeWidth01 ) );\n\n\t// type === 2\n\tvec4 a2 = toAntialias2( aAntialias, strokeWidth );\n\n\t// type === 3, 4, 5 or 6\n\tfloat shift3456 = 0.0;\n\tvec2 p3456 = toPosition3456( type, aPosition, aAntialias.xy, aAntialias.zw, strokeWidth, shift3456 );\n\tvec2 step3456 = toStep3456( type );\n\tvec4 a3456 = toAntialias3456( strokeWidth );\n\tvec4 colorStroke3456 = toColorStroke3456( shift3456, toDotAndDashScale( aStep.y, strokeWidthScale ) );\n\n\t//\n\tgl_Position = vec4( ( 2.5 < type ? p3456 : p012 ), 0.0, 1.0 );\n\tvAntialias = ( 1.5 < type ? ( 2.5 < type ? a3456 : a2 ) : a01 );\n\tvClipping = aClipping;\n\tvStep = ( 2.5 < type ? step3456 : step01 );\n\tvColorFill = ( 2.5 < type ? aColorStroke : aColorFill );\n\tvColorStroke = ( 2.5 < type ? colorStroke3456 : aColorStroke );\n\tvUv = aUv;\n}`;\n\nconst FRAGMENT_SHADER = `\nvarying mediump vec3 vClipping;\nvarying mediump vec2 vStep;\nvarying mediump vec4 vAntialias;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nuniform sampler2D sampler;\nuniform mediump float pixelScale;\n\nvoid main(void) {\n\tvec4 texture = texture2D(sampler, vUv);\n\tfloat type = vClipping.z;\n\tvec2 v0 = vStep;\n\tvec2 v1 = vClipping.xy;\n\tvec2 v2 = v0 * vAntialias.xy;\n\tvec2 v3 = v1 * vAntialias.zw;\n\tvec2 d01 = ( v0.x < v0.y ? vec2( v0.y, v2.y ) : vec2( v0.x, v2.x ) );\n\tvec2 d02 = ( v1.x < v1.y ? vec2( v1.y, v3.y ) : vec2( v1.x, v3.x ) );\n\tvec4 d0 = vec4( d01.x, d02.x, d01.y, d02.y );\n\tvec4 d1 = vec4( dot( v0, v0 ), dot( v1, v1 ), dot( v2, v2 ), dot( v3, v3 ) );\n\tvec4 d = ( type == 1.0 ? d1 : d0 );\n\tvec2 s = smoothstep( 1.0 - (d.zw - d.xy), vec2( 1.0 ), d.xy );\n\tvec4 color01 = texture * (vColorStroke * (s.x - s.y) + vColorFill * (1.0 - s.x));\n\n\tfloat l = vColorStroke.x;\n\tfloat lp0 = vColorStroke.y;\n\tfloat lp1 = vColorStroke.z;\n\tfloat lt = vColorStroke.w;\n\tfloat ld = 0.5 * pixelScale;\n\tfloat lm = mod( l, lp0 + lp1 );\n\tfloat ls0 = ( 0.0 < lp1 ? smoothstep( 0.0, ld, lm ) - smoothstep( lp0, lp0 + ld, lm ) : 1.0 );\n\tfloat ls1 = ( 0.0 <= lt ? smoothstep( 0.0, ld, l ) - smoothstep( lt - ld, lt, l ) : 1.0 );\n\tvec4 color3456 = color01 * ls0 * ls1;\n\n\tvec2 a0 = vAntialias.xy;\n\tvec2 a1 = vAntialias.zw;\n\tvec2 a2 = vec2( texture.a );\n\tvec2 a = smoothstep( a0 - a1, a0 + a1, a2 );\n\tvec4 color2 = a.x * vColorFill + ( a.y - a.x ) * vColorStroke;\n\tgl_FragColor = ( type == 2.0 ? color2 : (2.5 < type ? color3456 : color01) );\n}`;\n\nexport class EShapeRenderer extends ObjectRenderer {\n\tstatic SHADER: Shader | null = null;\n\n\tprotected _shader: Shader | null;\n\tprotected _iterator: EShapeRendererIterator;\n\tprotected _bufferSizeMax: number;\n\n\tconstructor(renderer: Renderer) {\n\t\tsuper(renderer);\n\t\tEShapeRenderer.SHADER =\n\t\t\tEShapeRenderer.SHADER || Shader.from(VERTEX_SHADER, FRAGMENT_SHADER);\n\t\tthis._shader = EShapeRenderer.SHADER;\n\t\tthis._iterator = new EShapeRendererIterator();\n\t\tthis._bufferSizeMax = this.getBufferSizeMax(renderer);\n\t}\n\n\tprotected getBufferSizeMax(renderer: Renderer): number {\n\t\tconst context = renderer.context;\n\t\tconst extensions = context.extensions as any;\n\t\tif (1 < context.webGLVersion || !!extensions.uint32ElementIndex) {\n\t\t\treturn 1431655765; // 2^32 / 3\n\t\t}\n\t\treturn 21845; // 2^16 / 3\n\t}\n\n\tupdateAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\t// Texture\n\t\t// Do not access the shape.image.src here.\n\t\t// It slows down the rendering speed significantly.\n\t\tconst imageSrc = shape.imageSrc;\n\t\tif (imageSrc != null) {\n\t\t\tconst textureItem = atlas.get(imageSrc);\n\t\t\tif (textureItem != null) {\n\t\t\t\tshape.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\tconst image = shape.image;\n\t\t\t\tif (image != null) {\n\t\t\t\t\tconst newTextureItem = new DynamicAtlasItemImage(image, baseTexture);\n\t\t\t\t\tshape.texture = newTextureItem.texture;\n\t\t\t\t\tatlas.set(newTextureItem.id, newTextureItem);\n\t\t\t\t} else {\n\t\t\t\t\tshape.texture = defaultTexture;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tshape.texture = defaultTexture;\n\t\t}\n\n\t\t// Font texture atlas\n\t\tconst text = shape.text;\n\t\tconst textValue = text.value;\n\t\tif (0 < textValue.length) {\n\t\t\tfontAtlases.add(text.family, textValue);\n\t\t}\n\t}\n\n\tupdateAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateAtlas(shape, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateAtlas(child, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tthis.updateAtlases(child.children, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateFontAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tconst text = shape.text;\n\t\tconst fontAtlas = fontAtlases.get(text.family);\n\t\tif (fontAtlas != null) {\n\t\t\tconst textureItem = atlas.get(fontAtlas.id);\n\t\t\tif (textureItem != null) {\n\t\t\t\ttext.atlas = fontAtlas;\n\t\t\t\ttext.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\ttext.atlas = undefined;\n\t\t\t\ttext.texture = defaultTexture;\n\t\t\t}\n\t\t} else {\n\t\t\ttext.atlas = undefined;\n\t\t\ttext.texture = defaultTexture;\n\t\t}\n\t}\n\n\tupdateFontAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateFontAtlas(shape, atlas, fontAtlases, defaultTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateFontAtlas(child, atlas, fontAtlases, defaultTexture);\n\t\t\t\tthis.updateFontAtlases(child.children, atlas, fontAtlases, defaultTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\trender_(\n\t\tcontainer: EShapeContainer,\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tisDirty: boolean\n\t): void {\n\t\tconst renderer = this.renderer;\n\t\tconst shader = this._shader;\n\n\t\tif (shader != null && (shape != null || 0 < shapes.length)) {\n\t\t\tconst resolution = renderer.resolution;\n\t\t\tconst buffers = container.getBuffers();\n\t\t\tconst antialiasWeight = container.getAntialiasWeight(resolution);\n\n\t\t\t// Update textures\n\t\t\tif (isDirty) {\n\t\t\t\t// Atlases\n\t\t\t\tconst atlas = container.getAtlas(resolution);\n\t\t\t\tconst fontAtlases = container.getFontAtlases();\n\t\t\t\tatlas.begin();\n\t\t\t\tfontAtlases.begin();\n\t\t\t\tconst defaultTexture = atlas.getDefaultTexture();\n\t\t\t\tconst baseTexture: BaseTexture = atlas.getBaseTexture();\n\t\t\t\tthis.updateAtlases(shapes, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tfontAtlases.end();\n\t\t\t\tfontAtlases.update(atlas);\n\t\t\t\tthis.updateFontAtlases(shapes, atlas, fontAtlases, defaultTexture);\n\t\t\t\tatlas.end();\n\t\t\t\tatlas.repack();\n\n\t\t\t\t// Update buffers\n\t\t\t\tthis.updateBuffers(shape, shapes, buffers, renderer, antialiasWeight);\n\t\t\t}\n\n\t\t\t// Render buffers\n\t\t\tshader.uniforms.shapeScale = container.toShapeScale();\n\t\t\tshader.uniforms.pixelScale = container.toPixelScale(resolution);\n\t\t\tshader.uniforms.antialiasWeight = antialiasWeight;\n\t\t\tshader.uniforms.translationMatrix = container.worldTransform.toArray(true);\n\t\t\trenderer.shader.bind(shader, false);\n\t\t\trenderer.state.setBlendMode(utils.correctBlendMode(BLEND_MODES.NORMAL, true));\n\t\t\tconst buffersLength = buffers.length;\n\t\t\tif (1 < buffersLength) {\n\t\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\t\tbuffers[i].upload();\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\tbuffers[i].render(shader);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateBuffers(\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tbuffers: EShapeBuffer[],\n\t\trenderer: Renderer,\n\t\tantialiasWeight: number\n\t): void {\n\t\tconst iterator = this._iterator;\n\t\titerator.reset(shape, shapes);\n\n\t\tlet ib = 0;\n\t\tlet bufferSize = 0;\n\t\tconst bufferSizeBase = 5000;\n\t\tconst bufferSizeMax = this._bufferSizeMax;\n\t\twhile (iterator.get() != null) {\n\t\t\tlet buffer: EShapeBuffer | null = null;\n\t\t\tlet noMoreThanOne = false;\n\t\t\tif (0 < bufferSize) {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSize, renderer);\n\t\t\t\tbuffers.splice(ib, 0, buffer);\n\t\t\t\tnoMoreThanOne = true;\n\t\t\t} else if (ib < buffers.length) {\n\t\t\t\tbuffer = buffers[ib];\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t} else {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSizeBase, renderer);\n\t\t\t\tbuffers.push(buffer);\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t}\n\t\t\tif (buffer.update(iterator, antialiasWeight, noMoreThanOne)) {\n\t\t\t\tbufferSize = 0;\n\t\t\t\tib += 1;\n\t\t\t} else {\n\t\t\t\tbufferSize = buffer.indexCountRequested;\n\t\t\t\tif (bufferSize <= bufferSizeMax) {\n\t\t\t\t\tbufferSize = Math.ceil(bufferSize / bufferSizeBase) * bufferSizeBase;\n\t\t\t\t\tbufferSize = Math.min(bufferSize, bufferSizeMax);\n\t\t\t\t} else {\n\t\t\t\t\t// No way to render\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (ib < buffers.length) {\n\t\t\tfor (let jb = ib, ibmax = buffers.length; jb < ibmax; ++jb) {\n\t\t\t\tbuffers[jb].destroy();\n\t\t\t}\n\t\t\tbuffers.length = ib;\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"e-shape-renderer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-renderer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n\tBaseTexture,\n\tBLEND_MODES,\n\tObjectRenderer,\n\tRenderer,\n\tShader,\n\tTexture,\n\tutils\n} from \"pixi.js\";\nimport { DynamicAtlas } from \"../util/dynamic-atlas\";\nimport { DynamicAtlasItemImage } from \"../util/dynamic-atlas-item-image\";\nimport { DynamicSDFFontAtlases } from \"../util/dynamic-sdf-font-atlases\";\nimport { EShape } from \"./e-shape\";\nimport { EShapeBuffer } from \"./e-shape-buffer\";\nimport { EShapeContainer } from \"./e-shape-container\";\nimport { EShapeRendererIterator } from \"./e-shape-renderer-iterator\";\n\nconst VERTEX_SHADER = `\nattribute vec2 aPosition;\nattribute vec3 aClipping;\nattribute vec2 aStep;\nattribute vec4 aAntialias;\nattribute vec4 aColorFill;\nattribute vec4 aColorStroke;\nattribute vec2 aUv;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mediump float shapeScale;\nuniform mediump float pixelScale;\nuniform mediump float antialiasWeight;\n\nvarying mediump vec3 vClipping;\nvarying mediump vec2 vStep;\nvarying mediump vec4 vAntialias;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nvec2 toInverse( in vec2 v ) {\n\treturn vec2( -v.y, v.x );\n}\n\nvec2 toTransformedPosition( in vec2 v ) {\n\treturn (projectionMatrix * translationMatrix * vec3(v, 1.0)).xy;\n}\n\nvec4 toAntialias01( in vec4 antialias ) {\n\t// Taylor series of 1 / ( 1 - a ) = 1 + a + a^2 + ....\n\treturn 1.0 + min( vec4( 1.0 ), antialias * pixelScale );\n}\n\nvec4 toAntialias2( in vec4 antialias, in float strokeWidth ) {\n\tfloat x = min( 0.4, 0.4 / 12.0 * antialias.x * pixelScale * antialiasWeight );\n\tfloat w = clamp( strokeWidth / antialias.y, 0.0, 1.0 ) * 0.4;\n\tfloat p = w * antialias.z + antialias.w;\n\tfloat y = 0.5 - p;\n\tfloat z = 0.5 - p - w;\n\treturn vec4( y, z, y - max( 0.01, y - x ), z - max( 0.01, z - x ) );\n}\n\nvec2 toPosition3456( in float type, in vec2 p, in vec2 pprev, in vec2 pnext, in float strokeWidth, out float shift ) {\n\tvec2 d0 = p - pprev;\n\tvec2 d1 = pnext - p;\n\tfloat l0 = dot( d0, d0 );\n\tfloat l1 = dot( d1, d1 );\n\tvec2 nd0 = normalize( toInverse( d0 ) );\n\tvec2 nd1 = normalize( toInverse( d1 ) );\n\tvec2 nd2 = 0.00001 < l1 ? nd1 : vec2(0.0, 0.0);\n\tvec2 n0 = 0.00001 < l0 ? nd0 : nd2;\n\tvec2 n1 = 0.00001 < l1 ? nd1 : n0;\n\tvec2 n0i = toInverse( n0 );\n\tvec2 n1i = toInverse( n1 );\n\tfloat direction = sign( 4.5 - type );\n\n\t// Offset\n\tfloat cross = dot( n0i, n1 );\n\tfloat crossInverse = ( 0.00001 < abs( cross ) ? 1.0 / cross : 0.0 );\n\tfloat b = dot(n1 - n0, n0) * crossInverse;\n\tfloat offsetSize = direction * strokeWidth * 0.5;\n\tvec2 offset = n1 + n1i * b;\n\n\t// Miter\n\tvec2 pmiter = p + offsetSize * offset;\n\tfloat miterAngle0 = dot( n0i, pmiter - pprev );\n\tfloat miterAngle1 = dot( n1i, pmiter - pnext );\n\tfloat miterLength = dot( offset, offset );\n\tfloat miterSide = direction * cross;\n\n\t// Bevel\n\tvec2 n = ( type == 4.0 || type == 6.0 ? n1 : n0 );\n\tvec2 pbevel = p + offsetSize * n;\n\n\t//\n\tvec2 presult = (\n\t\t0.0 <= miterSide ?\n\t\t( miterAngle0 < 0.0 && 0.0 <= miterAngle1 ? pmiter : pbevel ) :\n\t\t( miterLength < 6.0 ? pmiter : pbevel )\n\t);\n\tvec2 ni = ( type == 4.0 || type == 6.0 ? n1i : n0i );\n\tshift = dot( ni, p - presult );\n\treturn toTransformedPosition( presult );\n}\n\nvec2 toStep3456( in float type ) {\n\treturn ( type < 4.5 ? vec2( 1.0, 0.0 ) : vec2( 0.0, 1.0 ) );\n}\n\nvec4 toAntialias3456( in float strokeWidth ) {\n\tfloat a = antialiasWeight / max( 0.0001, strokeWidth );\n\treturn toAntialias01( vec4( a, a, a, a ) );\n}\n\nfloat toDotAndDashScale( in float scale, in float strokeWidthScale ) {\n\treturn (\n\t\tscale == 4.0 || scale == 5.0 || scale == 6.0 || scale == 7.0 ?\n\t\tstrokeWidthScale : 1.0\n\t);\n}\n\nvec4 toColorStroke3456( in float shift, in float scale ) {\n\tfloat x = aColorFill.x + shift;\n\tfloat y = scale * aColorFill.y;\n\tfloat z = scale * aColorFill.z;\n\tfloat w = aColorFill.w;\n\treturn vec4( x, y, z, w );\n}\n\nfloat toStrokeWidthScale( in float scale ) {\n\treturn (\n\t\tscale == 3.0 || scale == 7.0 ?\n\t\tshapeScale : (\n\t\t\tscale == 1.0 || scale == 5.0 ?\n\t\t\tmin( 1.0, shapeScale ) : (\n\t\t\t\tscale == 2.0 || scale == 6.0 ?\n\t\t\t\tmax( 1.0, shapeScale ) : 1.0\n\t\t\t)\n\t\t)\n\t);\n}\n\nvec2 toStep01(in vec2 size, in vec2 weight, in vec2 strokeWidth) {\n\treturn weight / max(vec2(0.00001), vec2(1.0) - strokeWidth / size);\n}\n\nvec4 toAntialias01b(in vec2 size, in vec2 strokeWidth) {\n\treturn antialiasWeight / max(vec4(0.00001), vec4(size - strokeWidth, size));\n}\n\nvoid main(void) {\n\tvec2 p012 = toTransformedPosition( aPosition );\n\n\tfloat type = aClipping.z;\n\tfloat strokeWidthScale = toStrokeWidthScale( aStep.y );\n\tfloat strokeWidth = strokeWidthScale * aStep.x;\n\n\t// type === 0 or 1\n\tvec2 size01 = aAntialias.xy;\n\tvec2 weight01 = abs(aAntialias.zw - sign(aAntialias.zw));\n\tvec2 strokeWidth01 = step(vec2(0.0), aAntialias.zw) * strokeWidth;\n\tvec2 step01 = toStep01( size01, weight01, strokeWidth01 );\n\tvec4 a01 = toAntialias01( toAntialias01b( size01, strokeWidth01 ) );\n\n\t// type === 2\n\tvec4 a2 = toAntialias2( aAntialias, strokeWidth );\n\n\t// type === 3, 4, 5 or 6\n\tfloat shift3456 = 0.0;\n\tvec2 p3456 = toPosition3456( type, aPosition, aAntialias.xy, aAntialias.zw, strokeWidth, shift3456 );\n\tvec2 step3456 = toStep3456( type );\n\tvec4 a3456 = toAntialias3456( strokeWidth );\n\tvec4 colorStroke3456 = toColorStroke3456( shift3456, toDotAndDashScale( aStep.y, strokeWidthScale ) );\n\n\t//\n\tgl_Position = vec4( ( 2.5 < type ? p3456 : p012 ), 0.0, 1.0 );\n\tvAntialias = ( 1.5 < type ? ( 2.5 < type ? a3456 : a2 ) : a01 );\n\tvClipping = aClipping;\n\tvStep = ( 2.5 < type ? step3456 : step01 );\n\tvColorFill = ( 2.5 < type ? aColorStroke : aColorFill );\n\tvColorStroke = ( 2.5 < type ? colorStroke3456 : aColorStroke );\n\tvUv = aUv;\n}`;\n\nconst FRAGMENT_SHADER = `\nvarying mediump vec3 vClipping;\nvarying mediump vec2 vStep;\nvarying mediump vec4 vAntialias;\nvarying mediump vec4 vColorFill;\nvarying mediump vec4 vColorStroke;\nvarying mediump vec2 vUv;\n\nuniform sampler2D sampler;\nuniform mediump float pixelScale;\n\nvec4 color1(float type, vec4 texture) {\n\tvec2 v0 = vStep;\n\tvec2 v1 = vClipping.xy;\n\tvec2 v2 = v0 * vAntialias.xy;\n\tvec2 v3 = v1 * vAntialias.zw;\n\tvec2 d01 = ( v0.x < v0.y ? vec2( v0.y, v2.y ) : vec2( v0.x, v2.x ) );\n\tvec2 d02 = ( v1.x < v1.y ? vec2( v1.y, v3.y ) : vec2( v1.x, v3.x ) );\n\tvec4 d0 = vec4( d01.x, d02.x, d01.y, d02.y );\n\tvec4 d1 = vec4( dot( v0, v0 ), dot( v1, v1 ), dot( v2, v2 ), dot( v3, v3 ) );\n\tvec4 d = (type == 1.0 ? d1 : d0);\n\tvec2 s = smoothstep( 1.0 - (d.zw - d.xy), vec2( 1.0 ), d.xy );\n\treturn texture * (vColorStroke * (s.x - s.y) + vColorFill * (1.0 - s.x));\n}\n\nvec4 color2(float type, vec4 texture) {\n\tvec2 a0 = vAntialias.xy;\n\tvec2 a1 = vAntialias.zw;\n\tvec2 a2 = vec2( (texture.b * 0.00392156862745098 + texture.g) * 0.00392156862745098 + texture.r );\n\tvec2 a = smoothstep( a0 - a1, a0 + a1, a2 );\n\treturn a.x * vColorFill + ( a.y - a.x ) * vColorStroke;\n}\n\nfloat color3456(float type, vec4 texture) {\n\tfloat l = vColorStroke.x;\n\tfloat lp0 = vColorStroke.y;\n\tfloat lp1 = vColorStroke.z;\n\tfloat lt = vColorStroke.w;\n\tfloat ld = 0.5 * pixelScale;\n\tfloat lm = mod( l, lp0 + lp1 );\n\tfloat ls0 = ( 0.0 < lp1 ? smoothstep( 0.0, ld, lm ) - smoothstep( lp0, lp0 + ld, lm ) : 1.0 );\n\tfloat ls1 = ( 0.0 <= lt ? smoothstep( 0.0, ld, l ) - smoothstep( lt - ld, lt, l ) : 1.0 );\n\treturn ls0 * ls1;\n}\n\nvoid main(void) {\n\tfloat type = vClipping.z;\n\tvec4 texture = texture2D(sampler, vUv);\n\tgl_FragColor = (type == 2.0 ?\n\t\tcolor2(type, texture) :\n\t\tcolor1(type, texture) * (2.5 < type ? color3456(type, texture) : 1.0)\n\t);\n}`;\n\nexport class EShapeRenderer extends ObjectRenderer {\n\tstatic SHADER: Shader | null = null;\n\n\tprotected _shader: Shader | null;\n\tprotected _iterator: EShapeRendererIterator;\n\tprotected _bufferSizeMax: number;\n\n\tconstructor(renderer: Renderer) {\n\t\tsuper(renderer);\n\t\tEShapeRenderer.SHADER =\n\t\t\tEShapeRenderer.SHADER || Shader.from(VERTEX_SHADER, FRAGMENT_SHADER);\n\t\tthis._shader = EShapeRenderer.SHADER;\n\t\tthis._iterator = new EShapeRendererIterator();\n\t\tthis._bufferSizeMax = this.getBufferSizeMax(renderer);\n\t}\n\n\tprotected getBufferSizeMax(renderer: Renderer): number {\n\t\tconst context = renderer.context;\n\t\tconst extensions = context.extensions as any;\n\t\tif (1 < context.webGLVersion || !!extensions.uint32ElementIndex) {\n\t\t\treturn 1431655765; // 2^32 / 3\n\t\t}\n\t\treturn 21845; // 2^16 / 3\n\t}\n\n\tupdateAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\t// Texture\n\t\t// Do not access the shape.image.src here.\n\t\t// It slows down the rendering speed significantly.\n\t\tconst imageSrc = shape.imageSrc;\n\t\tif (imageSrc != null) {\n\t\t\tconst textureItem = atlas.get(imageSrc);\n\t\t\tif (textureItem != null) {\n\t\t\t\tshape.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\tconst image = shape.image;\n\t\t\t\tif (image != null) {\n\t\t\t\t\tconst newTextureItem = new DynamicAtlasItemImage(image, baseTexture);\n\t\t\t\t\tshape.texture = newTextureItem.texture;\n\t\t\t\t\tatlas.set(newTextureItem.id, newTextureItem);\n\t\t\t\t} else {\n\t\t\t\t\tshape.texture = defaultTexture;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tshape.texture = defaultTexture;\n\t\t}\n\n\t\t// Font texture atlas\n\t\tconst text = shape.text;\n\t\tconst textValue = text.value;\n\t\tif (0 < textValue.length) {\n\t\t\tfontAtlases.add(text.family, textValue);\n\t\t}\n\t}\n\n\tupdateAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture,\n\t\tbaseTexture: BaseTexture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateAtlas(shape, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateAtlas(child, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tthis.updateAtlases(child.children, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateFontAtlas(\n\t\tshape: EShape,\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tconst text = shape.text;\n\t\tconst fontAtlas = fontAtlases.get(text.family);\n\t\tif (fontAtlas != null) {\n\t\t\tconst textureItem = atlas.get(fontAtlas.id);\n\t\t\tif (textureItem != null) {\n\t\t\t\ttext.atlas = fontAtlas;\n\t\t\t\ttext.texture = textureItem.texture;\n\t\t\t} else {\n\t\t\t\ttext.atlas = undefined;\n\t\t\t\ttext.texture = defaultTexture;\n\t\t\t}\n\t\t} else {\n\t\t\ttext.atlas = undefined;\n\t\t\ttext.texture = defaultTexture;\n\t\t}\n\t}\n\n\tupdateFontAtlases(\n\t\tshapes: EShape[],\n\t\tatlas: DynamicAtlas,\n\t\tfontAtlases: DynamicSDFFontAtlases,\n\t\tdefaultTexture: Texture\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\t\t\tthis.updateFontAtlas(shape, atlas, fontAtlases, defaultTexture);\n\t\t\tconst children = shape.children;\n\t\t\tfor (let j = 0, jmax = children.length; j < jmax; ++j) {\n\t\t\t\tconst child = children[j];\n\t\t\t\tthis.updateFontAtlas(child, atlas, fontAtlases, defaultTexture);\n\t\t\t\tthis.updateFontAtlases(child.children, atlas, fontAtlases, defaultTexture);\n\t\t\t}\n\t\t}\n\t}\n\n\trender_(\n\t\tcontainer: EShapeContainer,\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tisDirty: boolean\n\t): void {\n\t\tconst renderer = this.renderer;\n\t\tconst shader = this._shader;\n\n\t\tif (shader != null && (shape != null || 0 < shapes.length)) {\n\t\t\tconst resolution = renderer.resolution;\n\t\t\tconst buffers = container.getBuffers();\n\t\t\tconst antialiasWeight = container.getAntialiasWeight(resolution);\n\n\t\t\t// Update textures\n\t\t\tif (isDirty) {\n\t\t\t\t// Atlases\n\t\t\t\tconst atlas = container.getAtlas(resolution);\n\t\t\t\tconst fontAtlases = container.getFontAtlases();\n\t\t\t\tatlas.begin();\n\t\t\t\tfontAtlases.begin();\n\t\t\t\tconst defaultTexture = atlas.getDefaultTexture();\n\t\t\t\tconst baseTexture: BaseTexture = atlas.getBaseTexture();\n\t\t\t\tthis.updateAtlases(shapes, atlas, fontAtlases, defaultTexture, baseTexture);\n\t\t\t\tfontAtlases.end();\n\t\t\t\tfontAtlases.update(atlas);\n\t\t\t\tthis.updateFontAtlases(shapes, atlas, fontAtlases, defaultTexture);\n\t\t\t\tatlas.end();\n\t\t\t\tatlas.repack();\n\n\t\t\t\t// Update buffers\n\t\t\t\tthis.updateBuffers(shape, shapes, buffers, renderer, antialiasWeight);\n\t\t\t}\n\n\t\t\t// Render buffers\n\t\t\tshader.uniforms.shapeScale = container.toShapeScale();\n\t\t\tshader.uniforms.pixelScale = container.toPixelScale(resolution);\n\t\t\tshader.uniforms.antialiasWeight = antialiasWeight;\n\t\t\tshader.uniforms.translationMatrix = container.worldTransform.toArray(true);\n\t\t\trenderer.shader.bind(shader, false);\n\t\t\trenderer.state.setBlendMode(utils.correctBlendMode(BLEND_MODES.NORMAL, true));\n\t\t\tconst buffersLength = buffers.length;\n\t\t\tif (1 < buffersLength) {\n\t\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\t\tbuffers[i].upload();\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < buffersLength; ++i) {\n\t\t\t\tbuffers[i].render(shader);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateBuffers(\n\t\tshape: EShape | null,\n\t\tshapes: EShape[],\n\t\tbuffers: EShapeBuffer[],\n\t\trenderer: Renderer,\n\t\tantialiasWeight: number\n\t): void {\n\t\tconst iterator = this._iterator;\n\t\titerator.reset(shape, shapes);\n\n\t\tlet ib = 0;\n\t\tlet bufferSize = 0;\n\t\tconst bufferSizeBase = 5000;\n\t\tconst bufferSizeMax = this._bufferSizeMax;\n\t\twhile (iterator.get() != null) {\n\t\t\tlet buffer: EShapeBuffer | null = null;\n\t\t\tlet noMoreThanOne = false;\n\t\t\tif (0 < bufferSize) {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSize, renderer);\n\t\t\t\tbuffers.splice(ib, 0, buffer);\n\t\t\t\tnoMoreThanOne = true;\n\t\t\t} else if (ib < buffers.length) {\n\t\t\t\tbuffer = buffers[ib];\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t} else {\n\t\t\t\tbuffer = new EShapeBuffer(bufferSizeBase, renderer);\n\t\t\t\tbuffers.push(buffer);\n\t\t\t\tnoMoreThanOne = false;\n\t\t\t}\n\t\t\tif (buffer.update(iterator, antialiasWeight, noMoreThanOne)) {\n\t\t\t\tbufferSize = 0;\n\t\t\t\tib += 1;\n\t\t\t} else {\n\t\t\t\tbufferSize = buffer.indexCountRequested;\n\t\t\t\tif (bufferSize <= bufferSizeMax) {\n\t\t\t\t\tbufferSize = Math.ceil(bufferSize / bufferSizeBase) * bufferSizeBase;\n\t\t\t\t\tbufferSize = Math.min(bufferSize, bufferSizeMax);\n\t\t\t\t} else {\n\t\t\t\t\t// No way to render\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (ib < buffers.length) {\n\t\t\tfor (let jb = ib, ibmax = buffers.length; jb < ibmax; ++jb) {\n\t\t\t\tbuffers[jb].destroy();\n\t\t\t}\n\t\t\tbuffers.length = ib;\n\t\t}\n\t}\n}\n"]}
@@ -156,7 +156,7 @@ var EShapeBase = /** @class */ (function (_super) {
156
156
  //
157
157
  };
158
158
  EShapeBase.prototype.updateUploaded = function (recursively) {
159
- if (this._lockUploaded.isLocked()) {
159
+ if (this._lockUploaded.isLocked(recursively)) {
160
160
  return;
161
161
  }
162
162
  var uploaded = this.uploaded;