| /* eslint-disable import/no-unresolved */ | |
| // Contains the type definitions for all the emscripten bound methods from the wasm debugger. | |
| // These are defined in //skia/experimental/wasm-skp-debugger/debugger_bindings.cpp | |
| import type { | |
| CanvasKit, | |
| Surface, | |
| // eslint-disable-next-line @typescript-eslint/ban-ts-comment | |
| // @ts-ignore | |
| } from '../wasm_libs/types/canvaskit'; // gazelle:ignore | |
| export interface Debugger extends CanvasKit { | |
| SkpFilePlayer(ab: ArrayBuffer): SkpFilePlayerResult; | |
| MinVersion(): number; | |
| } | |
| // An object containing either the successfully loaded file player or an error. | |
| export interface SkpFilePlayerResult { | |
| readonly error: string; | |
| readonly player: SkpDebugPlayer; | |
| } | |
| export interface SkpDebugPlayer { | |
| changeFrame(index: number): void; | |
| deleteCommand(index: number): void; | |
| draw(surface: Surface): void; | |
| drawTo(surface: Surface, index: number): void; | |
| findCommandByPixel(surface: Surface, x: number, y: number, upperBound: number): number; | |
| getBounds(): SkIRect; | |
| getBoundsForFrame(frame: number): SkIRect; | |
| getFrameCount(): number; | |
| getImageResource(index: number): string; | |
| getImageCount(): number; | |
| getImageInfo(index: number): ImageInfoNoColorspace; | |
| getLayerKeys(): LayerKey[]; | |
| getLayerSummariesJs(): LayerSummary[]; | |
| getSize(): number; | |
| imageUseInfo(frame: number, nodeid: number): ImageUseMap; | |
| jsonCommandList(surface: Surface): string; | |
| lastCommandInfo(): string; | |
| loadSkp(ptr: number, len: number): string; | |
| setClipVizColor(color: Color): void; | |
| setCommandVisibility(index: number, visible: boolean): void; | |
| setGpuOpBounds(visible: boolean): void; | |
| setInspectedLayer(nodeId: number): void; | |
| setOriginVisible(visible: boolean): void; | |
| setOverdrawVis(visible: boolean): void; | |
| setAndroidClipViz(visible: boolean): void; | |
| TRANSPARENT: number; | |
| } | |
| export interface ImageInfoNoColorspace { | |
| width: number; | |
| height: number; | |
| colorType: number; | |
| alphaType: number; | |
| } | |
| export interface SkIRect { | |
| fLeft: number; | |
| fTop: number; | |
| fRight: number; | |
| fBottom: number; | |
| } | |
| export type Color = number; | |
| export type Matrix3x3 = [ | |
| [number, number, number], | |
| [number, number, number], | |
| [number, number, number], | |
| ]; | |
| export type Matrix4x4 = [ | |
| [number, number, number, number], | |
| [number, number, number, number], | |
| [number, number, number, number], | |
| [number, number, number, number], | |
| ]; | |
| // return type of lastCommandInfo after json.parse | |
| export interface MatrixClipInfo { | |
| ClipRect: [number, number, number, number]; | |
| ViewMatrix: Matrix3x3 | Matrix4x4; | |
| } | |
| export interface SkpJsonGpuOp { | |
| Name: string; | |
| ClientID: number; | |
| OpsTaskID: number; | |
| ChildID: number; | |
| // TODO(nifong): bounds, stack | |
| } | |
| export interface SkpJsonAuditTrail { | |
| Ops: SkpJsonGpuOp[]; | |
| } | |
| export interface SkpJsonCommand { | |
| command: string; // name | |
| shortDesc?: string; // short description | |
| layerNodeId?: number; | |
| imageIndex?: number; | |
| key?: string; // text that goes along with a DrawAnnotation command | |
| auditTrail: SkpJsonAuditTrail; | |
| } | |
| // Return type of SkpDebugPlayer.jsonCommandList() after json.parse | |
| export interface SkpJsonCommandList { | |
| commands: SkpJsonCommand[]; | |
| } | |
| // Indentifier of a layer update evenet | |
| export interface LayerKey { | |
| frame: number; | |
| nodeId: number; | |
| } | |
| // Info about layer events relevant to a particular layer and frame | |
| // struct from LayerManager.h | |
| export interface LayerSummary { | |
| nodeId: number; | |
| frameOfLastUpdate: number; | |
| fullRedraw: boolean; | |
| layerWidth: number; | |
| layerHeight: number; | |
| } | |
| // return type of imageUseInfoForFrame | |
| // Keys are image ids, values are lists of command indices | |
| export type ImageUseMap = Map<string, number[]>; |