← All packages

API reference

@searsuite/sear-render-context

Platform-neutral drawing contracts with Web Canvas, SVG, WebGL, and headless adapters.

20 exportsderived from source

classCoordinateTransformersource ↗
class CoordinateTransformer

Single authority for host-view, world, and raster coordinate conversion.

constructorconstructor
CoordinateTransformer(scrollManager: ScrollManager, renderContext: RenderContext, hitRenderContext: RenderContext): CoordinateTransformer

Creates a CoordinateTransformer instance.

scrollManager: ScrollManager
renderContext: RenderContext
hitRenderContext: RenderContext
propertysymbolstatic
readonly symbol: symbol

DI token for resolving the host-neutral coordinate transformer.

methodgetVisibleWorldRect
getVisibleWorldRect(): PositionRect<unknown>

Returns the visible world rect.

methodviewToRaster
viewToRaster(point: CoordinatePoint): CoordinatePoint

Converts a host-view point into raster coordinates for pixel reads.

point: CoordinatePoint
methodviewToWorld
viewToWorld(point: CoordinatePoint, scroll?: Pick<ScrollManagerState, "x" | "y">): CoordinatePoint

Converts a host-view point into world coordinates.

point: CoordinatePoint
scroll: Pick<ScrollManagerState, "x" | "y">
methodworldToView
worldToView(point: CoordinatePoint, scroll?: Pick<ScrollManagerState, "x" | "y">): CoordinatePoint

Converts a world point into host-view coordinates.

point: CoordinatePoint
scroll: Pick<ScrollManagerState, "x" | "y">
classHeadlessRenderContextsource ↗
class HeadlessRenderContext extends RenderContext

Render context that preserves engine state while producing no raster output.

constructorconstructor
HeadlessRenderContext(): HeadlessRenderContext
propertysymbolstatic
readonly symbol: symbol

DI token for resolving the headless render context.

methodaddClickEventListener
addClickEventListener(_callback: (event: EventWithOffset): void): void

Attaches a click listener.

_callback: (event: EventWithOffset): void
methodaddEventListener
addEventListener(_type: string, _callback: (event: EventWithOffset): void): (): void

Attaches a normalized event listener and returns an idempotent disposer.

_type: string
_callback: (event: EventWithOffset): void
methodaddMouseDownEventListener
addMouseDownEventListener(_callback: (event: EventWithOffset): void): void

Attaches a pointer-press listener.

_callback: (event: EventWithOffset): void
methodaddMouseMoveEventListener
addMouseMoveEventListener(_callback: (event: EventWithOffset): void): void

Attaches a pointer-move listener.

_callback: (event: EventWithOffset): void
methodaddMouseUpEventListener
addMouseUpEventListener(_callback: (event: EventWithOffset): void): void

Attaches a pointer-release listener.

_callback: (event: EventWithOffset): void
methodaddResizeListener
addResizeListener(_callback: (): void): void

Attaches a resize listener for host target size changes.

_callback: (): void
methodbeginPath
beginPath(): void

Begins a new path.

methodclearRect
clearRect(_x: number, _y: number, _width: number, _height: number): void

Clears a rectangle from the target.

_x: number
_y: number
_width: number
_height: number
methodclip
clip(): void

Clips future drawing to the active path.

methodcloneNode
cloneNode(): RenderContext

Creates a same-kind render context for an auxiliary render layer.

methodclosePath
closePath(): void

Closes the active path.

methodcreateHitNode
createHitNode(): RenderContext

Creates a same-kind render context configured for hit testing.

methoddrawImage
drawImage(_image: unknown, _x: number, _y: number): void drawImage(_image: unknown, _x: number, _y: number, _width: number, _height: number): void drawImage(_image: unknown, _x: number, _y: number, _width: number, _height: number, _sx: number, _sy: number, _sWidth: number, _sHeight: number): void

Draws an image at its natural size.

_image: unknown
_x: number
_y: number
_width: number
_height: number
_sx: number
_sy: number
_sWidth: number
_sHeight: number
methodfill
fill(): void

Fills the active path with the current fill style.

methodfillText
fillText(_text: string, _x: number, _y: number, _maxWidth?: number): void

Draws text at the given position.

_text: string
_x: number
_y: number
_maxWidth: number
methodgetAttribute
getAttribute(name: string): string

Reads a host-visible attribute from the backing target.

name: string
methodgetImageData
getImageData(_x: number, _y: number, width: number, height: number): RenderImageData

Reads raster pixels from the target.

_x: number
_y: number
width: number
height: number
methodgetLineWidth
getLineWidth(): number

Returns the current stroke line width.

methodgetMaxLineWidth
getMaxLineWidth(): number

Returns the largest stroke width tracked for erase padding.

methodgetRasterScale
getRasterScale(): number

Raster units represented by one host-view unit for this context.

methodgetRenderTarget
getRenderTarget(): unknown

Returns the native backing target owned by this render context.

methodgetRoot
getRoot(): unknown

Returns the event root associated with this render context.

methodgetViewScale
getViewScale(): number

Returns the current logical view scale.

methodinitialize
initialize(scale?: number): void

Initializes target sizing and adapter-specific state.

scale: number
methodlineTo
lineTo(_x: number, _y: number): void

Adds a line from the current path cursor.

_x: number
_y: number
methodmeasureText
measureText(text: string): { height: number; width: number }

Measures text using the active font and returns normalized metrics.

text: string
methodmoveTo
moveTo(_x: number, _y: number): void

Moves the active path cursor.

_x: number
_y: number
methodputImageData
putImageData(_imageData: RenderImageData, _x: number, _y: number): void

Writes raster pixels to the target.

_imageData: RenderImageData
_x: number
_y: number
methodrect
rect(_x: number, _y: number, _width: number, _height: number): void

Adds a rectangle to the active path.

_x: number
_y: number
_width: number
_height: number
methodremoveClickEventListener
removeClickEventListener(_callback: (event: EventWithOffset): void): void

