/** @ignore */ /** */
import type { IRenderer, IMargin, IRendererEvent, ILayer, ICanvasOptions, IPointerEvent, Id } from "./Renderer";
import { LinearGradientDef, RadialGradientDef, PatternDef, RasterPatternDef } from "../scene/Paint";
import { InteractionManager } from "../scene/Interaction";
import { SceneNode, SceneContainer, SceneGraphics, SceneText, SceneTextStyle, SceneRadialText, SceneImage, ScenePivot } from "../scene/SceneNode";
import type { IBounds } from "../../util/IBounds";
import type { IPoint } from "../../util/IPoint";
import { ArrayDisposer, IDisposer } from "../../util/Disposer";
/**
* @ignore
*/
export declare class CanvasRendererEvent implements IRendererEvent {
event: A;
originalPoint: IPoint;
point: IPoint;
bbox: DOMRect;
id: Id;
simulated: boolean;
native: boolean;
constructor(event: A, originalPoint: IPoint, point: IPoint, bbox: DOMRect);
}
/**
* @ignore
*/
export declare class CanvasRenderer extends ArrayDisposer implements IRenderer, IDisposer {
view: HTMLElement;
_layerDom: HTMLElement;
layers: Array;
_dirtyLayers: Array;
defaultLayer: CanvasLayer;
_ghostLayer: GhostLayer;
_deferredGhostLayers: Array;
protected _patternCanvas: HTMLCanvasElement;
protected _patternContext: CanvasRenderingContext2D;
protected _realWidth: number;
protected _realHeight: number;
protected _calculatedWidth: number;
protected _calculatedHeight: number;
resolution: number;
_interaction: InteractionManager;
protected _colorId: number;
protected _colorMap: {
[color: string]: SceneNode;
};
_forceInteractive: number;
_omitTainted: boolean;
resetImageArray(): void;
constructor(resolution?: number);
get interactionsEnabled(): boolean;
set interactionsEnabled(value: boolean);
get tapToActivate(): boolean;
set tapToActivate(value: boolean);
get tapToActivateTimeout(): number;
set tapToActivateTimeout(value: number);
get debugGhostView(): boolean;
set debugGhostView(value: boolean);
createLinearGradient(x1: number, y1: number, x2: number, y2: number): LinearGradientDef;
createRadialGradient(x1: number, y1: number, radius1: number, x2: number, y2: number, radius2: number): RadialGradientDef;
createPattern(graphics: SceneGraphics, background: SceneGraphics, repetition: string, width: number, height: number): PatternDef;
createRasterPattern(source: HTMLCanvasElement, repetition: string): RasterPatternDef | null;
makeContainer(): SceneContainer;
makeGraphics(): SceneGraphics;
makeText(text: string, style: SceneTextStyle): SceneText;
makeTextStyle(): SceneTextStyle;
makeRadialText(text: string, style: SceneTextStyle): SceneRadialText;
makePicture(image: HTMLImageElement | undefined): SceneImage;
resizeLayer(layer: CanvasLayer): void;
resizeGhost(): void;
resize(realWidth: number, realHeight: number, calculatedWidth: number, calculatedHeight: number): void;
private createDetachedLayer;
getLayerByOrder(order: number): CanvasLayer | undefined;
getLayer(order: number, visible?: boolean): CanvasLayer;
render(root: SceneNode): void;
paintId(obj: SceneNode): string;
_removeObject(obj: SceneNode): void;
_useLayer(order: number, margin: IMargin | undefined): CanvasLayer;
_layerCanvas(layer: ILayer): HTMLCanvasElement;
_measureText(text: SceneText): IBounds;
protected _adjustBoundingBox(bbox: DOMRect): DOMRect;
getEvent(originalEvent: A, adjustPoint?: boolean): CanvasRendererEvent;
_getHitTarget(point: IPoint, bbox: DOMRect, target: Node | null): SceneNode | undefined | false;
getObjectAtPoint(point: IPoint): SceneNode | undefined;
removeHovering(graphics: SceneNode): void;
getCanvas(root: SceneNode, options?: ICanvasOptions): HTMLCanvasElement;
}
declare class GhostLayer {
view: HTMLCanvasElement;
context: CanvasRenderingContext2D;
margin: IMargin;
private _resolution;
private _width;
private _height;
imageArray?: Uint8ClampedArray;
constructor();
resize(canvasWidth: number, canvasHeight: number, domWidth: number, domHeight: number, resolution: number): void;
getImageData(point: IPoint, bbox: DOMRect): ImageData;
getImageArray(point: IPoint): Array;
setMargin(layers: Array): void;
clear(): void;
}
/**
* @ignore
*/
export declare class CanvasLayer implements ILayer {
view: HTMLCanvasElement;
context: CanvasRenderingContext2D;
tainted: boolean;
margin: IMargin | undefined;
order: number;
visible: boolean;
width: number | undefined;
height: number | undefined;
scale: number | undefined;
dirty: boolean;
exportableView: HTMLCanvasElement | undefined;
exportableContext: CanvasRenderingContext2D | undefined;
private _width;
private _height;
constructor(view: HTMLCanvasElement, context: CanvasRenderingContext2D);
resize(canvasWidth: number, canvasHeight: number, domWidth: number, domHeight: number, resolution: number): void;
clear(): void;
}
/**
* @deprecated Renamed to `ScenePivot`.
* @ignore
*/
export declare const CanvasPivot: typeof ScenePivot;
/** @ignore */
export declare type CanvasPivot = ScenePivot;
/**
* @deprecated Renamed to `SceneNode`.
* @ignore
*/
export declare const CanvasDisplayObject: typeof SceneNode;
/** @ignore */
export declare type CanvasDisplayObject = SceneNode;
/**
* @deprecated Renamed to `SceneContainer`.
* @ignore
*/
export declare const CanvasContainer: typeof SceneContainer;
/** @ignore */
export declare type CanvasContainer = SceneContainer;
/**
* @deprecated Renamed to `SceneGraphics`.
* @ignore
*/
export declare const CanvasGraphics: typeof SceneGraphics;
/** @ignore */
export declare type CanvasGraphics = SceneGraphics;
/**
* @deprecated Renamed to `SceneText`.
* @ignore
*/
export declare const CanvasText: typeof SceneText;
/** @ignore */
export declare type CanvasText = SceneText;
/**
* @deprecated Renamed to `SceneRadialText`.
* @ignore
*/
export declare const CanvasRadialText: typeof SceneRadialText;
/** @ignore */
export declare type CanvasRadialText = SceneRadialText;
/**
* @deprecated Renamed to `SceneTextStyle`.
* @ignore
*/
export declare const CanvasTextStyle: typeof SceneTextStyle;
/** @ignore */
export declare type CanvasTextStyle = SceneTextStyle;
/**
* @deprecated Renamed to `SceneImage`.
* @ignore
*/
export declare const CanvasImage: typeof SceneImage;
/** @ignore */
export declare type CanvasImage = SceneImage;
export {};
//# sourceMappingURL=CanvasRenderer.d.ts.map