react-native-wgpu 0.1.7 → 0.1.9

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 (93) hide show
  1. package/android/cpp/cpp-adapter.cpp +13 -35
  2. package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -37
  3. package/android/src/main/java/com/webgpu/WebGPUView.java +0 -1
  4. package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +1 -1
  5. package/cpp/rnwgpu/RNWebGPUManager.h +2 -2
  6. package/cpp/rnwgpu/SurfaceRegistry.h +148 -13
  7. package/cpp/rnwgpu/api/Canvas.h +15 -15
  8. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +81 -23
  9. package/cpp/rnwgpu/api/GPUCanvasContext.h +16 -7
  10. package/cpp/rnwgpu/api/GPUDevice.cpp +6 -3
  11. package/cpp/rnwgpu/api/OffscreenSurface.h +49 -0
  12. package/cpp/rnwgpu/api/RNWebGPU.h +21 -10
  13. package/ios/MetalView.mm +11 -0
  14. package/ios/SurfaceUtils.h +2 -0
  15. package/ios/SurfaceUtils.mm +16 -4
  16. package/ios/WebGPUModule.mm +8 -25
  17. package/ios/WebGPUView.mm +9 -6
  18. package/lib/commonjs/Canvas.js +79 -18
  19. package/lib/commonjs/Canvas.js.map +1 -1
  20. package/lib/commonjs/Offscreen.js +124 -0
  21. package/lib/commonjs/Offscreen.js.map +1 -0
  22. package/lib/commonjs/index.js +12 -0
  23. package/lib/commonjs/index.js.map +1 -1
  24. package/lib/commonjs/utils.js +26 -15
  25. package/lib/commonjs/utils.js.map +1 -1
  26. package/lib/module/Canvas.js +80 -19
  27. package/lib/module/Canvas.js.map +1 -1
  28. package/lib/module/Offscreen.js +117 -0
  29. package/lib/module/Offscreen.js.map +1 -0
  30. package/lib/module/index.js +1 -0
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/utils.js +25 -15
  33. package/lib/module/utils.js.map +1 -1
  34. package/lib/typescript/lib/commonjs/Offscreen.d.ts +32 -0
  35. package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +1 -0
  36. package/lib/typescript/lib/commonjs/utils.d.ts +5 -1
  37. package/lib/typescript/lib/commonjs/utils.d.ts.map +1 -1
  38. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
  39. package/lib/typescript/lib/module/Offscreen.d.ts +31 -0
  40. package/lib/typescript/lib/module/Offscreen.d.ts.map +1 -0
  41. package/lib/typescript/lib/module/index.d.ts +1 -0
  42. package/lib/typescript/lib/module/utils.d.ts +5 -1
  43. package/lib/typescript/lib/module/utils.d.ts.map +1 -1
  44. package/lib/typescript/src/Canvas.d.ts +6 -4
  45. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  46. package/lib/typescript/src/Offscreen.d.ts +41 -0
  47. package/lib/typescript/src/Offscreen.d.ts.map +1 -0
  48. package/lib/typescript/src/__tests__/setup.d.ts +5 -4
  49. package/lib/typescript/src/__tests__/setup.d.ts.map +1 -1
  50. package/lib/typescript/src/index.d.ts +1 -0
  51. package/lib/typescript/src/index.d.ts.map +1 -1
  52. package/lib/typescript/src/utils.d.ts +6 -3
  53. package/lib/typescript/src/utils.d.ts.map +1 -1
  54. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  55. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  56. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  57. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  58. package/libs/apple/arm64_iphoneos/libwebgpu_dawn.a +0 -0
  59. package/libs/apple/arm64_iphonesimulator/libwebgpu_dawn.a +0 -0
  60. package/libs/apple/arm64_xros/libwebgpu_dawn.a +0 -0
  61. package/libs/apple/arm64_xrsimulator/libwebgpu_dawn.a +0 -0
  62. package/libs/apple/{libwebgpu_dawn.a → iphonesimulator/libwebgpu_dawn.a} +0 -0
  63. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +45 -0
  64. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  65. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  66. package/libs/apple/{libwebgpu_dawn_macosx.xcframework → libwebgpu_dawn.xcframework}/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  67. package/libs/apple/{libwebgpu_dawn_visionos.xcframework → libwebgpu_dawn.xcframework}/xros-arm64/libwebgpu_dawn.a +0 -0
  68. package/libs/apple/{x86_64_xrsimulator → libwebgpu_dawn.xcframework/xros-arm64-simulator}/libwebgpu_dawn.a +0 -0
  69. package/libs/apple/universal_macosx/libwebgpu_dawn.a +0 -0
  70. package/libs/apple/x86_64_iphonesimulator/libwebgpu_dawn.a +0 -0
  71. package/package.json +1 -1
  72. package/react-native-wgpu.podspec +2 -8
  73. package/src/Canvas.tsx +101 -37
  74. package/src/Offscreen.ts +164 -0
  75. package/src/__tests__/ExternalTexture.spec.ts +4 -4
  76. package/src/__tests__/Texture.spec.ts +8 -2
  77. package/src/__tests__/demos/ABuffer.spec.ts +17 -12
  78. package/src/__tests__/demos/Blur.spec.ts +2 -1
  79. package/src/__tests__/demos/Cube.spec.ts +16 -12
  80. package/src/__tests__/demos/FractalCube.spec.ts +6 -5
  81. package/src/__tests__/demos/OcclusionQuery.spec.ts +3 -3
  82. package/src/__tests__/demos/RenderBundles.spec.ts +4 -3
  83. package/src/__tests__/demos/Triangle.spec.ts +27 -9
  84. package/src/__tests__/setup.ts +25 -10
  85. package/src/index.tsx +1 -0
  86. package/src/utils.ts +28 -18
  87. package/lib/typescript/src/__tests__/components/DrawingContext.d.ts +0 -12
  88. package/lib/typescript/src/__tests__/components/DrawingContext.d.ts.map +0 -1
  89. package/libs/apple/libwebgpu_dawn_macosx.xcframework/Info.plist +0 -28
  90. package/libs/apple/libwebgpu_dawn_visionos.a +0 -0
  91. package/libs/apple/libwebgpu_dawn_visionos.xcframework/Info.plist +0 -44
  92. package/libs/apple/libwebgpu_dawn_visionos.xcframework/xros-arm64_x86_64-simulator/libwebgpu_dawn_visionos.a +0 -0
  93. package/src/__tests__/components/DrawingContext.ts +0 -11