Removes a click listener.

_callback: (event: EventWithOffset): void
methodremoveMouseDownEventListener
removeMouseDownEventListener(_callback: (event: EventWithOffset): void): void

Removes a pointer-press listener.

_callback: (event: EventWithOffset): void
methodremoveMouseMoveEventListener
removeMouseMoveEventListener(_callback: (event: EventWithOffset): void): void

Removes a pointer-move listener.

_callback: (event: EventWithOffset): void
methodremoveMouseUpEventListener
removeMouseUpEventListener(_callback: (event: EventWithOffset): void): void

Removes a pointer-release listener.

_callback: (event: EventWithOffset): void
methodremoveResizeListener
removeResizeListener(): void

Removes the active resize listener, if any.

methodresetTransform
resetTransform(): void

Resets the current transform to the identity transform.

methodresize
resize(_width: number, _height: number, scale?: number): void

Resizes the backing render target to the host view's logical size and raster scale.

_width: number
_height: number
scale: number
methodrestore
restore(): void

Restores the most recently saved drawing state.

methodsave
save(): void

Saves the current drawing state.

methodsetAttribute
setAttribute(name: string, value: string): void

Sets a host-visible attribute on the backing target.

name: string
value: string
methodsetFillStyle
setFillStyle(_fillStyle: RenderPaint): void

Sets the current fill style.

_fillStyle: RenderPaint
methodsetFont
setFont(_font: string): void

Sets the active platform-neutral font descriptor.

_font: string
methodsetLineDash
setLineDash(_segments: number[]): void

Sets the current line dash pattern.

_segments: number[]
methodsetLineWidth
setLineWidth(width: number): void

Sets the current stroke line width.

width: number
methodsetStrokeStyle
setStrokeStyle(_strokeStyle: RenderPaint): void

Sets the current stroke style.

_strokeStyle: RenderPaint
methodsetTransform
setTransform(_a: number, _b: number, _c: number, _d: number, _e: number, _f: number): void

Replaces the current transform matrix.

_a: number
_b: number
_c: number
_d: number
_e: number
_f: number
methodsetViewScale
setViewScale(scale: number): void

Logical view scale (distinct from device pixel ratio).

scale: number
methodstroke
stroke(): void

Strokes the active path with the current stroke style.

methodstrokeRect
strokeRect(_x: number, _y: number, _width: number, _height: number): void

Strokes a rectangle without requiring a separate path.

_x: number
_y: number
_width: number
_height: number
methodtranslate
translate(_x: number, _y: number): void

Translates the current drawing transform.

_x: number
_y: number
Inherited members 10

Inherited from RenderContext.

classRenderContextsource ↗
class RenderContext

Platform-neutral immediate-mode drawing contract used by render strategies.

Concrete render targets implement this shape so scene nodes and strategies can draw without depending on host-specific APIs.

constructorconstructor
RenderContext(): RenderContext
propertyisDrawn
isDrawn: boolean

Whether the target has received at least one draw operation.

propertyhitSymbolstatic
readonly hitSymbol: symbol

DI token for the hit-test render layer.

propertyoffScreenSymbolstatic
readonly offScreenSymbol: symbol

DI token for the scroll-optimization render layer.

propertysymbolstatic
readonly symbol: symbol

DI token for the primary visible render layer.

methodaddClickEventListener
addClickEventListener(callBack: (event: EventWithOffset): void): void

Attaches a click listener.

callBack: (event: EventWithOffset): void
methodaddEventListener
addEventListener(type: string, callBack: (event: EventWithOffset): void): (): void

Attaches a normalized event listener and returns an idempotent disposer.

type: string
callBack: (event: EventWithOffset): void
methodaddMouseDownEventListener
addMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-press listener.

callBack: (event: EventWithOffset): void
methodaddMouseMoveEventListener
addMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-move listener.

callBack: (event: EventWithOffset): void
methodaddMouseUpEventListener
addMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-release listener.

callBack: (event: EventWithOffset): void
methodaddResizeListener
addResizeListener(callBack: (): void): void

Attaches a resize listener for host target size changes.

callBack: (): void
methodbeginFrame
beginFrame(): void

Starts a new render frame when the target rebuilds its visual state.

methodbeginNodeSemantics
beginNodeSemantics(_semantics: RenderNodeSemantics): void

Marks subsequent drawing operations as belonging to one semantic scene node.

_semantics: RenderNodeSemantics
methodbeginPath
beginPath(): void

Begins a new path.

methodclearRect
clearRect(x: number, y: number, width: number, height: number): void

Clears a rectangle from the target.

x: number
y: number
width: number
height: number
methodclip
clip(): void

Clips future drawing to the active path.

methodcloneNode
cloneNode(): RenderContext

Creates a same-kind render context for an auxiliary render layer.

methodclosePath
closePath(): void

Closes the active path.

methodcreateHitNode
createHitNode(): RenderContext

Creates a same-kind render context configured for hit testing.

methoddrawImage
drawImage(image: unknown, x: number, y: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): void

Draws an image at its natural size.

image: unknown
x: number
y: number
width: number
height: number
sx: number
sy: number
sWidth: number
sHeight: number
methodendNodeSemantics
endNodeSemantics(): void

Ends the semantic scene-node boundary started by beginNodeSemantics.

methodfill
fill(): void

Fills the active path with the current fill style.

methodfillText
fillText(text: string, x: number, y: number, maxWidth?: number): void

Draws text at the given position.

text: string
x: number
y: number
maxWidth: number
methodgetAttribute
getAttribute(name: string): string

Reads a host-visible attribute from the backing target.

name: string
methodgetImageData
getImageData(x: number, y: number, width: number, height: number): RenderImageData

Reads raster pixels from the target.

x: number
y: number
width: number
height: number
methodgetLineWidth
getLineWidth(): number

Returns the current stroke line width.

methodgetMaxLineWidth
getMaxLineWidth(): number

Returns the largest stroke width tracked for erase padding.

