uplot-webgpu 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CANVAS_PROXY.md +602 -0
  2. package/README.md +854 -0
  3. package/favicon.ico +0 -0
  4. package/index.html +14 -0
  5. package/index.js +21 -0
  6. package/original/paths.canvas2d/bars.js +252 -0
  7. package/original/paths.canvas2d/catmullRomCentrip.js +125 -0
  8. package/original/paths.canvas2d/linear.js +170 -0
  9. package/original/paths.canvas2d/monotoneCubic.js +68 -0
  10. package/original/paths.canvas2d/points.js +66 -0
  11. package/original/paths.canvas2d/spline.js +103 -0
  12. package/original/paths.canvas2d/stepped.js +124 -0
  13. package/original/paths.canvas2d/utils.js +301 -0
  14. package/original/uPlot.canvas2d.js +3548 -0
  15. package/package.json +110 -0
  16. package/paths/bars.js +253 -0
  17. package/paths/catmullRomCentrip.js +126 -0
  18. package/paths/linear.js +171 -0
  19. package/paths/monotoneCubic.js +69 -0
  20. package/paths/points.js +67 -0
  21. package/paths/spline.js +104 -0
  22. package/paths/stepped.js +125 -0
  23. package/paths/utils.js +301 -0
  24. package/scripts/uPlot.css +168 -0
  25. package/scripts/uPlot.d.ts +26 -0
  26. package/scripts/uPlot.js +3687 -0
  27. package/scripts/utils/dom.js +124 -0
  28. package/scripts/utils/domClasses.js +22 -0
  29. package/scripts/utils/feats.js +13 -0
  30. package/scripts/utils/fmtDate.js +398 -0
  31. package/scripts/utils/opts.js +844 -0
  32. package/scripts/utils/strings.js +22 -0
  33. package/scripts/utils/sync.js +27 -0
  34. package/scripts/utils/utils.js +692 -0
  35. package/scripts/webgpu/GPUPath.d.ts +46 -0
  36. package/scripts/webgpu/GPUPath.js +633 -0
  37. package/scripts/webgpu/GPUPath.ts +634 -0
  38. package/scripts/webgpu/WebGPURenderer.d.ts +176 -0
  39. package/scripts/webgpu/WebGPURenderer.js +4256 -0
  40. package/scripts/webgpu/WebGPURenderer.ts +4257 -0
  41. package/scripts/webgpu/browserSmokeHarness.js +105 -0
  42. package/scripts/webgpu/exporters.d.ts +8 -0
  43. package/scripts/webgpu/exporters.js +212 -0
  44. package/scripts/webgpu/shaders.d.ts +2 -0
  45. package/scripts/webgpu/shaders.js +76 -0
  46. package/scripts/webgpu/shaders.ts +77 -0
  47. package/scripts/webgpu/smokeTest.d.ts +2 -0
  48. package/scripts/webgpu/smokeTest.js +144 -0
  49. package/scripts/webgpu/webgpu-ambient.d.ts +41 -0
  50. package/tinybuild.config.js +109 -0
