Skip to content

Commit 342c832

Browse files
Use HTMLCanvasElement instead of OffscreenCanvas if it isn't available. (#40)
- This allows the Renderer to run on devices that do not support OffscreenCanvas which is not available in prior to Chrome 69 / WPE 2.38
2 parents b9a3563 + f94f185 commit 342c832

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

src/core/text-rendering/renderers/CanvasTextRenderer.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,18 @@ export interface CanvasTextRendererState extends TextRendererState {
8585
}
8686

8787
export class CanvasTextRenderer extends TextRenderer<CanvasTextRendererState> {
88-
protected canvas: OffscreenCanvas;
89-
protected context: OffscreenCanvasRenderingContext2D;
88+
protected canvas: OffscreenCanvas | HTMLCanvasElement;
89+
protected context:
90+
| OffscreenCanvasRenderingContext2D
91+
| CanvasRenderingContext2D;
9092

9193
constructor(stage: Stage) {
9294
super(stage);
93-
this.canvas = new OffscreenCanvas(0, 0);
95+
if (typeof OffscreenCanvas !== 'undefined') {
96+
this.canvas = new OffscreenCanvas(0, 0);
97+
} else {
98+
this.canvas = document.createElement('canvas');
99+
}
94100
const context = this.canvas.getContext('2d');
95101
assertTruthy(context);
96102
this.context = context;

src/core/text-rendering/renderers/LightningTextTextureRenderer.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,16 @@ export interface RenderInfo {
126126
}
127127

128128
export class LightningTextTextureRenderer {
129-
private _canvas: OffscreenCanvas;
130-
private _context: OffscreenCanvasRenderingContext2D;
129+
private _canvas: OffscreenCanvas | HTMLCanvasElement;
130+
private _context:
131+
| OffscreenCanvasRenderingContext2D
132+
| CanvasRenderingContext2D;
131133
private _settings: Settings;
132134
private renderInfo: RenderInfo | undefined;
133135

134136
constructor(
135-
canvas: OffscreenCanvas,
136-
context: OffscreenCanvasRenderingContext2D,
137+
canvas: OffscreenCanvas | HTMLCanvasElement,
138+
context: OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D,
137139
) {
138140
this._canvas = canvas;
139141
this._context = context;

0 commit comments

Comments
 (0)