methodgetRasterScale
getRasterScale(): number

Raster units represented by one host-view unit for this context.

methodgetRenderTarget
getRenderTarget(): unknown

Returns the native backing target owned by this render context.

methodgetRoot
getRoot(): unknown

Returns the event root associated with this render context.

methodgetViewScale
getViewScale(): number

Returns the current logical view scale.

methodinitialize
initialize(scale?: number): void

Initializes target sizing and adapter-specific state.

scale: number
methodlineTo
lineTo(x: number, y: number): void

Adds a line from the current path cursor.

x: number
y: number
methodmeasureText
measureText(text: string): { fontAscent?: number; fontDescent?: number; fontLineGap?: number; height: number; width: number }

Measures text using the active font and returns normalized metrics.

text: string
methodmoveTo
moveTo(x: number, y: number): void

Moves the active path cursor.

x: number
y: number
methodputImageData
putImageData(imageData: RenderImageData, x: number, y: number): void

Writes raster pixels to the target.

imageData: RenderImageData
x: number
y: number
methodrect
rect(x: number, y: number, width: number, height: number): void

Adds a rectangle to the active path.

x: number
y: number
width: number
height: number
methodremoveClickEventListener
removeClickEventListener(callBack: (event: EventWithOffset): void): void

Removes a click listener.

callBack: (event: EventWithOffset): void
methodremoveMouseDownEventListener
removeMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-press listener.

callBack: (event: EventWithOffset): void
methodremoveMouseMoveEventListener
removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-move listener.

callBack: (event: EventWithOffset): void
methodremoveMouseUpEventListener
removeMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-release listener.

callBack: (event: EventWithOffset): void
methodremoveResizeListener
removeResizeListener(): void

Removes the active resize listener, if any.

methodrequiresExplicitNodeClear
requiresExplicitNodeClear(): boolean

Whether an existing node must erase its prior output before it is redrawn.

methodrequiresFrameRebuild
requiresFrameRebuild(): boolean

Whether the target must rebuild a complete visual frame instead of reusing a pixel cache.

methodresetHitFrame
resetHitFrame(width: number, height: number): void

Resets the complete hit-test frame using the target's native lifecycle.

width: number
height: number
methodresetTransform
resetTransform(): void

Resets the current transform to the identity transform.

methodresize
resize(width: number, height: number, scale?: number): void

Resizes the backing render target to the host view's logical size and raster scale.

width: number
height: number
scale: number
methodrestore
restore(): void

Restores the most recently saved drawing state.

methodsave
save(): void

Saves the current drawing state.

methodsetAttribute
setAttribute(name: string, value: string): void

Sets a host-visible attribute on the backing target.

name: string
value: string
methodsetFillStyle
setFillStyle(fillStyle: RenderPaint): void

Sets the current fill style.

fillStyle: RenderPaint
methodsetFont
setFont(font: string): void

Sets the active platform-neutral font descriptor.

font: string
methodsetLineDash
setLineDash(segments: number[]): void

Sets the current line dash pattern.

segments: number[]
methodsetLineWidth
setLineWidth(width: number): void

Sets the current stroke line width.

width: number
methodsetStrokeStyle
setStrokeStyle(strokeStyle: RenderPaint): void

Sets the current stroke style.

strokeStyle: RenderPaint
methodsetTransform
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void

Replaces the current transform matrix.

a: number
b: number
c: number
d: number
e: number
f: number
methodsetViewScale
setViewScale(scale: number): void

Logical view scale (distinct from device pixel ratio).

scale: number
methodstroke
stroke(): void

Strokes the active path with the current stroke style.

methodstrokeRect
strokeRect(x: number, y: number, width: number, height: number): void

Strokes a rectangle without requiring a separate path.

x: number
y: number
width: number
height: number
methodsupportsDirtyRedraw
supportsDirtyRedraw(): boolean

Whether the target can apply a redraw to only its accumulated dirty regions.

methodtranslate
translate(x: number, y: number): void

Translates the current drawing transform.

x: number
y: number
classWebCanvasRenderContextsource ↗
class WebCanvasRenderContext extends RenderContext

Browser Canvas2D implementation of the platform-neutral RenderContext.

The context keeps device-pixel-ratio and logical view scale separate so render strategies can work in shared world/view coordinates while the canvas writes to the correct raster backing store.

constructorconstructor
WebCanvasRenderContext(renderTarget: unknown, readbackOptimized?: boolean, platform?: Platform): WebCanvasRenderContext

Constructs a Canvas render context from a host canvas.

renderTarget: unknown

HTMLCanvasElement supplied by the host adapter.

readbackOptimized: boolean
platform: Platform
propertysymbolstatic
readonly symbol: symbol

DI token for resolving the visible canvas render context.

methodaddClickEventListener
addClickEventListener(callBack: (event: EventWithOffset): void): void

Attaches a click listener.

callBack: (event: EventWithOffset): void
methodaddEventListener
addEventListener(type: string, callBack: (event: EventWithOffset): void): (): void

Registers a host pointer event listener on the canvas root.

type: string
callBack: (event: EventWithOffset): void
methodaddMouseDownEventListener
addMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-press listener.

callBack: (event: EventWithOffset): void
methodaddMouseMoveEventListener
addMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-move listener.

callBack: (event: EventWithOffset): void
methodaddMouseUpEventListener
addMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-release listener.

callBack: (event: EventWithOffset): void
methodaddResizeListener
addResizeListener(callBack: (): void): void

Attaches a resize listener for host target size changes.

callBack: (): void
methodbeginPath
beginPath(): void

Begins a new path.

methodclearRect
clearRect(x: number, y: number, width: number, height: number): void

Clears a rectangle from the target.

x: number
y: number
width: number
height: number
methodclip
clip(): void

Clips future drawing to the active path.

methodcloneNode
cloneNode(): WebCanvasRenderContext

Clones the backing canvas dimensions into a detached WebCanvasRenderContext.

