@searsuite/sear-render-context
Drawing API
RenderContext is the drawing contract used by scene nodes and render strategies. It receives drawing commands
for a frame; the host chooses the concrete target. A web host can use WebCanvasRenderContext,
WebSvgRenderContext, or WebWebGLRenderContext. A host without a visible view can use
HeadlessRenderContext.
The editor also uses separate offscreen and hit-test contexts. Their DI tokens are
RenderContext.offScreenSymbol and RenderContext.hitSymbol; the visible target uses RenderContext.symbol.
Render code uses these contracts so it does not need to know which host target was chosen.
- classRenderContext
-
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.
constructor RenderContext(): RenderContextproperty isDrawn: booleanWhether the target has received at least one draw operation.
property readonly hitSymbol: symbolstaticDI token for the hit-test render layer.
property readonly offScreenSymbol: symbolstaticDI token for the scroll-optimization render layer.
property readonly symbol: symbolstaticDI token for the primary visible render layer.
method addClickEventListener(callBack: (event: EventWithOffset): void): voidAttaches a click listener.
method addEventListener(type: string, callBack: (event: EventWithOffset): void): (): voidAttaches a normalized event listener and returns an idempotent disposer.
method addMouseDownEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-press listener.
method addMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-move listener.
method addMouseUpEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-release listener.
method addResizeListener(callBack: (): void): voidAttaches a resize listener for host target size changes.
method beginFrame(): voidStarts a new render frame when the target rebuilds its visual state.
method beginNodeSemantics(_semantics: RenderNodeSemantics): voidMarks subsequent drawing operations as belonging to one semantic scene node.
method beginPath(): voidBegins a new path.
method clearRect(x: number, y: number, width: number, height: number): voidClears a rectangle from the target.
method clip(): voidClips future drawing to the active path.
method cloneNode(): RenderContextCreates a same-kind render context for an auxiliary render layer.
method closePath(): voidCloses the active path.
method createHitNode(): RenderContextCreates a same-kind render context configured for hit testing.
methoddrawImage drawImage(image: unknown, x: number, y: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): voidDraws an image at its natural size.
method endNodeSemantics(): voidEnds the semantic scene-node boundary started by beginNodeSemantics.
method fill(): voidFills the active path with the current fill style.
method fillText(text: string, x: number, y: number, maxWidth?: number): voidDraws text at the given position.
method getAttribute(name: string): stringReads a host-visible attribute from the backing target.
method getImageData(x: number, y: number, width: number, height: number): RenderImageDataReads raster pixels from the target.
method getLineWidth(): numberReturns the current stroke line width.
method getMaxLineWidth(): numberReturns the largest stroke width tracked for erase padding.
method getRasterScale(): numberRaster units represented by one host-view unit for this context.
method getRenderTarget(): unknownReturns the native backing target owned by this render context.
method getRoot(): unknownReturns the event root associated with this render context.
method getViewScale(): numberReturns the current logical view scale.
method initialize(scale?: number): voidInitializes target sizing and adapter-specific state.
method lineTo(x: number, y: number): voidAdds a line from the current path cursor.
method measureText(text: string): { fontAscent?: number; fontDescent?: number; fontLineGap?: number; height: number; width: number }Measures text using the active font and returns normalized metrics.
method moveTo(x: number, y: number): voidMoves the active path cursor.
method putImageData(imageData: RenderImageData, x: number, y: number): voidWrites raster pixels to the target.
method rect(x: number, y: number, width: number, height: number): voidAdds a rectangle to the active path.
method removeClickEventListener(callBack: (event: EventWithOffset): void): voidRemoves a click listener.
method removeMouseDownEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-press listener.
method removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-move listener.
method removeMouseUpEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-release listener.
method removeResizeListener(): voidRemoves the active resize listener, if any.
method requiresExplicitNodeClear(): booleanWhether an existing node must erase its prior output before it is redrawn.
method requiresFrameRebuild(): booleanWhether the target must rebuild a complete visual frame instead of reusing a pixel cache.
method resetHitFrame(width: number, height: number): voidResets the complete hit-test frame using the target's native lifecycle.
method resetTransform(): voidResets the current transform to the identity transform.
method resize(width: number, height: number, scale?: number): voidResizes the backing render target to the host view's logical size and raster scale.
method restore(): voidRestores the most recently saved drawing state.
method save(): voidSaves the current drawing state.
method setAttribute(name: string, value: string): voidSets a host-visible attribute on the backing target.
method setFillStyle(fillStyle: RenderPaint): voidSets the current fill style.
method setFont(font: string): voidSets the active platform-neutral font descriptor.
method setLineDash(segments: number[]): voidSets the current line dash pattern.
method setLineWidth(width: number): voidSets the current stroke line width.
method setStrokeStyle(strokeStyle: RenderPaint): voidSets the current stroke style.
method setTransform(a: number, b: number, c: number, d: number, e: number, f: number): voidReplaces the current transform matrix.
method setViewScale(scale: number): voidLogical view scale (distinct from device pixel ratio).
method stroke(): voidStrokes the active path with the current stroke style.
method strokeRect(x: number, y: number, width: number, height: number): voidStrokes a rectangle without requiring a separate path.
method supportsDirtyRedraw(): booleanWhether the target can apply a redraw to only its accumulated dirty regions.
method translate(x: number, y: number): voidTranslates the current drawing transform.
- interfaceEventWithOffset
-
interface EventWithOffset extends RenderPointerEventHost 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.
property readonly clickCount?: numberConsecutive click count normalized by host adapters when available.
Inherited members 13
Inherited from RenderPointerEvent.
- interfaceRenderImageData
-
property readonly data: [number, number, number, number][]property readonly height: numberproperty readonly width: number - interfaceRenderNodeSemantics
-
Semantic ownership metadata attached to drawing for retained targets and diagnostics.
property readonly owner?: stringPlugin or scene owner responsible for the drawn node.
property readonly role?: stringSemantic role of the drawn node, such as cell, header or overlay.
- interfaceRenderPointerEvent
-
Pointer event shape shared by renderers without requiring host-native event types.
property readonly altKey?: booleanproperty readonly button?: numberNormalized button index: zero is the primary pointer button.
property readonly clickCount?: numberproperty readonly clientX?: numberproperty readonly clientY?: numberproperty readonly ctrlKey?: booleanproperty readonly detail?: numberproperty readonly metaKey?: booleanproperty readonly offsetX: numberproperty readonly offsetY: numberproperty readonly shiftKey?: booleanproperty readonly target?: unknownmethod preventDefault(): voidmethod stopPropagation(): void - typeRenderGradient
-
type RenderGradient = objectOpaque paint handles supplied by a concrete renderer.
- typeRenderImageSource
-
type RenderImageSource = unknown - typeRenderPaint
-
type RenderPaint = string | RenderGradient | RenderPattern - typeRenderPattern
-
type RenderPattern = objectOpaque pattern handles supplied by a concrete renderer.
Coordinates
Pointer input begins in host-view coordinates, while document content and scrolling use world coordinates.
CoordinateTransformer.viewToWorld() applies the current view scale and scroll offset before hit testing or
selecting content. worldToView() maps a document position back to the visible view.
Use viewToRaster() only when reading pixels from the hit-test target: raster coordinates also account for
that target's pixel scale. CoordinatePoint is the simple {x, y} value passed between these conversions.
- classCoordinateTransformer
-
Single authority for host-view, world, and raster coordinate conversion.
constructor CoordinateTransformer(scrollManager: ScrollManager, renderContext: RenderContext, hitRenderContext: RenderContext): CoordinateTransformerproperty readonly symbol: symbolstaticDI token for resolving the host-neutral coordinate transformer.
method getVisibleWorldRect(): PositionRect<unknown>Returns the visible world rect.
method viewToRaster(point: CoordinatePoint): CoordinatePointConverts a host-view point into raster coordinates for pixel reads.
method viewToWorld(point: CoordinatePoint, scroll?: Pick<ScrollManagerState, "x" | "y">): CoordinatePointConverts a host-view point into world coordinates.
method worldToView(point: CoordinatePoint, scroll?: Pick<ScrollManagerState, "x" | "y">): CoordinatePointConverts a world point into host-view coordinates.
- interfaceCoordinatePoint
Canvas and SVG
- classWebCanvasRenderContext
-
class WebCanvasRenderContext extends RenderContextBrowser 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.
constructor WebCanvasRenderContext(renderTarget: unknown, readbackOptimized?: boolean, platform?: Platform): WebCanvasRenderContextConstructs a Canvas render context from a host canvas.
renderTargetHTMLCanvasElement supplied by the host adapter.
property readonly symbol: symbolstaticDI token for resolving the visible canvas render context.
method addClickEventListener(callBack: (event: EventWithOffset): void): voidAttaches a click listener.
method addEventListener(type: string, callBack: (event: EventWithOffset): void): (): voidRegisters a host pointer event listener on the canvas root.
method addMouseDownEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-press listener.
method addMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-move listener.
method addMouseUpEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-release listener.
method addResizeListener(callBack: (): void): voidAttaches a resize listener for host target size changes.
method beginPath(): voidBegins a new path.
method clearRect(x: number, y: number, width: number, height: number): voidClears a rectangle from the target.
method clip(): voidClips future drawing to the active path.
method cloneNode(): WebCanvasRenderContextClones the backing canvas dimensions into a detached WebCanvasRenderContext.
method closePath(): voidCloses the active path.
method createHitNode(): WebCanvasRenderContextCreates a detached render context used by hit rendering.
methoddrawImage drawImage(image: unknown, x: number, y: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): voidDraws an image at its natural size.
method fill(): voidFills the active path with the current fill style.
method fillText(text: string, x: number, y: number, maxWidth?: number): voidDraws text at the given position.
method getAttribute(name: string): stringReads a host-visible attribute from the backing target.
method getImageData(x: number, y: number, width: number, height: number): { data: [number, number, number, number][]; height: number; width: number }Reads raster pixels from the target.
method getLineWidth(): numberReturns the current stroke line width.
method getMaxLineWidth(): numberReturns the largest stroke width tracked for erase padding.
method getRasterScale(): numberReturns the host-view to raster scale, excluding logical sheet zoom.
method getRenderTarget(): HTMLCanvasElementReturns the native backing target owned by this render context.
method getRoot(): HTMLCanvasElementReturns the event root associated with this render context.
method getViewScale(): numberReturns the logical view scale.
method initialize(scale: number): voidInitializes canvas sizing and marks the canvas with the shared render-context token.
scaleDevice pixel ratio used for backing-store dimensions.
method lineTo(x: number, y: number): voidAdds a line from the current path cursor.
method measureText(text: string): { fontAscent?: number; fontDescent?: number; height: number; width: number }Measures text using the active font and returns normalized metrics.
method moveTo(x: number, y: number): voidMoves the active path cursor.
method putImageData(imageData: RenderImageData, x: number, y: number): voidWrites raw pixel data to the backing context.
imageDataCompact image data shape used by RenderContext.
xRaster x-coordinate.
yRaster y-coordinate.
method rect(x: number, y: number, width: number, height: number): voidAdds a rectangle to the active path.
method removeClickEventListener(callBack: (event: EventWithOffset): void): voidRemoves a click listener.
method removeMouseDownEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-press listener.
method removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-move listener.
method removeMouseUpEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-release listener.
method removeResizeListener(): voidRemoves the active resize listener, if any.
method resetTransform(): voidResets the current transform to the identity transform.
method resize(width: number, height: number, scale?: number): voidResizes the canvas backing store for a logical host viewport.
widthHost-view width.
heightHost-view height.
scaleRaster scale to apply to the backing store.
method restore(): voidRestores the most recently saved drawing state.
method save(): voidSaves the current drawing state.
method setAttribute(name: string, value: string): voidSets a host-visible attribute on the backing target.
method setFillStyle(fillStyle: RenderPaint): voidSets the current fill style.
method setFont(font: string): voidSets the active platform-neutral font descriptor.
method setLineDash(segments: number[]): voidSets the current line dash pattern.
method setLineWidth(width: number): voidSets the current stroke line width.
method setStrokeStyle(strokeStyle: RenderPaint): voidSets the current stroke style.
method setTransform(a: number, b: number, c: number, d: number, e: number, f: number): voidApplies 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.
method setViewScale(scale: number): voidUpdates the logical view scale used by sheet zoom.
scaleNew view scale.
method stroke(): voidStrokes the active path with the current stroke style.
method strokeRect(x: number, y: number, width: number, height: number): voidStrokes a rectangle without requiring a separate path.
method translate(x: number, y: number): voidTranslates the current drawing transform.
Inherited members 10
Inherited from RenderContext.
- classWebHitCanvasRenderContext
-
class WebHitCanvasRenderContext extends WebCanvasRenderContextCanvas render context specialization for the hit-test layer.
constructor WebHitCanvasRenderContext(renderTarget: unknown, readbackOptimized?: boolean, platform?: Platform): WebHitCanvasRenderContextConstructs a Canvas render context from a host canvas.
renderTargetHTMLCanvasElement supplied by the host adapter.
property readonly symbol: symbolstaticDI token for resolving the hit canvas context.
Inherited members 59
Inherited from WebCanvasRenderContext.
- isDrawn
- hitSymbol
- offScreenSymbol
- addClickEventListener
- addEventListener
- addMouseDownEventListener
- addMouseMoveEventListener
- addMouseUpEventListener
- addResizeListener
- beginFrame
- beginNodeSemantics
- beginPath
- clearRect
- clip
- cloneNode
- closePath
- createHitNode
- drawImage
- endNodeSemantics
- fill
- fillText
- getAttribute
- getImageData
- getLineWidth
- getMaxLineWidth
- getRasterScale
- getRenderTarget
- getRoot
- getViewScale
- initialize
- lineTo
- measureText
- moveTo
- putImageData
- rect
- removeClickEventListener
- removeMouseDownEventListener
- removeMouseMoveEventListener
- removeMouseUpEventListener
- removeResizeListener
- requiresExplicitNodeClear
- requiresFrameRebuild
- resetHitFrame
- resetTransform
- resize
- restore
- save
- setAttribute
- setFillStyle
- setFont
- setLineDash
- setLineWidth
- setStrokeStyle
- setTransform
- setViewScale
- stroke
- strokeRect
- supportsDirtyRedraw
- translate
- classWebOffScreenCanvasRenderContext
-
class WebOffScreenCanvasRenderContext extends WebCanvasRenderContextCanvas render context specialization for scroll optimization buffers.
constructor WebOffScreenCanvasRenderContext(renderTarget: unknown, readbackOptimized?: boolean, platform?: Platform): WebOffScreenCanvasRenderContextConstructs a Canvas render context from a host canvas.
renderTargetHTMLCanvasElement supplied by the host adapter.
property readonly symbol: symbolstaticDI token for resolving the off-screen canvas context.
Inherited members 59
Inherited from WebCanvasRenderContext.
- isDrawn
- hitSymbol
- offScreenSymbol
- addClickEventListener
- addEventListener
- addMouseDownEventListener
- addMouseMoveEventListener
- addMouseUpEventListener
- addResizeListener
- beginFrame
- beginNodeSemantics
- beginPath
- clearRect
- clip
- cloneNode
- closePath
- createHitNode
- drawImage
- endNodeSemantics
- fill
- fillText
- getAttribute
- getImageData
- getLineWidth
- getMaxLineWidth
- getRasterScale
- getRenderTarget
- getRoot
- getViewScale
- initialize
- lineTo
- measureText
- moveTo
- putImageData
- rect
- removeClickEventListener
- removeMouseDownEventListener
- removeMouseMoveEventListener
- removeMouseUpEventListener
- removeResizeListener
- requiresExplicitNodeClear
- requiresFrameRebuild
- resetHitFrame
- resetTransform
- resize
- restore
- save
- setAttribute
- setFillStyle
- setFont
- setLineDash
- setLineWidth
- setStrokeStyle
- setTransform
- setViewScale
- stroke
- strokeRect
- supportsDirtyRedraw
- translate
- classWebRenderContext
-
class WebRenderContext extends RenderContextExperimental Web-backed render context used for element-based rendering experiments.
constructor WebRenderContext(container: HTMLDivElement, platform?: Platform): WebRenderContextCreates a Web render context attached to the provided container.
property cache: Set<HTMLElement>Virtual path cache collected before a fill or stroke commits DOM elements.
property root: HTMLDivElementRoot DOM element that receives generated render elements.
property readonly symbol: symbolstaticDI token for resolving the Web render context.
method addClickEventListener(callBack: (event: EventWithOffset): void): voidAttaches a click listener.
method addEventListener(type: string, callBack: (event: EventWithOffset): void): (): voidAttaches a normalized event listener and returns an idempotent disposer.
method addMouseDownEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-press listener.
method addMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-move listener.
method addMouseUpEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-release listener.
method addResizeListener(): voidAttaches a resize listener for host target size changes.
method beginPath(): voidClear timing 1、Virtual Path Again 2、beginPath 3、clearRect
method clearRect(x: number, y: number, width: number, height: number): voidClears a rectangle from the target.
method clip(): voidClips future drawing to the active path.
method cloneNode(): RenderContextCreates a same-kind render context for an auxiliary render layer.
method closePath(): voidCloses the active path.
method createHitNode(): RenderContextCreates a same-kind render context configured for hit testing.
methoddrawImage drawImage(image: unknown, x: number, y: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): voidDraws an image at its natural size.
method fill(): voidFills the active path with the current fill style.
method fillText(text: string, x: number, y: number, maxWidth?: number): voidDraws text at the given position.
method getAttribute(name: string): stringReads a host-visible attribute from the backing target.
method getImageData(x: number, y: number, width: number, height: number): { data: [number, number, number, number][]; height: number; width: number }Reads raster pixels from the target.
method getLineWidth(): numberReturns the current stroke line width.
method getMaxLineWidth(): numberReturns the largest stroke width tracked for erase padding.
method getRasterScale(): numberRaster units represented by one host-view unit for this context.
method getRenderTarget(): unknownReturns the native backing target owned by this render context.
method getRoot(): HTMLDivElementReturns the event root associated with this render context.
method getViewScale(): numberReturns the current logical view scale.
method initialize(): voidInitializes target sizing and adapter-specific state.
method lineTo(x: number, y: number): voidAdds a line from the current path cursor.
method measureText(text: string): { height: number; width: number }Measures text using the active font and returns normalized metrics.
method moveTo(x: number, y: number): voidMoves the active path cursor.
method putImageData(imageData: RenderImageData, x: number, y: number): voidWrites raster pixels to the target.
method rect(x: number, y: number, width: number, height: number): voidAdds a rectangle to the active path.
method removeClickEventListener(callBack: (event: EventWithOffset): void): voidRemoves a click listener.
method removeMouseDownEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-press listener.
method removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-move listener.
method removeMouseUpEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-release listener.
method removeResizeListener(): voidRemoves the active resize listener, if any.
method resetTransform(): voidResets the current transform to the identity transform.
method resize(): voidResizes the backing render target to the host view's logical size and raster scale.
method restore(): voidRestores the most recently saved drawing state.
method save(): voidSaves the current drawing state.
method setAttribute(name: string, value: string): voidSets a host-visible attribute on the backing target.
method setFillStyle(fillStyle: RenderPaint): voidSets the current fill style.
method setFont(font: string): voidSets the active platform-neutral font descriptor.
method setLineDash(segments: number[]): voidSets the current line dash pattern.
method setLineWidth(width: number): voidSets the current stroke line width.
method setStrokeStyle(strokeStyle: string): voidSets the current stroke style.
method setTransform(a: number, b: number, c: number, d: number, e: number, f: number): voidReplaces the current transform matrix.
method setViewScale(_scale: number): voidLogical view scale (distinct from device pixel ratio).
method stroke(): voidStrokes the active path with the current stroke style.
method strokeRect(x: number, y: number, width: number, height: number): voidStrokes a rectangle without requiring a separate path.
method translate(x: number, y: number): voidTranslates the current drawing transform.
Inherited members 10
Inherited from RenderContext.
- classWebSvgRenderContext
-
class WebSvgRenderContext extends RenderContextProduction 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.
constructor WebSvgRenderContext(root: unknown, platform?: Platform): WebSvgRenderContextCreates an SVG render context with a detached raster mirror for Canvas-only APIs.
rootSVG element that receives retained draw output.
platformOptional platform diagnostics adapter.
property readonly symbol: symbolstaticDI token for resolving the SVG render context.
method addClickEventListener(callBack: (event: EventWithOffset): void): voidAttaches a click listener.
method addEventListener(type: string, callBack: (event: EventWithOffset): void): (): voidAttaches a normalized event listener and returns an idempotent disposer.
method addMouseDownEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-press listener.
method addMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-move listener.
method addMouseUpEventListener(callBack: (event: EventWithOffset): void): voidAttaches a pointer-release listener.
method addResizeListener(callBack: (): void): voidAttaches a resize listener for host target size changes.
method beginFrame(): voidReplaces retained SVG output before a full shared-engine render pass.
method beginNodeSemantics(semantics: RenderNodeSemantics): voidMarks subsequent drawing operations as belonging to one semantic scene node.
method beginPath(): voidBegins a new path.
method clearRect(x: number, y: number, width: number, height: number): voidClears a rectangle from the target.
method clip(): voidClips future drawing to the active path.
method cloneNode(): WebSvgRenderContextCreates a same-kind render context for an auxiliary render layer.
method closePath(): voidCloses the active path.
method createHitNode(): WebSvgRenderContextCreates a same-kind render context configured for hit testing.
methoddrawImage drawImage(image: unknown, x: number, y: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): voidDraws an image at its natural size.
method endNodeSemantics(): voidEnds the semantic scene-node boundary started by beginNodeSemantics.
method fill(): voidFills the active path with the current fill style.
method fillText(text: string, x: number, y: number, maxWidth?: number): voidDraws text at the given position.
method getAttribute(name: string): stringReads a host-visible attribute from the backing target.
method getImageData(x: number, y: number, width: number, height: number): { data: [number, number, number, number][]; height: number; width: number }Reads raster pixels from the target.
method getLineWidth(): numberReturns the current stroke line width.
method getMaxLineWidth(): numberReturns the largest stroke width tracked for erase padding.
method getRasterScale(): numberRaster units represented by one host-view unit for this context.
method getRenderTarget(): SVGSVGElementReturns the native backing target owned by this render context.
method getRoot(): SVGSVGElementReturns the event root associated with this render context.
method getViewScale(): numberReturns the current logical view scale.
method initialize(scale?: number): voidInitializes target sizing and adapter-specific state.
method lineTo(x: number, y: number): voidAdds a line from the current path cursor.
method measureText(text: string): { fontAscent?: number; fontDescent?: number; height: number; width: number }Measures text using the active font and returns normalized metrics.
method moveTo(x: number, y: number): voidMoves the active path cursor.
method putImageData(imageData: RenderImageData, x: number, y: number): voidWrites raster pixels to the target.
method rect(x: number, y: number, width: number, height: number): voidAdds a rectangle to the active path.
method removeClickEventListener(callBack: (event: EventWithOffset): void): voidRemoves a click listener.
method removeMouseDownEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-press listener.
method removeMouseMoveEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-move listener.
method removeMouseUpEventListener(callBack: (event: EventWithOffset): void): voidRemoves a pointer-release listener.
method removeResizeListener(): voidRemoves the active resize listener, if any.
method requiresExplicitNodeClear(): booleanWhether an existing node must erase its prior output before it is redrawn.
method requiresFrameRebuild(): booleanWhether the target must rebuild a complete visual frame instead of reusing a pixel cache.
method resetHitFrame(_width: number, _height: number): voidResets the complete hit-test frame using the target's native lifecycle.
method resetTransform(): voidResets the current transform to the identity transform.
method resize(width: number, height: number, scale?: number): voidResizes the backing render target to the host view's logical size and raster scale.
method restore(): voidRestores the most recently saved drawing state.
method save(): voidSaves the current drawing state.
method setAttribute(name: string, value: string): voidSets a host-visible attribute on the backing target.
method setFillStyle(fillStyle: RenderPaint): voidSets the current fill style.
method setFont(font: string): voidSets the active platform-neutral font descriptor.
method setLineDash(segments: number[]): voidSets the current line dash pattern.
method setLineWidth(width: number): voidSets the current stroke line width.
method setStrokeStyle(strokeStyle: RenderPaint): voidSets the current stroke style.
method setTransform(a: number, b: number, c: number, d: number, e: number, f: number): voidReplaces the current transform matrix.
method setViewScale(scale: number): voidLogical view scale (distinct from device pixel ratio).
method stroke(): voidStrokes the active path with the current stroke style.
method strokeRect(x: number, y: number, width: number, height: number): voidStrokes a rectangle without requiring a separate path.
method supportsDirtyRedraw(): booleanWhether the target can apply a redraw to only its accumulated dirty regions.
method translate(x: number, y: number): voidTranslates the current drawing transform.
WebGL
- classWebWebGLRenderContext
-
class WebWebGLRenderContext extends RenderContextNative 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.
Exampleconst context = new WebWebGLRenderContext(canvas, platform); context.initialize(window.devicePixelRatio);constructor WebWebGLRenderContext(renderTarget: unknown, platform?: Platform): WebWebGLRenderContextproperty readonly symbol: symbolstaticDI token for the primary visible render layer.
method addClickEventListener(callback: (event: EventWithOffset): void): voidAttaches a click listener.
method addEventListener(type: string, callback: (event: EventWithOffset): void): (): voidAttaches a normalized event listener and returns an idempotent disposer.
method addMouseDownEventListener(callback: (event: EventWithOffset): void): voidAttaches a pointer-press listener.
method addMouseMoveEventListener(callback: (event: EventWithOffset): void): voidAttaches a pointer-move listener.
method addMouseUpEventListener(callback: (event: EventWithOffset): void): voidAttaches a pointer-release listener.
method addResizeListener(callback: (): void): voidAttaches a resize listener for host target size changes.
method beginFrame(): voidStarts a new render frame when the target rebuilds its visual state.
method beginPath(): voidBegins a new path.
method clearRect(x: number, y: number, width: number, height: number): voidClears a rectangle from the target.
method clip(): voidClips future drawing to the active path.
method cloneNode(): WebWebGLRenderContextCreates a same-kind render context for an auxiliary render layer.
method closePath(): voidCloses the active path.
method createHitNode(): WebCanvasRenderContextCreates a same-kind render context configured for hit testing.
methoddrawImage drawImage(image: unknown, x: number, y: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number): voiddrawImage(image: unknown, x: number, y: number, width: number, height: number, sx: number, sy: number, sWidth: number, sHeight: number): voidDraws an image at its natural size.
method fill(): voidFills the active path with the current fill style.
method fillText(text: string, x: number, y: number, maxWidth?: number): voidDraws text at the given position.
method getAttribute(name: string): stringReads a host-visible attribute from the backing target.
method getImageData(x: number, y: number, width: number, height: number): RenderImageDataReads raster pixels from the target.
method getLineWidth(): numberReturns the current stroke line width.
method getMaxLineWidth(): numberReturns the largest stroke width tracked for erase padding.
method getRasterScale(): numberRaster units represented by one host-view unit for this context.
method getRenderTarget(): HTMLCanvasElementReturns the native backing target owned by this render context.
method getRoot(): HTMLCanvasElementReturns the event root associated with this render context.
method getViewScale(): numberReturns the current logical view scale.
method initialize(scale?: number): voidInitializes target sizing and adapter-specific state.
method lineTo(x: number, y: number): voidAdds a line from the current path cursor.
method measureText(text: string): { fontAscent?: number; fontDescent?: number; fontLineGap?: number; height: number; width: number }Measures text using the active font and returns normalized metrics.
method moveTo(x: number, y: number): voidMoves the active path cursor.
method putImageData(imageData: RenderImageData, x: number, y: number): voidWrites raster pixels to the target.
method rect(x: number, y: number, width: number, height: number): voidAdds a rectangle to the active path.
method removeClickEventListener(): voidRemoves a click listener.
method removeMouseDownEventListener(): voidRemoves a pointer-press listener.
method removeMouseMoveEventListener(): voidRemoves a pointer-move listener.
method removeMouseUpEventListener(): voidRemoves a pointer-release listener.
method removeResizeListener(): voidRemoves the active resize listener, if any.
method requiresExplicitNodeClear(): booleanWhether an existing node must erase its prior output before it is redrawn.
method requiresFrameRebuild(): booleanWhether the target must rebuild a complete visual frame instead of reusing a pixel cache.
method resetTransform(): voidResets the current transform to the identity transform.
method resize(width: number, height: number, scale?: number): voidResizes the backing render target to the host view's logical size and raster scale.
method restore(): voidRestores the most recently saved drawing state.
method save(): voidSaves the current drawing state.
method setAttribute(name: string, value: string): voidSets a host-visible attribute on the backing target.
method setFillStyle(fillStyle: RenderPaint): voidSets the current fill style.
method setFont(font: string): voidSets the active platform-neutral font descriptor.
method setLineDash(segments: number[]): voidSets the current line dash pattern.
method setLineWidth(width: number): voidSets the current stroke line width.
method setStrokeStyle(strokeStyle: RenderPaint): voidSets the current stroke style.
method setTransform(a: number, b: number, c: number, d: number, e: number, f: number): voidReplaces the current transform matrix.
method setViewScale(scale: number): voidLogical view scale (distinct from device pixel ratio).
method stroke(): voidStrokes the active path with the current stroke style.
method strokeRect(x: number, y: number, width: number, height: number): voidStrokes a rectangle without requiring a separate path.
method supportsDirtyRedraw(): booleanWhether the target can apply a redraw to only its accumulated dirty regions.
method translate(x: number, y: number): voidTranslates the current drawing transform.
Inherited members 6
Inherited from RenderContext.
Headless rendering
Headless contexts preserve engine state and hit-test roles without producing a visible raster.
- classHeadlessHitRenderContext
-
class HeadlessHitRenderContext extends HeadlessRenderContextHit-test layer marker for a headless render pipeline.
constructor HeadlessHitRenderContext(): HeadlessHitRenderContextproperty readonly symbol: symbolstaticDI token for resolving HeadlessHitRenderContext.
Inherited members 59
Inherited from HeadlessRenderContext.
- isDrawn
- hitSymbol
- offScreenSymbol
- addClickEventListener
- addEventListener
- addMouseDownEventListener
- addMouseMoveEventListener
- addMouseUpEventListener
- addResizeListener
- beginFrame
- beginNodeSemantics
- beginPath
- clearRect
- clip
- cloneNode
- closePath
- createHitNode
- drawImage
- endNodeSemantics
- fill
- fillText
- getAttribute
- getImageData
- getLineWidth
- getMaxLineWidth
- getRasterScale
- getRenderTarget
- getRoot
- getViewScale
- initialize
- lineTo
- measureText
- moveTo
- putImageData
- rect
- removeClickEventListener
- removeMouseDownEventListener
- removeMouseMoveEventListener
- removeMouseUpEventListener
- removeResizeListener
- requiresExplicitNodeClear
- requiresFrameRebuild
- resetHitFrame
- resetTransform
- resize
- restore
- save
- setAttribute
- setFillStyle
- setFont
- setLineDash
- setLineWidth
- setStrokeStyle
- setTransform
- setViewScale
- stroke
- strokeRect
- supportsDirtyRedraw
- translate
- classHeadlessOffScreenRenderContext
-
class HeadlessOffScreenRenderContext extends HeadlessRenderContextOff-screen layer marker for a headless render pipeline.
constructor HeadlessOffScreenRenderContext(): HeadlessOffScreenRenderContextproperty readonly symbol: symbolstaticDI token for resolving HeadlessOffScreenRenderContext.
Inherited members 59
Inherited from HeadlessRenderContext.
- isDrawn
- hitSymbol
- offScreenSymbol
- addClickEventListener
- addEventListener
- addMouseDownEventListener
- addMouseMoveEventListener
- addMouseUpEventListener
- addResizeListener
- beginFrame
- beginNodeSemantics
- beginPath
- clearRect
- clip
- cloneNode
- closePath
- createHitNode
- drawImage
- endNodeSemantics
- fill
- fillText
- getAttribute
- getImageData
- getLineWidth
- getMaxLineWidth
- getRasterScale
- getRenderTarget
- getRoot
- getViewScale
- initialize
- lineTo
- measureText
- moveTo
- putImageData
- rect
- removeClickEventListener
- removeMouseDownEventListener
- removeMouseMoveEventListener
- removeMouseUpEventListener
- removeResizeListener
- requiresExplicitNodeClear
- requiresFrameRebuild
- resetHitFrame
- resetTransform
- resize
- restore
- save
- setAttribute
- setFillStyle
- setFont
- setLineDash
- setLineWidth
- setStrokeStyle
- setTransform
- setViewScale
- stroke
- strokeRect
- supportsDirtyRedraw
- translate
- classHeadlessRenderContext
-
class HeadlessRenderContext extends RenderContextRender context that preserves engine state while producing no raster output.
constructor HeadlessRenderContext(): HeadlessRenderContextproperty readonly symbol: symbolstaticDI token for resolving the headless render context.
method addClickEventListener(_callback: (event: EventWithOffset): void): voidAttaches a click listener.
method addEventListener(_type: string, _callback: (event: EventWithOffset): void): (): voidAttaches a normalized event listener and returns an idempotent disposer.
method addMouseDownEventListener(_callback: (event: EventWithOffset): void): voidAttaches a pointer-press listener.
method addMouseMoveEventListener(_callback: (event: EventWithOffset): void): voidAttaches a pointer-move listener.
method addMouseUpEventListener(_callback: (event: EventWithOffset): void): voidAttaches a pointer-release listener.
method addResizeListener(_callback: (): void): voidAttaches a resize listener for host target size changes.
method beginPath(): voidBegins a new path.
method clearRect(_x: number, _y: number, _width: number, _height: number): voidClears a rectangle from the target.
method clip(): voidClips future drawing to the active path.
method cloneNode(): RenderContextCreates a same-kind render context for an auxiliary render layer.
method closePath(): voidCloses the active path.
method createHitNode(): RenderContextCreates a same-kind render context configured for hit testing.
methoddrawImage drawImage(_image: unknown, _x: number, _y: number): voiddrawImage(_image: unknown, _x: number, _y: number, _width: number, _height: number): voiddrawImage(_image: unknown, _x: number, _y: number, _width: number, _height: number, _sx: number, _sy: number, _sWidth: number, _sHeight: number): voidDraws an image at its natural size.
method fill(): voidFills the active path with the current fill style.
method fillText(_text: string, _x: number, _y: number, _maxWidth?: number): voidDraws text at the given position.
method getAttribute(name: string): stringReads a host-visible attribute from the backing target.
method getImageData(_x: number, _y: number, width: number, height: number): RenderImageDataReads raster pixels from the target.
method getLineWidth(): numberReturns the current stroke line width.
method getMaxLineWidth(): numberReturns the largest stroke width tracked for erase padding.
method getRasterScale(): numberRaster units represented by one host-view unit for this context.
method getRenderTarget(): unknownReturns the native backing target owned by this render context.
method getRoot(): unknownReturns the event root associated with this render context.
method getViewScale(): numberReturns the current logical view scale.
method initialize(scale?: number): voidInitializes target sizing and adapter-specific state.
method lineTo(_x: number, _y: number): voidAdds a line from the current path cursor.
method measureText(text: string): { height: number; width: number }Measures text using the active font and returns normalized metrics.
method moveTo(_x: number, _y: number): voidMoves the active path cursor.
method putImageData(_imageData: RenderImageData, _x: number, _y: number): voidWrites raster pixels to the target.
method rect(_x: number, _y: number, _width: number, _height: number): voidAdds a rectangle to the active path.
method removeClickEventListener(_callback: (event: EventWithOffset): void): voidRemoves a click listener.
method removeMouseDownEventListener(_callback: (event: EventWithOffset): void): voidRemoves a pointer-press listener.
method removeMouseMoveEventListener(_callback: (event: EventWithOffset): void): voidRemoves a pointer-move listener.
method removeMouseUpEventListener(_callback: (event: EventWithOffset): void): voidRemoves a pointer-release listener.
method removeResizeListener(): voidRemoves the active resize listener, if any.
method resetTransform(): voidResets the current transform to the identity transform.
method resize(_width: number, _height: number, scale?: number): voidResizes the backing render target to the host view's logical size and raster scale.
method restore(): voidRestores the most recently saved drawing state.
method save(): voidSaves the current drawing state.
method setAttribute(name: string, value: string): voidSets a host-visible attribute on the backing target.
method setFillStyle(_fillStyle: RenderPaint): voidSets the current fill style.
method setFont(_font: string): voidSets the active platform-neutral font descriptor.
method setLineDash(_segments: number[]): voidSets the current line dash pattern.
method setLineWidth(width: number): voidSets the current stroke line width.
method setStrokeStyle(_strokeStyle: RenderPaint): voidSets the current stroke style.
method setTransform(_a: number, _b: number, _c: number, _d: number, _e: number, _f: number): voidReplaces the current transform matrix.
method setViewScale(scale: number): voidLogical view scale (distinct from device pixel ratio).
method stroke(): voidStrokes the active path with the current stroke style.
method strokeRect(_x: number, _y: number, _width: number, _height: number): voidStrokes a rectangle without requiring a separate path.
method translate(_x: number, _y: number): voidTranslates the current drawing transform.
Inherited members 10
Inherited from RenderContext.
No matching API entries.