react-native-wgpu 0.3.2 → 0.4.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.
- package/README.md +7 -5
- package/lib/commonjs/Canvas.js +10 -3
- package/lib/commonjs/Canvas.js.map +1 -1
- package/lib/commonjs/WebGPUViewNativeComponent.web.js +99 -0
- package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +1 -0
- package/lib/commonjs/WebPolyfillGPUModule.js +40 -0
- package/lib/commonjs/WebPolyfillGPUModule.js.map +1 -0
- package/lib/commonjs/index.js +4 -208
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/main/index.js +227 -0
- package/lib/commonjs/main/index.js.map +1 -0
- package/lib/commonjs/main/index.web.js +51 -0
- package/lib/commonjs/main/index.web.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils.js +11 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/module/Canvas.js +11 -4
- package/lib/module/Canvas.js.map +1 -1
- package/lib/module/WebGPUViewNativeComponent.web.js +93 -0
- package/lib/module/WebGPUViewNativeComponent.web.js.map +1 -0
- package/lib/module/WebPolyfillGPUModule.js +38 -0
- package/lib/module/WebPolyfillGPUModule.js.map +1 -0
- package/lib/module/index.js +3 -160
- package/lib/module/index.js.map +1 -1
- package/lib/module/main/index.js +168 -0
- package/lib/module/main/index.js.map +1 -0
- package/lib/module/main/index.web.js +8 -0
- package/lib/module/main/index.web.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils.js +5 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +5 -0
- package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +2 -0
- package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/index.d.ts +0 -1
- package/lib/typescript/lib/commonjs/main/index.d.ts +3 -0
- package/lib/typescript/lib/commonjs/main/index.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/main/index.web.d.ts +2 -0
- package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/types.d.ts +1 -0
- package/lib/typescript/lib/commonjs/types.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/utils.d.ts +3 -0
- package/lib/typescript/lib/commonjs/utils.d.ts.map +1 -0
- package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +2 -0
- package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +1 -0
- package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +2 -0
- package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +1 -0
- package/lib/typescript/lib/module/index.d.ts +1 -5
- package/lib/typescript/lib/module/main/index.d.ts +6 -0
- package/lib/typescript/lib/module/main/index.d.ts.map +1 -0
- package/lib/typescript/lib/module/main/index.web.d.ts +5 -0
- package/lib/typescript/lib/module/main/index.web.d.ts.map +1 -0
- package/lib/typescript/lib/module/types.d.ts +1 -0
- package/lib/typescript/lib/module/types.d.ts.map +1 -0
- package/lib/typescript/lib/module/utils.d.ts +2 -0
- package/lib/typescript/lib/module/utils.d.ts.map +1 -0
- package/lib/typescript/src/Canvas.d.ts.map +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +118 -0
- package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +1 -0
- package/lib/typescript/src/WebPolyfillGPUModule.d.ts +2 -0
- package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +16 -5
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/main/index.d.ts +6 -0
- package/lib/typescript/src/main/index.d.ts.map +1 -0
- package/lib/typescript/src/main/index.web.d.ts +6 -0
- package/lib/typescript/src/main/index.web.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +19 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils.d.ts +2 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/package.json +2 -1
- package/src/Canvas.tsx +12 -4
- package/src/WebGPUViewNativeComponent.ts +1 -1
- package/src/WebGPUViewNativeComponent.web.ts +108 -0
- package/src/WebPolyfillGPUModule.ts +53 -0
- package/src/index.tsx +25 -196
- package/src/main/index.tsx +204 -0
- package/src/main/index.web.tsx +8 -0
- package/src/types.ts +20 -0
- package/src/utils.ts +4 -0
- package/lib/commonjs/WebGPUView.js +0 -2
- package/lib/commonjs/WebGPUView.js.map +0 -1
- package/lib/module/WebGPUView.js +0 -2
- package/lib/module/WebGPUView.js.map +0 -1
- package/lib/typescript/lib/commonjs/WebGPUView.d.ts +0 -1
- package/lib/typescript/lib/commonjs/WebGPUView.d.ts.map +0 -1
- package/lib/typescript/lib/module/WebGPUView.d.ts +0 -1
- package/lib/typescript/lib/module/WebGPUView.d.ts.map +0 -1
- package/lib/typescript/src/WebGPUView.d.ts +0 -1
- package/lib/typescript/src/WebGPUView.d.ts.map +0 -1
- package/src/WebGPUView.tsx +0 -0
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# React Native WebGPU
|
|
2
2
|
|
|
3
|
-
React Native implementation of WebGPU using [Dawn](https://dawn.googlesource.com/dawn).
|
|
4
|
-
This is currently a technical preview for early adopters.
|
|
3
|
+
React Native implementation of WebGPU using [Dawn](https://dawn.googlesource.com/dawn).
|
|
4
|
+
This is currently a technical preview for early adopters.
|
|
5
5
|
|
|
6
6
|
React Native WebGPU requires React Native 0.81 or newer and doesn't run on legacy architecture.
|
|
7
7
|
|
|
@@ -13,6 +13,8 @@ Please note that the package name is `react-native-wgpu`.
|
|
|
13
13
|
npm install react-native-wgpu
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
+
Note that if you use pnpm, you MUST use a `node-linker = hoisted` so that the external reference to the Dawn webgpu library can successfully link it.
|
|
17
|
+
|
|
16
18
|
Below are some examples from the [example app](/apps/example/).
|
|
17
19
|
|
|
18
20
|
https://github.com/user-attachments/assets/116a41b2-2cf8-49f1-9f16-a5c83637c198
|
|
@@ -156,8 +158,8 @@ From there you will be able to run the example app properly.
|
|
|
156
158
|
|
|
157
159
|
## Similarities and Differences with the Web
|
|
158
160
|
|
|
159
|
-
The API has been designed to be completely symmetric with the Web.
|
|
160
|
-
For instance, you can access the WebGPU context synchronously, as well as the canvas size.
|
|
161
|
+
The API has been designed to be completely symmetric with the Web.
|
|
162
|
+
For instance, you can access the WebGPU context synchronously, as well as the canvas size.
|
|
161
163
|
Pixel density and canvas resizing are handled exactly like on the Web as well.
|
|
162
164
|
|
|
163
165
|
```tsx
|
|
@@ -171,7 +173,7 @@ ctx.canvas.height = ctx.canvas.clientHeight * PixelRatio.get();
|
|
|
171
173
|
|
|
172
174
|
### Frame Scheduling
|
|
173
175
|
|
|
174
|
-
In React Native, we want to keep frame presentation as a manual operation as we plan to provide more advanced rendering options that are React Native specific.
|
|
176
|
+
In React Native, we want to keep frame presentation as a manual operation as we plan to provide more advanced rendering options that are React Native specific.
|
|
175
177
|
This means that when you are ready to present a frame, you need to call `present` on the context.
|
|
176
178
|
|
|
177
179
|
```tsx
|
package/lib/commonjs/Canvas.js
CHANGED
|
@@ -32,9 +32,16 @@ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
32
32
|
if (!viewRef.current) {
|
|
33
33
|
throw new Error("[WebGPU] Cannot get context before mount");
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
let size;
|
|
36
|
+
if (_reactNative.Platform.OS === "web") {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
38
|
+
// @ts-expect-error
|
|
39
|
+
size = viewRef.current.getBoundingClientRect();
|
|
40
|
+
} else {
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
42
|
+
// @ts-expect-error
|
|
43
|
+
size = viewRef.current.unstable_getBoundingClientRect();
|
|
44
|
+
}
|
|
38
45
|
return RNWebGPU.MakeWebGPUCanvasContext(contextId, size.width, size.height);
|
|
39
46
|
}
|
|
40
47
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_react","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CONTEXT_COUNTER","generateContextId","Canvas","exports","forwardRef","onLayout","_onLayout","transparent","props","ref","viewRef","useRef","contextId","_","useState","useImperativeHandle","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","size","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","React","createElement","View","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,0BAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA2D,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAE3D,IAAIO,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AAqCO,MAAME,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAG,IAAAE,iBAAU,EAG9B,CAAC;EAAEC,QAAQ,EAAEC,SAAS;EAAEC,WAAW;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACzD,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC5B,MAAM,CAACC,SAAS,EAAEC,CAAC,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMb,iBAAiB,CAAC,CAAC,CAAC;EAC1D,IAAAc,0BAAmB,EAACN,GAAG,EAAE,OAAO;IAC9BO,YAAY,EAAEA,CAAA,KAAMJ,SAAS;IAC7BK,gBAAgB,EAAEA,CAAA,KAAM;MACtB,OAAOC,QAAQ,CAACD,gBAAgB,CAACL,SAAS,CAAC;IAC7C,CAAC;IACDO,UAAUA,CAACC,WAAqB,EAA0B;MACxD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACA,IAAI,CAACV,OAAO,CAACY,OAAO,EAAE;QACpB,MAAM,IAAID,KAAK,CAAC,0CAA0C,CAAC;MAC7D;MACA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_react","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CONTEXT_COUNTER","generateContextId","Canvas","exports","forwardRef","onLayout","_onLayout","transparent","props","ref","viewRef","useRef","contextId","_","useState","useImperativeHandle","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","size","Platform","OS","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","React","createElement","View","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,0BAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA2D,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAE3D,IAAIO,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AAqCO,MAAME,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAG,IAAAE,iBAAU,EAG9B,CAAC;EAAEC,QAAQ,EAAEC,SAAS;EAAEC,WAAW;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACzD,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC5B,MAAM,CAACC,SAAS,EAAEC,CAAC,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMb,iBAAiB,CAAC,CAAC,CAAC;EAC1D,IAAAc,0BAAmB,EAACN,GAAG,EAAE,OAAO;IAC9BO,YAAY,EAAEA,CAAA,KAAMJ,SAAS;IAC7BK,gBAAgB,EAAEA,CAAA,KAAM;MACtB,OAAOC,QAAQ,CAACD,gBAAgB,CAACL,SAAS,CAAC;IAC7C,CAAC;IACDO,UAAUA,CAACC,WAAqB,EAA0B;MACxD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACA,IAAI,CAACV,OAAO,CAACY,OAAO,EAAE;QACpB,MAAM,IAAID,KAAK,CAAC,0CAA0C,CAAC;MAC7D;MACA,IAAIE,IAAI;MACR,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;QACzB;QACA;QACAF,IAAI,GAAGb,OAAO,CAACY,OAAO,CAACI,qBAAqB,CAAC,CAAC;MAChD,CAAC,MAAM;QACL;QACA;QACAH,IAAI,GAAGb,OAAO,CAACY,OAAO,CAACK,8BAA8B,CAAC,CAAC;MACzD;MACA,OAAOT,QAAQ,CAACU,uBAAuB,CACrChB,SAAS,EACTW,IAAI,CAACM,KAAK,EACVN,IAAI,CAACO,MACP,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,oBACEC,KAAA,CAAAC,aAAA,CAACpD,YAAA,CAAAqD,IAAI,EAAA7C,QAAA;IAAC8C,WAAW,EAAE,KAAM;IAACzB,GAAG,EAAEC;EAAQ,GAAKF,KAAK,gBAC/CuB,KAAA,CAAAC,aAAA,CAACjD,0BAAA,CAAAI,OAAgB;IACfgD,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACnBxB,SAAS,EAAEA,SAAU;IACrBL,WAAW,EAAE,CAAC,CAACA;EAAY,CAC5B,CACG,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = WebGPUViewNativeComponent;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeWeb = require("react-native-web");
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
function debounce(func, wait, immediate = false) {
|
|
13
|
+
let timeout;
|
|
14
|
+
return function debounced(...args) {
|
|
15
|
+
const context = this;
|
|
16
|
+
const callNow = immediate && !timeout;
|
|
17
|
+
if (timeout) {
|
|
18
|
+
clearTimeout(timeout);
|
|
19
|
+
}
|
|
20
|
+
timeout = setTimeout(() => {
|
|
21
|
+
timeout = undefined;
|
|
22
|
+
if (!immediate) {
|
|
23
|
+
func.apply(context, args);
|
|
24
|
+
}
|
|
25
|
+
}, wait);
|
|
26
|
+
if (callNow) {
|
|
27
|
+
func.apply(context, args);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function resizeCanvas(canvas) {
|
|
32
|
+
if (!canvas) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const dpr = window.devicePixelRatio || 1;
|
|
36
|
+
const {
|
|
37
|
+
height,
|
|
38
|
+
width
|
|
39
|
+
} = canvas.getBoundingClientRect();
|
|
40
|
+
canvas.setAttribute("height", (height * dpr).toString());
|
|
41
|
+
canvas.setAttribute("width", (width * dpr).toString());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// eslint-disable-next-line import/no-default-export
|
|
45
|
+
function WebGPUViewNativeComponent(props) {
|
|
46
|
+
const {
|
|
47
|
+
contextId,
|
|
48
|
+
style,
|
|
49
|
+
transparent,
|
|
50
|
+
...rest
|
|
51
|
+
} = props;
|
|
52
|
+
const canvasElm = (0, _react.useRef)();
|
|
53
|
+
(0, _react.useEffect)(() => {
|
|
54
|
+
const onResize = debounce(() => resizeCanvas(canvasElm.current), 100);
|
|
55
|
+
window.addEventListener("resize", onResize);
|
|
56
|
+
return () => {
|
|
57
|
+
window.removeEventListener("resize", onResize);
|
|
58
|
+
};
|
|
59
|
+
}, []);
|
|
60
|
+
return (0, _reactNativeWeb.unstable_createElement)("canvas", {
|
|
61
|
+
...rest,
|
|
62
|
+
style: [styles.view, styles.flex1, transparent === false && {
|
|
63
|
+
backgroundColor: "white"
|
|
64
|
+
},
|
|
65
|
+
// Canvas elements are transparent by default on the web
|
|
66
|
+
style],
|
|
67
|
+
id: (0, _utils.contextIdToId)(contextId),
|
|
68
|
+
ref: ref => {
|
|
69
|
+
canvasElm.current = ref;
|
|
70
|
+
if (ref) {
|
|
71
|
+
resizeCanvas(ref);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const styles = _reactNative.StyleSheet.create({
|
|
77
|
+
flex1: {
|
|
78
|
+
flex: 1
|
|
79
|
+
},
|
|
80
|
+
view: {
|
|
81
|
+
alignItems: "stretch",
|
|
82
|
+
backgroundColor: "transparent",
|
|
83
|
+
// @ts-expect-error - not a valid RN style, but it's valid for web
|
|
84
|
+
border: "0 solid black",
|
|
85
|
+
boxSizing: "border-box",
|
|
86
|
+
display: "flex",
|
|
87
|
+
flexBasis: "auto",
|
|
88
|
+
flexDirection: "column",
|
|
89
|
+
flexShrink: 0,
|
|
90
|
+
listStyle: "none",
|
|
91
|
+
margin: 0,
|
|
92
|
+
minHeight: 0,
|
|
93
|
+
minWidth: 0,
|
|
94
|
+
padding: 0,
|
|
95
|
+
position: "relative",
|
|
96
|
+
zIndex: 0
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=WebGPUViewNativeComponent.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeWeb","_utils","debounce","func","wait","immediate","timeout","debounced","args","context","callNow","clearTimeout","setTimeout","undefined","apply","resizeCanvas","canvas","dpr","window","devicePixelRatio","height","width","getBoundingClientRect","setAttribute","toString","WebGPUViewNativeComponent","props","contextId","style","transparent","rest","canvasElm","useRef","useEffect","onResize","current","addEventListener","removeEventListener","unstableCreateElement","styles","view","flex1","backgroundColor","id","contextIdToId","ref","StyleSheet","create","flex","alignItems","border","boxSizing","display","flexBasis","flexDirection","flexShrink","listStyle","margin","minHeight","minWidth","padding","position","zIndex"],"sourceRoot":"../../src","sources":["WebGPUViewNativeComponent.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _utils = require("./utils");
|
|
4
|
+
const fabric = true;
|
|
5
|
+
function getNativeSurface(contextId) {
|
|
6
|
+
const canvas = document.getElementById((0, _utils.contextIdToId)(contextId));
|
|
7
|
+
const {
|
|
8
|
+
height,
|
|
9
|
+
width
|
|
10
|
+
} = canvas.getBoundingClientRect();
|
|
11
|
+
return {
|
|
12
|
+
surface: BigInt(contextId),
|
|
13
|
+
height,
|
|
14
|
+
width,
|
|
15
|
+
clientHeight: height,
|
|
16
|
+
clientWidth: width
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function makeWebGPUCanvasContext(contextId, width, height) {
|
|
20
|
+
const canvas = document.getElementById((0, _utils.contextIdToId)(contextId));
|
|
21
|
+
const dpr = window.devicePixelRatio || 1;
|
|
22
|
+
const pixelWidth = (width * dpr).toString();
|
|
23
|
+
const pixelHeight = (height * dpr).toString();
|
|
24
|
+
if (canvas.getAttribute("width") !== pixelWidth || canvas.getAttribute("height") !== pixelHeight) {
|
|
25
|
+
canvas.setAttribute("width", pixelWidth);
|
|
26
|
+
canvas.setAttribute("height", pixelHeight);
|
|
27
|
+
}
|
|
28
|
+
const context = canvas.getContext("webgpu");
|
|
29
|
+
return Object.assign(context, {
|
|
30
|
+
present: () => {}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// @ts-expect-error - polyfill for RNWebGPU native module
|
|
35
|
+
window.RNWebGPU = {
|
|
36
|
+
getNativeSurface,
|
|
37
|
+
MakeWebGPUCanvasContext: makeWebGPUCanvasContext,
|
|
38
|
+
fabric
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=WebPolyfillGPUModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","fabric","getNativeSurface","contextId","canvas","document","getElementById","contextIdToId","height","width","getBoundingClientRect","surface","BigInt","clientHeight","clientWidth","makeWebGPUCanvasContext","dpr","window","devicePixelRatio","pixelWidth","toString","pixelHeight","getAttribute","setAttribute","context","getContext","Object","assign","present","RNWebGPU","MakeWebGPUCanvasContext"],"sourceRoot":"../../src","sources":["WebPolyfillGPUModule.ts"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpC,IAAAC,oBAAa,EAACJ,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEK,MAAM;IAAEC;EAAM,CAAC,GAAGL,MAAM,CAACM,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACT,SAAS,CAAC;IAC1BK,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL;EACf,CAAC;AACH;AAEA,SAASM,uBAAuBA,CAC9BZ,SAAiB,EACjBM,KAAa,EACbD,MAAc,EACd;EACA,MAAMJ,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpC,IAAAC,oBAAa,EAACJ,SAAS,CACzB,CAAsB;EAEtB,MAAMa,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAACV,KAAK,GAAGO,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACb,MAAM,GAAGQ,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACEhB,MAAM,CAACkB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3Cf,MAAM,CAACkB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAjB,MAAM,CAACmB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCf,MAAM,CAACmB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGpB,MAAM,CAACqB,UAAU,CAAC,QAAQ,CAAE;EAC5C,OAAOC,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAC5BI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAClB,CAAC,CAAC;AACJ;;AAEA;AACAX,MAAM,CAACY,QAAQ,GAAG;EAChB3B,gBAAgB;EAChB4B,uBAAuB,EAAEf,uBAAuB;EAChDd;AACF,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,219 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
Object.defineProperty(exports, "WebGPUModule", {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function () {
|
|
12
|
-
return _NativeWebGPUModule.default;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
var _NativeWebGPUModule = _interopRequireDefault(require("./NativeWebGPUModule"));
|
|
16
|
-
var _Canvas = require("./Canvas");
|
|
17
|
-
Object.keys(_Canvas).forEach(function (key) {
|
|
18
|
-
if (key === "default" || key === "__esModule") return;
|
|
19
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
20
|
-
if (key in exports && exports[key] === _Canvas[key]) return;
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () {
|
|
24
|
-
return _Canvas[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
var _Offscreen = require("./Offscreen");
|
|
29
|
-
Object.keys(_Offscreen).forEach(function (key) {
|
|
30
|
-
if (key === "default" || key === "__esModule") return;
|
|
31
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
32
|
-
if (key in exports && exports[key] === _Offscreen[key]) return;
|
|
33
|
-
Object.defineProperty(exports, key, {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
get: function () {
|
|
36
|
-
return _Offscreen[key];
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
var _WebGPUViewNativeComponent = require("./WebGPUViewNativeComponent");
|
|
41
|
-
Object.keys(_WebGPUViewNativeComponent).forEach(function (key) {
|
|
42
|
-
if (key === "default" || key === "__esModule") return;
|
|
43
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
44
|
-
if (key in exports && exports[key] === _WebGPUViewNativeComponent[key]) return;
|
|
45
|
-
Object.defineProperty(exports, key, {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
get: function () {
|
|
48
|
-
return _WebGPUViewNativeComponent[key];
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
var _hooks = require("./hooks");
|
|
53
|
-
Object.keys(_hooks).forEach(function (key) {
|
|
6
|
+
var _main = require("./main");
|
|
7
|
+
Object.keys(_main).forEach(function (key) {
|
|
54
8
|
if (key === "default" || key === "__esModule") return;
|
|
55
|
-
if (
|
|
56
|
-
if (key in exports && exports[key] === _hooks[key]) return;
|
|
9
|
+
if (key in exports && exports[key] === _main[key]) return;
|
|
57
10
|
Object.defineProperty(exports, key, {
|
|
58
11
|
enumerable: true,
|
|
59
12
|
get: function () {
|
|
60
|
-
return
|
|
13
|
+
return _main[key];
|
|
61
14
|
}
|
|
62
15
|
});
|
|
63
16
|
});
|
|
64
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
65
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
66
|
-
|
|
67
|
-
const GPU = {};
|
|
68
|
-
GPU[Symbol.hasInstance] = function (instance) {
|
|
69
|
-
return "__brand" in instance && instance.__brand === "GPU";
|
|
70
|
-
};
|
|
71
|
-
const GPUAdapter = {};
|
|
72
|
-
GPUAdapter[Symbol.hasInstance] = function (instance) {
|
|
73
|
-
return "__brand" in instance && instance.__brand === "GPUAdapter";
|
|
74
|
-
};
|
|
75
|
-
const GPUAdapterInfo = {};
|
|
76
|
-
GPUAdapterInfo[Symbol.hasInstance] = function (instance) {
|
|
77
|
-
return "__brand" in instance && instance.__brand === "GPUAdapterInfo";
|
|
78
|
-
};
|
|
79
|
-
const GPUBindGroup = {};
|
|
80
|
-
GPUBindGroup[Symbol.hasInstance] = function (instance) {
|
|
81
|
-
return "__brand" in instance && instance.__brand === "GPUBindGroup";
|
|
82
|
-
};
|
|
83
|
-
const GPUBindGroupLayout = {};
|
|
84
|
-
GPUBindGroupLayout[Symbol.hasInstance] = function (instance) {
|
|
85
|
-
return "__brand" in instance && instance.__brand === "GPUBindGroupLayout";
|
|
86
|
-
};
|
|
87
|
-
const GPUBuffer = {};
|
|
88
|
-
GPUBuffer[Symbol.hasInstance] = function (instance) {
|
|
89
|
-
return "__brand" in instance && instance.__brand === "GPUBuffer";
|
|
90
|
-
};
|
|
91
|
-
const GPUCanvasContext = {};
|
|
92
|
-
GPUCanvasContext[Symbol.hasInstance] = function (instance) {
|
|
93
|
-
return "__brand" in instance && instance.__brand === "GPUCanvasContext";
|
|
94
|
-
};
|
|
95
|
-
const GPUCommandBuffer = {};
|
|
96
|
-
GPUCommandBuffer[Symbol.hasInstance] = function (instance) {
|
|
97
|
-
return "__brand" in instance && instance.__brand === "GPUCommandBuffer";
|
|
98
|
-
};
|
|
99
|
-
const GPUCommandEncoder = {};
|
|
100
|
-
GPUCommandEncoder[Symbol.hasInstance] = function (instance) {
|
|
101
|
-
return "__brand" in instance && instance.__brand === "GPUCommandEncoder";
|
|
102
|
-
};
|
|
103
|
-
const GPUCompilationInfo = {};
|
|
104
|
-
GPUCompilationInfo[Symbol.hasInstance] = function (instance) {
|
|
105
|
-
return "__brand" in instance && instance.__brand === "GPUCompilationInfo";
|
|
106
|
-
};
|
|
107
|
-
const GPUCompilationMessage = {};
|
|
108
|
-
GPUCompilationMessage[Symbol.hasInstance] = function (instance) {
|
|
109
|
-
return "__brand" in instance && instance.__brand === "GPUCompilationMessage";
|
|
110
|
-
};
|
|
111
|
-
const GPUComputePassEncoder = {};
|
|
112
|
-
GPUComputePassEncoder[Symbol.hasInstance] = function (instance) {
|
|
113
|
-
return "__brand" in instance && instance.__brand === "GPUComputePassEncoder";
|
|
114
|
-
};
|
|
115
|
-
const GPUComputePipeline = {};
|
|
116
|
-
GPUComputePipeline[Symbol.hasInstance] = function (instance) {
|
|
117
|
-
return "__brand" in instance && instance.__brand === "GPUComputePipeline";
|
|
118
|
-
};
|
|
119
|
-
const GPUDevice = {};
|
|
120
|
-
GPUDevice[Symbol.hasInstance] = function (instance) {
|
|
121
|
-
return "__brand" in instance && instance.__brand === "GPUDevice";
|
|
122
|
-
};
|
|
123
|
-
const GPUDeviceLostInfo = {};
|
|
124
|
-
GPUDeviceLostInfo[Symbol.hasInstance] = function (instance) {
|
|
125
|
-
return "__brand" in instance && instance.__brand === "GPUDeviceLostInfo";
|
|
126
|
-
};
|
|
127
|
-
const GPUError = {};
|
|
128
|
-
GPUError[Symbol.hasInstance] = function (instance) {
|
|
129
|
-
return "__brand" in instance && instance.__brand === "GPUError";
|
|
130
|
-
};
|
|
131
|
-
const GPUExternalTexture = {};
|
|
132
|
-
GPUExternalTexture[Symbol.hasInstance] = function (instance) {
|
|
133
|
-
return "__brand" in instance && instance.__brand === "GPUExternalTexture";
|
|
134
|
-
};
|
|
135
|
-
const GPUPipelineLayout = {};
|
|
136
|
-
GPUPipelineLayout[Symbol.hasInstance] = function (instance) {
|
|
137
|
-
return "__brand" in instance && instance.__brand === "GPUPipelineLayout";
|
|
138
|
-
};
|
|
139
|
-
const GPUQuerySet = {};
|
|
140
|
-
GPUQuerySet[Symbol.hasInstance] = function (instance) {
|
|
141
|
-
return "__brand" in instance && instance.__brand === "GPUQuerySet";
|
|
142
|
-
};
|
|
143
|
-
const GPUQueue = {};
|
|
144
|
-
GPUQueue[Symbol.hasInstance] = function (instance) {
|
|
145
|
-
return "__brand" in instance && instance.__brand === "GPUQueue";
|
|
146
|
-
};
|
|
147
|
-
const GPURenderBundle = {};
|
|
148
|
-
GPURenderBundle[Symbol.hasInstance] = function (instance) {
|
|
149
|
-
return "__brand" in instance && instance.__brand === "GPURenderBundle";
|
|
150
|
-
};
|
|
151
|
-
const GPURenderBundleEncoder = {};
|
|
152
|
-
GPURenderBundleEncoder[Symbol.hasInstance] = function (instance) {
|
|
153
|
-
return "__brand" in instance && instance.__brand === "GPURenderBundleEncoder";
|
|
154
|
-
};
|
|
155
|
-
const GPURenderPassEncoder = {};
|
|
156
|
-
GPURenderPassEncoder[Symbol.hasInstance] = function (instance) {
|
|
157
|
-
return "__brand" in instance && instance.__brand === "GPURenderPassEncoder";
|
|
158
|
-
};
|
|
159
|
-
const GPURenderPipeline = {};
|
|
160
|
-
GPURenderPipeline[Symbol.hasInstance] = function (instance) {
|
|
161
|
-
return "__brand" in instance && instance.__brand === "GPURenderPipeline";
|
|
162
|
-
};
|
|
163
|
-
const GPUSampler = {};
|
|
164
|
-
GPUSampler[Symbol.hasInstance] = function (instance) {
|
|
165
|
-
return "__brand" in instance && instance.__brand === "GPUSampler";
|
|
166
|
-
};
|
|
167
|
-
const GPUShaderModule = {};
|
|
168
|
-
GPUShaderModule[Symbol.hasInstance] = function (instance) {
|
|
169
|
-
return "__brand" in instance && instance.__brand === "GPUShaderModule";
|
|
170
|
-
};
|
|
171
|
-
const GPUTexture = {};
|
|
172
|
-
GPUTexture[Symbol.hasInstance] = function (instance) {
|
|
173
|
-
return "__brand" in instance && instance.__brand === "GPUTexture";
|
|
174
|
-
};
|
|
175
|
-
const GPUTextureView = {};
|
|
176
|
-
GPUTextureView[Symbol.hasInstance] = function (instance) {
|
|
177
|
-
return "__brand" in instance && instance.__brand === "GPUTextureView";
|
|
178
|
-
};
|
|
179
|
-
global.GPU = GPU;
|
|
180
|
-
global.GPUAdapter = GPUAdapter;
|
|
181
|
-
global.GPUAdapterInfo = GPUAdapterInfo;
|
|
182
|
-
global.GPUBindGroup = GPUBindGroup;
|
|
183
|
-
global.GPUBindGroupLayout = GPUBindGroupLayout;
|
|
184
|
-
global.GPUBuffer = GPUBuffer;
|
|
185
|
-
global.GPUCanvasContext = GPUCanvasContext;
|
|
186
|
-
global.GPUCommandBuffer = GPUCommandBuffer;
|
|
187
|
-
global.GPUCommandEncoder = GPUCommandEncoder;
|
|
188
|
-
global.GPUCompilationInfo = GPUCompilationInfo;
|
|
189
|
-
global.GPUCompilationMessage = GPUCompilationMessage;
|
|
190
|
-
global.GPUComputePassEncoder = GPUComputePassEncoder;
|
|
191
|
-
global.GPUComputePipeline = GPUComputePipeline;
|
|
192
|
-
global.GPUDevice = GPUDevice;
|
|
193
|
-
global.GPUDeviceLostInfo = GPUDeviceLostInfo;
|
|
194
|
-
global.GPUError = GPUError;
|
|
195
|
-
global.GPUExternalTexture = GPUExternalTexture;
|
|
196
|
-
global.GPUPipelineLayout = GPUPipelineLayout;
|
|
197
|
-
global.GPUQuerySet = GPUQuerySet;
|
|
198
|
-
global.GPUQueue = GPUQueue;
|
|
199
|
-
global.GPURenderBundle = GPURenderBundle;
|
|
200
|
-
global.GPURenderBundleEncoder = GPURenderBundleEncoder;
|
|
201
|
-
global.GPURenderPassEncoder = GPURenderPassEncoder;
|
|
202
|
-
global.GPURenderPipeline = GPURenderPipeline;
|
|
203
|
-
global.GPUSampler = GPUSampler;
|
|
204
|
-
global.GPUShaderModule = GPUShaderModule;
|
|
205
|
-
global.GPUTexture = GPUTexture;
|
|
206
|
-
global.GPUTextureView = GPUTextureView;
|
|
207
|
-
_NativeWebGPUModule.default.install();
|
|
208
|
-
if (!navigator) {
|
|
209
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
210
|
-
// @ts-expect-error
|
|
211
|
-
navigator = {};
|
|
212
|
-
}
|
|
213
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
214
|
-
// @ts-expect-error
|
|
215
|
-
navigator.gpu = RNWebGPU.gpu;
|
|
216
|
-
|
|
217
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
218
|
-
// @ts-ignore
|
|
219
|
-
navigator.userAgent = "react-native";
|
|
220
|
-
global.createImageBitmap = global.createImageBitmap ?? ((...params) => new Promise(resolve => resolve(RNWebGPU.createImageBitmap(...params))));
|
|
221
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_main","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAIA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|