diff --git a/src/core/text-rendering/CanvasFontHandler.ts b/src/core/text-rendering/CanvasFontHandler.ts index 83f7f6c..3c15ce2 100644 --- a/src/core/text-rendering/CanvasFontHandler.ts +++ b/src/core/text-rendering/CanvasFontHandler.ts @@ -117,7 +117,7 @@ export const getFontFamilies = (): FontFamilyMap => { */ export const init = ( c: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, - mc: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, + mc?: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, ): void => { if (initialized === true) { return; @@ -130,7 +130,7 @@ export const init = ( } context = c; - measureContext = mc; + measureContext = mc ?? c; // Register the default 'sans-serif' font face const defaultMetrics: FontMetrics = { diff --git a/src/core/text-rendering/CanvasTextRenderer.ts b/src/core/text-rendering/CanvasTextRenderer.ts index 297e58d..8faa36a 100644 --- a/src/core/text-rendering/CanvasTextRenderer.ts +++ b/src/core/text-rendering/CanvasTextRenderer.ts @@ -1,6 +1,10 @@ import { assertTruthy } from '../../utils.js'; import type { Stage } from '../Stage.js'; -import type { TextLineStruct, TextRenderInfo } from './TextRenderer.js'; +import type { + FontHandler, + TextLineStruct, + TextRenderInfo, +} from './TextRenderer.js'; import * as CanvasFontHandler from './CanvasFontHandler.js'; import type { CoreTextNodeProps } from '../CoreTextNode.js'; import { hasZeroWidthSpace } from './Utils.js'; @@ -9,6 +13,7 @@ import { mapTextLayout } from './TextLayoutEngine.js'; const MAX_TEXTURE_DIMENSION = 4096; const type = 'canvas' as const; +const font: FontHandler = CanvasFontHandler; let canvas: HTMLCanvasElement | OffscreenCanvas | null = null; let context: @@ -238,7 +243,7 @@ const renderQuads = (): void => { */ const CanvasTextRenderer = { type, - font: CanvasFontHandler, + font, renderText, addQuads, renderQuads,