methodclosePath
closePath(): void

Closes the active path.

methodcreateHitNode
createHitNode(): WebCanvasRenderContext

Creates a detached render context used by hit rendering.

methoddrawImage
drawImage(image: unknown, x: number, y: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): void

Draws an image at its natural size.

image: unknown
x: number
y: number
width: number
height: number
sx: number
sy: number
sWidth: number
sHeight: number
methodfill
fill(): void

Fills the active path with the current fill style.

methodfillText
fillText(text: string, x: number, y: number, maxWidth?: number): void

Draws text at the given position.

text: string
x: number
y: number
maxWidth: number
methodgetAttribute
getAttribute(name: string): string

Reads a host-visible attribute from the backing target.

name: string
methodgetImageData
getImageData(x: number, y: number, width: number, height: number): { data: [number, number, number, number][]; height: number; width: number }

Reads raster pixels from the target.

x: number
y: number
width: number
height: number
methodgetLineWidth
getLineWidth(): number

Returns the current stroke line width.

methodgetMaxLineWidth
getMaxLineWidth(): number

Returns the largest stroke width tracked for erase padding.

methodgetRasterScale
getRasterScale(): number

Returns the host-view to raster scale, excluding logical sheet zoom.

methodgetRenderTarget
getRenderTarget(): HTMLCanvasElement

Returns the native backing target owned by this render context.

methodgetRoot
getRoot(): HTMLCanvasElement

Returns the event root associated with this render context.

methodgetViewScale
getViewScale(): number

Returns the logical view scale.

methodinitialize
initialize(scale: number): void

Initializes canvas sizing and marks the canvas with the shared render-context token.

scale: number

Device pixel ratio used for backing-store dimensions.

methodlineTo
lineTo(x: number, y: number): void

Adds a line from the current path cursor.

x: number
y: number
methodmeasureText
measureText(text: string): { fontAscent?: number; fontDescent?: number; height: number; width: number }

Measures text using the active font and returns normalized metrics.

text: string
methodmoveTo
moveTo(x: number, y: number): void

Moves the active path cursor.

x: number
y: number
methodputImageData
putImageData(imageData: RenderImageData, x: number, y: number): void

Writes raw pixel data to the backing context.

imageData: RenderImageData

Compact image data shape used by RenderContext.

x: number

Raster x-coordinate.

y: number

Raster y-coordinate.

methodrect
rect(x: number, y: number, width: number, height: number): void

Adds a rectangle to the active path.

x: number
y: number
width: number
height: number
methodremoveClickEventListener
removeClickEventListener(callBack: (event: EventWithOffset): void): void

Removes a click listener.

callBack: (event: EventWithOffset): void
methodremoveMouseDownEventListener
removeMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-press listener.

callBack: (event: EventWithOffset): void
methodremoveMouseMoveEventListener
removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-move listener.

callBack: (event: EventWithOffset): void
methodremoveMouseUpEventListener
removeMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-release listener.

callBack: (event: EventWithOffset): void
methodremoveResizeListener
removeResizeListener(): void

Removes the active resize listener, if any.

methodresetTransform
resetTransform(): void

Resets the current transform to the identity transform.

methodresize
resize(width: number, height: number, scale?: number): void

Resizes the canvas backing store for a logical host viewport.

width: number

Host-view width.

height: number

Host-view height.

scale: number

Raster scale to apply to the backing store.

methodrestore
restore(): void

Restores the most recently saved drawing state.

methodsave
save(): void

Saves the current drawing state.

methodsetAttribute
setAttribute(name: string, value: string): void

Sets a host-visible attribute on the backing target.

name: string
value: string
methodsetFillStyle
setFillStyle(fillStyle: RenderPaint): void

Sets the current fill style.

fillStyle: RenderPaint
methodsetFont
setFont(font: string): void

Sets the active platform-neutral font descriptor.

font: string
methodsetLineDash
setLineDash(segments: number[]): void

Sets the current line dash pattern.

segments: number[]
methodsetLineWidth
setLineWidth(width: number): void

Sets the current stroke line width.

width: number
methodsetStrokeStyle
setStrokeStyle(strokeStyle: RenderPaint): void

Sets the current stroke style.

strokeStyle: RenderPaint
methodsetTransform
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void

Applies a transform in shared view coordinates.

Translation and scale are multiplied by raster and view scale so callers do not need to reason about canvas backing-store pixels.

a: number
b: number
c: number
d: number
e: number
f: number
methodsetViewScale
setViewScale(scale: number): void

Updates the logical view scale used by sheet zoom.

scale: number

New view scale.

methodstroke
stroke(): void

Strokes the active path with the current stroke style.

methodstrokeRect
strokeRect(x: number, y: number, width: number, height: number): void

Strokes a rectangle without requiring a separate path.

x: number
y: number
width: number
height: number
methodtranslate
translate(x: number, y: number): void

Translates the current drawing transform.

x: number
y: number
Inherited members 10

Inherited from RenderContext.

classWebHitCanvasRenderContextsource ↗
class WebHitCanvasRenderContext extends WebCanvasRenderContext

Canvas render context specialization for the hit-test layer.

constructorconstructor
WebHitCanvasRenderContext(renderTarget: unknown, readbackOptimized?: boolean, platform?: Platform): WebHitCanvasRenderContext

Constructs a Canvas render context from a host canvas.

renderTarget: unknown

HTMLCanvasElement supplied by the host adapter.

readbackOptimized: boolean
platform: Platform
propertysymbolstatic
readonly symbol: symbol

DI token for resolving the hit canvas context.

Inherited members 59

Inherited from WebCanvasRenderContext.

classWebOffScreenCanvasRenderContextsource ↗
class WebOffScreenCanvasRenderContext extends WebCanvasRenderContext

Canvas render context specialization for scroll optimization buffers.

constructorconstructor
WebOffScreenCanvasRenderContext(renderTarget: unknown, readbackOptimized?: boolean, platform?: Platform): WebOffScreenCanvasRenderContext

