UNPKG

@antv/g-plugin-canvas-renderer

Version:

A G plugin of renderer implementation with Canvas2D API

55 lines 2.11 kB
import type { DisplayObject, RenderingPlugin, RenderingPluginContext, CanvasContext, GlobalRuntime } from '@antv/g-lite'; import type { CanvasRendererPluginOptions } from './interfaces'; export interface RenderState { restoreStack: DisplayObject[]; prevObject: DisplayObject; currentContext: Map<keyof CanvasRenderingContext2D | 'lineDash', unknown>; } /** * support 2 modes in rendering: * * immediate * * delayed: render at the end of frame with dirty-rectangle */ export declare class CanvasRendererPlugin implements RenderingPlugin { #private; private canvasRendererPluginOptions; static tag: string; private context; private pathGeneratorFactory; /** * RBush used in dirty rectangle rendering */ private rBush; constructor(canvasRendererPluginOptions: CanvasRendererPluginOptions); private removedRBushNodeAABBs; private renderQueue; private clearFullScreenLastFrame; private clearFullScreen; /** * view projection matrix */ private vpMatrix; private dprMatrix; private tmpMat4; private vec3a; private vec3b; private vec3c; private vec3d; apply(context: RenderingPluginContext, runtime: GlobalRuntime): void; private clearRect; renderDisplayObjectOptimized(object: DisplayObject, context: CanvasRenderingContext2D, canvasContext: CanvasContext, renderState: RenderState, runtime: GlobalRuntime): void; renderDisplayObject(object: DisplayObject, context: CanvasRenderingContext2D, canvasContext: CanvasContext, renderState: RenderState, runtime: GlobalRuntime): void; applyAttributesToContext(context: CanvasRenderingContext2D, object: DisplayObject): void; private convertAABB2Rect; /** * TODO: merge dirty rectangles with some strategies. * For now, we just simply merge all the rectangles into one. * @see https://idom.me/articles/841.html */ private mergeDirtyAABBs; private searchDirtyObjects; private saveDirtyAABB; private applyWorldTransform; private safeMergeAABB; } //# sourceMappingURL=CanvasRendererPlugin.d.ts.map