@@ -1,39 +1,100 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import { forwardRef, useEffect, useImperativeHandle, useState } from "react";
2
+ import { View } from "react-native";
3
+ import { forwardRef, useEffect, useImperativeHandle, useRef, useState, useLayoutEffect, useCallback } from "react";
3
4
  import WebGPUNativeView from "./WebGPUViewNativeComponent";
4
- import WebGPUNativeModule from "./NativeWebGPUModule";
5
5
  let CONTEXT_COUNTER = 1;
6
6
  function generateContextId() {
7
7
  return CONTEXT_COUNTER++;
8
8
  }
9
- global.__WebGPUContextRegistry = {};
10
- const WebGPUContextRegistry = global.__WebGPUContextRegistry;
11
- export const Canvas = /*#__PURE__*/forwardRef((props, ref) => {
9
+ const useSizeFabric = ref => {
10
+ const [size, setSize] = useState(null);
11
+ useLayoutEffect(() => {
12
+ if (!ref.current) {
13
+ throw new Error("Canvas ref is null");
14
+ }
15
+ ref.current.measureInWindow((_x, _y, width, height) => {
16
+ setSize({
17
+ width,
18
+ height
19
+ });
20
+ });
21
+ }, [ref]);
22
+ return {
23
+ size,
24
+ onLayout: undefined
25
+ };
26
+ };
27
+ const useSizePaper = _ref => {
28
+ const [size, setSize] = useState(null);
29
+ const onLayout = useCallback(({
30
+ nativeEvent: {
31
+ layout: {
32
+ width,
33
+ height
34
+ }
35
+ }
36
+ }) => {
37
+ if (size === null) {
38
+ setSize({
39
+ width,
40
+ height
41
+ });
42
+ }
43
+ }, [size]);
44
+ return {
45
+ size,
46
+ onLayout
47
+ };
48
+ };
49
+ export const Canvas = /*#__PURE__*/forwardRef(({
50
+ onLayout: _onLayout,
51
+ ...props
52
+ }, ref) => {
53
+ const viewRef = useRef(null);
54
+ const FABRIC = RNWebGPU.fabric;
55
+ const useSize = FABRIC ? useSizeFabric : useSizePaper;
12
56
  const [contextId, _] = useState(() => generateContextId());
57
+ const cb = useRef();
58
+ const {
59
+ size,
60
+ onLayout
61
+ } = useSize(viewRef);
62
+ useEffect(() => {
63
+ if (size && cb.current) {
64
+ cb.current();
65
+ }
66
+ }, [size]);
13
67
  useImperativeHandle(ref, () => ({
14
68
  getNativeSurface: () => {
15
- WebGPUNativeModule.createSurfaceContext(contextId);
16
- return WebGPUContextRegistry[contextId];
69
+ if (size === null) {
70
+ throw new Error("[WebGPU] Canvas size is not available yet");
71
+ }
72
+ return RNWebGPU.getNativeSurface(contextId);
73
+ },
74
+ whenReady(callback) {
75
+ if (size === null) {
76
+ cb.current = callback;
77
+ } else {
78
+ callback();
79
+ }
17
80
  },
18
81
  getContext(contextName) {
19
82
  if (contextName !== "webgpu") {
20
83
  throw new Error(`[WebGPU] Unsupported context: ${contextName}`);
21
84
  }
22
- WebGPUNativeModule.createSurfaceContext(contextId);
23
- const nativeSurface = WebGPUContextRegistry[contextId];
24
- if (!nativeSurface) {
25
- return null;
85
+ if (size === null) {
86
+ throw new Error("[WebGPU] Canvas size is not available yet");
26
87
  }
27
- const ctx = RNWebGPU.MakeWebGPUCanvasContext(nativeSurface);
28
- return ctx;
88
+ return RNWebGPU.MakeWebGPUCanvasContext(contextId, size.width, size.height);
29
89
  }
30
90
  }));
31
- useEffect(() => {
32
- return () => {
33
- delete WebGPUContextRegistry[contextId];
34
- };
35
- }, [contextId]);
36
- return /*#__PURE__*/React.createElement(WebGPUNativeView, _extends({}, props, {
91
+ return /*#__PURE__*/React.createElement(View, _extends({
92
+ ref: viewRef,
93
+ onLayout: onLayout
94
+ }, props), /*#__PURE__*/React.createElement(WebGPUNativeView, {
95
+ style: {
96
+ flex: 1
97
+ },
37
98
  contextId: contextId
38
99
  }));
39
100
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useEffect","useImperativeHandle","useState","WebGPUNativeView","WebGPUNativeModule","CONTEXT_COUNTER","generateContextId","global","__WebGPUContextRegistry","WebGPUContextRegistry","Canvas","props","ref","contextId","_","getNativeSurface","createSurfaceContext","getContext","contextName","Error","nativeSurface","ctx","RNWebGPU","MakeWebGPUCanvasContext","React","createElement","_extends"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AACA,SAASA,UAAU,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,QAAQ,QAAQ,OAAO;AAE5E,OAAOC,gBAAgB,MAAM,6BAA6B;AAC1D,OAAOC,kBAAkB,MAAM,sBAAsB;AAErD,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AAwBAE,MAAM,CAACC,uBAAuB,GAAG,CAAC,CAAC;AACnC,MAAMC,qBAAqB,GAAGF,MAAM,CAACC,uBAAuB;AAW5D,OAAO,MAAME,MAAM,gBAAGX,UAAU,CAAuB,CAACY,KAAK,EAAEC,GAAG,KAAK;EACrE,MAAM,CAACC,SAAS,EAAEC,CAAC,CAAC,GAAGZ,QAAQ,CAAC,MAAMI,iBAAiB,CAAC,CAAC,CAAC;EAE1DL,mBAAmB,CAACW,GAAG,EAAE,OAAO;IAC9BG,gBAAgB,EAAEA,CAAA,KAAM;MACtBX,kBAAkB,CAACY,oBAAoB,CAACH,SAAS,CAAC;MAClD,OAAOJ,qBAAqB,CAACI,SAAS,CAAC;IACzC,CAAC;IACDI,UAAUA,CAACC,WAAqB,EAAwB;MACtD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACAd,kBAAkB,CAACY,oBAAoB,CAACH,SAAS,CAAC;MAClD,MAAMO,aAAa,GAAGX,qBAAqB,CAACI,SAAS,CAAC;MACtD,IAAI,CAACO,aAAa,EAAE;QAClB,OAAO,IAAI;MACb;MACA,MAAMC,GAAG,GAAGC,QAAQ,CAACC,uBAAuB,CAACH,aAAa,CAAC;MAC3D,OAAOC,GAAG;IACZ;EACF,CAAC,CAAC,CAAC;EAEHrB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,OAAOS,qBAAqB,CAACI,SAAS,CAAC;IACzC,CAAC;EACH,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,oBAAOW,KAAA,CAAAC,aAAA,CAACtB,gBAAgB,EAAAuB,QAAA,KAAKf,KAAK;IAAEE,SAAS,EAAEA;EAAU,EAAE,CAAC;AAC9D,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["View","forwardRef","useEffect","useImperativeHandle","useRef","useState","useLayoutEffect","useCallback","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","useSizeFabric","ref","size","setSize","current","Error","measureInWindow","_x","_y","width","height","onLayout","undefined","useSizePaper","_ref","nativeEvent","layout","Canvas","_onLayout","props","viewRef","FABRIC","RNWebGPU","fabric","useSize","contextId","_","cb","getNativeSurface","whenReady","callback","getContext","contextName","MakeWebGPUCanvasContext","React","createElement","_extends","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,117 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ export class GPUOffscreenCanvas {
3
+ oncontextlost = null;
4
+ oncontextrestored = null;
5
+ constructor(width, height) {
6
+ this.width = width;
7
+ this.height = height;
8
+ this.context = new GPUOffscreenCanvasContext(this);
9
+ }
10
+ convertToBlob(_options) {
11
+ // Implementation for converting the canvas content to a Blob
12
+ throw new Error("Method not implemented.");
13
+ }
14
+
15
+ // Overloaded method signatures
16
+
17
+ getContext(contextId, _options) {
18
+ if (contextId === "webgpu") {
19
+ return this.context;
20
+ }
21
+ // Implement other context types if necessary
22
+ return null;
23
+ }
24
+ transferToImageBitmap() {
25
+ // Implementation for transferring the canvas content to an ImageBitmap
26
+ throw new Error("Method not implemented.");
27
+ }
28
+ addEventListener(_type, _listener, _options) {
29
+ // Event listener implementation
30
+ throw new Error("Method not implemented.");
31
+ }
32
+ removeEventListener(_type, _listener, _options) {
33
+ // Remove event listener implementation
34
+ throw new Error("Method not implemented.");
35
+ }
36
+ dispatchEvent(_event) {
37
+ // Event dispatch implementation
38
+ throw new Error("Method not implemented.");
39
+ }
40
+ getImageData() {
41
+ const device = this.context.getDevice();
42
+ const texture = this.context.getTexture();
43
+ const commandEncoder = device.createCommandEncoder();
44
+ const bytesPerRow = this.width * 4;
45
+ const buffer = device.createBuffer({
46
+ size: bytesPerRow * this.height,
47
+ usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ
48
+ });
49
+ commandEncoder.copyTextureToBuffer({
50
+ texture: texture
51
+ }, {
52
+ buffer: buffer,
53
+ bytesPerRow
54
+ }, [this.width, this.height]);
55
+ device.queue.submit([commandEncoder.finish()]);
56
+ return buffer.mapAsync(GPUMapMode.READ).then(() => {
57
+ const arrayBuffer = buffer.getMappedRange();
58
+ const uint8Array = new Uint8Array(arrayBuffer);
59
+ const data = Array.from(uint8Array);
60
+ buffer.unmap();
61
+ return {
62
+ data,
63
+ width: this.width,
64
+ height: this.height,
65
+ format: navigator.gpu.getPreferredCanvasFormat()
66
+ };
67
+ });
68
+ }
69
+ }
70
+ class GPUOffscreenCanvasContext {
71
+ __brand = "GPUCanvasContext";
72
+ texture = null;
73
+ device = null;
74
+ constructor(canvas) {
75
+ this.canvas = canvas;
76
+ this.textureFormat = navigator.gpu.getPreferredCanvasFormat();
77
+ }
78
+ present() {
79
+ // Do nothing
80
+ }
81
+ getDevice() {
82
+ if (!this.device) {
83
+ throw new Error("Device is not configured.");
84
+ }
85
+ return this.device;
86
+ }
87
+ getTexture() {
88
+ if (!this.texture) {
89
+ throw new Error("Texture is not configured");
90
+ }
91
+ return this.texture;
92
+ }
93
+ configure(config) {
94
+ // Configure the canvas context with the device and format
95
+ this.device = config.device;
96
+ this.texture = config.device.createTexture({
97
+ size: [this.canvas.width, this.canvas.height],
98
+ format: this.textureFormat,
99
+ usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.COPY_SRC | GPUTextureUsage.TEXTURE_BINDING
100
+ });
101
+ return undefined;
102
+ }
103
+ unconfigure() {
104
+ // Unconfigure the canvas context
105
+ if (this.texture) {
106
+ this.texture.destroy();
107
+ }
108
+ return undefined;
109
+ }
110
+ getCurrentTexture() {
111
+ if (!this.texture) {
112
+ throw new Error("Texture is not configured");
113
+ }
114
+ return this.texture;
115
+ }
116
+ }
117
+ //# sourceMappingURL=Offscreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GPUOffscreenCanvas","oncontextlost","oncontextrestored","constructor","width","height","context","GPUOffscreenCanvasContext","convertToBlob","_options","Error","getContext","contextId","transferToImageBitmap","addEventListener","_type","_listener","removeEventListener","dispatchEvent","_event","getImageData","device","getDevice","texture","getTexture","commandEncoder","createCommandEncoder","bytesPerRow","buffer","createBuffer","size","usage","GPUBufferUsage","COPY_DST","MAP_READ","copyTextureToBuffer","queue","submit","finish","mapAsync","GPUMapMode","READ","then","arrayBuffer","getMappedRange","uint8Array","Uint8Array","data","Array","from","unmap","format","navigator","gpu","getPreferredCanvasFormat","__brand","canvas","textureFormat","present","configure","config","createTexture","GPUTextureUsage","RENDER_ATTACHMENT","COPY_SRC","TEXTURE_BINDING","undefined","unconfigure","destroy","getCurrentTexture"],"sourceRoot":"../../src","sources":["Offscreen.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import WebGPUNativeModule from "./NativeWebGPUModule";
3
3
  export * from "./Canvas";
4
+ export * from "./Offscreen";
4
5
  export * from "./WebGPUViewNativeComponent";
5
6
  export * from "./utils";
6
7
  export { default as WebGPUModule } from "./NativeWebGPUModule";
@@ -1 +1 @@
1
- {"version":3,"names":["WebGPUNativeModule","default","WebGPUModule","GPU","Symbol","hasInstance","instance","__brand","GPUAdapter","GPUAdapterInfo","GPUBindGroup","GPUBindGroupLayout","GPUBuffer","GPUCanvasContext","GPUCommandBuffer","GPUCommandEncoder","GPUCompilationInfo","GPUCompilationMessage","GPUComputePassEncoder","GPUComputePipeline","GPUDevice","GPUDeviceLostInfo","GPUError","GPUExternalTexture","GPUPipelineLayout","GPUQuerySet","GPUQueue","GPURenderBundle","GPURenderBundleEncoder","GPURenderPassEncoder","GPURenderPipeline","GPUSampler","GPUShaderModule","GPUTexture","GPUTextureView","global","install","navigator","gpu","RNWebGPU","userAgent","createImageBitmap","params","Promise","resolve"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["WebGPUNativeModule","default","WebGPUModule","GPU","Symbol","hasInstance","instance","__brand","GPUAdapter","GPUAdapterInfo","GPUBindGroup","GPUBindGroupLayout","GPUBuffer","GPUCanvasContext","GPUCommandBuffer","GPUCommandEncoder","GPUCompilationInfo","GPUCompilationMessage","GPUComputePassEncoder","GPUComputePipeline","GPUDevice","GPUDeviceLostInfo","GPUError","GPUExternalTexture","GPUPipelineLayout","GPUQuerySet","GPUQueue","GPURenderBundle","GPURenderBundleEncoder","GPURenderPassEncoder","GPURenderPipeline","GPUSampler","GPUShaderModule","GPUTexture","GPUTextureView","global","install","navigator","gpu","RNWebGPU","userAgent","createImageBitmap","params","Promise","resolve"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA;AACA,OAAOA,kBAAkB,MAAM,sBAAsB;AAErD,cAAc,UAAU;AACxB,cAAc,aAAa;AAC3B,cAAc,6BAA6B;AAC3C,cAAc,SAAS;AACvB,SAASC,OAAO,IAAIC,YAAY,QAAQ,sBAAsB;AAE9D,MAAMC,GAAQ,GAAG,CAAC,CAAC;AACnBA,GAAG,CAACC,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACpD,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,KAAK;AAC5D,CAAC;AAED,MAAMC,UAAe,GAAG,CAAC,CAAC;AAC1BA,UAAU,CAACJ,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC3D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,YAAY;AACnE,CAAC;AAED,MAAME,cAAmB,GAAG,CAAC,CAAC;AAC9BA,cAAc,CAACL,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC/D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,gBAAgB;AACvE,CAAC;AAED,MAAMG,YAAiB,GAAG,CAAC,CAAC;AAC5BA,YAAY,CAACN,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC7D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,cAAc;AACrE,CAAC;AAED,MAAMI,kBAAuB,GAAG,CAAC,CAAC;AAClCA,kBAAkB,CAACP,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACnE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,oBAAoB;AAC3E,CAAC;AAED,MAAMK,SAAc,GAAG,CAAC,CAAC;AACzBA,SAAS,CAACR,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC1D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,WAAW;AAClE,CAAC;AAED,MAAMM,gBAAqB,GAAG,CAAC,CAAC;AAChCA,gBAAgB,CAACT,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACjE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,kBAAkB;AACzE,CAAC;AAED,MAAMO,gBAAqB,GAAG,CAAC,CAAC;AAChCA,gBAAgB,CAACV,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACjE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,kBAAkB;AACzE,CAAC;AAED,MAAMQ,iBAAsB,GAAG,CAAC,CAAC;AACjCA,iBAAiB,CAACX,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAClE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,mBAAmB;AAC1E,CAAC;AAED,MAAMS,kBAAuB,GAAG,CAAC,CAAC;AAClCA,kBAAkB,CAACZ,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACnE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,oBAAoB;AAC3E,CAAC;AAED,MAAMU,qBAA0B,GAAG,CAAC,CAAC;AACrCA,qBAAqB,CAACb,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACtE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,uBAAuB;AAC9E,CAAC;AAED,MAAMW,qBAA0B,GAAG,CAAC,CAAC;AACrCA,qBAAqB,CAACd,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACtE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,uBAAuB;AAC9E,CAAC;AAED,MAAMY,kBAAuB,GAAG,CAAC,CAAC;AAClCA,kBAAkB,CAACf,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACnE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,oBAAoB;AAC3E,CAAC;AAED,MAAMa,SAAc,GAAG,CAAC,CAAC;AACzBA,SAAS,CAAChB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC1D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,WAAW;AAClE,CAAC;AAED,MAAMc,iBAAsB,GAAG,CAAC,CAAC;AACjCA,iBAAiB,CAACjB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAClE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,mBAAmB;AAC1E,CAAC;AAED,MAAMe,QAAa,GAAG,CAAC,CAAC;AACxBA,QAAQ,CAAClB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACzD,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,UAAU;AACjE,CAAC;AAED,MAAMgB,kBAAuB,GAAG,CAAC,CAAC;AAClCA,kBAAkB,CAACnB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACnE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,oBAAoB;AAC3E,CAAC;AAED,MAAMiB,iBAAsB,GAAG,CAAC,CAAC;AACjCA,iBAAiB,CAACpB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAClE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,mBAAmB;AAC1E,CAAC;AAED,MAAMkB,WAAgB,GAAG,CAAC,CAAC;AAC3BA,WAAW,CAACrB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC5D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,aAAa;AACpE,CAAC;AAED,MAAMmB,QAAa,GAAG,CAAC,CAAC;AACxBA,QAAQ,CAACtB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACzD,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,UAAU;AACjE,CAAC;AAED,MAAMoB,eAAoB,GAAG,CAAC,CAAC;AAC/BA,eAAe,CAACvB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAChE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,iBAAiB;AACxE,CAAC;AAED,MAAMqB,sBAA2B,GAAG,CAAC,CAAC;AACtCA,sBAAsB,CAACxB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACvE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,wBAAwB;AAC/E,CAAC;AAED,MAAMsB,oBAAyB,GAAG,CAAC,CAAC;AACpCA,oBAAoB,CAACzB,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EACrE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,sBAAsB;AAC7E,CAAC;AAED,MAAMuB,iBAAsB,GAAG,CAAC,CAAC;AACjCA,iBAAiB,CAAC1B,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAClE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,mBAAmB;AAC1E,CAAC;AAED,MAAMwB,UAAe,GAAG,CAAC,CAAC;AAC1BA,UAAU,CAAC3B,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC3D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,YAAY;AACnE,CAAC;AAED,MAAMyB,eAAoB,GAAG,CAAC,CAAC;AAC/BA,eAAe,CAAC5B,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAChE,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,iBAAiB;AACxE,CAAC;AAED,MAAM0B,UAAe,GAAG,CAAC,CAAC;AAC1BA,UAAU,CAAC7B,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC3D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,YAAY;AACnE,CAAC;AAED,MAAM2B,cAAmB,GAAG,CAAC,CAAC;AAC9BA,cAAc,CAAC9B,MAAM,CAACC,WAAW,CAAC,GAAG,UAAUC,QAAgB,EAAE;EAC/D,OAAO,SAAS,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,OAAO,KAAK,gBAAgB;AACvE,CAAC;AAED4B,MAAM,CAAChC,GAAG,GAAGA,GAAG;AAChBgC,MAAM,CAAC3B,UAAU,GAAGA,UAAU;AAC9B2B,MAAM,CAAC1B,cAAc,GAAGA,cAAc;AACtC0B,MAAM,CAACzB,YAAY,GAAGA,YAAY;AAClCyB,MAAM,CAACxB,kBAAkB,GAAGA,kBAAkB;AAC9CwB,MAAM,CAACvB,SAAS,GAAGA,SAAS;AAC5BuB,MAAM,CAACtB,gBAAgB,GAAGA,gBAAgB;AAC1CsB,MAAM,CAACrB,gBAAgB,GAAGA,gBAAgB;AAC1CqB,MAAM,CAACpB,iBAAiB,GAAGA,iBAAiB;AAC5CoB,MAAM,CAACnB,kBAAkB,GAAGA,kBAAkB;AAC9CmB,MAAM,CAAClB,qBAAqB,GAAGA,qBAAqB;AACpDkB,MAAM,CAACjB,qBAAqB,GAAGA,qBAAqB;AACpDiB,MAAM,CAAChB,kBAAkB,GAAGA,kBAAkB;AAC9CgB,MAAM,CAACf,SAAS,GAAGA,SAAS;AAC5Be,MAAM,CAACd,iBAAiB,GAAGA,iBAAiB;AAC5Cc,MAAM,CAACb,QAAQ,GAAGA,QAAQ;AAC1Ba,MAAM,CAACZ,kBAAkB,GAAGA,kBAAkB;AAC9CY,MAAM,CAACX,iBAAiB,GAAGA,iBAAiB;AAC5CW,MAAM,CAACV,WAAW,GAAGA,WAAW;AAChCU,MAAM,CAACT,QAAQ,GAAGA,QAAQ;AAC1BS,MAAM,CAACR,eAAe,GAAGA,eAAe;AACxCQ,MAAM,CAACP,sBAAsB,GAAGA,sBAAsB;AACtDO,MAAM,CAACN,oBAAoB,GAAGA,oBAAoB;AAClDM,MAAM,CAACL,iBAAiB,GAAGA,iBAAiB;AAC5CK,MAAM,CAACJ,UAAU,GAAGA,UAAU;AAC9BI,MAAM,CAACH,eAAe,GAAGA,eAAe;AACxCG,MAAM,CAACF,UAAU,GAAGA,UAAU;AAC9BE,MAAM,CAACD,cAAc,GAAGA,cAAc;AAEtClC,kBAAkB,CAACoC,OAAO,CAAC,CAAC;AAE5B,IAAI,CAACC,SAAS,EAAE;EACd;EACA;EACAA,SAAS,GAAG,CAAC,CAAC;AAChB;AACA;AACA;AACAA,SAAS,CAACC,GAAG,GAAGC,QAAQ,CAACD,GAAG;;AAE5B;AACA;AACAD,SAAS,CAACG,SAAS,GAAG,cAAc;AAEpCL,MAAM,CAACM,iBAAiB,GACtBN,MAAM,CAACM,iBAAiB,KACvB,CAAC,GAAGC,MAA4C,KAC/C,IAAIC,OAAO,CAAEC,OAAO,IAAKA,OAAO,CAACL,QAAQ,CAACE,iBAAiB,CAAC,GAAGC,MAAM,CAAC,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -1,31 +1,41 @@
1
- import { useEffect, useRef } from "react";
1
+ import { useEffect, useRef, useState } from "react";
2
2
  export const warnIfNotHardwareAccelerated = adapter => {
3
3
  if (adapter.info.architecture === "swiftshader") {
4
4
  console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow.");
5
5
  }
6
6
  };
7
- export const useCanvasEffect = (effect, deps = []) => {
7
+ export const useGPUContext = () => {
8
+ const [context, setContext] = useState(null);
9
+ const ref = useCanvasEffect(() => {
10
+ const ctx = ref.current.getContext("webgpu");
11
+ setContext(ctx);
12
+ });
13
+ return {
14
+ ref,
15
+ context
16
+ };
17
+ };
18
+ export const useCanvasEffect = effect => {
19
+ const unsub = useRef(null);
8
20
  const ref = useRef(null);
9
- const unsubscribe = useRef();
10
21
  useEffect(() => {
11
- requestAnimationFrame(async () => {
12
- // const adapter = await navigator.gpu.requestAdapter();
13
- // if (!adapter) {
14
- // return;
15
- // }
16
- // const device = await adapter.requestDevice();
17
- const unsub = await effect();
18
- if (unsub) {
19
- unsubscribe.current = unsub;
22
+ ref.current.whenReady(async () => {
23
+ const sub = effect();
24
+ if (sub) {
25
+ unsub.current = sub;
20
26
  }
21
27
  });
22
28
  return () => {
23
- if (unsubscribe.current) {
24
- unsubscribe.current();
29
+ if (unsub.current) {
30
+ if (unsub.current instanceof Promise) {
31
+ unsub.current.then(sub => sub && sub());
32
+ } else {
33
+ unsub.current();
34
+ }
25
35
  }
26
36
  };
27
37
  // eslint-disable-next-line react-hooks/exhaustive-deps
28
- }, deps);
38
+ }, []);
29
39
  return ref;
30
40
  };
31
41
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","warnIfNotHardwareAccelerated","adapter","info","architecture","console","warn","useCanvasEffect","effect","deps","ref","unsubscribe","requestAnimationFrame","unsub","current"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAMzC,OAAO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE,IAAIA,OAAO,CAACC,IAAI,CAACC,YAAY,KAAK,aAAa,EAAE;IAC/CC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACH;AACF,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGA,CAC7BC,MAA8D,EAC9DC,IAAoB,GAAG,EAAE,KACtB;EACH,MAAMC,GAAG,GAAGV,MAAM,CAAY,IAAI,CAAC;EACnC,MAAMW,WAAW,GAAGX,MAAM,CAAc,CAAC;EACzCD,SAAS,CAAC,MAAM;IACda,qBAAqB,CAAC,YAAY;MAChC;MACA;MACA;MACA;MACA;MACA,MAAMC,KAAK,GAAG,MAAML,MAAM,CAAC,CAAC;MAC5B,IAAIK,KAAK,EAAE;QACTF,WAAW,CAACG,OAAO,GAAGD,KAAK;MAC7B;IACF,CAAC,CAAC;IACF,OAAO,MAAM;MACX,IAAIF,WAAW,CAACG,OAAO,EAAE;QACvBH,WAAW,CAACG,OAAO,CAAC,CAAC;MACvB;IACF,CAAC;IACD;EACF,CAAC,EAAEL,IAAI,CAAC;EACR,OAAOC,GAAG;AACZ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","warnIfNotHardwareAccelerated","adapter","info","architecture","console","warn","useGPUContext","context","setContext","ref","useCanvasEffect","ctx","current","getContext","effect","unsub","whenReady","sub","Promise","then"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAMnD,OAAO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE,IAAIA,OAAO,CAACC,IAAI,CAACC,YAAY,KAAK,aAAa,EAAE;IAC/CC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACH;AACF,CAAC;AAED,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAAyB,IAAI,CAAC;EACpE,MAAMU,GAAG,GAAGC,eAAe,CAAC,MAAM;IAChC,MAAMC,GAAG,GAAGF,GAAG,CAACG,OAAO,CAAEC,UAAU,CAAC,QAAQ,CAAE;IAC9CL,UAAU,CAACG,GAAG,CAAC;EACjB,CAAC,CAAC;EACF,OAAO;IAAEF,GAAG;IAAEF;EAAQ,CAAC;AACzB,CAAC;AAED,OAAO,MAAMG,eAAe,GAC1BI,MAIiB,IACd;EACH,MAAMC,KAAK,GAAGjB,MAAM,CAAmD,IAAI,CAAC;EAC5E,MAAMW,GAAG,GAAGX,MAAM,CAAY,IAAI,CAAC;EACnCD,SAAS,CAAC,MAAM;IACdY,GAAG,CAACG,OAAO,CAAEI,SAAS,CAAC,YAAY;MACjC,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;MACpB,IAAIG,GAAG,EAAE;QACPF,KAAK,CAACH,OAAO,GAAGK,GAAG;MACrB;IACF,CAAC,CAAC;IACF,OAAO,MAAM;MACX,IAAIF,KAAK,CAACH,OAAO,EAAE;QACjB,IAAIG,KAAK,CAACH,OAAO,YAAYM,OAAO,EAAE;UACpCH,KAAK,CAACH,OAAO,CAACO,IAAI,CAAEF,GAAG,IAAKA,GAAG,IAAIA,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC,MAAM;UACLF,KAAK,CAACH,OAAO,CAAC,CAAC;QACjB;MACF;IACF,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;EACN,OAAOH,GAAG;AACZ,CAAC","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ export const __esModule: boolean;
2
+ export class GPUOffscreenCanvas {
3
+ constructor(width: any, height: any);
4
+ oncontextlost: null;
5
+ oncontextrestored: null;
6
+ width: any;
7
+ height: any;
8
+ context: GPUOffscreenCanvasContext;
9
+ convertToBlob(_options: any): void;
10
+ getContext(contextId: any, _options: any): GPUOffscreenCanvasContext | null;
11
+ transferToImageBitmap(): void;
12
+ addEventListener(_type: any, _listener: any, _options: any): void;
13
+ removeEventListener(_type: any, _listener: any, _options: any): void;
14
+ dispatchEvent(_event: any): void;
15
+ getImageData(): any;
16
+ }
17
+ declare class GPUOffscreenCanvasContext {
18
+ constructor(canvas: any);
19
+ __brand: string;
20
+ texture: null;
21
+ device: null;
22
+ canvas: any;
23
+ textureFormat: GPUTextureFormat;
24
+ present(): void;
25
+ getDevice(): never;
26
+ getTexture(): never;
27
+ configure(config: any): undefined;
28
+ unconfigure(): undefined;
29
+ getCurrentTexture(): never;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=Offscreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Offscreen.d.ts","sourceRoot":"","sources":["../../../commonjs/Offscreen.js"],"names":[],"mappings":";AAOA;IAGE,qCAIC;IAND,oBAAqB;IACrB,wBAAyB;IAEvB,WAAkB;IAClB,YAAoB;IACpB,mCAAkD;IAEpD,mCAGC;IAID,4EAMC;IACD,8BAGC;IACD,kEAGC;IACD,qEAGC;IACD,iCAGC;IACD,oBA4BC;CACF;AAED;IAIE,yBAGC;IAND,gBAA6B;IAC7B,cAAe;IACf,aAAc;IAEZ,YAAoB;IACpB,gCAA6D;IAE/D,gBAEC;IACD,mBAKC;IACD,oBAKC;IACD,kCASC;IACD,yBAMC;IACD,2BAKC;CACF"}
@@ -1,5 +1,9 @@
1
1
  export const __esModule: boolean;
2
2
  export function warnIfNotHardwareAccelerated(adapter: any): void;
3
- export function useCanvasEffect(effect: any, deps?: any[]): _react.MutableRefObject<null>;
3
+ export function useGPUContext(): {
4
+ ref: _react.MutableRefObject<null>;
5
+ context: null;
6
+ };
7
+ export function useCanvasEffect(effect: any): _react.MutableRefObject<null>;
4
8
  import _react = require("react");
5
9
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../commonjs/utils.js"],"names":[],"mappings":";AAOA,iEAIC;AAED,0FAuBC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../commonjs/utils.js"],"names":[],"mappings":";AAOA,iEAIC;AAED;;;EAUC;AAED,4EAsBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAUA,mGA4BG"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAgDA,mGAmDG"}
@@ -0,0 +1,31 @@
1
+ export class GPUOffscreenCanvas {
2
+ constructor(width: any, height: any);
3
+ oncontextlost: null;
4
+ oncontextrestored: null;
5
+ width: any;
6
+ height: any;
7
+ context: GPUOffscreenCanvasContext;
8
+ convertToBlob(_options: any): void;
9
+ getContext(contextId: any, _options: any): GPUOffscreenCanvasContext | null;
10
+ transferToImageBitmap(): void;
11
+ addEventListener(_type: any, _listener: any, _options: any): void;
12
+ removeEventListener(_type: any, _listener: any, _options: any): void;
13
+ dispatchEvent(_event: any): void;
14
+ getImageData(): any;
15
+ }
16
+ declare class GPUOffscreenCanvasContext {
17
+ constructor(canvas: any);
18
+ __brand: string;
19
+ texture: null;
20
+ device: null;
21
+ canvas: any;
22
+ textureFormat: GPUTextureFormat;
23
+ present(): void;
24
+ getDevice(): never;
25
+ getTexture(): never;
26
+ configure(config: any): undefined;
27
+ unconfigure(): undefined;
28
+ getCurrentTexture(): never;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=Offscreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Offscreen.d.ts","sourceRoot":"","sources":["../../../module/Offscreen.js"],"names":[],"mappings":"AACA;IAGE,qCAIC;IAND,oBAAqB;IACrB,wBAAyB;IAEvB,WAAkB;IAClB,YAAoB;IACpB,mCAAkD;IAEpD,mCAGC;IAID,4EAMC;IACD,8BAGC;IACD,kEAGC;IACD,qEAGC;IACD,iCAGC;IACD,oBA4BC;CACF;AACD;IAIE,yBAGC;IAND,gBAA6B;IAC7B,cAAe;IACf,aAAc;IAEZ,YAAoB;IACpB,gCAA6D;IAE/D,gBAEC;IACD,mBAKC;IACD,oBAKC;IACD,kCASC;IACD,yBAMC;IACD,2BAKC;CACF"}
@@ -1,4 +1,5 @@
1
1
  export * from "./Canvas";
2
+ export * from "./Offscreen";
2
3
  export * from "./WebGPUViewNativeComponent";
3
4
  export * from "./utils";
4
5
  export { default as WebGPUModule } from "./NativeWebGPUModule";
@@ -1,3 +1,7 @@
1
1
  export function warnIfNotHardwareAccelerated(adapter: any): void;
2
- export function useCanvasEffect(effect: any, deps?: any[]): import("react").MutableRefObject<null>;
2
+ export function useGPUContext(): {
3
+ ref: import("react").MutableRefObject<null>;
4
+ context: null;
5
+ };
6
+ export function useCanvasEffect(effect: any): import("react").MutableRefObject<null>;
3
7
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../module/utils.js"],"names":[],"mappings":"AACO,iEAIN;AACM,mGAuBN"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../module/utils.js"],"names":[],"mappings":"AACO,iEAIN;AACM;;;EAUN;AACM,qFAsBN"}
@@ -1,9 +1,10 @@
1
1
  import type { ViewProps } from "react-native";
2
2
  declare global {
3
- var __WebGPUContextRegistry: Record<number, NativeCanvas>;
4
3
  var RNWebGPU: {
5
4
  gpu: GPU;
6
- MakeWebGPUCanvasContext: (nativeCanvas: NativeCanvas) => CanvasContext;
5
+ fabric: boolean;
6
+ getNativeSurface: (contextId: number) => NativeCanvas;
7
+ MakeWebGPUCanvasContext: (contextId: number, width: number, height: number) => RNCanvasContext;
7
8
  DecodeToUTF8: (buffer: NodeJS.ArrayBufferView | ArrayBuffer) => string;
8
9
  createImageBitmap: typeof createImageBitmap;
9
10
  };
@@ -16,12 +17,13 @@ export interface NativeCanvas {
16
17
  clientWidth: number;
17
18
  clientHeight: number;
18
19
  }
19
- type CanvasContext = GPUCanvasContext & {
20
+ export type RNCanvasContext = GPUCanvasContext & {
20
21
  present: () => void;
21
22
  };
22
23
  export interface CanvasRef {
23
- getContext(contextName: "webgpu"): CanvasContext | null;
24
+ getContext(contextName: "webgpu"): RNCanvasContext | null;
24
25
  getNativeSurface: () => NativeCanvas;
26
+ whenReady: (callback: () => void) => void;
25
27
  }
26
28
  export declare const Canvas: import("react").ForwardRefExoticComponent<ViewProps & import("react").RefAttributes<CanvasRef>>;
27
29
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAW9C,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE1D,IAAI,QAAQ,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC;QACT,uBAAuB,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,aAAa,CAAC;QACvE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,GAAG,WAAW,KAAK,MAAM,CAAC;QACvE,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;KAC7C,CAAC;CACH;AAED,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD,KAAK,aAAa,GAAG,gBAAgB,GAAG;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC;IACxD,gBAAgB,EAAE,MAAM,YAAY,CAAC;CACtC;AAED,eAAO,MAAM,MAAM,iGA6BjB,CAAC"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,cAAc,CAAC;AAoBjE,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,QAAQ,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,OAAO,CAAC;QAChB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC;QACtD,uBAAuB,EAAE,CACvB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,KACX,eAAe,CAAC;QACrB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,GAAG,WAAW,KAAK,MAAM,CAAC;QACvE,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;KAC7C,CAAC;CACH;AAED,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC3C;AAqCD,eAAO,MAAM,MAAM,iGA+ClB,CAAC"}
@@ -0,0 +1,41 @@
1
+ export declare class GPUOffscreenCanvas implements OffscreenCanvas {
2
+ width: number;
3
+ height: number;
4
+ oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;
5
+ oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;
6
+ private context;
7
+ constructor(width: number, height: number);
8
+ convertToBlob(_options?: ImageEncodeOptions): Promise<Blob>;
9
+ getContext(contextId: "2d", options?: any): OffscreenCanvasRenderingContext2D | null;
10
+ getContext(contextId: "bitmaprenderer", options?: any): ImageBitmapRenderingContext | null;
11
+ getContext(contextId: "webgl", options?: any): WebGLRenderingContext | null;
12
+ getContext(contextId: "webgl2", options?: any): WebGL2RenderingContext | null;
13
+ getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;
14
+ getContext(contextId: "webgpu"): GPUOffscreenCanvasContext | null;
15
+ transferToImageBitmap(): ImageBitmap;
16
+ addEventListener<K extends keyof OffscreenCanvasEventMap>(_type: K, _listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, _options?: boolean | AddEventListenerOptions): void;
17
+ removeEventListener<K extends keyof OffscreenCanvasEventMap>(_type: K, _listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, _options?: boolean | EventListenerOptions): void;
18
+ dispatchEvent(_event: Event): boolean;
19
+ getImageData(): Promise<{
20
+ data: number[];
21
+ width: number;
22
+ height: number;
23
+ format: GPUTextureFormat;
24
+ }>;
25
+ }
26
+ declare class GPUOffscreenCanvasContext implements GPUCanvasContext {
27
+ readonly canvas: OffscreenCanvas;
28
+ __brand: "GPUCanvasContext";
29
+ private textureFormat;
30
+ private texture;
31
+ private device;
32
+ constructor(canvas: OffscreenCanvas);
33
+ present(): void;
34
+ getDevice(): GPUDevice;
35
+ getTexture(): GPUTexture;
36
+ configure(config: GPUCanvasConfiguration): undefined;
37
+ unconfigure(): undefined;
38
+ getCurrentTexture(): GPUTexture;
39
+ }
40
+ export {};
41
+ //# sourceMappingURL=Offscreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Offscreen.d.ts","sourceRoot":"","sources":["../../../src/Offscreen.ts"],"names":[],"mappings":"AACA,qBAAa,kBAAmB,YAAW,eAAe;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IACzE,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE7E,OAAO,CAAC,OAAO,CAA4B;gBAE/B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMzC,aAAa,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,UAAU,CACR,SAAS,EAAE,IAAI,EACf,OAAO,CAAC,EAAE,GAAG,GACZ,iCAAiC,GAAG,IAAI;IAC3C,UAAU,CACR,SAAS,EAAE,gBAAgB,EAC3B,OAAO,CAAC,EAAE,GAAG,GACZ,2BAA2B,GAAG,IAAI;IACrC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,qBAAqB,GAAG,IAAI;IAC3E,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,sBAAsB,GAAG,IAAI;IAC7E,UAAU,CACR,SAAS,EAAE,2BAA2B,EACtC,OAAO,CAAC,EAAE,GAAG,GACZ,yBAAyB,GAAG,IAAI;IACnC,UAAU,CAAC,SAAS,EAAE,QAAQ,GAAG,yBAAyB,GAAG,IAAI;IAYjE,qBAAqB,IAAI,WAAW;IAKpC,gBAAgB,CAAC,CAAC,SAAS,MAAM,uBAAuB,EACtD,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,GAAG,EACzE,QAAQ,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC3C,IAAI;IAKP,mBAAmB,CAAC,CAAC,SAAS,MAAM,uBAAuB,EACzD,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,GAAG,EACzE,QAAQ,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACxC,IAAI;IAKP,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO;IAKrC,YAAY;;;;;;CA6Bb;AAED,cAAM,yBAA0B,YAAW,gBAAgB;aAO7B,MAAM,EAAE,eAAe;IANnD,OAAO,qBAA+B;IAEtC,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAA0B;gBAEZ,MAAM,EAAE,eAAe;IAInD,OAAO;IAIP,SAAS;IAOT,UAAU;IAOV,SAAS,CAAC,MAAM,EAAE,sBAAsB;IAcxC,WAAW;IAQX,iBAAiB,IAAI,UAAU;CAMhC"}
@@ -1,14 +1,14 @@
1
1
  import { PNG } from "pngjs";
2
2
  import type { mat4, vec3, mat3 } from "wgpu-matrix";
3
3
  import type { Server, WebSocket } from "ws";
4
- import type { DrawingContext } from "./components/DrawingContext";
4
+ import type { GPUOffscreenCanvas } from "../Offscreen";
5
5
  type TestOS = "ios" | "android" | "web" | "node";
6
6
  declare global {
7
7
  var testServer: Server;
8
8
  var testClient: WebSocket;
9
9
  var testOS: TestOS;
10
10
  }
11
- interface GPUContext {
11
+ interface GPUTestingContext {
12
12
  gpu: GPU;
13
13
  adapter: GPUAdapter;
14
14
  device: GPUDevice;
@@ -25,7 +25,8 @@ interface GPUContext {
25
25
  moon: ImageData;
26
26
  saturn: ImageData;
27
27
  };
28
- ctx: DrawingContext;
28
+ ctx: GPUCanvasContext;
29
+ canvas: GPUOffscreenCanvas;
29
30
  mat4: typeof mat4;
30
31
  vec3: typeof vec3;
31
32
  mat3: typeof mat3;
@@ -35,7 +36,7 @@ type JSONValue = {
35
36
  [key: string]: JSONValue;
36
37
  } | JSONValue[] | number | string | boolean | null;
37
38
  interface TestingClient {
38
- eval<C = Ctx, R = JSONValue>(fn: (ctx: GPUContext & C) => R | Promise<R>, ctx?: C): Promise<R>;
39
+ eval<C = Ctx, R = JSONValue>(fn: (ctx: GPUTestingContext & C) => R | Promise<R>, ctx?: C): Promise<R>;
39
40
  OS: TestOS;
40
41
  arch: "paper" | "fabric";
41
42
  init(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/setup.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAOlE,KAAK,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,UAAU,EAAE,MAAM,CAAC;IACvB,IAAI,UAAU,EAAE,SAAS,CAAC;IAC1B,IAAI,MAAM,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,UAAU;IAClB,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,eAAe,EAAE,YAAY,CAAC;QAC9B,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,EAAE,SAAS,CAAC;QAChB,MAAM,EAAE,SAAS,CAAC;KACnB,CAAC;IACF,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;CACnB;AAED,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,KAAK,SAAS,GACV;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,SAAS,EAAE,GACX,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,CAAC;AAET,UAAU,aAAa;IACrB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,EACzB,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC3C,GAAG,CAAC,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,eAAO,IAAI,MAAM,EAAE,aAAa,CAAC;AAiOjC,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,WAAY,UAAU,QAuB7C,CAAC;AAEF,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAYD,eAAO,MAAM,UAAU,WACb,GAAG,WACF,MAAM,SACR,iBAAiB,WA2CzB,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,UAa7C,CAAC"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/setup.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQvD,KAAK,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,UAAU,EAAE,MAAM,CAAC;IACvB,IAAI,UAAU,EAAE,SAAS,CAAC;IAC1B,IAAI,MAAM,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE;QACN,eAAe,EAAE,YAAY,CAAC;QAC9B,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,EAAE,SAAS,CAAC;QAChB,MAAM,EAAE,SAAS,CAAC;KACnB,CAAC;IACF,GAAG,EAAE,gBAAgB,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,IAAI,EAAE,OAAO,IAAI,CAAC;CACnB;AAED,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,KAAK,SAAS,GACV;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,SAAS,EAAE,GACX,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,CAAC;AAET,UAAU,aAAa;IACrB,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,EACzB,EAAE,EAAE,CAAC,GAAG,EAAE,iBAAiB,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD,GAAG,CAAC,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,eAAO,IAAI,MAAM,EAAE,aAAa,CAAC;AA8OjC,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,WAAY,UAAU,QAuB7C,CAAC;AAEF,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAYD,eAAO,MAAM,UAAU,WACb,GAAG,WACF,MAAM,SACR,iBAAiB,WA2CzB,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,UAa7C,CAAC"}