Constructs a Canvas render context from a host canvas.

renderTarget: unknown

HTMLCanvasElement supplied by the host adapter.

readbackOptimized: boolean
platform: Platform
propertysymbolstatic
readonly symbol: symbol

DI token for resolving the off-screen canvas context.

Inherited members 59

Inherited from WebCanvasRenderContext.

classWebRenderContextsource ↗
class WebRenderContext extends RenderContext

Experimental Web-backed render context used for element-based rendering experiments.

constructorconstructor
WebRenderContext(container: HTMLDivElement, platform?: Platform): WebRenderContext

Creates a Web render context attached to the provided container.

container: HTMLDivElement
platform: Platform
propertycache
cache: Set<HTMLElement>

Virtual path cache collected before a fill or stroke commits DOM elements.

propertyroot
root: HTMLDivElement

Root DOM element that receives generated render elements.

propertysymbolstatic
readonly symbol: symbol

DI token for resolving the Web render context.

methodaddClickEventListener
addClickEventListener(callBack: (event: EventWithOffset): void): void

Attaches a click listener.

callBack: (event: EventWithOffset): void
methodaddEventListener
addEventListener(type: string, callBack: (event: EventWithOffset): void): (): void

Attaches a normalized event listener and returns an idempotent disposer.

type: string
callBack: (event: EventWithOffset): void
methodaddMouseDownEventListener
addMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-press listener.

callBack: (event: EventWithOffset): void
methodaddMouseMoveEventListener
addMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-move listener.

callBack: (event: EventWithOffset): void
methodaddMouseUpEventListener
addMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-release listener.

callBack: (event: EventWithOffset): void
methodaddResizeListener
addResizeListener(): void

Attaches a resize listener for host target size changes.

methodbeginPath
beginPath(): void

Clear timing 1、Virtual Path Again 2、beginPath 3、clearRect

methodclearRect
clearRect(x: number, y: number, width: number, height: number): void

Clears a rectangle from the target.

x: number
y: number
width: number
height: number
methodclip
clip(): void

Clips future drawing to the active path.

methodcloneNode
cloneNode(): RenderContext

Creates a same-kind render context for an auxiliary render layer.

methodclosePath
closePath(): void

Closes the active path.

methodcreateHitNode
createHitNode(): RenderContext

Creates a same-kind render context configured for hit testing.

methoddrawImage
drawImage(image: unknown, x: number, y: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): void

Draws an image at its natural size.

image: unknown
x: number
y: number
width: number
height: number
sx: number
sy: number
sWidth: number
sHeight: number
methodfill
fill(): void

Fills the active path with the current fill style.

methodfillText
fillText(text: string, x: number, y: number, maxWidth?: number): void

Draws text at the given position.

text: string
x: number
y: number
maxWidth: number
methodgetAttribute
getAttribute(name: string): string

Reads a host-visible attribute from the backing target.

name: string
methodgetImageData
getImageData(x: number, y: number, width: number, height: number): { data: [number, number, number, number][]; height: number; width: number }

Reads raster pixels from the target.

x: number
y: number
width: number
height: number
methodgetLineWidth
getLineWidth(): number

Returns the current stroke line width.

methodgetMaxLineWidth
getMaxLineWidth(): number

Returns the largest stroke width tracked for erase padding.

methodgetRasterScale
getRasterScale(): number

Raster units represented by one host-view unit for this context.

methodgetRenderTarget
getRenderTarget(): unknown

Returns the native backing target owned by this render context.

methodgetRoot
getRoot(): HTMLDivElement

Returns the event root associated with this render context.

methodgetViewScale
getViewScale(): number

Returns the current logical view scale.

methodinitialize
initialize(): void

Initializes target sizing and adapter-specific state.

methodlineTo
lineTo(x: number, y: number): void

Adds a line from the current path cursor.

x: number
y: number
methodmeasureText
measureText(text: string): { height: number; width: number }

Measures text using the active font and returns normalized metrics.

text: string
methodmoveTo
moveTo(x: number, y: number): void

Moves the active path cursor.

x: number
y: number
methodputImageData
putImageData(imageData: RenderImageData, x: number, y: number): void

Writes raster pixels to the target.

imageData: RenderImageData
x: number
y: number
methodrect
rect(x: number, y: number, width: number, height: number): void

Adds a rectangle to the active path.

x: number
y: number
width: number
height: number
methodremoveClickEventListener
removeClickEventListener(callBack: (event: EventWithOffset): void): void

Removes a click listener.

callBack: (event: EventWithOffset): void
methodremoveMouseDownEventListener
removeMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-press listener.

callBack: (event: EventWithOffset): void
methodremoveMouseMoveEventListener
removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-move listener.

callBack: (event: EventWithOffset): void
methodremoveMouseUpEventListener
removeMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-release listener.

callBack: (event: EventWithOffset): void
methodremoveResizeListener
removeResizeListener(): void

Removes the active resize listener, if any.

methodresetTransform
resetTransform(): void

Resets the current transform to the identity transform.

methodresize
resize(): void

Resizes the backing render target to the host view's logical size and raster scale.

methodrestore
restore(): void

Restores the most recently saved drawing state.

methodsave
save(): void

Saves the current drawing state.

methodsetAttribute
setAttribute(name: string, value: string): void

Sets a host-visible attribute on the backing target.

name: string
value: string
methodsetFillStyle
setFillStyle(fillStyle: RenderPaint): void

Sets the current fill style.

fillStyle: RenderPaint
methodsetFont
setFont(font: string): void

Sets the active platform-neutral font descriptor.

font: string
methodsetLineDash
setLineDash(segments: number[]): void

Sets the current line dash pattern.

segments: number[]
methodsetLineWidth
setLineWidth(width: number): void

Sets the current stroke line width.

width: number
methodsetStrokeStyle
setStrokeStyle(strokeStyle: string): void

Sets the current stroke style.

