react-native-wgpu 0.3.2 → 0.4.1
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 +14 -6
- 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/hooks.js +3 -2
- package/lib/commonjs/hooks.js.map +1 -1
- 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 +12 -5
- 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/hooks.js +1 -1
- package/lib/module/hooks.js.map +1 -1
- 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/Canvas.d.ts +1 -2
- 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/hooks.d.ts +5 -6
- package/lib/typescript/lib/commonjs/hooks.d.ts.map +1 -1
- 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 +2 -1
- 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/hooks.d.ts +4 -3
- package/lib/typescript/lib/module/hooks.d.ts.map +1 -1
- 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 +3 -2
- 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/hooks.d.ts +5 -4
- package/lib/typescript/src/hooks.d.ts.map +1 -1
- 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 +18 -5
- package/src/WebGPUViewNativeComponent.ts +1 -1
- package/src/WebGPUViewNativeComponent.web.ts +108 -0
- package/src/WebPolyfillGPUModule.ts +53 -0
- package/src/hooks.tsx +2 -2
- 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
|
@@ -4,10 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Canvas = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
7
8
|
var _reactNative = require("react-native");
|
|
8
|
-
var _react = require("react");
|
|
9
9
|
var _WebGPUViewNativeComponent = _interopRequireDefault(require("./WebGPUViewNativeComponent"));
|
|
10
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
12
|
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); }
|
|
12
13
|
let CONTEXT_COUNTER = 1;
|
|
13
14
|
function generateContextId() {
|
|
@@ -32,16 +33,23 @@ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
32
33
|
if (!viewRef.current) {
|
|
33
34
|
throw new Error("[WebGPU] Cannot get context before mount");
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
let size;
|
|
37
|
+
if (_reactNative.Platform.OS === "web") {
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
39
|
+
// @ts-expect-error
|
|
40
|
+
size = viewRef.current.getBoundingClientRect();
|
|
41
|
+
} else {
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
43
|
+
// @ts-expect-error
|
|
44
|
+
size = viewRef.current.unstable_getBoundingClientRect();
|
|
45
|
+
}
|
|
38
46
|
return RNWebGPU.MakeWebGPUCanvasContext(contextId, size.width, size.height);
|
|
39
47
|
}
|
|
40
48
|
}));
|
|
41
|
-
return /*#__PURE__*/
|
|
49
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
|
|
42
50
|
collapsable: false,
|
|
43
51
|
ref: viewRef
|
|
44
|
-
}, props), /*#__PURE__*/
|
|
52
|
+
}, props), /*#__PURE__*/_react.default.createElement(_WebGPUViewNativeComponent.default, {
|
|
45
53
|
style: {
|
|
46
54
|
flex: 1
|
|
47
55
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","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","createElement","View","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAOA,IAAAC,YAAA,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,SAAAL,wBAAAK,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAK,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAAA,SAAAgB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAf,CAAA,aAAAN,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAK,CAAA,IAAAF,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAa,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAE3D,IAAIG,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,oBACE7D,MAAA,CAAAQ,OAAA,CAAAsD,aAAA,CAAC3D,YAAA,CAAA4D,IAAI,EAAAtC,QAAA;IAACuC,WAAW,EAAE,KAAM;IAACxB,GAAG,EAAEC;EAAQ,GAAKF,KAAK,gBAC/CvC,MAAA,CAAAQ,OAAA,CAAAsD,aAAA,CAAC1D,0BAAA,CAAAI,OAAgB;IACfyD,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACnBvB,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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAIA,IAAAG,MAAA,GAAAH,OAAA;AAOA;AACA,SAASI,QAAQA,CACfC,IAAO,EACPC,IAAY,EACZC,SAAS,GAAG,KAAK,EACjB;EACA,IAAIC,OAAkD;EACtD,OAAO,SAASC,SAASA,CAEvB,GAAGC,IAAmB,EACtB;IACA,MAAMC,OAAO,GAAG,IAAI;IACpB,MAAMC,OAAO,GAAGL,SAAS,IAAI,CAACC,OAAO;IACrC,IAAIA,OAAO,EAAE;MACXK,YAAY,CAACL,OAAO,CAAC;IACvB;IACAA,OAAO,GAAGM,UAAU,CAAC,MAAM;MACzBN,OAAO,GAAGO,SAAS;MACnB,IAAI,CAACR,SAAS,EAAE;QACdF,IAAI,CAACW,KAAK,CAACL,OAAO,EAAED,IAAI,CAAC;MAC3B;IACF,CAAC,EAAEJ,IAAI,CAAC;IACR,IAAIM,OAAO,EAAE;MACXP,IAAI,CAACW,KAAK,CAACL,OAAO,EAAED,IAAI,CAAC;IAC3B;EACF,CAAC;AACH;AAEA,SAASO,YAAYA,CAACC,MAA0B,EAAE;EAChD,IAAI,CAACA,MAAM,EAAE;IACX;EACF;EAEA,MAAMC,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EAExC,MAAM;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGL,MAAM,CAACM,qBAAqB,CAAC,CAAC;EACxDN,MAAM,CAACO,YAAY,CAAC,QAAQ,EAAE,CAACH,MAAM,GAAGH,GAAG,EAAEO,QAAQ,CAAC,CAAC,CAAC;EACxDR,MAAM,CAACO,YAAY,CAAC,OAAO,EAAE,CAACF,KAAK,GAAGJ,GAAG,EAAEO,QAAQ,CAAC,CAAC,CAAC;AACxD;;AAEA;AACe,SAASC,yBAAyBA,CAACC,KAAkB,EAAE;EACpE,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAEC,WAAW;IAAE,GAAGC;EAAK,CAAC,GAAGJ,KAAK;EAExD,MAAMK,SAAS,GAAG,IAAAC,aAAM,EAAoB,CAAC;EAE7C,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAGhC,QAAQ,CAAC,MAAMa,YAAY,CAACgB,SAAS,CAACI,OAAO,CAAC,EAAE,GAAG,CAAC;IACrEjB,MAAM,CAACkB,gBAAgB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;IAC3C,OAAO,MAAM;MACXhB,MAAM,CAACmB,mBAAmB,CAAC,QAAQ,EAAEH,QAAQ,CAAC;IAChD,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAI,sCAAqB,EAAC,QAAQ,EAAE;IACrC,GAAGR,IAAI;IACPF,KAAK,EAAE,CACLW,MAAM,CAACC,IAAI,EACXD,MAAM,CAACE,KAAK,EACZZ,WAAW,KAAK,KAAK,IAAI;MAAEa,eAAe,EAAE;IAAQ,CAAC;IAAE;IACvDd,KAAK,CACN;IACDe,EAAE,EAAE,IAAAC,oBAAa,EAACjB,SAAS,CAAC;IAC5BkB,GAAG,EAAGA,GAAsB,IAAK;MAC/Bd,SAAS,CAACI,OAAO,GAAGU,GAAG;MACvB,IAAIA,GAAG,EAAE;QACP9B,YAAY,CAAC8B,GAAG,CAAC;MACnB;IACF;EACF,CAAC,CAAC;AACJ;AAEA,MAAMN,MAAM,GAAGO,uBAAU,CAACC,MAAM,CAAC;EAC/BN,KAAK,EAAE;IACLO,IAAI,EAAE;EACR,CAAC;EACDR,IAAI,EAAE;IACJS,UAAU,EAAE,SAAS;IACrBP,eAAe,EAAE,aAAa;IAC9B;IACAQ,MAAM,EAAE,eAAe;IACvBC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,MAAM;IACfC,SAAS,EAAE,MAAM;IACjBC,aAAa,EAAE,QAAQ;IACvBC,UAAU,EAAE,CAAC;IACbC,SAAS,EAAE,MAAM;IACjBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,CAAC;IACZC,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAE,CAAC;IACVC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","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/hooks.js
CHANGED
|
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.warnIfNotHardwareAccelerated = exports.useSurface = exports.useMainDevice = exports.useDevice = exports.useCanvasRef = exports.GPUDeviceProvider = void 0;
|
|
7
|
-
var _react = require("react");
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
8
9
|
const warnIfNotHardwareAccelerated = adapter => {
|
|
9
10
|
// Check if adapter is a fallback adapter using the new GPUAdapterInfo API
|
|
10
11
|
// Note: isFallbackAdapter was moved from GPUAdapter to GPUAdapterInfo in Chrome 140
|
|
@@ -23,7 +24,7 @@ const GPUDeviceProvider = ({
|
|
|
23
24
|
if (!state.device) {
|
|
24
25
|
return null;
|
|
25
26
|
}
|
|
26
|
-
return /*#__PURE__*/
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(DeviceContext.Provider, {
|
|
27
28
|
value: state
|
|
28
29
|
}, children);
|
|
29
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","exports","DeviceContext","createContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","exports","DeviceContext","createContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","createElement","Provider","value","useSurface","ref","useRef","surface","setSurface","useState","useLayoutEffect","sur","current","getNativeSurface","useMainDevice","ctx","useContext","Error","useCanvasRef","setState","useEffect","navigator","gpu","requestAdapter","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"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","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":[]}
|