@@ -0,0 +1,176 @@
1
+ import { GPUPath } from './GPUPath.js';
2
+
3
+ export type RGBA = [number, number, number, number];
4
+
5
+ export type WebGPUMemoryMode = 'low' | 'balanced' | 'throughput';
6
+
7
+ export interface WebGPURendererOptions {
8
+ sharedRuntime?: boolean;
9
+ alpha?: boolean;
10
+ colorSpace?: PredefinedColorSpace;
11
+ desynchronized?: boolean;
12
+ memory?: WebGPUMemoryMode;
13
+ memoryMode?: WebGPUMemoryMode;
14
+ retainCommands?: boolean;
15
+ retainCommandsForReadback?: boolean;
16
+ releaseCommandsAfterPresent?: boolean;
17
+ maxRetainedUploadBytes?: number;
18
+ maxRetainedVertexBufferBytes?: number;
19
+ maxTextureBytes?: number;
20
+ maxTextureRecords?: number;
21
+ maxColorCacheEntries?: number;
22
+ maxTextMeasureCacheEntries?: number;
23
+ }
24
+
25
+ export interface WebGPURendererFrameStats {
26
+ cpuMs: number;
27
+ prepMs: number;
28
+ uploadMs: number;
29
+ submitMs: number;
30
+ drawCalls: number;
31
+ vertices: number;
32
+ bytes: number;
33
+ writes: number;
34
+ images: number;
35
+ clips: number;
36
+ retainedCPUBytes?: number;
37
+ retainedGPUBytes?: number;
38
+ textureBytes?: number;
39
+ commandsReleased?: boolean;
40
+ }
41
+
42
+ export interface WebGPURendererMemoryStats {
43
+ mode: WebGPUMemoryMode;
44
+ commands: number;
45
+ commandsReleased: boolean;
46
+ retainedCPUBytes: number;
47
+ retainedGPUBytes: number;
48
+ solidUploadBytes: number;
49
+ imageUploadBytes: number;
50
+ solidBufferBytes: number;
51
+ imageBufferBytes: number;
52
+ textureBytes: number;
53
+ textureRecords: number;
54
+ }
55
+
56
+ export interface WebGPUWarmupStats {
57
+ ok: boolean;
58
+ ms: number;
59
+ submitted?: boolean;
60
+ sharedRuntime?: boolean;
61
+ error?: string;
62
+ runtime?: WebGPURuntimeStats;
63
+ }
64
+
65
+ export interface WebGPURuntimeStats {
66
+ enabled?: boolean;
67
+ active?: boolean;
68
+ refs?: number;
69
+ adapterInfo?: Record<string, unknown>;
70
+ }
71
+
72
+ export interface CanvasGradientLike {
73
+ addColorStop(offset: number, color: string): void;
74
+ }
75
+
76
+ export interface CanvasPatternLike {
77
+ setTransform?(transform?: DOMMatrix2DInit): void;
78
+ }
79
+
80
+ export declare class WebGPURenderer {
81
+ constructor(canvas: HTMLCanvasElement | OffscreenCanvas, options?: WebGPURendererOptions | null);
82
+
83
+ canvas: HTMLCanvasElement | OffscreenCanvas;
84
+ options: WebGPURendererOptions;
85
+ initPromise: Promise<void>;
86
+
87
+ fillStyle: string | CanvasGradientLike | CanvasPatternLike;
88
+ strokeStyle: string | CanvasGradientLike | CanvasPatternLike;
89
+ lineWidth: number;
90
+ lineJoin: CanvasLineJoin;
91
+ lineCap: CanvasLineCap;
92
+ font: string;
93
+ textAlign: CanvasTextAlign;
94
+ textBaseline: CanvasTextBaseline;
95
+ globalAlpha: number;
96
+ globalCompositeOperation: GlobalCompositeOperation;
97
+ lineDashOffset: number;
98
+ miterLimit: number;
99
+ direction: CanvasDirection | 'inherit';
100
+ filter: string;
101
+ fontKerning: string;
102
+ fontStretch: string;
103
+ fontVariantCaps: string;
104
+ letterSpacing: string;
105
+ textRendering: string;
106
+ wordSpacing: string;
107
+ imageSmoothingEnabled: boolean;
108
+ imageSmoothingQuality: ImageSmoothingQuality;
109
+ shadowColor: string;
110
+ shadowBlur: number;
111
+ shadowOffsetX: number;
112
+ shadowOffsetY: number;
113
+
114
+ static setSharedRuntimeEnabled(enabled: boolean): void;
115
+ static prewarm(options?: {sharedRuntime?: boolean; width?: number; height?: number; canvas?: HTMLCanvasElement | OffscreenCanvas} | null): Promise<WebGPUWarmupStats>;
116
+ static getSharedRuntimeStats(): WebGPURuntimeStats;
117
+
118
+ init(): Promise<void>;
119
+ mount(wrapper: Element, canvas: HTMLCanvasElement | OffscreenCanvas): void;
120
+ destroy(): void;
121
+ resize(width?: number, height?: number): void;
122
+ flush(): Promise<void>;
123
+ present(): void;
124
+ getLastFrameStats(): WebGPURendererFrameStats;
125
+ getMemoryStats(): WebGPURendererMemoryStats;
126
+ trimMemory(): WebGPURendererMemoryStats;
127
+ getDevice(): GPUDevice | null;
128
+ getRuntime(): unknown;
129
+ getCanvasContext(): GPUCanvasContext | null;
130
+
131
+ save(): void;
132
+ restore(): void;
133
+ resetTransform(): void;
134
+ setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
135
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
136
+ translate(x: number, y: number): void;
137
+ scale(x: number, y: number): void;
138
+ rotate(angle: number): void;
139
+
140
+ beginPath(): void;
141
+ closePath(): void;
142
+ moveTo(x: number, y: number): void;
143
+ lineTo(x: number, y: number): void;
144
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
145
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
146
+ arc(cx: number, cy: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
147
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
148
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
149
+ roundRect(x: number, y: number, width: number, height: number, radii?: number | number[] | DOMPointInit | DOMPointInit[]): void;
150
+ rect(x: number, y: number, width: number, height: number): void;
151
+ clip(path?: GPUPath | CanvasFillRule, fillRule?: CanvasFillRule): void;
152
+ fill(path?: GPUPath | CanvasFillRule, fillRule?: CanvasFillRule): void;
153
+ stroke(path?: GPUPath): void;
154
+ fillRect(x: number, y: number, width: number, height: number): void;
155
+ strokeRect(x: number, y: number, width: number, height: number): void;
156
+ clearRect(x: number, y: number, width: number, height: number): void;
157
+ fillText(text: string, x: number, y: number, maxWidth?: number): void;
158
+ strokeText(text: string, x: number, y: number, maxWidth?: number): void;
159
+ measureText(text: string): TextMetrics;
160
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradientLike;
161
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradientLike;
162
+ createConicGradient(startAngle: number, x: number, y: number): CanvasGradientLike;
163
+ createPattern(image: CanvasImageSource | ImageBitmap, repetition?: string): CanvasPatternLike | null;
164
+ createImageData(width: number, height: number): ImageData;
165
+ putImageData(imageData: ImageData, dx: number, dy: number, dirtyX?: number, dirtyY?: number, dirtyWidth?: number, dirtyHeight?: number): void;
166
+ getImageData(sx?: number, sy?: number, sw?: number, sh?: number): ImageData;
167
+ getImageDataAsync(sx?: number, sy?: number, sw?: number, sh?: number): Promise<ImageData>;
168
+ setLineDash(segments: number[]): void;
169
+ getLineDash(): number[];
170
+ drawImage(image: CanvasImageSource | ImageBitmap, dx: number, dy: number): void;
171
+ drawImage(image: CanvasImageSource | ImageBitmap, dx: number, dy: number, dWidth: number, dHeight: number): void;
172
+ drawImage(image: CanvasImageSource | ImageBitmap, sx: number, sy: number, sWidth: number, sHeight: number, dx: number, dy: number, dWidth: number, dHeight: number): void;
173
+ }
174
+
175
+ export declare const WebGPURendererInternals: Record<string, unknown>;
176
+ export default WebGPURenderer;