strokeStyle: string
methodsetTransform
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void

Replaces the current transform matrix.

a: number
b: number
c: number
d: number
e: number
f: number
methodsetViewScale
setViewScale(_scale: number): void

Logical view scale (distinct from device pixel ratio).

_scale: number
methodstroke
stroke(): void

Strokes the active path with the current stroke style.

methodstrokeRect
strokeRect(x: number, y: number, width: number, height: number): void

Strokes a rectangle without requiring a separate path.

x: number
y: number
width: number
height: number
methodtranslate
translate(x: number, y: number): void

Translates the current drawing transform.

x: number
y: number
Inherited members 10

Inherited from RenderContext.

classWebSvgRenderContextsource ↗
class WebSvgRenderContext extends RenderContext

Production SVG implementation of the platform-neutral RenderContext.

SVG is retained-mode while Canvas is immediate-mode. The context therefore preserves paint order in SVG groups and applies later clearRect operations as masks to earlier groups. A detached Canvas mirror supplies the raster-only APIs (text metrics and hit-image reads) required by the shared engine.

constructorconstructor
WebSvgRenderContext(root: unknown, platform?: Platform): WebSvgRenderContext

Creates an SVG render context with a detached raster mirror for Canvas-only APIs.

root: unknown

SVG element that receives retained draw output.

platform: Platform

Optional platform diagnostics adapter.

propertysymbolstatic
readonly symbol: symbol

DI token for resolving the SVG render context.

methodaddClickEventListener
addClickEventListener(callBack: (event: EventWithOffset): void): void

Attaches a click listener.

callBack: (event: EventWithOffset): void
methodaddEventListener
addEventListener(type: string, callBack: (event: EventWithOffset): void): (): void

Attaches a normalized event listener and returns an idempotent disposer.

type: string
callBack: (event: EventWithOffset): void
methodaddMouseDownEventListener
addMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-press listener.

callBack: (event: EventWithOffset): void
methodaddMouseMoveEventListener
addMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-move listener.

callBack: (event: EventWithOffset): void
methodaddMouseUpEventListener
addMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Attaches a pointer-release listener.

callBack: (event: EventWithOffset): void
methodaddResizeListener
addResizeListener(callBack: (): void): void

Attaches a resize listener for host target size changes.

callBack: (): void
methodbeginFrame
beginFrame(): void

Replaces retained SVG output before a full shared-engine render pass.

methodbeginNodeSemantics
beginNodeSemantics(semantics: RenderNodeSemantics): void

Marks subsequent drawing operations as belonging to one semantic scene node.

semantics: RenderNodeSemantics
methodbeginPath
beginPath(): void

Begins a new path.

methodclearRect
clearRect(x: number, y: number, width: number, height: number): void

Clears a rectangle from the target.

x: number
y: number
width: number
height: number
methodclip
clip(): void

Clips future drawing to the active path.

methodcloneNode
cloneNode(): WebSvgRenderContext

Creates a same-kind render context for an auxiliary render layer.

methodclosePath
closePath(): void

Closes the active path.

methodcreateHitNode
createHitNode(): WebSvgRenderContext

Creates a same-kind render context configured for hit testing.

methoddrawImage
drawImage(image: unknown, x: number, y: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): void

Draws an image at its natural size.

image: unknown
x: number
y: number
width: number
height: number
sx: number
sy: number
sWidth: number
sHeight: number
methodendNodeSemantics
endNodeSemantics(): void

Ends the semantic scene-node boundary started by beginNodeSemantics.

methodfill
fill(): void

Fills the active path with the current fill style.

methodfillText
fillText(text: string, x: number, y: number, maxWidth?: number): void

Draws text at the given position.

text: string
x: number
y: number
maxWidth: number
methodgetAttribute
getAttribute(name: string): string

Reads a host-visible attribute from the backing target.

name: string
methodgetImageData
getImageData(x: number, y: number, width: number, height: number): { data: [number, number, number, number][]; height: number; width: number }

Reads raster pixels from the target.

x: number
y: number
width: number
height: number
methodgetLineWidth
getLineWidth(): number

Returns the current stroke line width.

methodgetMaxLineWidth
getMaxLineWidth(): number

Returns the largest stroke width tracked for erase padding.

methodgetRasterScale
getRasterScale(): number

Raster units represented by one host-view unit for this context.

methodgetRenderTarget
getRenderTarget(): SVGSVGElement

Returns the native backing target owned by this render context.

methodgetRoot
getRoot(): SVGSVGElement

Returns the event root associated with this render context.

methodgetViewScale
getViewScale(): number

Returns the current logical view scale.

methodinitialize
initialize(scale?: number): void

Initializes target sizing and adapter-specific state.

scale: number
methodlineTo
lineTo(x: number, y: number): void

Adds a line from the current path cursor.

x: number
y: number
methodmeasureText
measureText(text: string): { fontAscent?: number; fontDescent?: number; height: number; width: number }

Measures text using the active font and returns normalized metrics.

text: string
methodmoveTo
moveTo(x: number, y: number): void

Moves the active path cursor.

x: number
y: number
methodputImageData
putImageData(imageData: RenderImageData, x: number, y: number): void

Writes raster pixels to the target.

imageData: RenderImageData
x: number
y: number
methodrect
rect(x: number, y: number, width: number, height: number): void

Adds a rectangle to the active path.

x: number
y: number
width: number
height: number
methodremoveClickEventListener
removeClickEventListener(callBack: (event: EventWithOffset): void): void

Removes a click listener.

callBack: (event: EventWithOffset): void
methodremoveMouseDownEventListener
removeMouseDownEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-press listener.

callBack: (event: EventWithOffset): void
methodremoveMouseMoveEventListener
removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-move listener.

callBack: (event: EventWithOffset): void
methodremoveMouseUpEventListener
removeMouseUpEventListener(callBack: (event: EventWithOffset): void): void

Removes a pointer-release listener.

callBack: (event: EventWithOffset): void
methodremoveResizeListener
removeResizeListener(): void

