@wcardinal/wcardinal-ui 0.457.0 → 0.457.2
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/util/character.d.ts +35 -1
- package/dist/types/wcardinal/ui/util/util-character-iterator.d.ts +0 -3
- package/dist/wcardinal/ui/shape/e-shape-points-marker-base.js +5 -1
- package/dist/wcardinal/ui/shape/e-shape-points-marker-base.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js +7 -3
- package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js.map +1 -1
- package/dist/wcardinal/ui/util/character.js +35 -1
- package/dist/wcardinal/ui/util/character.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-font-atlas.js +18 -8
- package/dist/wcardinal/ui/util/dynamic-font-atlas.js.map +1 -1
- package/dist/wcardinal/ui/util/dynamic-sdf-font-atlas.js +6 -2
- package/dist/wcardinal/ui/util/dynamic-sdf-font-atlas.js.map +1 -1
- package/dist/wcardinal/ui/util/util-character-iterator.js +3 -10
- package/dist/wcardinal/ui/util/util-character-iterator.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 +73 -26
- package/dist/wcardinal-ui.js +73 -26
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
export declare const Character: {
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* ASCII Character Ranges
|
|
4
|
+
* LOW: Printable ASCII (0x21-0x7E) - '!' to '~'
|
|
5
|
+
* HIGH: Extended ASCII (0xA1-0xFF) - '¡' to 'ÿ'
|
|
6
|
+
*/
|
|
7
|
+
readonly ASCII: {
|
|
8
|
+
readonly LOW: {
|
|
9
|
+
readonly FROM: 33;
|
|
10
|
+
readonly TO: 126;
|
|
11
|
+
};
|
|
12
|
+
readonly HIGH: {
|
|
13
|
+
readonly FROM: 161;
|
|
14
|
+
readonly TO: 255;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Surrogate Pair Ranges
|
|
19
|
+
*/
|
|
20
|
+
readonly SURROGATE: {
|
|
21
|
+
readonly LOW: {
|
|
22
|
+
readonly FROM: 56320;
|
|
23
|
+
readonly TO: 57343;
|
|
24
|
+
};
|
|
25
|
+
readonly HIGH: {
|
|
26
|
+
readonly FROM: 55296;
|
|
27
|
+
readonly TO: 56319;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Variation Selector Range
|
|
32
|
+
*/
|
|
33
|
+
readonly VARIATION: {
|
|
34
|
+
readonly FROM: 65024;
|
|
35
|
+
readonly TO: 65039;
|
|
36
|
+
};
|
|
3
37
|
readonly SPACE: " ";
|
|
4
38
|
readonly TAB: "\t";
|
|
5
39
|
readonly SOFT_TAB: " ";
|
|
@@ -6,9 +6,6 @@ export declare class UtilCharacterIterator {
|
|
|
6
6
|
init(target: string): void;
|
|
7
7
|
hasNext(): boolean;
|
|
8
8
|
protected findNextBreak(target: string, istart: number): number;
|
|
9
|
-
protected isHighSurrogate(code: number): boolean;
|
|
10
|
-
protected isLowSurrogate(code: number): boolean;
|
|
11
|
-
protected isVariationSelector(code: number): boolean;
|
|
12
9
|
next(): string;
|
|
13
10
|
/**
|
|
14
11
|
* Closes this iterator.
|
|
@@ -145,8 +145,12 @@ var EShapePointsMarkerBase = /** @class */ (function () {
|
|
|
145
145
|
this.onFillChange();
|
|
146
146
|
};
|
|
147
147
|
EShapePointsMarkerBase.prototype.copy = function (source) {
|
|
148
|
+
this.lock();
|
|
149
|
+
this.type = source.type;
|
|
148
150
|
var size = source.size;
|
|
149
|
-
this.set(
|
|
151
|
+
this.size.set(size.x, size.y);
|
|
152
|
+
this.fill.copy(source.fill);
|
|
153
|
+
this.unlock();
|
|
150
154
|
return this;
|
|
151
155
|
};
|
|
152
156
|
EShapePointsMarkerBase.prototype.set = function (type, sizeX, sizeY) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-points-marker-base.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points-marker-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IPoint, Matrix, ObservablePoint } from \"pixi.js\";\nimport { EShapeDefaults } from \"./e-shape-defaults\";\nimport { EShapeFill } from \"./e-shape-fill\";\nimport { EShapePointsFormatted } from \"./e-shape-points-formatted\";\nimport { EShapePointsMarker, EShapePointsMarkerSerizlized } from \"./e-shape-points-marker\";\nimport { EShapePointsMarkerType } from \"./e-shape-points-marker-type\";\nimport { EShapeResourceManagerDeserialization } from \"./e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeFillImpl } from \"./variant/e-shape-fill-impl\";\n\nexport interface EShapePointsMarkerBaseParentParent {\n\treadonly id: number;\n\treadonly formatted: EShapePointsFormatted;\n}\n\nexport interface EShapePointsMarkerBaseParent {\n\treadonly parent: EShapePointsMarkerBaseParentParent;\n\tonTypeChange(): void;\n\tonSizeChange(): void;\n\tonFillChange(): void;\n}\n\nexport abstract class EShapePointsMarkerBase implements EShapePointsMarker {\n\tprotected _parent: EShapePointsMarkerBaseParent;\n\tprotected _lockCount: number;\n\tprotected _isTypeChanged: boolean;\n\tprotected _isSizeChanged: boolean;\n\tprotected _isFillChanged: boolean;\n\tprotected _type: EShapePointsMarkerType;\n\tprotected _size: IPoint;\n\tprotected _transform?: Matrix;\n\tprotected _transformId: number;\n\tprotected _fill: EShapeFill;\n\n\tconstructor(parent: EShapePointsMarkerBaseParent) {\n\t\tthis._parent = parent;\n\t\tthis._lockCount = 0;\n\t\tthis._isTypeChanged = false;\n\t\tthis._isSizeChanged = false;\n\t\tthis._isFillChanged = false;\n\t\tthis._type = EShapePointsMarkerType.NONE;\n\t\tthis._size = new ObservablePoint(\n\t\t\t(): void => {\n\t\t\t\tthis.onSizeChange();\n\t\t\t},\n\t\t\tundefined,\n\t\t\tEShapeDefaults.SIZE_X * 0.15,\n\t\t\tEShapeDefaults.SIZE_Y * 0.15\n\t\t);\n\t\tthis._fill = this.newFill();\n\t\tthis._transformId = 0;\n\t}\n\n\tprotected newFill(): EShapeFill {\n\t\treturn new EShapeFillImpl(this, true, EShapeDefaults.FILL_COLOR, 1);\n\t}\n\n\tlock(): this {\n\t\tthis._lockCount += 1;\n\t\tif (this._lockCount === 1) {\n\t\t\tthis._isTypeChanged = false;\n\t\t\tthis._isSizeChanged = false;\n\t\t\tthis._isFillChanged = false;\n\t\t}\n\t\treturn this;\n\t}\n\n\tunlock(): this {\n\t\tthis._lockCount -= 1;\n\t\tif (this._lockCount === 0) {\n\t\t\tif (this._isTypeChanged) {\n\t\t\t\tthis.onTypeChange();\n\t\t\t} else if (this._isSizeChanged) {\n\t\t\t\tthis.onSizeChange();\n\t\t\t} else if (this._isFillChanged) {\n\t\t\t\tthis.onFillChange();\n\t\t\t}\n\t\t\tthis._isTypeChanged = false;\n\t\t\tthis._isSizeChanged = false;\n\t\t\tthis._isFillChanged = false;\n\t\t}\n\t\treturn this;\n\t}\n\n\tget type(): EShapePointsMarkerType {\n\t\treturn this._type;\n\t}\n\n\tset type(type: EShapePointsMarkerType) {\n\t\tif (this._type !== type) {\n\t\t\tthis._type = type;\n\t\t\tthis.onTypeChange();\n\t\t}\n\t}\n\n\tprotected onTypeChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isTypeChanged = true;\n\t\t\treturn;\n\t\t}\n\t\tthis._parent.onTypeChange();\n\t}\n\n\tget size(): IPoint {\n\t\treturn this._size;\n\t}\n\n\tprotected onSizeChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isSizeChanged = true;\n\t\t\treturn;\n\t\t}\n\t\tthis._parent.onSizeChange();\n\t}\n\n\tget transform(): Matrix {\n\t\treturn this.updateTransform();\n\t}\n\n\tprotected updateTransform(): Matrix {\n\t\tlet result = this._transform;\n\t\tif (result == null) {\n\t\t\tresult = new Matrix();\n\t\t\tthis._transform = result;\n\t\t}\n\t\tconst parentParent = this._parent.parent;\n\t\tconst id = parentParent.id;\n\t\tif (this._transformId !== id) {\n\t\t\tthis._transformId = id;\n\t\t\tconst formatted = parentParent.formatted;\n\t\t\tif (2 <= formatted.length) {\n\t\t\t\tthis.toTransform(formatted.values, result);\n\t\t\t} else {\n\t\t\t\tresult.identity();\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected abstract toTransform(values: number[], result: Matrix): Matrix;\n\n\tprotected toTransformMatrix(\n\t\tx0: number,\n\t\ty0: number,\n\t\tx1: number,\n\t\ty1: number,\n\t\tresult: Matrix\n\t): Matrix {\n\t\tconst dx = x0 - x1;\n\t\tconst dy = y0 - y1;\n\t\tconst n = dx * dx + dy * dy;\n\t\tif (0.00001 < n) {\n\t\t\tconst f = 1 / Math.sqrt(n);\n\t\t\tconst nx = dx * f;\n\t\t\tconst ny = dy * f;\n\t\t\tresult.set(ny, -nx, -nx, -ny, x0, y0);\n\t\t} else {\n\t\t\tresult.set(1, 0, 0, 1, x0, y0);\n\t\t}\n\t\treturn result;\n\t}\n\n\tget fill(): EShapeFill {\n\t\treturn this._fill;\n\t}\n\n\tprotected onFillChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isFillChanged = true;\n\t\t\treturn;\n\t\t}\n\t\tthis._parent.onFillChange();\n\t}\n\n\tupdateUploaded(): void {\n\t\tthis.onFillChange();\n\t}\n\n\tcopy(source: EShapePointsMarker): this {\n\t\tconst size = source.size;\n\t\tthis.set(source.type, size.x, size.y);\n\t\treturn this;\n\t}\n\n\tset(type?: EShapePointsMarkerType, sizeX?: number, sizeY?: number): this {\n\t\tthis.lock();\n\n\t\tif (type != null) {\n\t\t\tthis.type = type;\n\t\t}\n\n\t\tthis.size.set(sizeX, sizeY);\n\n\t\tthis.unlock();\n\t\treturn this;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst size = this._size;\n\t\tconst fillId = this._fill.serialize(manager);\n\t\treturn manager.addResource(`[${this._type},${size.x},${size.y},${fillId}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<EShapePointsMarkerSerizlized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as EShapePointsMarkerSerizlized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\t\t\tthis.lock();\n\t\t\tthis.type = parsed[0];\n\t\t\tthis._size.set(parsed[1], parsed[2]);\n\t\t\tthis._fill.deserialize(parsed[3], manager);\n\t\t\tthis.unlock();\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-points-marker-base.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points-marker-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IPoint, Matrix, ObservablePoint } from \"pixi.js\";\nimport { EShapeDefaults } from \"./e-shape-defaults\";\nimport { EShapeFill } from \"./e-shape-fill\";\nimport { EShapePointsFormatted } from \"./e-shape-points-formatted\";\nimport { EShapePointsMarker, EShapePointsMarkerSerizlized } from \"./e-shape-points-marker\";\nimport { EShapePointsMarkerType } from \"./e-shape-points-marker-type\";\nimport { EShapeResourceManagerDeserialization } from \"./e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeFillImpl } from \"./variant/e-shape-fill-impl\";\n\nexport interface EShapePointsMarkerBaseParentParent {\n\treadonly id: number;\n\treadonly formatted: EShapePointsFormatted;\n}\n\nexport interface EShapePointsMarkerBaseParent {\n\treadonly parent: EShapePointsMarkerBaseParentParent;\n\tonTypeChange(): void;\n\tonSizeChange(): void;\n\tonFillChange(): void;\n}\n\nexport abstract class EShapePointsMarkerBase implements EShapePointsMarker {\n\tprotected _parent: EShapePointsMarkerBaseParent;\n\tprotected _lockCount: number;\n\tprotected _isTypeChanged: boolean;\n\tprotected _isSizeChanged: boolean;\n\tprotected _isFillChanged: boolean;\n\tprotected _type: EShapePointsMarkerType;\n\tprotected _size: IPoint;\n\tprotected _transform?: Matrix;\n\tprotected _transformId: number;\n\tprotected _fill: EShapeFill;\n\n\tconstructor(parent: EShapePointsMarkerBaseParent) {\n\t\tthis._parent = parent;\n\t\tthis._lockCount = 0;\n\t\tthis._isTypeChanged = false;\n\t\tthis._isSizeChanged = false;\n\t\tthis._isFillChanged = false;\n\t\tthis._type = EShapePointsMarkerType.NONE;\n\t\tthis._size = new ObservablePoint(\n\t\t\t(): void => {\n\t\t\t\tthis.onSizeChange();\n\t\t\t},\n\t\t\tundefined,\n\t\t\tEShapeDefaults.SIZE_X * 0.15,\n\t\t\tEShapeDefaults.SIZE_Y * 0.15\n\t\t);\n\t\tthis._fill = this.newFill();\n\t\tthis._transformId = 0;\n\t}\n\n\tprotected newFill(): EShapeFill {\n\t\treturn new EShapeFillImpl(this, true, EShapeDefaults.FILL_COLOR, 1);\n\t}\n\n\tlock(): this {\n\t\tthis._lockCount += 1;\n\t\tif (this._lockCount === 1) {\n\t\t\tthis._isTypeChanged = false;\n\t\t\tthis._isSizeChanged = false;\n\t\t\tthis._isFillChanged = false;\n\t\t}\n\t\treturn this;\n\t}\n\n\tunlock(): this {\n\t\tthis._lockCount -= 1;\n\t\tif (this._lockCount === 0) {\n\t\t\tif (this._isTypeChanged) {\n\t\t\t\tthis.onTypeChange();\n\t\t\t} else if (this._isSizeChanged) {\n\t\t\t\tthis.onSizeChange();\n\t\t\t} else if (this._isFillChanged) {\n\t\t\t\tthis.onFillChange();\n\t\t\t}\n\t\t\tthis._isTypeChanged = false;\n\t\t\tthis._isSizeChanged = false;\n\t\t\tthis._isFillChanged = false;\n\t\t}\n\t\treturn this;\n\t}\n\n\tget type(): EShapePointsMarkerType {\n\t\treturn this._type;\n\t}\n\n\tset type(type: EShapePointsMarkerType) {\n\t\tif (this._type !== type) {\n\t\t\tthis._type = type;\n\t\t\tthis.onTypeChange();\n\t\t}\n\t}\n\n\tprotected onTypeChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isTypeChanged = true;\n\t\t\treturn;\n\t\t}\n\t\tthis._parent.onTypeChange();\n\t}\n\n\tget size(): IPoint {\n\t\treturn this._size;\n\t}\n\n\tprotected onSizeChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isSizeChanged = true;\n\t\t\treturn;\n\t\t}\n\t\tthis._parent.onSizeChange();\n\t}\n\n\tget transform(): Matrix {\n\t\treturn this.updateTransform();\n\t}\n\n\tprotected updateTransform(): Matrix {\n\t\tlet result = this._transform;\n\t\tif (result == null) {\n\t\t\tresult = new Matrix();\n\t\t\tthis._transform = result;\n\t\t}\n\t\tconst parentParent = this._parent.parent;\n\t\tconst id = parentParent.id;\n\t\tif (this._transformId !== id) {\n\t\t\tthis._transformId = id;\n\t\t\tconst formatted = parentParent.formatted;\n\t\t\tif (2 <= formatted.length) {\n\t\t\t\tthis.toTransform(formatted.values, result);\n\t\t\t} else {\n\t\t\t\tresult.identity();\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected abstract toTransform(values: number[], result: Matrix): Matrix;\n\n\tprotected toTransformMatrix(\n\t\tx0: number,\n\t\ty0: number,\n\t\tx1: number,\n\t\ty1: number,\n\t\tresult: Matrix\n\t): Matrix {\n\t\tconst dx = x0 - x1;\n\t\tconst dy = y0 - y1;\n\t\tconst n = dx * dx + dy * dy;\n\t\tif (0.00001 < n) {\n\t\t\tconst f = 1 / Math.sqrt(n);\n\t\t\tconst nx = dx * f;\n\t\t\tconst ny = dy * f;\n\t\t\tresult.set(ny, -nx, -nx, -ny, x0, y0);\n\t\t} else {\n\t\t\tresult.set(1, 0, 0, 1, x0, y0);\n\t\t}\n\t\treturn result;\n\t}\n\n\tget fill(): EShapeFill {\n\t\treturn this._fill;\n\t}\n\n\tprotected onFillChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isFillChanged = true;\n\t\t\treturn;\n\t\t}\n\t\tthis._parent.onFillChange();\n\t}\n\n\tupdateUploaded(): void {\n\t\tthis.onFillChange();\n\t}\n\n\tcopy(source: EShapePointsMarker): this {\n\t\tthis.lock();\n\t\tthis.type = source.type;\n\t\tconst size = source.size;\n\t\tthis.size.set(size.x, size.y);\n\t\tthis.fill.copy(source.fill);\n\t\tthis.unlock();\n\t\treturn this;\n\t}\n\n\tset(type?: EShapePointsMarkerType, sizeX?: number, sizeY?: number): this {\n\t\tthis.lock();\n\n\t\tif (type != null) {\n\t\t\tthis.type = type;\n\t\t}\n\n\t\tthis.size.set(sizeX, sizeY);\n\n\t\tthis.unlock();\n\t\treturn this;\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst size = this._size;\n\t\tconst fillId = this._fill.serialize(manager);\n\t\treturn manager.addResource(`[${this._type},${size.x},${size.y},${fillId}]`);\n\t}\n\n\tdeserialize(resourceId: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<EShapePointsMarkerSerizlized>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as EShapePointsMarkerSerizlized;\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\t\t\tthis.lock();\n\t\t\tthis.type = parsed[0];\n\t\t\tthis._size.set(parsed[1], parsed[2]);\n\t\t\tthis._fill.deserialize(parsed[3], manager);\n\t\t\tthis.unlock();\n\t\t}\n\t}\n}\n"]}
|
|
@@ -9,6 +9,7 @@ import { EShapeTextDirection } from "../e-shape-text-direction";
|
|
|
9
9
|
import { EShapeTextAlignImpl } from "./e-shape-text-align-impl";
|
|
10
10
|
import { EShapeTextOffsetImpl } from "./e-shape-text-offset-impl";
|
|
11
11
|
import { EShapeTextOutlineImpl } from "./e-shape-text-outline-impl";
|
|
12
|
+
import { Character } from "../../util/character";
|
|
12
13
|
var EShapeTextImpl = /** @class */ (function () {
|
|
13
14
|
function EShapeTextImpl(parent, value, color, alpha, family, size) {
|
|
14
15
|
this._parent = parent;
|
|
@@ -93,7 +94,9 @@ var EShapeTextImpl = /** @class */ (function () {
|
|
|
93
94
|
var nacharactersLength = nacharacters.length;
|
|
94
95
|
var inacharacters = 0;
|
|
95
96
|
for (var i = 0, imax = value.length; i < imax;) {
|
|
96
|
-
|
|
97
|
+
var icc = value.charCodeAt(i);
|
|
98
|
+
if ((Character.ASCII.LOW.FROM <= icc && icc <= Character.ASCII.LOW.TO) ||
|
|
99
|
+
(Character.ASCII.HIGH.FROM <= icc && icc <= Character.ASCII.HIGH.TO)) {
|
|
97
100
|
// Add an ASCII character
|
|
98
101
|
var ac = value.substring(i, i + 1);
|
|
99
102
|
if (icharacters < charactersLength) {
|
|
@@ -108,8 +111,9 @@ var EShapeTextImpl = /** @class */ (function () {
|
|
|
108
111
|
}
|
|
109
112
|
var j = i + 1;
|
|
110
113
|
for (; j < imax; ++j) {
|
|
111
|
-
var
|
|
112
|
-
if ((
|
|
114
|
+
var jcc = value.charCodeAt(j);
|
|
115
|
+
if ((Character.SURROGATE.LOW.FROM <= jcc && jcc <= Character.SURROGATE.LOW.TO) ||
|
|
116
|
+
(Character.VARIATION.FROM <= jcc && jcc <= Character.VARIATION.TO)) {
|
|
113
117
|
// Low surrogate
|
|
114
118
|
// Variation selector
|
|
115
119
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-text-impl.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-text-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DDiagramSerializedText } from \"../../d-diagram-serialized\";\nimport { DeepPartial } from \"../../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport {\n\tEShapeText,\n\tEShapeTextAtlas,\n\tEShapeTextLike,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlign } from \"../e-shape-text-align\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { EShapeTextOffset } from \"../e-shape-text-offset\";\nimport { EShapeTextOutline } from \"../e-shape-text-outline\";\nimport { EShapeTextAlignImpl } from \"./e-shape-text-align-impl\";\nimport { EShapeTextImplParent } from \"./e-shape-text-impl-parent\";\nimport { EShapeTextOffsetImpl } from \"./e-shape-text-offset-impl\";\nimport { EShapeTextOutlineImpl } from \"./e-shape-text-outline-impl\";\n\nexport class EShapeTextImpl implements EShapeText {\n\tprotected _parent: EShapeTextImplParent;\n\tprotected _enable: boolean;\n\tprotected _value: string;\n\tprotected _length: number;\n\tprotected _plength: number;\n\tprotected _family: string;\n\tprotected _color: number;\n\tprotected _alpha: number;\n\tprotected _size: number;\n\tprotected _weight: EShapeTextWeight;\n\treadonly align: EShapeTextAlign;\n\treadonly offset: EShapeTextOffset;\n\tprotected _style: EShapeTextStyle;\n\treadonly outline: EShapeTextOutline;\n\treadonly spacing: EShapeTextOffset;\n\tprotected _direction: EShapeTextDirection;\n\treadonly padding: EShapeTextOffset;\n\tprotected _clipping: boolean;\n\tprotected _fitting: boolean;\n\n\ttexture?: Texture; // Used for rendering and updated when rendered\n\tatlas?: EShapeTextAtlas; // Used for rendering and updated when rendered\n\tprotected _characters: string[];\n\tprotected _nacharacters: string[];\n\tworld?: number[]; // Updated when rendered\n\n\tconstructor(\n\t\tparent: EShapeTextImplParent,\n\t\tvalue: string,\n\t\tcolor: number,\n\t\talpha: number,\n\t\tfamily: string,\n\t\tsize: number\n\t) {\n\t\tthis._parent = parent;\n\t\tthis._enable = true;\n\t\tthis._value = value;\n\t\tthis._plength = this._length = value.length;\n\t\tthis._color = color;\n\t\tthis._alpha = alpha;\n\t\tthis._family = family;\n\t\tthis._size = size;\n\t\tthis._weight = EShapeTextWeight.NORMAL;\n\t\tthis.align = new EShapeTextAlignImpl(\n\t\t\tparent,\n\t\t\tEShapeTextAlignHorizontal.CENTER,\n\t\t\tEShapeTextAlignVertical.MIDDLE\n\t\t);\n\t\tthis.offset = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis._style = EShapeTextStyle.NORMAL;\n\t\tthis.spacing = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis.outline = new EShapeTextOutlineImpl(parent, false, 0xffffff, 1.0, 0.5);\n\t\tthis._direction = EShapeTextDirection.LEFT_TO_RIGHT;\n\t\tthis.padding = new EShapeTextOffsetImpl(parent, 10, 10);\n\t\tthis._clipping = false;\n\t\tthis._fitting = false;\n\t\tthis._characters = [];\n\t\tthis._nacharacters = [];\n\t\tthis.updateCharacters(value);\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._enable;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._enable !== enable) {\n\t\t\tthis._enable = enable;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget value(): string {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tthis.updateCharacters(value);\n\t\t\tif (this.isCompatible()) {\n\t\t\t\tthis._parent.updateUploaded();\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tthis._parent.toDirty();\n\t\t\t}\n\t\t}\n\t}\n\n\tget characters(): string[] {\n\t\treturn this._characters;\n\t}\n\n\tget nacharacters(): string[] {\n\t\treturn this._nacharacters;\n\t}\n\n\tprotected updateCharacters(value: string): void {\n\t\tconst characters = this._characters;\n\t\tconst charactersLength = characters.length;\n\t\tlet icharacters = 0;\n\t\tconst nacharacters = this._nacharacters;\n\t\tconst nacharactersLength = nacharacters.length;\n\t\tlet inacharacters = 0;\n\t\tfor (let i = 0, imax = value.length; i < imax; ) {\n\t\t\tif (value.charCodeAt(i) <= 0xff) {\n\t\t\t\t// Add an ASCII character\n\t\t\t\tconst ac = value.substring(i, i + 1);\n\t\t\t\tif (icharacters < charactersLength) {\n\t\t\t\t\tcharacters[icharacters] = ac;\n\t\t\t\t} else {\n\t\t\t\t\tcharacters.push(ac);\n\t\t\t\t}\n\t\t\t\ticharacters += 1;\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet j = i + 1;\n\t\t\tfor (; j < imax; ++j) {\n\t\t\t\tconst cc = value.charCodeAt(j);\n\t\t\t\tif ((0xdc00 <= cc && cc <= 0xdfff) || (0xfe00 <= cc && cc <= 0xfe0f)) {\n\t\t\t\t\t// Low surrogate\n\t\t\t\t\t// Variation selector\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// Add an non-ascii character\n\t\t\tconst nac = value.substring(i, j);\n\t\t\tif (icharacters < charactersLength) {\n\t\t\t\tcharacters[icharacters] = nac;\n\t\t\t} else {\n\t\t\t\tcharacters.push(nac);\n\t\t\t}\n\t\t\ticharacters += 1;\n\t\t\tif (inacharacters < nacharactersLength) {\n\t\t\t\tnacharacters[inacharacters] = nac;\n\t\t\t} else {\n\t\t\t\tnacharacters.push(nac);\n\t\t\t}\n\t\t\tinacharacters += 1;\n\t\t\t// Go to the next\n\t\t\ti = j;\n\t\t}\n\t\tif (icharacters < charactersLength) {\n\t\t\tcharacters.length = icharacters;\n\t\t}\n\t\tif (inacharacters < nacharactersLength) {\n\t\t\tnacharacters.length = inacharacters;\n\t\t}\n\t}\n\n\tprotected isCompatible(): boolean {\n\t\t// Compatibility check\n\t\tconst parent = this._parent;\n\t\tconst uploaded = parent.uploaded;\n\t\tif (uploaded == null || !uploaded.isCompatible(parent)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Character code check\n\t\tconst atlas = this.atlas;\n\t\tif (atlas == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst atlasCharacters = atlas.characters;\n\t\tconst nacharacters = this._nacharacters;\n\t\tfor (let i = 0, imax = nacharacters.length; i < imax; ++i) {\n\t\t\tif (!atlasCharacters.has(nacharacters[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\treturn true;\n\t}\n\n\tget length(): number {\n\t\treturn this._length;\n\t}\n\n\tget plength(): number {\n\t\treturn this._plength;\n\t}\n\n\tget family(): string {\n\t\treturn this._family;\n\t}\n\n\tset family(family: string) {\n\t\tif (this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tthis._parent.toDirty();\n\t\t}\n\t}\n\n\tget color(): number {\n\t\treturn this._color;\n\t}\n\n\tset color(color: number) {\n\t\tif (this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget alpha(): number {\n\t\treturn this._alpha;\n\t}\n\n\tset alpha(alpha: number) {\n\t\tif (this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\tset size(size: number) {\n\t\tif (this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget weight(): EShapeTextWeight {\n\t\treturn this._weight;\n\t}\n\n\tset weight(weight: EShapeTextWeight) {\n\t\tif (this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget style(): EShapeTextStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapeTextStyle) {\n\t\tif (this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget direction(): EShapeTextDirection {\n\t\treturn this._direction;\n\t}\n\n\tset direction(direction: EShapeTextDirection) {\n\t\tif (this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget clipping(): boolean {\n\t\treturn this._clipping;\n\t}\n\n\tset clipping(clipping: boolean) {\n\t\tif (this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget fitting(): boolean {\n\t\treturn this._fitting;\n\t}\n\n\tset fitting(fitting: boolean) {\n\t\tif (this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tcopy(target?: DeepPartial<EShapeTextLike>): this {\n\t\tif (target) {\n\t\t\tthis.set(\n\t\t\t\ttarget.value,\n\t\t\t\ttarget.color,\n\t\t\t\ttarget.alpha,\n\t\t\t\ttarget.family,\n\t\t\t\ttarget.size,\n\t\t\t\ttarget.weight,\n\t\t\t\ttarget.style,\n\t\t\t\ttarget.direction,\n\t\t\t\ttarget.clipping,\n\t\t\t\ttarget.fitting\n\t\t\t);\n\t\t\tthis.align.copy(target.align);\n\t\t\tthis.offset.copy(target.offset);\n\t\t\tthis.outline.copy(target.outline);\n\t\t\tthis.spacing.copy(target.spacing);\n\t\t\tthis.padding.copy(target.padding);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalue?: string,\n\t\tcolor?: number,\n\t\talpha?: number,\n\t\tfamily?: string,\n\t\tsize?: number,\n\t\tweight?: EShapeTextWeight,\n\t\tstyle?: EShapeTextStyle,\n\t\tdirection?: EShapeTextDirection,\n\t\tclipping?: boolean,\n\t\tfitting?: boolean\n\t): this {\n\t\tlet isChangedDirty = false;\n\t\tlet isChangedUploaded = false;\n\n\t\tif (value != null && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tthis.updateCharacters(value);\n\t\t\tif (this.isCompatible()) {\n\t\t\t\tisChangedUploaded = true;\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tisChangedDirty = true;\n\t\t\t}\n\t\t}\n\n\t\tif (color != null && this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (alpha != null && this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (family != null && this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tisChangedDirty = true;\n\t\t}\n\n\t\tif (size != null && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (weight != null && this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (style != null && this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (direction != null && this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (clipping != null && this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (fitting != null && this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (isChangedDirty) {\n\t\t\tthis._parent.toDirty();\n\t\t} else if (isChangedUploaded) {\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttoObject(): EShapeTextLike {\n\t\treturn {\n\t\t\tvalue: this._value,\n\t\t\tcolor: this._color,\n\t\t\talpha: this._alpha,\n\t\t\tfamily: this._family,\n\t\t\tsize: this._size,\n\t\t\tweight: this._weight,\n\t\t\talign: this.align.toObject(),\n\t\t\toffset: this.offset.toObject(),\n\t\t\tstyle: this._style,\n\t\t\toutline: this.outline.toObject(),\n\t\t\tdirection: this._direction,\n\t\t\tspacing: this.spacing.toObject(),\n\t\t\tpadding: this.padding.toObject(),\n\t\t\tclipping: this._clipping,\n\t\t\tfitting: this._fitting\n\t\t};\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst valueId = manager.addResource(this._value);\n\t\tconst familyId = manager.addResource(this._family);\n\t\tconst alignId = this.align.serialize(manager);\n\t\tconst offsetId = this.offset.serialize(manager);\n\t\tconst outlineId = this.outline.serialize(manager);\n\t\tconst spacingId = this.spacing.serialize(manager);\n\t\tconst paddingId = this.padding.serialize(manager);\n\t\tconst clipping = this._clipping ? 1 : 0;\n\t\tconst fitting = this._fitting ? 1 : 0;\n\t\tconst serialized =\n\t\t\t`[${valueId},${this._color},${this._alpha},${familyId},${this._size},` +\n\t\t\t`${this._weight},${alignId},${offsetId},${this._style},${outlineId},` +\n\t\t\t`${spacingId},${this._direction},${paddingId},${clipping},${fitting}]`;\n\t\treturn manager.addResource(serialized);\n\t}\n\n\tdeserialize(target: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= target && target < resources.length) {\n\t\t\tlet parsed = manager.getText(target);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[target]) as DDiagramSerializedText;\n\t\t\t\tmanager.setText(target, parsed);\n\t\t\t}\n\t\t\tthis.set(\n\t\t\t\tresources[parsed[0]] || \"\",\n\t\t\t\tparsed[1],\n\t\t\t\tparsed[2],\n\t\t\t\tresources[parsed[3]] || \"auto\",\n\t\t\t\tparsed[4],\n\t\t\t\tparsed[5],\n\t\t\t\tparsed[8],\n\t\t\t\tparsed[11],\n\t\t\t\t!!parsed[13],\n\t\t\t\t!!parsed[14]\n\t\t\t);\n\t\t\tthis.align.deserialize(parsed[6], manager);\n\t\t\tthis.offset.deserialize(parsed[7], manager);\n\t\t\tthis.outline.deserialize(parsed[9], manager);\n\t\t\tthis.spacing.deserialize(parsed[10], manager);\n\t\t\tthis.padding.deserialize(parsed[12], manager);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-text-impl.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-text-impl.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DDiagramSerializedText } from \"../../d-diagram-serialized\";\nimport { DeepPartial } from \"../../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport {\n\tEShapeText,\n\tEShapeTextAtlas,\n\tEShapeTextLike,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlign } from \"../e-shape-text-align\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { EShapeTextOffset } from \"../e-shape-text-offset\";\nimport { EShapeTextOutline } from \"../e-shape-text-outline\";\nimport { EShapeTextAlignImpl } from \"./e-shape-text-align-impl\";\nimport { EShapeTextImplParent } from \"./e-shape-text-impl-parent\";\nimport { EShapeTextOffsetImpl } from \"./e-shape-text-offset-impl\";\nimport { EShapeTextOutlineImpl } from \"./e-shape-text-outline-impl\";\nimport { Character } from \"../../util/character\";\n\nexport class EShapeTextImpl implements EShapeText {\n\tprotected _parent: EShapeTextImplParent;\n\tprotected _enable: boolean;\n\tprotected _value: string;\n\tprotected _length: number;\n\tprotected _plength: number;\n\tprotected _family: string;\n\tprotected _color: number;\n\tprotected _alpha: number;\n\tprotected _size: number;\n\tprotected _weight: EShapeTextWeight;\n\treadonly align: EShapeTextAlign;\n\treadonly offset: EShapeTextOffset;\n\tprotected _style: EShapeTextStyle;\n\treadonly outline: EShapeTextOutline;\n\treadonly spacing: EShapeTextOffset;\n\tprotected _direction: EShapeTextDirection;\n\treadonly padding: EShapeTextOffset;\n\tprotected _clipping: boolean;\n\tprotected _fitting: boolean;\n\n\ttexture?: Texture; // Used for rendering and updated when rendered\n\tatlas?: EShapeTextAtlas; // Used for rendering and updated when rendered\n\tprotected _characters: string[];\n\tprotected _nacharacters: string[];\n\tworld?: number[]; // Updated when rendered\n\n\tconstructor(\n\t\tparent: EShapeTextImplParent,\n\t\tvalue: string,\n\t\tcolor: number,\n\t\talpha: number,\n\t\tfamily: string,\n\t\tsize: number\n\t) {\n\t\tthis._parent = parent;\n\t\tthis._enable = true;\n\t\tthis._value = value;\n\t\tthis._plength = this._length = value.length;\n\t\tthis._color = color;\n\t\tthis._alpha = alpha;\n\t\tthis._family = family;\n\t\tthis._size = size;\n\t\tthis._weight = EShapeTextWeight.NORMAL;\n\t\tthis.align = new EShapeTextAlignImpl(\n\t\t\tparent,\n\t\t\tEShapeTextAlignHorizontal.CENTER,\n\t\t\tEShapeTextAlignVertical.MIDDLE\n\t\t);\n\t\tthis.offset = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis._style = EShapeTextStyle.NORMAL;\n\t\tthis.spacing = new EShapeTextOffsetImpl(parent, 0, 0);\n\t\tthis.outline = new EShapeTextOutlineImpl(parent, false, 0xffffff, 1.0, 0.5);\n\t\tthis._direction = EShapeTextDirection.LEFT_TO_RIGHT;\n\t\tthis.padding = new EShapeTextOffsetImpl(parent, 10, 10);\n\t\tthis._clipping = false;\n\t\tthis._fitting = false;\n\t\tthis._characters = [];\n\t\tthis._nacharacters = [];\n\t\tthis.updateCharacters(value);\n\t}\n\n\tget enable(): boolean {\n\t\treturn this._enable;\n\t}\n\n\tset enable(enable: boolean) {\n\t\tif (this._enable !== enable) {\n\t\t\tthis._enable = enable;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget value(): string {\n\t\treturn this._value;\n\t}\n\n\tset value(value: string) {\n\t\tif (this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tthis.updateCharacters(value);\n\t\t\tif (this.isCompatible()) {\n\t\t\t\tthis._parent.updateUploaded();\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tthis._parent.toDirty();\n\t\t\t}\n\t\t}\n\t}\n\n\tget characters(): string[] {\n\t\treturn this._characters;\n\t}\n\n\tget nacharacters(): string[] {\n\t\treturn this._nacharacters;\n\t}\n\n\tprotected updateCharacters(value: string): void {\n\t\tconst characters = this._characters;\n\t\tconst charactersLength = characters.length;\n\t\tlet icharacters = 0;\n\t\tconst nacharacters = this._nacharacters;\n\t\tconst nacharactersLength = nacharacters.length;\n\t\tlet inacharacters = 0;\n\t\tfor (let i = 0, imax = value.length; i < imax; ) {\n\t\t\tconst icc = value.charCodeAt(i);\n\t\t\tif (\n\t\t\t\t(Character.ASCII.LOW.FROM <= icc && icc <= Character.ASCII.LOW.TO) ||\n\t\t\t\t(Character.ASCII.HIGH.FROM <= icc && icc <= Character.ASCII.HIGH.TO)\n\t\t\t) {\n\t\t\t\t// Add an ASCII character\n\t\t\t\tconst ac = value.substring(i, i + 1);\n\t\t\t\tif (icharacters < charactersLength) {\n\t\t\t\t\tcharacters[icharacters] = ac;\n\t\t\t\t} else {\n\t\t\t\t\tcharacters.push(ac);\n\t\t\t\t}\n\t\t\t\ticharacters += 1;\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet j = i + 1;\n\t\t\tfor (; j < imax; ++j) {\n\t\t\t\tconst jcc = value.charCodeAt(j);\n\t\t\t\tif (\n\t\t\t\t\t(Character.SURROGATE.LOW.FROM <= jcc && jcc <= Character.SURROGATE.LOW.TO) ||\n\t\t\t\t\t(Character.VARIATION.FROM <= jcc && jcc <= Character.VARIATION.TO)\n\t\t\t\t) {\n\t\t\t\t\t// Low surrogate\n\t\t\t\t\t// Variation selector\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// Add an non-ascii character\n\t\t\tconst nac = value.substring(i, j);\n\t\t\tif (icharacters < charactersLength) {\n\t\t\t\tcharacters[icharacters] = nac;\n\t\t\t} else {\n\t\t\t\tcharacters.push(nac);\n\t\t\t}\n\t\t\ticharacters += 1;\n\t\t\tif (inacharacters < nacharactersLength) {\n\t\t\t\tnacharacters[inacharacters] = nac;\n\t\t\t} else {\n\t\t\t\tnacharacters.push(nac);\n\t\t\t}\n\t\t\tinacharacters += 1;\n\t\t\t// Go to the next\n\t\t\ti = j;\n\t\t}\n\t\tif (icharacters < charactersLength) {\n\t\t\tcharacters.length = icharacters;\n\t\t}\n\t\tif (inacharacters < nacharactersLength) {\n\t\t\tnacharacters.length = inacharacters;\n\t\t}\n\t}\n\n\tprotected isCompatible(): boolean {\n\t\t// Compatibility check\n\t\tconst parent = this._parent;\n\t\tconst uploaded = parent.uploaded;\n\t\tif (uploaded == null || !uploaded.isCompatible(parent)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Character code check\n\t\tconst atlas = this.atlas;\n\t\tif (atlas == null) {\n\t\t\treturn false;\n\t\t}\n\t\tconst atlasCharacters = atlas.characters;\n\t\tconst nacharacters = this._nacharacters;\n\t\tfor (let i = 0, imax = nacharacters.length; i < imax; ++i) {\n\t\t\tif (!atlasCharacters.has(nacharacters[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t// Done\n\t\treturn true;\n\t}\n\n\tget length(): number {\n\t\treturn this._length;\n\t}\n\n\tget plength(): number {\n\t\treturn this._plength;\n\t}\n\n\tget family(): string {\n\t\treturn this._family;\n\t}\n\n\tset family(family: string) {\n\t\tif (this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tthis._parent.toDirty();\n\t\t}\n\t}\n\n\tget color(): number {\n\t\treturn this._color;\n\t}\n\n\tset color(color: number) {\n\t\tif (this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget alpha(): number {\n\t\treturn this._alpha;\n\t}\n\n\tset alpha(alpha: number) {\n\t\tif (this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget size(): number {\n\t\treturn this._size;\n\t}\n\n\tset size(size: number) {\n\t\tif (this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget weight(): EShapeTextWeight {\n\t\treturn this._weight;\n\t}\n\n\tset weight(weight: EShapeTextWeight) {\n\t\tif (this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget style(): EShapeTextStyle {\n\t\treturn this._style;\n\t}\n\n\tset style(style: EShapeTextStyle) {\n\t\tif (this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget direction(): EShapeTextDirection {\n\t\treturn this._direction;\n\t}\n\n\tset direction(direction: EShapeTextDirection) {\n\t\tif (this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget clipping(): boolean {\n\t\treturn this._clipping;\n\t}\n\n\tset clipping(clipping: boolean) {\n\t\tif (this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tget fitting(): boolean {\n\t\treturn this._fitting;\n\t}\n\n\tset fitting(fitting: boolean) {\n\t\tif (this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\t}\n\n\tcopy(target?: DeepPartial<EShapeTextLike>): this {\n\t\tif (target) {\n\t\t\tthis.set(\n\t\t\t\ttarget.value,\n\t\t\t\ttarget.color,\n\t\t\t\ttarget.alpha,\n\t\t\t\ttarget.family,\n\t\t\t\ttarget.size,\n\t\t\t\ttarget.weight,\n\t\t\t\ttarget.style,\n\t\t\t\ttarget.direction,\n\t\t\t\ttarget.clipping,\n\t\t\t\ttarget.fitting\n\t\t\t);\n\t\t\tthis.align.copy(target.align);\n\t\t\tthis.offset.copy(target.offset);\n\t\t\tthis.outline.copy(target.outline);\n\t\t\tthis.spacing.copy(target.spacing);\n\t\t\tthis.padding.copy(target.padding);\n\t\t}\n\t\treturn this;\n\t}\n\n\tset(\n\t\tvalue?: string,\n\t\tcolor?: number,\n\t\talpha?: number,\n\t\tfamily?: string,\n\t\tsize?: number,\n\t\tweight?: EShapeTextWeight,\n\t\tstyle?: EShapeTextStyle,\n\t\tdirection?: EShapeTextDirection,\n\t\tclipping?: boolean,\n\t\tfitting?: boolean\n\t): this {\n\t\tlet isChangedDirty = false;\n\t\tlet isChangedUploaded = false;\n\n\t\tif (value != null && this._value !== value) {\n\t\t\tthis._value = value;\n\t\t\tconst length = value.length;\n\t\t\tthis._length = length;\n\t\t\tif (this._plength < length) {\n\t\t\t\tthis._plength = length;\n\t\t\t}\n\t\t\tthis.updateCharacters(value);\n\t\t\tif (this.isCompatible()) {\n\t\t\t\tisChangedUploaded = true;\n\t\t\t} else {\n\t\t\t\tthis.atlas = undefined;\n\t\t\t\tisChangedDirty = true;\n\t\t\t}\n\t\t}\n\n\t\tif (color != null && this._color !== color) {\n\t\t\tthis._color = color;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (alpha != null && this._alpha !== alpha) {\n\t\t\tthis._alpha = alpha;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (family != null && this._family !== family) {\n\t\t\tthis._family = family;\n\t\t\tisChangedDirty = true;\n\t\t}\n\n\t\tif (size != null && this._size !== size) {\n\t\t\tthis._size = size;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (weight != null && this._weight !== weight) {\n\t\t\tthis._weight = weight;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (style != null && this._style !== style) {\n\t\t\tthis._style = style;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (direction != null && this._direction !== direction) {\n\t\t\tthis._direction = direction;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (clipping != null && this._clipping !== clipping) {\n\t\t\tthis._clipping = clipping;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (fitting != null && this._fitting !== fitting) {\n\t\t\tthis._fitting = fitting;\n\t\t\tisChangedUploaded = true;\n\t\t}\n\n\t\tif (isChangedDirty) {\n\t\t\tthis._parent.toDirty();\n\t\t} else if (isChangedUploaded) {\n\t\t\tthis._parent.updateUploaded();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttoObject(): EShapeTextLike {\n\t\treturn {\n\t\t\tvalue: this._value,\n\t\t\tcolor: this._color,\n\t\t\talpha: this._alpha,\n\t\t\tfamily: this._family,\n\t\t\tsize: this._size,\n\t\t\tweight: this._weight,\n\t\t\talign: this.align.toObject(),\n\t\t\toffset: this.offset.toObject(),\n\t\t\tstyle: this._style,\n\t\t\toutline: this.outline.toObject(),\n\t\t\tdirection: this._direction,\n\t\t\tspacing: this.spacing.toObject(),\n\t\t\tpadding: this.padding.toObject(),\n\t\t\tclipping: this._clipping,\n\t\t\tfitting: this._fitting\n\t\t};\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst valueId = manager.addResource(this._value);\n\t\tconst familyId = manager.addResource(this._family);\n\t\tconst alignId = this.align.serialize(manager);\n\t\tconst offsetId = this.offset.serialize(manager);\n\t\tconst outlineId = this.outline.serialize(manager);\n\t\tconst spacingId = this.spacing.serialize(manager);\n\t\tconst paddingId = this.padding.serialize(manager);\n\t\tconst clipping = this._clipping ? 1 : 0;\n\t\tconst fitting = this._fitting ? 1 : 0;\n\t\tconst serialized =\n\t\t\t`[${valueId},${this._color},${this._alpha},${familyId},${this._size},` +\n\t\t\t`${this._weight},${alignId},${offsetId},${this._style},${outlineId},` +\n\t\t\t`${spacingId},${this._direction},${paddingId},${clipping},${fitting}]`;\n\t\treturn manager.addResource(serialized);\n\t}\n\n\tdeserialize(target: number, manager: EShapeResourceManagerDeserialization): void {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= target && target < resources.length) {\n\t\t\tlet parsed = manager.getText(target);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[target]) as DDiagramSerializedText;\n\t\t\t\tmanager.setText(target, parsed);\n\t\t\t}\n\t\t\tthis.set(\n\t\t\t\tresources[parsed[0]] || \"\",\n\t\t\t\tparsed[1],\n\t\t\t\tparsed[2],\n\t\t\t\tresources[parsed[3]] || \"auto\",\n\t\t\t\tparsed[4],\n\t\t\t\tparsed[5],\n\t\t\t\tparsed[8],\n\t\t\t\tparsed[11],\n\t\t\t\t!!parsed[13],\n\t\t\t\t!!parsed[14]\n\t\t\t);\n\t\t\tthis.align.deserialize(parsed[6], manager);\n\t\t\tthis.offset.deserialize(parsed[7], manager);\n\t\t\tthis.outline.deserialize(parsed[9], manager);\n\t\t\tthis.spacing.deserialize(parsed[10], manager);\n\t\t\tthis.padding.deserialize(parsed[12], manager);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -3,7 +3,41 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
export var Character = {
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* ASCII Character Ranges
|
|
8
|
+
* LOW: Printable ASCII (0x21-0x7E) - '!' to '~'
|
|
9
|
+
* HIGH: Extended ASCII (0xA1-0xFF) - '¡' to 'ÿ'
|
|
10
|
+
*/
|
|
11
|
+
ASCII: {
|
|
12
|
+
LOW: {
|
|
13
|
+
FROM: 0x21,
|
|
14
|
+
TO: 0x7e
|
|
15
|
+
},
|
|
16
|
+
HIGH: {
|
|
17
|
+
FROM: 0xa1,
|
|
18
|
+
TO: 0xff
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
/**
|
|
22
|
+
* Surrogate Pair Ranges
|
|
23
|
+
*/
|
|
24
|
+
SURROGATE: {
|
|
25
|
+
LOW: {
|
|
26
|
+
FROM: 0xdc00,
|
|
27
|
+
TO: 0xdfff
|
|
28
|
+
},
|
|
29
|
+
HIGH: {
|
|
30
|
+
FROM: 0xd800,
|
|
31
|
+
TO: 0xdbff
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* Variation Selector Range
|
|
36
|
+
*/
|
|
37
|
+
VARIATION: {
|
|
38
|
+
FROM: 0xfe00,
|
|
39
|
+
TO: 0xfe0f
|
|
40
|
+
},
|
|
7
41
|
SPACE: " ",
|
|
8
42
|
TAB: "\t",
|
|
9
43
|
SOFT_TAB: " ",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/character.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,IAAM,SAAS,GAAG;IACxB,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"character.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/character.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,IAAM,SAAS,GAAG;IACxB;;;;OAIG;IACH,KAAK,EAAE;QACN,GAAG,EAAE;YACJ,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,IAAI;SACR;QACD,IAAI,EAAE;YACL,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,IAAI;SACR;KACD;IACD;;OAEG;IACH,SAAS,EAAE;QACV,GAAG,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,MAAM;SACV;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,MAAM;SACV;KACD;IACD;;OAEG;IACH,SAAS,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,MAAM;KACV;IACD,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,IAAI;IACT,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,IAAI;CACL,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const Character = {\n\t/**\n\t * ASCII Character Ranges\n\t * LOW: Printable ASCII (0x21-0x7E) - '!' to '~'\n\t * HIGH: Extended ASCII (0xA1-0xFF) - '¡' to 'ÿ'\n\t */\n\tASCII: {\n\t\tLOW: {\n\t\t\tFROM: 0x21,\n\t\t\tTO: 0x7e\n\t\t},\n\t\tHIGH: {\n\t\t\tFROM: 0xa1,\n\t\t\tTO: 0xff\n\t\t}\n\t},\n\t/**\n\t * Surrogate Pair Ranges\n\t */\n\tSURROGATE: {\n\t\tLOW: {\n\t\t\tFROM: 0xdc00,\n\t\t\tTO: 0xdfff\n\t\t},\n\t\tHIGH: {\n\t\t\tFROM: 0xd800,\n\t\t\tTO: 0xdbff\n\t\t}\n\t},\n\t/**\n\t * Variation Selector Range\n\t */\n\tVARIATION: {\n\t\tFROM: 0xfe00,\n\t\tTO: 0xfe0f\n\t},\n\tSPACE: \" \",\n\tTAB: \"\\t\",\n\tSOFT_TAB: \" \",\n\tDOTS: \"...\",\n\tNEW_LINE: \"\\n\"\n} as const;\n"]}
|
|
@@ -29,8 +29,12 @@ var DynamicFontAtlas = /** @class */ (function () {
|
|
|
29
29
|
characters.set(Character.SPACE, this.newChar(Character.SPACE, DynamicFontAtlasCharacterType.SPACE_R));
|
|
30
30
|
characters.set(Character.TAB, this.newChar(Character.SOFT_TAB, DynamicFontAtlasCharacterType.SPACE_R));
|
|
31
31
|
characters.set(Character.DOTS, this.newChar(Character.DOTS, DynamicFontAtlasCharacterType.LETTER_RNB));
|
|
32
|
-
for (var i =
|
|
33
|
-
var ac =
|
|
32
|
+
for (var i = Character.ASCII.LOW.FROM; i <= Character.ASCII.LOW.TO; ++i) {
|
|
33
|
+
var ac = String.fromCodePoint(i);
|
|
34
|
+
characters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));
|
|
35
|
+
}
|
|
36
|
+
for (var i = Character.ASCII.HIGH.FROM; i <= Character.ASCII.HIGH.TO; ++i) {
|
|
37
|
+
var ac = String.fromCodePoint(i);
|
|
34
38
|
characters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));
|
|
35
39
|
}
|
|
36
40
|
this._characters = characters;
|
|
@@ -101,15 +105,18 @@ var DynamicFontAtlas = /** @class */ (function () {
|
|
|
101
105
|
var cs = this._characters;
|
|
102
106
|
var cds = this._createds;
|
|
103
107
|
for (var i = 0, imax = characters.length; i < imax;) {
|
|
104
|
-
|
|
108
|
+
var icc = characters.charCodeAt(i);
|
|
109
|
+
if ((Character.ASCII.LOW.FROM <= icc && icc <= Character.ASCII.LOW.TO) ||
|
|
110
|
+
(Character.ASCII.HIGH.FROM <= icc && icc <= Character.ASCII.HIGH.TO)) {
|
|
105
111
|
// Ignore ASCII characters
|
|
106
112
|
i += 1;
|
|
107
113
|
continue;
|
|
108
114
|
}
|
|
109
115
|
var j = i + 1;
|
|
110
116
|
for (; j < imax; ++j) {
|
|
111
|
-
var
|
|
112
|
-
if ((
|
|
117
|
+
var jcc = characters.charCodeAt(j);
|
|
118
|
+
if ((Character.SURROGATE.LOW.FROM <= jcc && jcc <= Character.SURROGATE.LOW.TO) ||
|
|
119
|
+
(Character.VARIATION.FROM <= jcc && jcc <= Character.VARIATION.TO)) {
|
|
113
120
|
// Low surrogate
|
|
114
121
|
// Variation selector
|
|
115
122
|
continue;
|
|
@@ -147,15 +154,18 @@ var DynamicFontAtlas = /** @class */ (function () {
|
|
|
147
154
|
DynamicFontAtlas.prototype.remove = function (characters) {
|
|
148
155
|
var cs = this._characters;
|
|
149
156
|
for (var i = 0, imax = characters.length; i < imax;) {
|
|
150
|
-
|
|
157
|
+
var icc = characters.charCodeAt(i);
|
|
158
|
+
if ((Character.ASCII.LOW.FROM <= icc && icc <= Character.ASCII.LOW.TO) ||
|
|
159
|
+
(Character.ASCII.HIGH.FROM <= icc && icc <= Character.ASCII.HIGH.TO)) {
|
|
151
160
|
// Ignore ASCII characters
|
|
152
161
|
i += 1;
|
|
153
162
|
continue;
|
|
154
163
|
}
|
|
155
164
|
var j = i + 1;
|
|
156
165
|
for (; j < imax; ++j) {
|
|
157
|
-
var
|
|
158
|
-
if ((
|
|
166
|
+
var jcc = characters.charCodeAt(j);
|
|
167
|
+
if ((Character.SURROGATE.LOW.FROM <= jcc && jcc <= Character.SURROGATE.LOW.TO) ||
|
|
168
|
+
(Character.VARIATION.FROM <= jcc && jcc <= Character.VARIATION.TO)) {
|
|
159
169
|
// Low surrogate
|
|
160
170
|
// Variation selector
|
|
161
171
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-font-atlas.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-font-atlas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MIPMAP_MODES, SCALE_MODES, Texture } from \"pixi.js\";\nimport { Character } from \"./character\";\nimport { DynamicFontAtlasCharacter } from \"./dynamic-font-atlas-character\";\nimport { DynamicFontAtlasCharacterType } from \"./dynamic-font-atlas-character-type\";\nimport { DynamicFontAtlasCharacters } from \"./dynamic-font-atlas-characters\";\nimport { DynamicFontAtlasFont } from \"./dynamic-font-atlas-font\";\nimport { UtilFont } from \"./util-font\";\n\nexport class DynamicFontAtlas {\n\tprotected _id: string;\n\tprotected _canvas: HTMLCanvasElement | null;\n\tprotected _context: CanvasRenderingContext2D | null;\n\tprotected _font: DynamicFontAtlasFont;\n\tprotected _characters: DynamicFontAtlasCharacters;\n\tprotected _createds: DynamicFontAtlasCharacters;\n\tprotected _unrefCount: number;\n\tprotected _width: number;\n\tprotected _height: number;\n\tprotected _revision: number;\n\tprotected _revisionUpdated: number;\n\tprotected _texture: Texture;\n\tprotected _padding: number;\n\n\tconstructor(fontId: string, fontSize: number, fontColor: number, resolution: number) {\n\t\tthis._id = fontId;\n\t\tthis._canvas = document.createElement(\"canvas\");\n\t\tthis._context = null;\n\t\tconst padding = this.toPadding(fontSize);\n\t\tthis._padding = padding;\n\t\tthis._font = new DynamicFontAtlasFont(fontId, fontSize, fontColor, padding);\n\t\tthis._unrefCount = 0;\n\t\tthis._width = 1;\n\t\tthis._height = 1;\n\t\tthis._revisionUpdated = 0;\n\t\tthis._texture = Texture.from(this._canvas, {\n\t\t\tmipmap: MIPMAP_MODES.OFF,\n\t\t\tresolution,\n\t\t\tscaleMode: SCALE_MODES.NEAREST\n\t\t});\n\n\t\tconst characters = new Map<string, DynamicFontAtlasCharacter>();\n\t\tcharacters.set(\n\t\t\tCharacter.SPACE,\n\t\t\tthis.newChar(Character.SPACE, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.TAB,\n\t\t\tthis.newChar(Character.SOFT_TAB, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.DOTS,\n\t\t\tthis.newChar(Character.DOTS, DynamicFontAtlasCharacterType.LETTER_RNB)\n\t\t);\n\t\tfor (let i = 0, imax = Character.ASCII.length; i < imax; ++i) {\n\t\t\tconst ac = Character.ASCII[i];\n\t\t\tcharacters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));\n\t\t}\n\t\tthis._characters = characters;\n\t\tthis._createds = new Map<string, DynamicFontAtlasCharacter>();\n\t\tthis._revision = 1;\n\t}\n\n\tprotected toPadding(fontSize: number): number {\n\t\treturn Math.max(3, Math.ceil(fontSize * 0.2));\n\t}\n\n\tget id(): string {\n\t\treturn this._id;\n\t}\n\n\tget font(): DynamicFontAtlasFont {\n\t\treturn this._font;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tget height(): number {\n\t\treturn this._height;\n\t}\n\n\tget canvas(): HTMLCanvasElement | null {\n\t\treturn this._canvas;\n\t}\n\n\tget characters(): DynamicFontAtlasCharacters {\n\t\treturn this._characters;\n\t}\n\n\tget texture(): Texture {\n\t\treturn this._texture;\n\t}\n\n\tprotected newChar(\n\t\tcharacter: string,\n\t\ttype: DynamicFontAtlasCharacterType\n\t): DynamicFontAtlasCharacter {\n\t\tconst advance = this.getAdvance(character);\n\t\tconst padding = this._padding;\n\t\tconst width = Math.ceil(padding + advance + padding);\n\t\tconst height = this.font.height;\n\t\treturn new DynamicFontAtlasCharacter(\n\t\t\ttype,\n\t\t\tcharacter,\n\t\t\t-width, // Setting X and Y to zeros leads to render the character at the UV coordinate (0, 0).\n\t\t\t-height,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tadvance\n\t\t);\n\t}\n\n\tadd(characters: string, type: DynamicFontAtlasCharacterType): void {\n\t\tconst cs = this._characters;\n\t\tconst cds = this._createds;\n\t\tfor (let i = 0, imax = characters.length; i < imax; ) {\n\t\t\tif (characters.charCodeAt(i) <= 0xff) {\n\t\t\t\t// Ignore ASCII characters\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet j = i + 1;\n\t\t\tfor (; j < imax; ++j) {\n\t\t\t\tconst cc = characters.charCodeAt(j);\n\t\t\t\tif ((0xdc00 <= cc && cc <= 0xdfff) || (0xfe00 <= cc && cc <= 0xfe0f)) {\n\t\t\t\t\t// Low surrogate\n\t\t\t\t\t// Variation selector\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// Increment the reference count or create a new one\n\t\t\tconst nac = characters.substring(i, j);\n\t\t\tconst c = cs.get(nac);\n\t\t\tif (c != null) {\n\t\t\t\tif (!(c.type & DynamicFontAtlasCharacterType.RESERVED)) {\n\t\t\t\t\tif (c.ref === 0) {\n\t\t\t\t\t\tthis._unrefCount -= 1;\n\t\t\t\t\t}\n\t\t\t\t\tc.ref += 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst cd = cds.get(nac);\n\t\t\t\tif (cd != null) {\n\t\t\t\t\tcd.ref = 1;\n\t\t\t\t\tcs.set(nac, cd);\n\t\t\t\t} else {\n\t\t\t\t\tconst newCharacter = this.newChar(nac, type);\n\t\t\t\t\tcs.set(nac, newCharacter);\n\t\t\t\t\tcds.set(nac, newCharacter);\n\t\t\t\t}\n\t\t\t\tthis._revision += 1;\n\t\t\t}\n\t\t\t// Go to the next\n\t\t\ti = j;\n\t\t}\n\t}\n\n\tremove(characters: string): void {\n\t\tconst cs = this._characters;\n\t\tfor (let i = 0, imax = characters.length; i < imax; ) {\n\t\t\tif (characters.charCodeAt(i) <= 0xff) {\n\t\t\t\t// Ignore ASCII characters\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet j = i + 1;\n\t\t\tfor (; j < imax; ++j) {\n\t\t\t\tconst cc = characters.charCodeAt(j);\n\t\t\t\tif ((0xdc00 <= cc && cc <= 0xdfff) || (0xfe00 <= cc && cc <= 0xfe0f)) {\n\t\t\t\t\t// Low surrogate\n\t\t\t\t\t// Variation selector\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// Decrement the reference count\n\t\t\tconst nac = characters.substring(i, j);\n\t\t\tconst c = cs.get(nac);\n\t\t\tif (c != null && 0 < c.ref && !(c.type & DynamicFontAtlasCharacterType.RESERVED)) {\n\t\t\t\tc.ref -= 1;\n\t\t\t\tif (c.ref === 0) {\n\t\t\t\t\tthis._unrefCount += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Go to the next\n\t\t\ti = j;\n\t\t}\n\t}\n\n\tprotected cleanup(): void {\n\t\tconst characters = this._characters;\n\t\tif (characters.size >> 1 <= this._unrefCount) {\n\t\t\tcharacters.forEach((char, id) => {\n\t\t\t\tif (char.ref <= 0) {\n\t\t\t\t\tcharacters.delete(id);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis._revision += 1;\n\t\t\tthis._unrefCount = 0;\n\t\t}\n\t}\n\n\tget(id: string): DynamicFontAtlasCharacter | undefined {\n\t\treturn this._characters.get(id);\n\t}\n\n\tgetAdvance(target: string): number {\n\t\tconst context = this.getContext();\n\t\tif (context != null) {\n\t\t\treturn context.measureText(target).width;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tgetContext(): CanvasRenderingContext2D | null {\n\t\tlet context = this._context;\n\t\tif (context == null) {\n\t\t\tconst canvas = this._canvas;\n\t\t\tif (canvas != null) {\n\t\t\t\tcontext = this._context = canvas.getContext(\"2d\", { alpha: true });\n\t\t\t\tif (context == null) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tconst font = this._font;\n\t\tif (context.font !== font.id) {\n\t\t\tcontext.font = font.id;\n\t\t\tfont.id = context.font;\n\t\t\tcontext.textAlign = \"left\";\n\t\t\tcontext.textBaseline = \"alphabetic\";\n\t\t\tcontext.lineWidth = 0;\n\t\t\tcontext.lineCap = \"round\";\n\t\t\tcontext.lineJoin = \"miter\";\n\t\t\tcontext.miterLimit = 10;\n\t\t\tcontext.fillStyle = font.color;\n\t\t\tcontext.strokeStyle = \"#0000ff\";\n\t\t}\n\t\treturn context;\n\t}\n\n\tupdate(): boolean {\n\t\tthis.cleanup();\n\n\t\tif (this._revisionUpdated < this._revision) {\n\t\t\tthis._revisionUpdated = this._revision;\n\n\t\t\tconst canvas = this._canvas;\n\t\t\tif (canvas != null) {\n\t\t\t\tconst font = this._font;\n\t\t\t\tconst fontHeight = font.height;\n\t\t\t\tconst characters = this._characters;\n\t\t\t\tconst width = (this._width = this.toPowerOf2(\n\t\t\t\t\tMath.ceil(Math.sqrt(characters.size)) * fontHeight\n\t\t\t\t));\n\n\t\t\t\tconst offsetX = this._padding;\n\t\t\t\tlet x = 0;\n\t\t\t\tlet y = 0;\n\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\tif (width <= x + character.width) {\n\t\t\t\t\t\tx = 0;\n\t\t\t\t\t\ty += fontHeight;\n\t\t\t\t\t}\n\n\t\t\t\t\tcharacter.x = x;\n\t\t\t\t\tcharacter.y = y;\n\t\t\t\t\tcharacter.origin.x = x + offsetX;\n\n\t\t\t\t\tx += character.width;\n\t\t\t\t});\n\t\t\t\tconst height = (this._height = y + fontHeight);\n\n\t\t\t\t// Make an input canvas\n\t\t\t\t// Here, we need to reset the context because\n\t\t\t\t// context settings will be lost when we set the width/height.\n\t\t\t\tconst baseTexture = this._texture.baseTexture;\n\t\t\t\tconst resolution = baseTexture.resolution;\n\t\t\t\tconst realWidth = Math.ceil(width * resolution);\n\t\t\t\tconst realHeight = Math.ceil(height * resolution);\n\t\t\t\tcanvas.width = realWidth;\n\t\t\t\tcanvas.height = realHeight;\n\t\t\t\tconst context = this.getContext();\n\t\t\t\tif (context != null) {\n\t\t\t\t\tUtilFont.measure(context, font);\n\t\t\t\t\tconst offsetY = Math.round(\n\t\t\t\t\t\t(fontHeight - (font.ascent + font.descent)) * 0.5 + font.ascent\n\t\t\t\t\t);\n\t\t\t\t\tcontext.save();\n\t\t\t\t\tcontext.scale(resolution, resolution);\n\t\t\t\t\tcontext.clearRect(0, 0, width, height);\n\t\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\t\tcharacter.origin.y = character.y + offsetY;\n\t\t\t\t\t\tcontext.fillText(\n\t\t\t\t\t\t\tcharacter.character,\n\t\t\t\t\t\t\tcharacter.origin.x,\n\t\t\t\t\t\t\tcharacter.origin.y\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tcontext.restore();\n\t\t\t\t}\n\t\t\t\tbaseTexture.setRealSize(realWidth, realHeight);\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tgetRevision(): number {\n\t\treturn this._revision;\n\t}\n\n\tgetRevisionUpdate(): number {\n\t\treturn this._revisionUpdated;\n\t}\n\n\tget length(): number {\n\t\treturn this._characters.size;\n\t}\n\n\tdestroy(): void {\n\t\tconst canvas = this._canvas;\n\t\tif (canvas != null) {\n\t\t\tthis._canvas = null;\n\t\t}\n\t\tthis._characters.clear();\n\t\tthis._createds.clear();\n\t\tthis._unrefCount = 0;\n\t}\n\n\ttoPowerOf2(size: number): number {\n\t\tlet result = 32;\n\t\twhile (result < size) {\n\t\t\tresult <<= 1;\n\t\t}\n\t\treturn result;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dynamic-font-atlas.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-font-atlas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MIPMAP_MODES, SCALE_MODES, Texture } from \"pixi.js\";\nimport { Character } from \"./character\";\nimport { DynamicFontAtlasCharacter } from \"./dynamic-font-atlas-character\";\nimport { DynamicFontAtlasCharacterType } from \"./dynamic-font-atlas-character-type\";\nimport { DynamicFontAtlasCharacters } from \"./dynamic-font-atlas-characters\";\nimport { DynamicFontAtlasFont } from \"./dynamic-font-atlas-font\";\nimport { UtilFont } from \"./util-font\";\n\nexport class DynamicFontAtlas {\n\tprotected _id: string;\n\tprotected _canvas: HTMLCanvasElement | null;\n\tprotected _context: CanvasRenderingContext2D | null;\n\tprotected _font: DynamicFontAtlasFont;\n\tprotected _characters: DynamicFontAtlasCharacters;\n\tprotected _createds: DynamicFontAtlasCharacters;\n\tprotected _unrefCount: number;\n\tprotected _width: number;\n\tprotected _height: number;\n\tprotected _revision: number;\n\tprotected _revisionUpdated: number;\n\tprotected _texture: Texture;\n\tprotected _padding: number;\n\n\tconstructor(fontId: string, fontSize: number, fontColor: number, resolution: number) {\n\t\tthis._id = fontId;\n\t\tthis._canvas = document.createElement(\"canvas\");\n\t\tthis._context = null;\n\t\tconst padding = this.toPadding(fontSize);\n\t\tthis._padding = padding;\n\t\tthis._font = new DynamicFontAtlasFont(fontId, fontSize, fontColor, padding);\n\t\tthis._unrefCount = 0;\n\t\tthis._width = 1;\n\t\tthis._height = 1;\n\t\tthis._revisionUpdated = 0;\n\t\tthis._texture = Texture.from(this._canvas, {\n\t\t\tmipmap: MIPMAP_MODES.OFF,\n\t\t\tresolution,\n\t\t\tscaleMode: SCALE_MODES.NEAREST\n\t\t});\n\n\t\tconst characters = new Map<string, DynamicFontAtlasCharacter>();\n\t\tcharacters.set(\n\t\t\tCharacter.SPACE,\n\t\t\tthis.newChar(Character.SPACE, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.TAB,\n\t\t\tthis.newChar(Character.SOFT_TAB, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.DOTS,\n\t\t\tthis.newChar(Character.DOTS, DynamicFontAtlasCharacterType.LETTER_RNB)\n\t\t);\n\t\tfor (let i = Character.ASCII.LOW.FROM; i <= Character.ASCII.LOW.TO; ++i) {\n\t\t\tconst ac = String.fromCodePoint(i);\n\t\t\tcharacters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));\n\t\t}\n\t\tfor (let i = Character.ASCII.HIGH.FROM; i <= Character.ASCII.HIGH.TO; ++i) {\n\t\t\tconst ac = String.fromCodePoint(i);\n\t\t\tcharacters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));\n\t\t}\n\t\tthis._characters = characters;\n\t\tthis._createds = new Map<string, DynamicFontAtlasCharacter>();\n\t\tthis._revision = 1;\n\t}\n\n\tprotected toPadding(fontSize: number): number {\n\t\treturn Math.max(3, Math.ceil(fontSize * 0.2));\n\t}\n\n\tget id(): string {\n\t\treturn this._id;\n\t}\n\n\tget font(): DynamicFontAtlasFont {\n\t\treturn this._font;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tget height(): number {\n\t\treturn this._height;\n\t}\n\n\tget canvas(): HTMLCanvasElement | null {\n\t\treturn this._canvas;\n\t}\n\n\tget characters(): DynamicFontAtlasCharacters {\n\t\treturn this._characters;\n\t}\n\n\tget texture(): Texture {\n\t\treturn this._texture;\n\t}\n\n\tprotected newChar(\n\t\tcharacter: string,\n\t\ttype: DynamicFontAtlasCharacterType\n\t): DynamicFontAtlasCharacter {\n\t\tconst advance = this.getAdvance(character);\n\t\tconst padding = this._padding;\n\t\tconst width = Math.ceil(padding + advance + padding);\n\t\tconst height = this.font.height;\n\t\treturn new DynamicFontAtlasCharacter(\n\t\t\ttype,\n\t\t\tcharacter,\n\t\t\t-width, // Setting X and Y to zeros leads to render the character at the UV coordinate (0, 0).\n\t\t\t-height,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tadvance\n\t\t);\n\t}\n\n\tadd(characters: string, type: DynamicFontAtlasCharacterType): void {\n\t\tconst cs = this._characters;\n\t\tconst cds = this._createds;\n\t\tfor (let i = 0, imax = characters.length; i < imax; ) {\n\t\t\tconst icc = characters.charCodeAt(i);\n\t\t\tif (\n\t\t\t\t(Character.ASCII.LOW.FROM <= icc && icc <= Character.ASCII.LOW.TO) ||\n\t\t\t\t(Character.ASCII.HIGH.FROM <= icc && icc <= Character.ASCII.HIGH.TO)\n\t\t\t) {\n\t\t\t\t// Ignore ASCII characters\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet j = i + 1;\n\t\t\tfor (; j < imax; ++j) {\n\t\t\t\tconst jcc = characters.charCodeAt(j);\n\t\t\t\tif (\n\t\t\t\t\t(Character.SURROGATE.LOW.FROM <= jcc && jcc <= Character.SURROGATE.LOW.TO) ||\n\t\t\t\t\t(Character.VARIATION.FROM <= jcc && jcc <= Character.VARIATION.TO)\n\t\t\t\t) {\n\t\t\t\t\t// Low surrogate\n\t\t\t\t\t// Variation selector\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// Increment the reference count or create a new one\n\t\t\tconst nac = characters.substring(i, j);\n\t\t\tconst c = cs.get(nac);\n\t\t\tif (c != null) {\n\t\t\t\tif (!(c.type & DynamicFontAtlasCharacterType.RESERVED)) {\n\t\t\t\t\tif (c.ref === 0) {\n\t\t\t\t\t\tthis._unrefCount -= 1;\n\t\t\t\t\t}\n\t\t\t\t\tc.ref += 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst cd = cds.get(nac);\n\t\t\t\tif (cd != null) {\n\t\t\t\t\tcd.ref = 1;\n\t\t\t\t\tcs.set(nac, cd);\n\t\t\t\t} else {\n\t\t\t\t\tconst newCharacter = this.newChar(nac, type);\n\t\t\t\t\tcs.set(nac, newCharacter);\n\t\t\t\t\tcds.set(nac, newCharacter);\n\t\t\t\t}\n\t\t\t\tthis._revision += 1;\n\t\t\t}\n\t\t\t// Go to the next\n\t\t\ti = j;\n\t\t}\n\t}\n\n\tremove(characters: string): void {\n\t\tconst cs = this._characters;\n\t\tfor (let i = 0, imax = characters.length; i < imax; ) {\n\t\t\tconst icc = characters.charCodeAt(i);\n\t\t\tif (\n\t\t\t\t(Character.ASCII.LOW.FROM <= icc && icc <= Character.ASCII.LOW.TO) ||\n\t\t\t\t(Character.ASCII.HIGH.FROM <= icc && icc <= Character.ASCII.HIGH.TO)\n\t\t\t) {\n\t\t\t\t// Ignore ASCII characters\n\t\t\t\ti += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet j = i + 1;\n\t\t\tfor (; j < imax; ++j) {\n\t\t\t\tconst jcc = characters.charCodeAt(j);\n\t\t\t\tif (\n\t\t\t\t\t(Character.SURROGATE.LOW.FROM <= jcc && jcc <= Character.SURROGATE.LOW.TO) ||\n\t\t\t\t\t(Character.VARIATION.FROM <= jcc && jcc <= Character.VARIATION.TO)\n\t\t\t\t) {\n\t\t\t\t\t// Low surrogate\n\t\t\t\t\t// Variation selector\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t// Decrement the reference count\n\t\t\tconst nac = characters.substring(i, j);\n\t\t\tconst c = cs.get(nac);\n\t\t\tif (c != null && 0 < c.ref && !(c.type & DynamicFontAtlasCharacterType.RESERVED)) {\n\t\t\t\tc.ref -= 1;\n\t\t\t\tif (c.ref === 0) {\n\t\t\t\t\tthis._unrefCount += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Go to the next\n\t\t\ti = j;\n\t\t}\n\t}\n\n\tprotected cleanup(): void {\n\t\tconst characters = this._characters;\n\t\tif (characters.size >> 1 <= this._unrefCount) {\n\t\t\tcharacters.forEach((char, id) => {\n\t\t\t\tif (char.ref <= 0) {\n\t\t\t\t\tcharacters.delete(id);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis._revision += 1;\n\t\t\tthis._unrefCount = 0;\n\t\t}\n\t}\n\n\tget(id: string): DynamicFontAtlasCharacter | undefined {\n\t\treturn this._characters.get(id);\n\t}\n\n\tgetAdvance(target: string): number {\n\t\tconst context = this.getContext();\n\t\tif (context != null) {\n\t\t\treturn context.measureText(target).width;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tgetContext(): CanvasRenderingContext2D | null {\n\t\tlet context = this._context;\n\t\tif (context == null) {\n\t\t\tconst canvas = this._canvas;\n\t\t\tif (canvas != null) {\n\t\t\t\tcontext = this._context = canvas.getContext(\"2d\", { alpha: true });\n\t\t\t\tif (context == null) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tconst font = this._font;\n\t\tif (context.font !== font.id) {\n\t\t\tcontext.font = font.id;\n\t\t\tfont.id = context.font;\n\t\t\tcontext.textAlign = \"left\";\n\t\t\tcontext.textBaseline = \"alphabetic\";\n\t\t\tcontext.lineWidth = 0;\n\t\t\tcontext.lineCap = \"round\";\n\t\t\tcontext.lineJoin = \"miter\";\n\t\t\tcontext.miterLimit = 10;\n\t\t\tcontext.fillStyle = font.color;\n\t\t\tcontext.strokeStyle = \"#0000ff\";\n\t\t}\n\t\treturn context;\n\t}\n\n\tupdate(): boolean {\n\t\tthis.cleanup();\n\n\t\tif (this._revisionUpdated < this._revision) {\n\t\t\tthis._revisionUpdated = this._revision;\n\n\t\t\tconst canvas = this._canvas;\n\t\t\tif (canvas != null) {\n\t\t\t\tconst font = this._font;\n\t\t\t\tconst fontHeight = font.height;\n\t\t\t\tconst characters = this._characters;\n\t\t\t\tconst width = (this._width = this.toPowerOf2(\n\t\t\t\t\tMath.ceil(Math.sqrt(characters.size)) * fontHeight\n\t\t\t\t));\n\n\t\t\t\tconst offsetX = this._padding;\n\t\t\t\tlet x = 0;\n\t\t\t\tlet y = 0;\n\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\tif (width <= x + character.width) {\n\t\t\t\t\t\tx = 0;\n\t\t\t\t\t\ty += fontHeight;\n\t\t\t\t\t}\n\n\t\t\t\t\tcharacter.x = x;\n\t\t\t\t\tcharacter.y = y;\n\t\t\t\t\tcharacter.origin.x = x + offsetX;\n\n\t\t\t\t\tx += character.width;\n\t\t\t\t});\n\t\t\t\tconst height = (this._height = y + fontHeight);\n\n\t\t\t\t// Make an input canvas\n\t\t\t\t// Here, we need to reset the context because\n\t\t\t\t// context settings will be lost when we set the width/height.\n\t\t\t\tconst baseTexture = this._texture.baseTexture;\n\t\t\t\tconst resolution = baseTexture.resolution;\n\t\t\t\tconst realWidth = Math.ceil(width * resolution);\n\t\t\t\tconst realHeight = Math.ceil(height * resolution);\n\t\t\t\tcanvas.width = realWidth;\n\t\t\t\tcanvas.height = realHeight;\n\t\t\t\tconst context = this.getContext();\n\t\t\t\tif (context != null) {\n\t\t\t\t\tUtilFont.measure(context, font);\n\t\t\t\t\tconst offsetY = Math.round(\n\t\t\t\t\t\t(fontHeight - (font.ascent + font.descent)) * 0.5 + font.ascent\n\t\t\t\t\t);\n\t\t\t\t\tcontext.save();\n\t\t\t\t\tcontext.scale(resolution, resolution);\n\t\t\t\t\tcontext.clearRect(0, 0, width, height);\n\t\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\t\tcharacter.origin.y = character.y + offsetY;\n\t\t\t\t\t\tcontext.fillText(\n\t\t\t\t\t\t\tcharacter.character,\n\t\t\t\t\t\t\tcharacter.origin.x,\n\t\t\t\t\t\t\tcharacter.origin.y\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tcontext.restore();\n\t\t\t\t}\n\t\t\t\tbaseTexture.setRealSize(realWidth, realHeight);\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tgetRevision(): number {\n\t\treturn this._revision;\n\t}\n\n\tgetRevisionUpdate(): number {\n\t\treturn this._revisionUpdated;\n\t}\n\n\tget length(): number {\n\t\treturn this._characters.size;\n\t}\n\n\tdestroy(): void {\n\t\tconst canvas = this._canvas;\n\t\tif (canvas != null) {\n\t\t\tthis._canvas = null;\n\t\t}\n\t\tthis._characters.clear();\n\t\tthis._createds.clear();\n\t\tthis._unrefCount = 0;\n\t}\n\n\ttoPowerOf2(size: number): number {\n\t\tlet result = 32;\n\t\twhile (result < size) {\n\t\t\tresult <<= 1;\n\t\t}\n\t\treturn result;\n\t}\n}\n"]}
|
|
@@ -20,8 +20,12 @@ var DynamicSDFFontAtlas = /** @class */ (function () {
|
|
|
20
20
|
characters.set(Character.SPACE, this.newChar(Character.SPACE, DynamicFontAtlasCharacterType.SPACE_R));
|
|
21
21
|
characters.set(Character.TAB, this.newChar(Character.SOFT_TAB, DynamicFontAtlasCharacterType.SPACE_R));
|
|
22
22
|
characters.set(Character.DOTS, this.newChar(Character.DOTS, DynamicFontAtlasCharacterType.LETTER_RNB));
|
|
23
|
-
for (var i =
|
|
24
|
-
var ac =
|
|
23
|
+
for (var i = Character.ASCII.LOW.FROM; i <= Character.ASCII.LOW.TO; ++i) {
|
|
24
|
+
var ac = String.fromCodePoint(i);
|
|
25
|
+
characters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));
|
|
26
|
+
}
|
|
27
|
+
for (var i = Character.ASCII.HIGH.FROM; i <= Character.ASCII.HIGH.TO; ++i) {
|
|
28
|
+
var ac = String.fromCodePoint(i);
|
|
25
29
|
characters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));
|
|
26
30
|
}
|
|
27
31
|
this._characters = characters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-sdf-font-atlas.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-sdf-font-atlas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Character } from \"./character\";\nimport { DynamicFontAtlasCharacter } from \"./dynamic-font-atlas-character\";\nimport { DynamicFontAtlasCharacterType } from \"./dynamic-font-atlas-character-type\";\nimport { DynamicFontAtlasCharacters } from \"./dynamic-font-atlas-characters\";\nimport { DynamicSDFFontAtlasFont } from \"./dynamic-sdf-font-atlas-font\";\nimport { DynamicSDFFontGenerator } from \"./dynamic-sdf-font-generator\";\nimport { UtilFont } from \"./util-font\";\n\nexport interface DynamicSDFFontAtlasJson {\n\twidth: number;\n\theight: number;\n\tfont: DynamicSDFFontAtlasFont;\n\tcharacters: DynamicFontAtlasCharacters;\n}\n\nexport class DynamicSDFFontAtlas {\n\tprotected _id: string;\n\tprotected _generator: DynamicSDFFontGenerator | null;\n\tprotected _canvas: HTMLCanvasElement | null;\n\tprotected _font: DynamicSDFFontAtlasFont;\n\tprotected _characters: DynamicFontAtlasCharacters;\n\tprotected _width: number;\n\tprotected _height: number;\n\tprotected _isDirty: boolean;\n\tprotected _isTouched: boolean;\n\tprotected _life: number;\n\n\tconstructor(fontFamily: string) {\n\t\tthis._id = `font-atlas:${fontFamily}`;\n\t\tthis._generator = DynamicSDFFontGenerator.getInstance().init();\n\t\tthis._canvas = document.createElement(\"canvas\");\n\t\tthis._font = new DynamicSDFFontAtlasFont(fontFamily);\n\t\tthis._width = 1;\n\t\tthis._height = 1;\n\n\t\tconst characters = new Map<string, DynamicFontAtlasCharacter>();\n\t\tcharacters.set(\n\t\t\tCharacter.SPACE,\n\t\t\tthis.newChar(Character.SPACE, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.TAB,\n\t\t\tthis.newChar(Character.SOFT_TAB, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.DOTS,\n\t\t\tthis.newChar(Character.DOTS, DynamicFontAtlasCharacterType.LETTER_RNB)\n\t\t);\n\t\tfor (let i = 0, imax = Character.ASCII.length; i < imax; ++i) {\n\t\t\tconst ac = Character.ASCII[i];\n\t\t\tcharacters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));\n\t\t}\n\t\tthis._characters = characters;\n\t\tthis._isDirty = true;\n\t\tthis._isTouched = false;\n\t\tthis._life = DynamicFontAtlasCharacter.LIFE;\n\t}\n\n\tget id(): string {\n\t\treturn this._id;\n\t}\n\n\tget font(): DynamicSDFFontAtlasFont {\n\t\treturn this._font;\n\t}\n\n\tset font(font: DynamicSDFFontAtlasFont) {\n\t\tthis._font.id = font.id;\n\t\tthis._font.size = font.size;\n\t\tthis._font.italic = font.italic;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tget height(): number {\n\t\treturn this._height;\n\t}\n\n\tget canvas(): HTMLCanvasElement | null {\n\t\treturn this._canvas;\n\t}\n\n\tget generator(): DynamicSDFFontGenerator | null {\n\t\treturn this._generator;\n\t}\n\n\tget characters(): DynamicFontAtlasCharacters {\n\t\treturn this._characters;\n\t}\n\n\tbegin(): void {\n\t\tthis._isTouched = false;\n\t\tthis._characters.forEach((character) => {\n\t\t\tif (!(character.type & DynamicFontAtlasCharacterType.RESERVED)) {\n\t\t\t\tcharacter.ref = 0;\n\t\t\t}\n\t\t});\n\t}\n\n\tend(): void {\n\t\tconst characters = this._characters;\n\t\tif (this._isTouched) {\n\t\t\tthis._life = DynamicFontAtlasCharacter.LIFE;\n\t\t\tcharacters.forEach((character, id) => {\n\t\t\t\tif (\n\t\t\t\t\tcharacter.ref <= 0 &&\n\t\t\t\t\t!(character.type & DynamicFontAtlasCharacterType.RESERVED)\n\t\t\t\t) {\n\t\t\t\t\tcharacter.life -= 1;\n\t\t\t\t\tif (character.life <= 0) {\n\t\t\t\t\t\tcharacters.delete(id);\n\t\t\t\t\t\tthis._isDirty = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis._life -= 1;\n\t\t\tif (this._life <= 0 && 0 < characters.size) {\n\t\t\t\tcharacters.clear();\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected newChar(\n\t\tcharacter: string,\n\t\ttype: DynamicFontAtlasCharacterType\n\t): DynamicFontAtlasCharacter {\n\t\treturn new DynamicFontAtlasCharacter(type, character, 0, 0, 1, 1, 0);\n\t}\n\n\tadd(characters: string[], nacharacters: string[]): void {\n\t\tconst cs = this._characters;\n\t\tfor (let i = 0, imax = nacharacters.length; i < imax; ++i) {\n\t\t\tconst nac = nacharacters[i];\n\t\t\tconst data = cs.get(nac);\n\t\t\tif (data != null) {\n\t\t\t\tdata.ref += 1;\n\t\t\t\tdata.life = DynamicFontAtlasCharacter.LIFE;\n\t\t\t} else {\n\t\t\t\tcs.set(nac, this.newChar(nac, DynamicFontAtlasCharacterType.LETTER));\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t\tif (0 < characters.length) {\n\t\t\tthis._isTouched = true;\n\t\t}\n\t}\n\n\tget(id: string): DynamicFontAtlasCharacter | undefined {\n\t\treturn this._characters.get(id);\n\t}\n\n\tupdate(): boolean {\n\t\tif (this._isDirty) {\n\t\t\tconst canvas = this._canvas;\n\t\t\tconst generator = this._generator;\n\t\t\tif (canvas != null && generator != null) {\n\t\t\t\tconst context = canvas.getContext(\"2d\");\n\t\t\t\tif (context != null) {\n\t\t\t\t\tthis._isDirty = false;\n\n\t\t\t\t\tconst font = this._font;\n\t\t\t\t\tconst fontSize = font.size + 14;\n\t\t\t\t\tconst characters = this._characters;\n\t\t\t\t\tconst width = this.toPowerOf2(Math.ceil(Math.sqrt(characters.size)) * fontSize);\n\t\t\t\t\tthis._width = width;\n\t\t\t\t\tconst fontStyle =\n\t\t\t\t\t\t(font.italic ? \"italic \" : \"\") + (font.size + \"px \") + font.id;\n\n\t\t\t\t\tcontext.font = fontStyle;\n\t\t\t\t\tcontext.textAlign = \"left\";\n\t\t\t\t\tcontext.textBaseline = \"alphabetic\";\n\t\t\t\t\tcontext.lineWidth = 0;\n\t\t\t\t\tcontext.lineCap = \"round\";\n\t\t\t\t\tcontext.lineJoin = \"miter\";\n\t\t\t\t\tcontext.miterLimit = 10;\n\t\t\t\t\tcontext.fillStyle = \"#FFFFFF\";\n\t\t\t\t\tUtilFont.measure(context, font);\n\n\t\t\t\t\tconst offsetX = 7;\n\t\t\t\t\tconst offsetY = Math.round(\n\t\t\t\t\t\t(fontSize - (font.ascent + font.descent)) * 0.5 + font.ascent\n\t\t\t\t\t);\n\t\t\t\t\tlet x = 0;\n\t\t\t\t\tlet y = 0;\n\t\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\t\tconst advance = context.measureText(character.character).width;\n\t\t\t\t\t\tconst characterWidth = Math.ceil(offsetX + advance + offsetX);\n\t\t\t\t\t\tconst characterHeight = fontSize;\n\t\t\t\t\t\tif (width <= x + characterWidth) {\n\t\t\t\t\t\t\tx = 0;\n\t\t\t\t\t\t\ty += fontSize;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcharacter.x = x;\n\t\t\t\t\t\tcharacter.y = y;\n\t\t\t\t\t\tcharacter.width = characterWidth;\n\t\t\t\t\t\tcharacter.height = characterHeight;\n\t\t\t\t\t\tcharacter.advance = advance;\n\t\t\t\t\t\tcharacter.origin.x = x + offsetX;\n\t\t\t\t\t\tcharacter.origin.y = y + offsetY;\n\n\t\t\t\t\t\tx += characterWidth;\n\t\t\t\t\t});\n\t\t\t\t\tconst height = (this._height = y + fontSize);\n\n\t\t\t\t\t// Make a input canvas\n\t\t\t\t\t// Here, we need to reset the context because\n\t\t\t\t\t// context settings will be lost when we set the width/height.\n\t\t\t\t\tcanvas.width = width;\n\t\t\t\t\tcanvas.height = height;\n\t\t\t\t\tcontext.font = fontStyle;\n\t\t\t\t\tcontext.textAlign = \"left\";\n\t\t\t\t\tcontext.textBaseline = \"alphabetic\";\n\t\t\t\t\tcontext.lineWidth = 0;\n\t\t\t\t\tcontext.lineCap = \"round\";\n\t\t\t\t\tcontext.lineJoin = \"miter\";\n\t\t\t\t\tcontext.miterLimit = 10;\n\t\t\t\t\tcontext.fillStyle = \"#FFFFFF\";\n\t\t\t\t\tcontext.clearRect(0, 0, width, height);\n\t\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\t\tcontext.fillText(\n\t\t\t\t\t\t\tcharacter.character,\n\t\t\t\t\t\t\tcharacter.origin.x,\n\t\t\t\t\t\t\tcharacter.origin.y\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\n\t\t\t\t\t// Convert to SDF font texture\n\t\t\t\t\tgenerator.updateTexture(width, height, canvas);\n\t\t\t\t\tgenerator.render();\n\t\t\t\t\tgenerator.read(canvas);\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tget length(): number {\n\t\treturn this._characters.size;\n\t}\n\n\ttoJson(): DynamicSDFFontAtlasJson {\n\t\treturn {\n\t\t\twidth: this._width,\n\t\t\theight: this._height,\n\t\t\tfont: this._font,\n\t\t\tcharacters: this._characters\n\t\t};\n\t}\n\n\ttoString(): string {\n\t\treturn JSON.stringify(this.toJson());\n\t}\n\n\tdestroy(): void {\n\t\tconst generator = this._generator;\n\t\tif (generator != null) {\n\t\t\tthis._generator = null;\n\t\t}\n\n\t\tconst canvas = this._canvas;\n\t\tif (canvas != null) {\n\t\t\tthis._canvas = null;\n\t\t}\n\n\t\tthis._characters.clear();\n\t}\n\n\tprotected toPowerOf2(size: number): number {\n\t\tlet result = 32;\n\t\twhile (result < size) {\n\t\t\tresult <<= 1;\n\t\t}\n\t\treturn result;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dynamic-sdf-font-atlas.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/util/dynamic-sdf-font-atlas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Character } from \"./character\";\nimport { DynamicFontAtlasCharacter } from \"./dynamic-font-atlas-character\";\nimport { DynamicFontAtlasCharacterType } from \"./dynamic-font-atlas-character-type\";\nimport { DynamicFontAtlasCharacters } from \"./dynamic-font-atlas-characters\";\nimport { DynamicSDFFontAtlasFont } from \"./dynamic-sdf-font-atlas-font\";\nimport { DynamicSDFFontGenerator } from \"./dynamic-sdf-font-generator\";\nimport { UtilFont } from \"./util-font\";\n\nexport interface DynamicSDFFontAtlasJson {\n\twidth: number;\n\theight: number;\n\tfont: DynamicSDFFontAtlasFont;\n\tcharacters: DynamicFontAtlasCharacters;\n}\n\nexport class DynamicSDFFontAtlas {\n\tprotected _id: string;\n\tprotected _generator: DynamicSDFFontGenerator | null;\n\tprotected _canvas: HTMLCanvasElement | null;\n\tprotected _font: DynamicSDFFontAtlasFont;\n\tprotected _characters: DynamicFontAtlasCharacters;\n\tprotected _width: number;\n\tprotected _height: number;\n\tprotected _isDirty: boolean;\n\tprotected _isTouched: boolean;\n\tprotected _life: number;\n\n\tconstructor(fontFamily: string) {\n\t\tthis._id = `font-atlas:${fontFamily}`;\n\t\tthis._generator = DynamicSDFFontGenerator.getInstance().init();\n\t\tthis._canvas = document.createElement(\"canvas\");\n\t\tthis._font = new DynamicSDFFontAtlasFont(fontFamily);\n\t\tthis._width = 1;\n\t\tthis._height = 1;\n\n\t\tconst characters = new Map<string, DynamicFontAtlasCharacter>();\n\t\tcharacters.set(\n\t\t\tCharacter.SPACE,\n\t\t\tthis.newChar(Character.SPACE, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.TAB,\n\t\t\tthis.newChar(Character.SOFT_TAB, DynamicFontAtlasCharacterType.SPACE_R)\n\t\t);\n\t\tcharacters.set(\n\t\t\tCharacter.DOTS,\n\t\t\tthis.newChar(Character.DOTS, DynamicFontAtlasCharacterType.LETTER_RNB)\n\t\t);\n\t\tfor (let i = Character.ASCII.LOW.FROM; i <= Character.ASCII.LOW.TO; ++i) {\n\t\t\tconst ac = String.fromCodePoint(i);\n\t\t\tcharacters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));\n\t\t}\n\t\tfor (let i = Character.ASCII.HIGH.FROM; i <= Character.ASCII.HIGH.TO; ++i) {\n\t\t\tconst ac = String.fromCodePoint(i);\n\t\t\tcharacters.set(ac, this.newChar(ac, DynamicFontAtlasCharacterType.LETTER_RNB));\n\t\t}\n\t\tthis._characters = characters;\n\t\tthis._isDirty = true;\n\t\tthis._isTouched = false;\n\t\tthis._life = DynamicFontAtlasCharacter.LIFE;\n\t}\n\n\tget id(): string {\n\t\treturn this._id;\n\t}\n\n\tget font(): DynamicSDFFontAtlasFont {\n\t\treturn this._font;\n\t}\n\n\tset font(font: DynamicSDFFontAtlasFont) {\n\t\tthis._font.id = font.id;\n\t\tthis._font.size = font.size;\n\t\tthis._font.italic = font.italic;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tget height(): number {\n\t\treturn this._height;\n\t}\n\n\tget canvas(): HTMLCanvasElement | null {\n\t\treturn this._canvas;\n\t}\n\n\tget generator(): DynamicSDFFontGenerator | null {\n\t\treturn this._generator;\n\t}\n\n\tget characters(): DynamicFontAtlasCharacters {\n\t\treturn this._characters;\n\t}\n\n\tbegin(): void {\n\t\tthis._isTouched = false;\n\t\tthis._characters.forEach((character) => {\n\t\t\tif (!(character.type & DynamicFontAtlasCharacterType.RESERVED)) {\n\t\t\t\tcharacter.ref = 0;\n\t\t\t}\n\t\t});\n\t}\n\n\tend(): void {\n\t\tconst characters = this._characters;\n\t\tif (this._isTouched) {\n\t\t\tthis._life = DynamicFontAtlasCharacter.LIFE;\n\t\t\tcharacters.forEach((character, id) => {\n\t\t\t\tif (\n\t\t\t\t\tcharacter.ref <= 0 &&\n\t\t\t\t\t!(character.type & DynamicFontAtlasCharacterType.RESERVED)\n\t\t\t\t) {\n\t\t\t\t\tcharacter.life -= 1;\n\t\t\t\t\tif (character.life <= 0) {\n\t\t\t\t\t\tcharacters.delete(id);\n\t\t\t\t\t\tthis._isDirty = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis._life -= 1;\n\t\t\tif (this._life <= 0 && 0 < characters.size) {\n\t\t\t\tcharacters.clear();\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected newChar(\n\t\tcharacter: string,\n\t\ttype: DynamicFontAtlasCharacterType\n\t): DynamicFontAtlasCharacter {\n\t\treturn new DynamicFontAtlasCharacter(type, character, 0, 0, 1, 1, 0);\n\t}\n\n\tadd(characters: string[], nacharacters: string[]): void {\n\t\tconst cs = this._characters;\n\t\tfor (let i = 0, imax = nacharacters.length; i < imax; ++i) {\n\t\t\tconst nac = nacharacters[i];\n\t\t\tconst data = cs.get(nac);\n\t\t\tif (data != null) {\n\t\t\t\tdata.ref += 1;\n\t\t\t\tdata.life = DynamicFontAtlasCharacter.LIFE;\n\t\t\t} else {\n\t\t\t\tcs.set(nac, this.newChar(nac, DynamicFontAtlasCharacterType.LETTER));\n\t\t\t\tthis._isDirty = true;\n\t\t\t}\n\t\t}\n\t\tif (0 < characters.length) {\n\t\t\tthis._isTouched = true;\n\t\t}\n\t}\n\n\tget(id: string): DynamicFontAtlasCharacter | undefined {\n\t\treturn this._characters.get(id);\n\t}\n\n\tupdate(): boolean {\n\t\tif (this._isDirty) {\n\t\t\tconst canvas = this._canvas;\n\t\t\tconst generator = this._generator;\n\t\t\tif (canvas != null && generator != null) {\n\t\t\t\tconst context = canvas.getContext(\"2d\");\n\t\t\t\tif (context != null) {\n\t\t\t\t\tthis._isDirty = false;\n\n\t\t\t\t\tconst font = this._font;\n\t\t\t\t\tconst fontSize = font.size + 14;\n\t\t\t\t\tconst characters = this._characters;\n\t\t\t\t\tconst width = this.toPowerOf2(Math.ceil(Math.sqrt(characters.size)) * fontSize);\n\t\t\t\t\tthis._width = width;\n\t\t\t\t\tconst fontStyle =\n\t\t\t\t\t\t(font.italic ? \"italic \" : \"\") + (font.size + \"px \") + font.id;\n\n\t\t\t\t\tcontext.font = fontStyle;\n\t\t\t\t\tcontext.textAlign = \"left\";\n\t\t\t\t\tcontext.textBaseline = \"alphabetic\";\n\t\t\t\t\tcontext.lineWidth = 0;\n\t\t\t\t\tcontext.lineCap = \"round\";\n\t\t\t\t\tcontext.lineJoin = \"miter\";\n\t\t\t\t\tcontext.miterLimit = 10;\n\t\t\t\t\tcontext.fillStyle = \"#FFFFFF\";\n\t\t\t\t\tUtilFont.measure(context, font);\n\n\t\t\t\t\tconst offsetX = 7;\n\t\t\t\t\tconst offsetY = Math.round(\n\t\t\t\t\t\t(fontSize - (font.ascent + font.descent)) * 0.5 + font.ascent\n\t\t\t\t\t);\n\t\t\t\t\tlet x = 0;\n\t\t\t\t\tlet y = 0;\n\t\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\t\tconst advance = context.measureText(character.character).width;\n\t\t\t\t\t\tconst characterWidth = Math.ceil(offsetX + advance + offsetX);\n\t\t\t\t\t\tconst characterHeight = fontSize;\n\t\t\t\t\t\tif (width <= x + characterWidth) {\n\t\t\t\t\t\t\tx = 0;\n\t\t\t\t\t\t\ty += fontSize;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcharacter.x = x;\n\t\t\t\t\t\tcharacter.y = y;\n\t\t\t\t\t\tcharacter.width = characterWidth;\n\t\t\t\t\t\tcharacter.height = characterHeight;\n\t\t\t\t\t\tcharacter.advance = advance;\n\t\t\t\t\t\tcharacter.origin.x = x + offsetX;\n\t\t\t\t\t\tcharacter.origin.y = y + offsetY;\n\n\t\t\t\t\t\tx += characterWidth;\n\t\t\t\t\t});\n\t\t\t\t\tconst height = (this._height = y + fontSize);\n\n\t\t\t\t\t// Make a input canvas\n\t\t\t\t\t// Here, we need to reset the context because\n\t\t\t\t\t// context settings will be lost when we set the width/height.\n\t\t\t\t\tcanvas.width = width;\n\t\t\t\t\tcanvas.height = height;\n\t\t\t\t\tcontext.font = fontStyle;\n\t\t\t\t\tcontext.textAlign = \"left\";\n\t\t\t\t\tcontext.textBaseline = \"alphabetic\";\n\t\t\t\t\tcontext.lineWidth = 0;\n\t\t\t\t\tcontext.lineCap = \"round\";\n\t\t\t\t\tcontext.lineJoin = \"miter\";\n\t\t\t\t\tcontext.miterLimit = 10;\n\t\t\t\t\tcontext.fillStyle = \"#FFFFFF\";\n\t\t\t\t\tcontext.clearRect(0, 0, width, height);\n\t\t\t\t\tcharacters.forEach((character) => {\n\t\t\t\t\t\tcontext.fillText(\n\t\t\t\t\t\t\tcharacter.character,\n\t\t\t\t\t\t\tcharacter.origin.x,\n\t\t\t\t\t\t\tcharacter.origin.y\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\n\t\t\t\t\t// Convert to SDF font texture\n\t\t\t\t\tgenerator.updateTexture(width, height, canvas);\n\t\t\t\t\tgenerator.render();\n\t\t\t\t\tgenerator.read(canvas);\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tget length(): number {\n\t\treturn this._characters.size;\n\t}\n\n\ttoJson(): DynamicSDFFontAtlasJson {\n\t\treturn {\n\t\t\twidth: this._width,\n\t\t\theight: this._height,\n\t\t\tfont: this._font,\n\t\t\tcharacters: this._characters\n\t\t};\n\t}\n\n\ttoString(): string {\n\t\treturn JSON.stringify(this.toJson());\n\t}\n\n\tdestroy(): void {\n\t\tconst generator = this._generator;\n\t\tif (generator != null) {\n\t\t\tthis._generator = null;\n\t\t}\n\n\t\tconst canvas = this._canvas;\n\t\tif (canvas != null) {\n\t\t\tthis._canvas = null;\n\t\t}\n\n\t\tthis._characters.clear();\n\t}\n\n\tprotected toPowerOf2(size: number): number {\n\t\tlet result = 32;\n\t\twhile (result < size) {\n\t\t\tresult <<= 1;\n\t\t}\n\t\treturn result;\n\t}\n}\n"]}
|