@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.
- package/dist/types/wcardinal/ui/d-base-mesh-geometry.d.ts +1 -0
- package/dist/wcardinal/ui/d-base-background-mesh-geometry.js +3 -16
- package/dist/wcardinal/ui/d-base-background-mesh-geometry.js.map +1 -1
- package/dist/wcardinal/ui/d-base-border-mesh-geometry.js +68 -45
- package/dist/wcardinal/ui/d-base-border-mesh-geometry.js.map +1 -1
- package/dist/wcardinal/ui/d-base-mesh-geometry.js +2 -1
- package/dist/wcardinal/ui/d-base-mesh-geometry.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-renderer.js +1 -1
- package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-sdf-font-generator.js +1 -1
- package/dist/wcardinal/ui/util/dynamic-sdf-font-generator.js.map +1 -1
- package/dist/wcardinal/ui/util/util-extractor.js +2 -0
- package/dist/wcardinal/ui/util/util-extractor.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +81 -68
- package/dist/wcardinal-ui.js +81 -68
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- 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
|
|
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 *
|
|
36
|
-
vertices[++iv] = y + s *
|
|
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":"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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 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
|
|
45
|
-
var
|
|
46
|
-
var r2 = r +
|
|
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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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":"AAAA;;;GAGG;;AAEH,OAAO,EAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C;IAAuC,qCAAY;
|
|
1
|
+
{"version":3,"file":"d-base-mesh-geometry.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-mesh-geometry.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAU,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C;IAAuC,qCAAY;IAkBlD,2BACC,QAAiC,EACjC,GAA4B,EAC5B,OAA+B;QAHhC,YAKC,kBAAM,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,SAe7B;QAbA,KAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,KAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,KAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;QACpC,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAErB,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACvD,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,IAAoB,CAAC;QACzD,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,IAAoB,CAAC;QAChD,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,YAAY,CAAC,IAAmB,CAAC;;IACvD,CAAC;IAED,sBAAI,oCAAK;aAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;aAED,UAAU,KAAa;YACtB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;gBAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;QACF,CAAC;;;OAPA;IASD,sBAAI,qCAAM;aAAV;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;aAED,UAAW,MAAc;YACxB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;QACF,CAAC;;;OAPA;IASD,sBAAI,2CAAY;aAAhB;YACC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC3B,CAAC;aAED,UAAiB,UAAkB;YAClC,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE;gBACtC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;gBAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;QACF,CAAC;;;OAPA;IASD,sBAAI,yCAAU;aAAd;YACC,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;aAED,UAAe,UAAuB;YACrC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;gBACpC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;QACF,CAAC;;;OAPA;IASS,qCAAS,GAAnB;QACC,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACtC,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC7C,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;SAClC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAES,qCAAS,GAAnB,UAAoB,CAAS;QAC5B,IAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QACpB,OAAO;YACN,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;SACzB,CAAC;IACH,CAAC;IAES,oCAAQ,GAAlB,UAAmB,CAAS,EAAE,EAAU,EAAE,EAAU;QACnD,IAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjB,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACZ;QACD,OAAO;YACN,GAAG,KAAA;YACH,GAAG,KAAA;SACH,CAAC;IACH,CAAC;IAtHD,4CAA4C;IAC3B,mBAAC,GAAG,CAAC,CAAC;IAsHxB,wBAAC;CAAA,AAxHD,CAAuC,YAAY,GAwHlD;SAxHY,iBAAiB","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\
|
|
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;
|