Removes the active resize listener, if any.

methodrequiresExplicitNodeClear
requiresExplicitNodeClear(): boolean

Whether an existing node must erase its prior output before it is redrawn.

methodrequiresFrameRebuild
requiresFrameRebuild(): boolean

Whether the target must rebuild a complete visual frame instead of reusing a pixel cache.

methodresetHitFrame
resetHitFrame(_width: number, _height: number): void

Resets the complete hit-test frame using the target's native lifecycle.

_width: number
_height: number
methodresetTransform
resetTransform(): void

Resets the current transform to the identity transform.

methodresize
resize(width: number, height: number, scale?: number): void

Resizes the backing render target to the host view's logical size and raster scale.

width: number
height: number
scale: number
methodrestore
restore(): void

Restores the most recently saved drawing state.

methodsave
save(): void

Saves the current drawing state.

methodsetAttribute
setAttribute(name: string, value: string): void

Sets a host-visible attribute on the backing target.

name: string
value: string
methodsetFillStyle
setFillStyle(fillStyle: RenderPaint): void

Sets the current fill style.

fillStyle: RenderPaint
methodsetFont
setFont(font: string): void

Sets the active platform-neutral font descriptor.

font: string
methodsetLineDash
setLineDash(segments: number[]): void

Sets the current line dash pattern.

segments: number[]
methodsetLineWidth
setLineWidth(width: number): void

Sets the current stroke line width.

width: number
methodsetStrokeStyle
setStrokeStyle(strokeStyle: RenderPaint): void

Sets the current stroke style.

strokeStyle: RenderPaint
methodsetTransform
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void

Replaces the current transform matrix.

a: number
b: number
c: number
d: number
e: number
f: number
methodsetViewScale
setViewScale(scale: number): void

Logical view scale (distinct from device pixel ratio).

scale: number
methodstroke
stroke(): void

Strokes the active path with the current stroke style.

methodstrokeRect
strokeRect(x: number, y: number, width: number, height: number): void

Strokes a rectangle without requiring a separate path.

x: number
y: number
width: number
height: number
methodsupportsDirtyRedraw
supportsDirtyRedraw(): boolean

Whether the target can apply a redraw to only its accumulated dirty regions.

methodtranslate
translate(x: number, y: number): void

Translates the current drawing transform.

x: number
y: number
Inherited members 3

Inherited from RenderContext.

classWebWebGLRenderContextsource ↗
class WebWebGLRenderContext extends RenderContext

Native WebGL implementation of the platform-neutral RenderContext.

Geometry, images, and glyph quads are submitted directly to GPU buffers. Canvas2D is used only to measure text and rasterize glyphs into texture atlases; it never receives scene or complete-frame drawing.

Example
const context = new WebWebGLRenderContext(canvas, platform);
context.initialize(window.devicePixelRatio);
constructorconstructor
WebWebGLRenderContext(renderTarget: unknown, platform?: Platform): WebWebGLRenderContext
renderTarget: unknown
platform: Platform
propertysymbolstatic
readonly symbol: symbol

DI token for the primary visible render layer.

methodaddClickEventListener
addClickEventListener(callback: (event: EventWithOffset): void): void

Attaches a click listener.

callback: (event: EventWithOffset): void
methodaddEventListener
addEventListener(type: string, callback: (event: EventWithOffset): void): (): void

Attaches a normalized event listener and returns an idempotent disposer.

type: string
callback: (event: EventWithOffset): void
methodaddMouseDownEventListener
addMouseDownEventListener(callback: (event: EventWithOffset): void): void

Attaches a pointer-press listener.

callback: (event: EventWithOffset): void
methodaddMouseMoveEventListener
addMouseMoveEventListener(callback: (event: EventWithOffset): void): void

Attaches a pointer-move listener.

callback: (event: EventWithOffset): void
methodaddMouseUpEventListener
addMouseUpEventListener(callback: (event: EventWithOffset): void): void

Attaches a pointer-release listener.

callback: (event: EventWithOffset): void
methodaddResizeListener
addResizeListener(callback: (): void): void

Attaches a resize listener for host target size changes.

callback: (): void
methodbeginFrame
beginFrame(): void

Starts a new render frame when the target rebuilds its visual state.

methodbeginPath
beginPath(): void

Begins a new path.

methodclearRect
clearRect(x: number, y: number, width: number, height: number): void

Clears a rectangle from the target.

x: number
y: number
width: number
height: number
methodclip
clip(): void

Clips future drawing to the active path.

methodcloneNode
cloneNode(): WebWebGLRenderContext

Creates a same-kind render context for an auxiliary render layer.

methodclosePath
closePath(): void

Closes the active path.

methodcreateHitNode
createHitNode(): WebCanvasRenderContext

Creates a same-kind render context configured for hit testing.

methoddrawImage
drawImage(image: unknown, x: number, y: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number): void drawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): void

Draws an image at its natural size.

image: unknown
x: number
y: number
width: number
height: number
sx: number
sy: number
sWidth: number
sHeight: number
methodfill
fill(): void

Fills the active path with the current fill style.

methodfillText
fillText(text: string, x: number, y: number, maxWidth?: number): void

Draws text at the given position.

text: string
x: number
y: number
maxWidth: number
methodgetAttribute
getAttribute(name: string): string

Reads a host-visible attribute from the backing target.

name: string
methodgetImageData
getImageData(x: number, y: number, width: number, height: number): RenderImageData

Reads raster pixels from the target.

x: number
y: number
width: number
height: number
methodgetLineWidth
getLineWidth(): number

Returns the current stroke line width.

methodgetMaxLineWidth
getMaxLineWidth(): number

Returns the largest stroke width tracked for erase padding.

methodgetRasterScale
getRasterScale(): number

Raster units represented by one host-view unit for this context.

methodgetRenderTarget
getRenderTarget(): HTMLCanvasElement

Returns the native backing target owned by this render context.

