excalibur 0.26.0-alpha.332 → 0.26.0-alpha.333
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/CHANGELOG.md +3 -0
- package/build/dist/Debug/Debug.d.ts +1 -0
- package/build/dist/Debug/Debug.js +1 -0
- package/build/dist/Debug/Debug.js.map +1 -1
- package/build/dist/Debug/DebugSystem.js +2 -0
- package/build/dist/Debug/DebugSystem.js.map +1 -1
- package/build/dist/Graphics/Context/debug-text.js +1 -1
- package/build/dist/Graphics/Context/debug-text.js.map +1 -1
- package/build/dist/Graphics/Font.d.ts +53 -22
- package/build/dist/Graphics/Font.js +185 -124
- package/build/dist/Graphics/Font.js.map +1 -1
- package/build/dist/Graphics/FontCommon.d.ts +43 -2
- package/build/dist/Graphics/FontCommon.js +3 -0
- package/build/dist/Graphics/FontCommon.js.map +1 -1
- package/build/dist/Graphics/SpriteFont.d.ts +3 -6
- package/build/dist/Graphics/SpriteFont.js +29 -35
- package/build/dist/Graphics/SpriteFont.js.map +1 -1
- package/build/dist/Graphics/Text.d.ts +18 -2
- package/build/dist/Graphics/Text.js +37 -26
- package/build/dist/Graphics/Text.js.map +1 -1
- package/build/dist/Util/DrawUtil.js +2 -0
- package/build/dist/Util/DrawUtil.js.map +1 -1
- package/build/dist/excalibur.js +263 -189
- package/build/dist/excalibur.js.map +1 -1
- package/build/dist/excalibur.min.js +2 -2
- package/build/dist/index.js +2 -2
- package/build/esm/Debug/Debug.d.ts +1 -0
- package/build/esm/Graphics/Font.d.ts +53 -22
- package/build/esm/Graphics/FontCommon.d.ts +43 -2
- package/build/esm/Graphics/SpriteFont.d.ts +3 -6
- package/build/esm/Graphics/Text.d.ts +18 -2
- package/build/esm/excalibur.js +263 -189
- package/build/esm/excalibur.js.map +1 -1
- package/build/esm/excalibur.min.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -22,6 +22,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
22
22
|
|
|
23
23
|
### Added
|
|
24
24
|
|
|
25
|
+
- Added new `measureText` method to the `ex.SpriteFont` and `ex.Font` to return the bounds of any particular text
|
|
25
26
|
- Added new `Clock` api to manage the core main loop. Clocks hide the implementation detail of how the mainloop runs, users just knows that it ticks somehow. Clocks additionally encapsulate any related browser timing, like `performance.now()`
|
|
26
27
|
1. `StandardClock` encapsulates the existing `requestAnimationFrame` api logic
|
|
27
28
|
2. `TestClock` allows a user to manually step the mainloop, this can be useful for frame by frame debugging #1170
|
|
@@ -35,6 +36,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
35
36
|
|
|
36
37
|
### Fixed
|
|
37
38
|
|
|
39
|
+
- Fixed issue [#2152] where shared state in `ex.Font` and `ex.SpriteFont` prevented text from aligning properly when re-used
|
|
38
40
|
- Fixed issue where fast moving `CompositeCollider`s were erroneously generating pairs for their constituent parts
|
|
39
41
|
- Fixed Safari 13.1 crash when booting Excalibur because of they odd MediaQuery API in older Safari
|
|
40
42
|
- Fixed issue where pointers did not work because of missing types
|
|
@@ -53,6 +55,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
53
55
|
|
|
54
56
|
### Changed
|
|
55
57
|
|
|
58
|
+
- Chaned the debug system to separate displaying the debug position point (`game.debug.transform.showPosition = true`) and debug position label (`game.debug.transform.showPositionLabel = true`)
|
|
56
59
|
- `ex.ColorBlindCorrector` is renamed to `ex.ColorBlindnessPostProcessor`, and `ex.ColorBlindness` is renamed to `ex.ColorBlindnessMode`
|
|
57
60
|
- Color blindness can still be corrected or simulated:
|
|
58
61
|
* `game.debug.colorBlindMode.correct(ex.ColorBlindnessMode.Deuteranope)`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../../../src/engine/Debug/Debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAmJjC;;;;GAIG;AACH,MAAM,OAAO,KAAK;IAGhB,YAAY,MAAc;QA6C1B;;WAEG;QACI,UAAK,GAAe;YACzB;;;eAGG;YACH,SAAS,EAAE,IAAI,UAAU,EAAE;YAE3B;;;eAGG;YACH,SAAS,EAAE,IAAI,UAAU,EAAE;SAC5B,CAAC;QAQF;;WAEG;QACI,WAAM,GAA6D;YACxE;;eAEG;YACH,SAAS,EAAE,KAAK;YAChB;;eAEG;YACH,SAAS,EAAE,EAAE;YACb;;eAEG;YACH,GAAG,EAAE,EAAE;SACR,CAAC;QAEF;;WAEG;QACI,WAAM,GAAG;YACd,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF;;WAEG;QACI,cAAS,GAAG;YACjB,OAAO,EAAE,KAAK;YAEd,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK,CAAC,MAAM;YAE3B,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,KAAK,CAAC,KAAK;YAEvB,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK,CAAC,IAAI;SAC1B,CAAC;QAEF;;WAEG;QACI,aAAQ,GAAG;YAChB,OAAO,EAAE,KAAK;YAEd,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,MAAM;SAC1B,CAAC;QAEF;;WAEG;QACI,aAAQ,GAAG;YAChB,OAAO,EAAE,KAAK;YAEd,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,IAAI;YAEvB,SAAS,EAAE,KAAK;YAEhB,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK,CAAC,KAAK;SAC3B,CAAC;QAEF;;WAEG;QACI,YAAO,GAAG;YACf,OAAO,EAAE,KAAK;YAEd,iCAAiC,EAAE,KAAK;YAExC,oBAAoB,EAAE,KAAK;YAC3B,oBAAoB,EAAE,KAAK,CAAC,IAAI;YAEhC,qBAAqB,EAAE,IAAI;YAC3B,qBAAqB,EAAE,KAAK,CAAC,GAAG;SACjC,CAAC;QAEF;;WAEG;QACI,WAAM,GAAG;YACd,OAAO,EAAE,KAAK;YAEd,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,KAAK,CAAC,MAAM;YAE3B,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,KAAK,CAAC,GAAG;SAC7B,CAAC;QAEF;;WAEG;QACI,SAAI,GAAG;YACZ,OAAO,EAAE,KAAK;YAEd,kBAAkB,EAAE,KAAK;YACzB,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF;;WAEG;QACI,WAAM,GAAG;YACd,OAAO,EAAE,KAAK;YAEd,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,KAAK,CAAC,GAAG;YAErB,QAAQ,EAAE,KAAK;SAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../../../src/engine/Debug/Debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,8 @@ export class DebugSystem extends System {
|
|
|
71
71
|
if (tx) {
|
|
72
72
|
if (txSettings.showAll || txSettings.showPosition) {
|
|
73
73
|
this._graphicsContext.debug.drawPoint(Vector.Zero, { size: 2, color: txSettings.positionColor });
|
|
74
|
+
}
|
|
75
|
+
if (txSettings.showAll || txSettings.showPositionLabel) {
|
|
74
76
|
this._graphicsContext.debug.drawText(`pos${tx.pos.toString(2)}`, cursor);
|
|
75
77
|
cursor = cursor.add(lineHeight);
|
|
76
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugSystem.js","sourceRoot":"","sources":["../../../src/engine/Debug/DebugSystem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DebugSystem.js","sourceRoot":"","sources":["../../../src/engine/Debug/DebugSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-text.js","sourceRoot":"","sources":["../../../../src/engine/Graphics/Context/debug-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEpF,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB;QAIA;;WAEG;QACa,cAAS,GAAG,SAAS,CAAC;QAC/B,SAAI,GAAW,EAAE,CAAC;QAPvB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAUM,IAAI;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,eAAe,CAAC;gBAC9C,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,EAAE;oBACf,YAAY,EAAE,EAAE;iBACjB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC;gBAChC,QAAQ,EAAE,mDAAmD;gBAC7D,eAAe,EAAE,IAAI;gBACrB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,OAAO,EAAE,CAAC,CAAC;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAA6B,EAAE,IAAY,EAAE,GAAW;QACnE,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"debug-text.js","sourceRoot":"","sources":["../../../../src/engine/Graphics/Context/debug-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEpF,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB;QAIA;;WAEG;QACa,cAAS,GAAG,SAAS,CAAC;QAC/B,SAAI,GAAW,EAAE,CAAC;QAPvB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAUM,IAAI;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,eAAe,CAAC;gBAC9C,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,IAAI,EAAE;oBACJ,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,EAAE;oBACf,YAAY,EAAE,EAAE;iBACjB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC;gBAChC,QAAQ,EAAE,mDAAmD;gBAC7D,eAAe,EAAE,IAAI;gBACrB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,OAAO,EAAE,CAAC,CAAC;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAA6B,EAAE,IAAY,EAAE,GAAW;QACnE,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;SACxD;IACH,CAAC;CACF"}
|
|
@@ -3,9 +3,17 @@ import { BoundingBox } from '../Collision/Index';
|
|
|
3
3
|
import { Color } from '../Color';
|
|
4
4
|
import { ExcaliburGraphicsContext } from './Context/ExcaliburGraphicsContext';
|
|
5
5
|
import { BaseAlign, Direction, FontOptions, FontStyle, FontUnit, TextAlign, FontRenderer } from './FontCommon';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import { Graphic, GraphicOptions } from './Graphic';
|
|
7
|
+
import { RasterOptions } from './Raster';
|
|
8
|
+
/**
|
|
9
|
+
* Represents a system or web font in Excalibur
|
|
10
|
+
*
|
|
11
|
+
* If no options specfied, the system sans-serif 10 pixel is used
|
|
12
|
+
*
|
|
13
|
+
* If loading a custom web font be sure to have the font loaded before you use it https://erikonarheim.com/posts/dont-test-fonts/
|
|
14
|
+
*/
|
|
15
|
+
export declare class Font extends Graphic implements FontRenderer {
|
|
16
|
+
constructor(options?: FontOptions & GraphicOptions & RasterOptions);
|
|
9
17
|
clone(): Font;
|
|
10
18
|
/**
|
|
11
19
|
* Font quality determines the size of the underlying rastered text, higher quality means less jagged edges.
|
|
@@ -13,9 +21,15 @@ export declare class Font extends Raster implements FontRenderer {
|
|
|
13
21
|
*
|
|
14
22
|
* You can think of quality as how zoomed in to the text you can get before seeing jagged edges.
|
|
15
23
|
*
|
|
16
|
-
* (Default
|
|
24
|
+
* (Default 2)
|
|
17
25
|
*/
|
|
18
26
|
quality: number;
|
|
27
|
+
padding: number;
|
|
28
|
+
smoothing: boolean;
|
|
29
|
+
lineWidth: number;
|
|
30
|
+
lineDash: number[];
|
|
31
|
+
color: Color;
|
|
32
|
+
strokeColor: Color;
|
|
19
33
|
family: string;
|
|
20
34
|
style: FontStyle;
|
|
21
35
|
bold: boolean;
|
|
@@ -30,28 +44,45 @@ export declare class Font extends Raster implements FontRenderer {
|
|
|
30
44
|
color?: Color;
|
|
31
45
|
};
|
|
32
46
|
get fontString(): string;
|
|
33
|
-
private _text;
|
|
34
|
-
private _lines;
|
|
35
47
|
private _textBounds;
|
|
36
|
-
private _textWidth;
|
|
37
|
-
private _textHeight;
|
|
38
|
-
get width(): number;
|
|
39
|
-
set width(value: number);
|
|
40
|
-
get height(): number;
|
|
41
|
-
set height(value: number);
|
|
42
|
-
private get _rasterWidth();
|
|
43
|
-
private get _rasterHeight();
|
|
44
|
-
private get _halfRasterWidth();
|
|
45
|
-
private get _halfRasterHeight();
|
|
46
48
|
get localBounds(): BoundingBox;
|
|
47
|
-
protected _drawImage(
|
|
49
|
+
protected _drawImage(_ex: ExcaliburGraphicsContext, _x: number, _y: number): void;
|
|
48
50
|
protected _rotate(ex: ExcaliburGraphicsContext): void;
|
|
49
51
|
protected _flip(ex: ExcaliburGraphicsContext): void;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Returns a BoundingBox that is the total size of the text including mutliple lines
|
|
54
|
+
*
|
|
55
|
+
* Does not include any padding or adjustment
|
|
56
|
+
* @param text
|
|
57
|
+
* @returns BoundingBox
|
|
58
|
+
*/
|
|
59
|
+
measureText(text: string): BoundingBox;
|
|
60
|
+
private _setDimension;
|
|
53
61
|
protected _postDraw(ex: ExcaliburGraphicsContext): void;
|
|
62
|
+
/**
|
|
63
|
+
* We need to identify bitmaps with more than just the text content
|
|
64
|
+
*
|
|
65
|
+
* Any properites that can change the rendering of the text
|
|
66
|
+
*/
|
|
67
|
+
private _getRasterPropertiesHash;
|
|
68
|
+
protected _applyRasterProperites(ctx: CanvasRenderingContext2D, color: Color): void;
|
|
54
69
|
private _applyFont;
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
private _drawText;
|
|
71
|
+
private _textToBitmap;
|
|
72
|
+
private _bitmapUsage;
|
|
73
|
+
private _getTextBitmap;
|
|
74
|
+
render(ex: ExcaliburGraphicsContext, text: string, colorOverride: Color, x: number, y: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get the internal cache size of the font
|
|
77
|
+
* This is useful when debugging memory useage, these numbers indicate the number of cached in memory text bitmaps
|
|
78
|
+
*/
|
|
79
|
+
get cacheSize(): number;
|
|
80
|
+
/**
|
|
81
|
+
* Force clear all cached text bitmaps
|
|
82
|
+
*/
|
|
83
|
+
clearCache(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Remove any expired cached text bitmaps
|
|
86
|
+
*/
|
|
87
|
+
checkAndClearCache(): void;
|
|
57
88
|
}
|
|
@@ -2,20 +2,33 @@ import { BoundingBox } from '../Collision/Index';
|
|
|
2
2
|
import { Color } from '../Color';
|
|
3
3
|
import { line } from '../Util/DrawUtil';
|
|
4
4
|
import { BaseAlign, Direction, FontStyle, FontUnit, TextAlign } from './FontCommon';
|
|
5
|
-
import {
|
|
6
|
-
|
|
5
|
+
import { Graphic } from './Graphic';
|
|
6
|
+
/**
|
|
7
|
+
* Represents a system or web font in Excalibur
|
|
8
|
+
*
|
|
9
|
+
* If no options specfied, the system sans-serif 10 pixel is used
|
|
10
|
+
*
|
|
11
|
+
* If loading a custom web font be sure to have the font loaded before you use it https://erikonarheim.com/posts/dont-test-fonts/
|
|
12
|
+
*/
|
|
13
|
+
export class Font extends Graphic {
|
|
7
14
|
constructor(options = {}) {
|
|
8
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
9
|
-
super(options);
|
|
15
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
16
|
+
super(options); // <- Graphics properties
|
|
10
17
|
/**
|
|
11
18
|
* Font quality determines the size of the underlying rastered text, higher quality means less jagged edges.
|
|
12
19
|
* If quality is set to 1, then just enough raster bitmap is generated to render the text.
|
|
13
20
|
*
|
|
14
21
|
* You can think of quality as how zoomed in to the text you can get before seeing jagged edges.
|
|
15
22
|
*
|
|
16
|
-
* (Default
|
|
23
|
+
* (Default 2)
|
|
17
24
|
*/
|
|
18
25
|
this.quality = 2;
|
|
26
|
+
// Raster properties for fonts
|
|
27
|
+
this.padding = 0;
|
|
28
|
+
this.smoothing = false;
|
|
29
|
+
this.lineWidth = 1;
|
|
30
|
+
this.lineDash = [];
|
|
31
|
+
this.color = Color.Black;
|
|
19
32
|
this.family = 'sans-serif';
|
|
20
33
|
this.style = FontStyle.Normal;
|
|
21
34
|
this.bold = false;
|
|
@@ -26,29 +39,35 @@ export class Font extends Raster {
|
|
|
26
39
|
this.size = 10;
|
|
27
40
|
this.shadow = null;
|
|
28
41
|
this._textBounds = new BoundingBox();
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
31
|
-
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
this.
|
|
37
|
-
this.
|
|
38
|
-
|
|
39
|
-
this.
|
|
42
|
+
this._textToBitmap = new Map();
|
|
43
|
+
this._bitmapUsage = new Map();
|
|
44
|
+
// Raster properties
|
|
45
|
+
this.smoothing = (_a = options === null || options === void 0 ? void 0 : options.smoothing) !== null && _a !== void 0 ? _a : this.smoothing;
|
|
46
|
+
this.padding = (_b = options === null || options === void 0 ? void 0 : options.padding) !== null && _b !== void 0 ? _b : this.padding;
|
|
47
|
+
this.color = (_c = options === null || options === void 0 ? void 0 : options.color) !== null && _c !== void 0 ? _c : this.color;
|
|
48
|
+
this.strokeColor = (_d = options === null || options === void 0 ? void 0 : options.strokeColor) !== null && _d !== void 0 ? _d : this.strokeColor;
|
|
49
|
+
this.lineDash = (_e = options === null || options === void 0 ? void 0 : options.lineDash) !== null && _e !== void 0 ? _e : this.lineDash;
|
|
50
|
+
this.lineWidth = (_f = options === null || options === void 0 ? void 0 : options.lineWidth) !== null && _f !== void 0 ? _f : this.lineWidth;
|
|
51
|
+
// Font specific properts
|
|
52
|
+
this.family = (_g = options === null || options === void 0 ? void 0 : options.family) !== null && _g !== void 0 ? _g : this.family;
|
|
53
|
+
this.style = (_h = options === null || options === void 0 ? void 0 : options.style) !== null && _h !== void 0 ? _h : this.style;
|
|
54
|
+
this.bold = (_j = options === null || options === void 0 ? void 0 : options.bold) !== null && _j !== void 0 ? _j : this.bold;
|
|
55
|
+
this.size = (_k = options === null || options === void 0 ? void 0 : options.size) !== null && _k !== void 0 ? _k : this.size;
|
|
56
|
+
this.unit = (_l = options === null || options === void 0 ? void 0 : options.unit) !== null && _l !== void 0 ? _l : this.unit;
|
|
57
|
+
this.textAlign = (_m = options === null || options === void 0 ? void 0 : options.textAlign) !== null && _m !== void 0 ? _m : this.textAlign;
|
|
58
|
+
this.baseAlign = (_o = options === null || options === void 0 ? void 0 : options.baseAlign) !== null && _o !== void 0 ? _o : this.baseAlign;
|
|
59
|
+
this.direction = (_p = options === null || options === void 0 ? void 0 : options.direction) !== null && _p !== void 0 ? _p : this.direction;
|
|
60
|
+
this.quality = (_q = options === null || options === void 0 ? void 0 : options.quality) !== null && _q !== void 0 ? _q : this.quality;
|
|
40
61
|
if (options === null || options === void 0 ? void 0 : options.shadow) {
|
|
41
62
|
this.shadow = {};
|
|
42
|
-
this.shadow.blur = (
|
|
43
|
-
this.shadow.offset = (
|
|
44
|
-
this.shadow.color = (
|
|
63
|
+
this.shadow.blur = (_r = options.shadow.blur) !== null && _r !== void 0 ? _r : this.shadow.blur;
|
|
64
|
+
this.shadow.offset = (_s = options.shadow.offset) !== null && _s !== void 0 ? _s : this.shadow.offset;
|
|
65
|
+
this.shadow.color = (_t = options.shadow.color) !== null && _t !== void 0 ? _t : this.shadow.color;
|
|
45
66
|
}
|
|
46
|
-
this.flagDirty();
|
|
47
67
|
}
|
|
48
68
|
clone() {
|
|
49
69
|
return new Font({
|
|
50
70
|
...this.cloneGraphicOptions(),
|
|
51
|
-
...this.cloneRasterOptions(),
|
|
52
71
|
size: this.size,
|
|
53
72
|
unit: this.unit,
|
|
54
73
|
family: this.family,
|
|
@@ -69,42 +88,11 @@ export class Font extends Raster {
|
|
|
69
88
|
get fontString() {
|
|
70
89
|
return `${this.style} ${this.bold ? 'bold' : ''} ${this.size}${this.unit} ${this.family}`;
|
|
71
90
|
}
|
|
72
|
-
get width() {
|
|
73
|
-
return this._textWidth;
|
|
74
|
-
}
|
|
75
|
-
set width(value) {
|
|
76
|
-
this._textWidth = value;
|
|
77
|
-
}
|
|
78
|
-
get height() {
|
|
79
|
-
var _a, _b;
|
|
80
|
-
const numLines = (_b = (_a = this._lines) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 1;
|
|
81
|
-
return this._textHeight * numLines;
|
|
82
|
-
}
|
|
83
|
-
set height(value) {
|
|
84
|
-
var _a, _b;
|
|
85
|
-
const numLines = (_b = (_a = this._lines) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 1;
|
|
86
|
-
this._textHeight = value / numLines;
|
|
87
|
-
}
|
|
88
|
-
get _rasterWidth() {
|
|
89
|
-
return this._bitmap.width;
|
|
90
|
-
}
|
|
91
|
-
get _rasterHeight() {
|
|
92
|
-
return this._bitmap.height;
|
|
93
|
-
}
|
|
94
|
-
get _halfRasterWidth() {
|
|
95
|
-
return Math.floor(this._bitmap.width / 2);
|
|
96
|
-
}
|
|
97
|
-
get _halfRasterHeight() {
|
|
98
|
-
return Math.floor(this._bitmap.height / 2);
|
|
99
|
-
}
|
|
100
91
|
get localBounds() {
|
|
101
92
|
return this._textBounds;
|
|
102
93
|
}
|
|
103
|
-
_drawImage(
|
|
104
|
-
|
|
105
|
-
this.rasterize();
|
|
106
|
-
}
|
|
107
|
-
ex.drawImage(this._bitmap, 0, 0, this._rasterWidth, this._rasterHeight, x - this._rasterWidth / this.quality / 2, y - this._rasterHeight / this.quality / 2, this._rasterWidth / this.quality, this._rasterHeight / this.quality);
|
|
94
|
+
_drawImage(_ex, _x, _y) {
|
|
95
|
+
// TODO weird vestigial drawimage
|
|
108
96
|
}
|
|
109
97
|
_rotate(ex) {
|
|
110
98
|
var _a;
|
|
@@ -124,58 +112,80 @@ export class Font extends Raster {
|
|
|
124
112
|
ex.scale(1, -1);
|
|
125
113
|
}
|
|
126
114
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
const bottomBounds = lineAdjustedHeight - Math.abs(metrics.actualBoundingBoxAscent);
|
|
156
|
-
this._textBounds = new BoundingBox({
|
|
157
|
-
left: x - Math.abs(metrics.actualBoundingBoxLeft) - this.padding,
|
|
158
|
-
top: y - Math.abs(metrics.actualBoundingBoxAscent) - this.padding,
|
|
159
|
-
bottom: y + bottomBounds + this.padding,
|
|
160
|
-
right: x + Math.abs(metrics.actualBoundingBoxRight) + this.padding
|
|
161
|
-
});
|
|
162
|
-
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns a BoundingBox that is the total size of the text including mutliple lines
|
|
117
|
+
*
|
|
118
|
+
* Does not include any padding or adjustment
|
|
119
|
+
* @param text
|
|
120
|
+
* @returns BoundingBox
|
|
121
|
+
*/
|
|
122
|
+
measureText(text) {
|
|
123
|
+
const lines = text.split('\n');
|
|
124
|
+
const maxWidthLine = lines.reduce((a, b) => {
|
|
125
|
+
return a.length > b.length ? a : b;
|
|
126
|
+
});
|
|
127
|
+
const ctx = this._getTextBitmap(text);
|
|
128
|
+
this._applyFont(ctx); // font must be applied to the context to measure it
|
|
129
|
+
const metrics = ctx.measureText(maxWidthLine);
|
|
130
|
+
let textHeight = Math.abs(metrics.actualBoundingBoxAscent) + Math.abs(metrics.actualBoundingBoxDescent);
|
|
131
|
+
// TODO lineheight makes the text bounds wonky
|
|
132
|
+
const lineAdjustedHeight = textHeight * lines.length;
|
|
133
|
+
textHeight = lineAdjustedHeight;
|
|
134
|
+
const bottomBounds = lineAdjustedHeight - Math.abs(metrics.actualBoundingBoxAscent);
|
|
135
|
+
const x = 0;
|
|
136
|
+
const y = 0;
|
|
137
|
+
return new BoundingBox({
|
|
138
|
+
left: x - Math.abs(metrics.actualBoundingBoxLeft) - this.padding,
|
|
139
|
+
top: y - Math.abs(metrics.actualBoundingBoxAscent) - this.padding,
|
|
140
|
+
bottom: y + bottomBounds + this.padding,
|
|
141
|
+
right: x + Math.abs(metrics.actualBoundingBoxRight) + this.padding
|
|
142
|
+
});
|
|
163
143
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
144
|
+
_setDimension(text, bitmap) {
|
|
145
|
+
const textBounds = this.measureText(text);
|
|
146
|
+
// Changing the width and height clears the context properties
|
|
147
|
+
// We double the bitmap width to account for all possible alignment
|
|
148
|
+
// We scale by "quality" so we render text without jaggies
|
|
149
|
+
bitmap.canvas.width = (textBounds.width + this.padding * 2) * 2 * this.quality;
|
|
150
|
+
bitmap.canvas.height = (textBounds.height + this.padding * 2) * 2 * this.quality;
|
|
151
|
+
return textBounds;
|
|
169
152
|
}
|
|
170
153
|
_postDraw(ex) {
|
|
171
|
-
if (this.showDebug) {
|
|
172
|
-
/* istanbul ignore next */
|
|
173
|
-
ex.debug.drawRect(-this._halfRasterWidth, -this._halfRasterHeight, this._rasterWidth, this._rasterHeight);
|
|
174
|
-
}
|
|
175
154
|
ex.restore();
|
|
176
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* We need to identify bitmaps with more than just the text content
|
|
158
|
+
*
|
|
159
|
+
* Any properites that can change the rendering of the text
|
|
160
|
+
*/
|
|
161
|
+
_getRasterPropertiesHash(color) {
|
|
162
|
+
var _a, _b;
|
|
163
|
+
const hash = '__hashcode__' +
|
|
164
|
+
this.fontString +
|
|
165
|
+
this.showDebug +
|
|
166
|
+
this.textAlign +
|
|
167
|
+
this.baseAlign +
|
|
168
|
+
this.direction +
|
|
169
|
+
JSON.stringify(this.shadow) +
|
|
170
|
+
(this.padding.toString() +
|
|
171
|
+
this.smoothing.toString() +
|
|
172
|
+
this.lineWidth.toString() +
|
|
173
|
+
this.lineDash.toString() +
|
|
174
|
+
((_a = this.strokeColor) === null || _a === void 0 ? void 0 : _a.toString()) +
|
|
175
|
+
(color ? color.toString() : (_b = this.color) === null || _b === void 0 ? void 0 : _b.toString()).toString());
|
|
176
|
+
return hash;
|
|
177
|
+
}
|
|
178
|
+
_applyRasterProperites(ctx, color) {
|
|
179
|
+
var _a, _b, _c;
|
|
180
|
+
ctx.translate(this.padding, this.padding);
|
|
181
|
+
ctx.imageSmoothingEnabled = this.smoothing;
|
|
182
|
+
ctx.lineWidth = this.lineWidth;
|
|
183
|
+
ctx.setLineDash((_a = this.lineDash) !== null && _a !== void 0 ? _a : ctx.getLineDash());
|
|
184
|
+
ctx.strokeStyle = (_b = this.strokeColor) === null || _b === void 0 ? void 0 : _b.toString();
|
|
185
|
+
ctx.fillStyle = color ? color.toString() : (_c = this.color) === null || _c === void 0 ? void 0 : _c.toString();
|
|
186
|
+
}
|
|
177
187
|
_applyFont(ctx) {
|
|
178
|
-
ctx.translate(this.padding +
|
|
188
|
+
ctx.translate(this.padding + ctx.canvas.width / 2, this.padding + ctx.canvas.height / 2);
|
|
179
189
|
ctx.scale(this.quality, this.quality);
|
|
180
190
|
ctx.textAlign = this.textAlign;
|
|
181
191
|
ctx.textBaseline = this.baseAlign;
|
|
@@ -188,34 +198,85 @@ export class Font extends Raster {
|
|
|
188
198
|
ctx.shadowOffsetY = this.shadow.offset.y;
|
|
189
199
|
}
|
|
190
200
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (this.color) {
|
|
200
|
-
ctx.fillText(line, 0, i * lineHeight);
|
|
201
|
-
}
|
|
202
|
-
if (this.strokeColor) {
|
|
203
|
-
ctx.strokeText(line, 0, i * lineHeight);
|
|
204
|
-
}
|
|
201
|
+
_drawText(ctx, text, colorOverride, lineHeight) {
|
|
202
|
+
const lines = text.split('\n');
|
|
203
|
+
this._applyRasterProperites(ctx, colorOverride);
|
|
204
|
+
this._applyFont(ctx);
|
|
205
|
+
for (let i = 0; i < lines.length; i++) {
|
|
206
|
+
const line = lines[i];
|
|
207
|
+
if (this.color) {
|
|
208
|
+
ctx.fillText(line, 0, i * lineHeight);
|
|
205
209
|
}
|
|
206
|
-
if (this.
|
|
207
|
-
|
|
208
|
-
/* istanbul ignore next */
|
|
209
|
-
line(ctx, Color.Red, -this._halfRasterWidth, 0, this._halfRasterWidth, 0, 2);
|
|
210
|
-
// Vertical line
|
|
211
|
-
/* istanbul ignore next */
|
|
212
|
-
line(ctx, Color.Red, 0, -this._halfRasterHeight, 0, this._halfRasterHeight, 2);
|
|
210
|
+
if (this.strokeColor) {
|
|
211
|
+
ctx.strokeText(line, 0, i * lineHeight);
|
|
213
212
|
}
|
|
214
213
|
}
|
|
214
|
+
if (this.showDebug) {
|
|
215
|
+
// Horizontal line
|
|
216
|
+
/* istanbul ignore next */
|
|
217
|
+
line(ctx, Color.Red, -ctx.canvas.width / 2, 0, ctx.canvas.width / 2, 0, 2);
|
|
218
|
+
// Vertical line
|
|
219
|
+
/* istanbul ignore next */
|
|
220
|
+
line(ctx, Color.Red, 0, -ctx.canvas.height / 2, 0, ctx.canvas.height / 2, 2);
|
|
221
|
+
}
|
|
215
222
|
}
|
|
216
|
-
|
|
217
|
-
this.
|
|
218
|
-
this.
|
|
223
|
+
_getTextBitmap(text, color) {
|
|
224
|
+
const textAndHash = text + this._getRasterPropertiesHash(color);
|
|
225
|
+
const bitmap = this._textToBitmap.get(textAndHash);
|
|
226
|
+
if (bitmap) {
|
|
227
|
+
return bitmap;
|
|
228
|
+
}
|
|
229
|
+
const canvas = document.createElement('canvas');
|
|
230
|
+
const ctx = canvas.getContext('2d');
|
|
231
|
+
this._textToBitmap.set(textAndHash, ctx);
|
|
232
|
+
return ctx;
|
|
233
|
+
}
|
|
234
|
+
render(ex, text, colorOverride, x, y) {
|
|
235
|
+
if (this.showDebug) {
|
|
236
|
+
this.clearCache();
|
|
237
|
+
}
|
|
238
|
+
this.checkAndClearCache();
|
|
239
|
+
const bitmap = this._getTextBitmap(text, colorOverride);
|
|
240
|
+
const bounds = this._setDimension(text, bitmap);
|
|
241
|
+
this._textBounds = bounds;
|
|
242
|
+
bitmap.canvas.width = (bounds.width + this.padding * 2) * 2 * this.quality;
|
|
243
|
+
bitmap.canvas.height = (bounds.height + this.padding * 2) * 2 * this.quality;
|
|
244
|
+
this._preDraw(ex, x, y);
|
|
245
|
+
const lines = text.split('\n');
|
|
246
|
+
const lineHeight = bounds.height / lines.length;
|
|
247
|
+
// draws the text to the bitmap
|
|
248
|
+
this._drawText(bitmap, text, colorOverride, lineHeight);
|
|
249
|
+
// Cache the bitmap for certain amount of time
|
|
250
|
+
this._bitmapUsage.set(bitmap, performance.now());
|
|
251
|
+
const rasterWidth = bitmap.canvas.width;
|
|
252
|
+
const rasterHeight = bitmap.canvas.height;
|
|
253
|
+
// draws the bitmap to excalibur graphics context
|
|
254
|
+
ex.drawImage(bitmap.canvas, 0, 0, rasterWidth, rasterHeight, x - rasterWidth / this.quality / 2, y - rasterHeight / this.quality / 2, rasterWidth / this.quality, rasterHeight / this.quality);
|
|
255
|
+
this._postDraw(ex);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get the internal cache size of the font
|
|
259
|
+
* This is useful when debugging memory useage, these numbers indicate the number of cached in memory text bitmaps
|
|
260
|
+
*/
|
|
261
|
+
get cacheSize() {
|
|
262
|
+
return this._bitmapUsage.size;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Force clear all cached text bitmaps
|
|
266
|
+
*/
|
|
267
|
+
clearCache() {
|
|
268
|
+
this._bitmapUsage.clear();
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Remove any expired cached text bitmaps
|
|
272
|
+
*/
|
|
273
|
+
checkAndClearCache() {
|
|
274
|
+
for (const [bitmap, time] of this._bitmapUsage.entries()) {
|
|
275
|
+
// if bitmap hasn't been used in 1 second clear it
|
|
276
|
+
if (time + 1000 < performance.now()) {
|
|
277
|
+
this._bitmapUsage.delete(bitmap);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
219
280
|
}
|
|
220
281
|
}
|
|
221
282
|
//# sourceMappingURL=Font.js.map
|