methodgetRoot
getRoot(): HTMLCanvasElement

Returns the event root associated with this render context.

methodgetViewScale
getViewScale(): number

Returns the current logical view scale.

methodinitialize
initialize(scale?: number): void

Initializes target sizing and adapter-specific state.

scale: number
methodlineTo
lineTo(x: number, y: number): void

Adds a line from the current path cursor.

x: number
y: number
methodmeasureText
measureText(text: string): { fontAscent?: number; fontDescent?: number; fontLineGap?: number; height: number; width: number }

Measures text using the active font and returns normalized metrics.

text: string
methodmoveTo
moveTo(x: number, y: number): void

Moves the active path cursor.

x: number
y: number
methodputImageData
putImageData(imageData: RenderImageData, x: number, y: number): void

Writes raster pixels to the target.

imageData: RenderImageData
x: number
y: number
methodrect
rect(x: number, y: number, width: number, height: number): void

Adds a rectangle to the active path.

x: number
y: number
width: number
height: number
methodremoveClickEventListener
removeClickEventListener(): void

Removes a click listener.

methodremoveMouseDownEventListener
removeMouseDownEventListener(): void

Removes a pointer-press listener.

methodremoveMouseMoveEventListener
removeMouseMoveEventListener(): void

Removes a pointer-move listener.

methodremoveMouseUpEventListener
removeMouseUpEventListener(): void

Removes a pointer-release listener.

methodremoveResizeListener
removeResizeListener(): void

Removes the active resize listener, if any.

methodrequiresExplicitNodeClear
requiresExplicitNodeClear(): boolean

Whether an existing node must erase its prior output before it is redrawn.

methodrequiresFrameRebuild
requiresFrameRebuild(): boolean

Whether the target must rebuild a complete visual frame instead of reusing a pixel cache.

methodresetTransform
resetTransform(): void

Resets the current transform to the identity transform.

methodresize
resize(width: number, height: number, scale?: number): void

Resizes the backing render target to the host view's logical size and raster scale.

width: number
height: number
scale: number
methodrestore
restore(): void

Restores the most recently saved drawing state.

methodsave
save(): void

Saves the current drawing state.

methodsetAttribute
setAttribute(name: string, value: string): void

Sets a host-visible attribute on the backing target.

name: string
value: string
methodsetFillStyle
setFillStyle(fillStyle: RenderPaint): void

Sets the current fill style.

fillStyle: RenderPaint
methodsetFont
setFont(font: string): void

Sets the active platform-neutral font descriptor.

font: string
methodsetLineDash
setLineDash(segments: number[]): void

Sets the current line dash pattern.

segments: number[]
methodsetLineWidth
setLineWidth(width: number): void

Sets the current stroke line width.

width: number
methodsetStrokeStyle
setStrokeStyle(strokeStyle: RenderPaint): void

Sets the current stroke style.

strokeStyle: RenderPaint
methodsetTransform
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void

Replaces the current transform matrix.

a: number
b: number
c: number
d: number
e: number
f: number
methodsetViewScale
setViewScale(scale: number): void

Logical view scale (distinct from device pixel ratio).

scale: number
methodstroke
stroke(): void

Strokes the active path with the current stroke style.

methodstrokeRect
strokeRect(x: number, y: number, width: number, height: number): void

Strokes a rectangle without requiring a separate path.

x: number
y: number
width: number
height: number
methodsupportsDirtyRedraw
supportsDirtyRedraw(): boolean

Whether the target can apply a redraw to only its accumulated dirty regions.

methodtranslate
translate(x: number, y: number): void

Translates the current drawing transform.

x: number
y: number
Inherited members 6

Inherited from RenderContext.

interfaceCoordinatePointsource ↗
interface CoordinatePoint

Public contract for viewport/world/raster coordinate points.

propertyx
x: number
propertyy
y: number
interfaceEventWithOffsetsource ↗
interface EventWithOffset extends RenderPointerEvent

Host pointer event carrying offsets in view coordinates.

Host adapters translate their native pointer event into the same offset contract and optionally provide a normalized click count.

propertyclickCount
readonly clickCount?: number

Consecutive click count normalized by host adapters when available.

Inherited members 13

Inherited from RenderPointerEvent.

interfaceRenderImageDatasource ↗
interface RenderImageData
propertydata
readonly data: [number, number, number, number][]
propertyheight
readonly height: number
propertywidth
readonly width: number
interfaceRenderNodeSemanticssource ↗
interface RenderNodeSemantics

Semantic ownership metadata attached to drawing for retained targets and diagnostics.

propertyowner
readonly owner?: string

Plugin or scene owner responsible for the drawn node.

propertyrole
readonly role?: string

Semantic role of the drawn node, such as cell, header or overlay.

interfaceRenderPointerEventsource ↗
interface RenderPointerEvent

Pointer event shape shared by renderers without requiring host-native event types.

propertyaltKey
readonly altKey?: boolean
propertybutton
readonly button?: number

Normalized button index: zero is the primary pointer button.

propertyclickCount
readonly clickCount?: number
propertyclientX
readonly clientX?: number
propertyclientY
readonly clientY?: number
propertyctrlKey
readonly ctrlKey?: boolean
propertydetail
readonly detail?: number
propertymetaKey
readonly metaKey?: boolean
propertyoffsetX
readonly offsetX: number
propertyoffsetY
readonly offsetY: number
propertyshiftKey
readonly shiftKey?: boolean
propertytarget
readonly target?: unknown
methodpreventDefault
preventDefault(): void
methodstopPropagation
stopPropagation(): void
typeRenderGradientsource ↗
type RenderGradient = object

Opaque paint handles supplied by a concrete renderer.

typeRenderImageSourcesource ↗
type RenderImageSource = unknown
typeRenderPaintsource ↗
type RenderPaint = string | RenderGradient | RenderPattern
typeRenderPatternsource ↗
type RenderPattern = object

Opaque pattern handles supplied by a concrete renderer.