react-native-webgpu 0.5.15 → 0.5.16
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/cpp/rnwgpu/api/Canvas.h +18 -0
- package/lib/commonjs/Canvas.js.map +1 -1
- package/lib/commonjs/GPUDeviceProvider.js +33 -0
- package/lib/commonjs/GPUDeviceProvider.js.map +1 -0
- package/lib/commonjs/WebPolyfillGPUModule.js +7 -1
- package/lib/commonjs/WebPolyfillGPUModule.js.map +1 -1
- package/lib/commonjs/constants.js +20 -5
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/hooks.js +2 -26
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/commonjs/main/index.js +12 -0
- package/lib/commonjs/main/index.js.map +1 -1
- package/lib/commonjs/main/index.web.js +11 -0
- package/lib/commonjs/main/index.web.js.map +1 -1
- package/lib/module/Canvas.js.map +1 -1
- package/lib/module/GPUDeviceProvider.js +24 -0
- package/lib/module/GPUDeviceProvider.js.map +1 -0
- package/lib/module/WebPolyfillGPUModule.js +7 -1
- package/lib/module/WebPolyfillGPUModule.js.map +1 -1
- package/lib/module/constants.js +15 -5
- package/lib/module/constants.js.map +1 -1
- package/lib/module/hooks.js +1 -22
- package/lib/module/hooks.js.map +1 -1
- package/lib/module/main/index.js +1 -0
- package/lib/module/main/index.js.map +1 -1
- package/lib/module/main/index.web.js +1 -0
- package/lib/module/main/index.web.js.map +1 -1
- package/lib/typescript/lib/commonjs/GPUDeviceProvider.d.ts +8 -0
- package/lib/typescript/lib/commonjs/GPUDeviceProvider.d.ts.map +1 -0
- package/lib/typescript/lib/commonjs/constants.d.ts +5 -1
- package/lib/typescript/lib/commonjs/hooks.d.ts +4 -9
- package/lib/typescript/lib/commonjs/hooks.d.ts.map +1 -1
- package/lib/typescript/lib/module/GPUDeviceProvider.d.ts +8 -0
- package/lib/typescript/lib/module/GPUDeviceProvider.d.ts.map +1 -0
- package/lib/typescript/lib/module/constants.d.ts.map +1 -1
- package/lib/typescript/lib/module/hooks.d.ts +2 -9
- package/lib/typescript/lib/module/hooks.d.ts.map +1 -1
- package/lib/typescript/lib/module/main/index.d.ts +1 -0
- package/lib/typescript/lib/module/main/index.web.d.ts +1 -0
- package/lib/typescript/src/Canvas.d.ts +5 -0
- package/lib/typescript/src/Canvas.d.ts.map +1 -1
- package/lib/typescript/src/GPUDeviceProvider.d.ts +15 -0
- package/lib/typescript/src/GPUDeviceProvider.d.ts.map +1 -0
- package/lib/typescript/src/constants.d.ts.map +1 -1
- package/lib/typescript/src/hooks.d.ts +2 -17
- package/lib/typescript/src/hooks.d.ts.map +1 -1
- package/lib/typescript/src/main/index.d.ts +1 -0
- package/lib/typescript/src/main/index.d.ts.map +1 -1
- package/lib/typescript/src/main/index.web.d.ts +1 -0
- package/lib/typescript/src/main/index.web.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +5 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +12 -3
- package/src/Canvas.tsx +7 -0
- package/src/GPUDeviceProvider.tsx +39 -0
- package/src/WebPolyfillGPUModule.ts +6 -0
- package/src/constants.ts +5 -5
- package/src/hooks.tsx +3 -41
- package/src/main/index.tsx +1 -0
- package/src/main/index.web.tsx +1 -0
- package/src/types.ts +7 -0
package/cpp/rnwgpu/api/Canvas.h
CHANGED
|
@@ -36,6 +36,15 @@ public:
|
|
|
36
36
|
|
|
37
37
|
void *getSurface() { return _surface; }
|
|
38
38
|
|
|
39
|
+
// No-op DOM-compatibility stubs so that web renderers (Three.js,
|
|
40
|
+
// react-three-fiber) can treat the canvas like an HTMLCanvasElement without
|
|
41
|
+
// needing a JS wrapper. Extra JS arguments are ignored.
|
|
42
|
+
void addEventListener() {}
|
|
43
|
+
void removeEventListener() {}
|
|
44
|
+
void dispatchEvent() {}
|
|
45
|
+
void setPointerCapture() {}
|
|
46
|
+
void releasePointerCapture() {}
|
|
47
|
+
|
|
39
48
|
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
40
49
|
installGetter(runtime, prototype, "surface", &Canvas::getSurface);
|
|
41
50
|
installGetterSetter(runtime, prototype, "width", &Canvas::getWidth,
|
|
@@ -44,6 +53,15 @@ public:
|
|
|
44
53
|
&Canvas::setHeight);
|
|
45
54
|
installGetter(runtime, prototype, "clientWidth", &Canvas::getClientWidth);
|
|
46
55
|
installGetter(runtime, prototype, "clientHeight", &Canvas::getClientHeight);
|
|
56
|
+
installMethod(runtime, prototype, "addEventListener",
|
|
57
|
+
&Canvas::addEventListener);
|
|
58
|
+
installMethod(runtime, prototype, "removeEventListener",
|
|
59
|
+
&Canvas::removeEventListener);
|
|
60
|
+
installMethod(runtime, prototype, "dispatchEvent", &Canvas::dispatchEvent);
|
|
61
|
+
installMethod(runtime, prototype, "setPointerCapture",
|
|
62
|
+
&Canvas::setPointerCapture);
|
|
63
|
+
installMethod(runtime, prototype, "releasePointerCapture",
|
|
64
|
+
&Canvas::releasePointerCapture);
|
|
47
65
|
}
|
|
48
66
|
|
|
49
67
|
private:
|
|
@@ -1 +1 @@
|
|
|
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","transparent","ref","props","viewRef","useRef","contextId","_","useState","useImperativeHandle","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","createElement","View","collapsable","style","flex","exports"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,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;
|
|
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","transparent","ref","props","viewRef","useRef","contextId","_","useState","useImperativeHandle","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","createElement","View","collapsable","style","flex","exports"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useMainDevice = exports.GPUDeviceProvider = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _hooks = require("./hooks");
|
|
9
|
+
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); }
|
|
10
|
+
const DeviceContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
11
|
+
const GPUDeviceProvider = ({
|
|
12
|
+
children,
|
|
13
|
+
adapterOptions,
|
|
14
|
+
deviceDescriptor
|
|
15
|
+
}) => {
|
|
16
|
+
const state = (0, _hooks.useDevice)(adapterOptions, deviceDescriptor);
|
|
17
|
+
if (!state.device) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(DeviceContext.Provider, {
|
|
21
|
+
value: state
|
|
22
|
+
}, children);
|
|
23
|
+
};
|
|
24
|
+
exports.GPUDeviceProvider = GPUDeviceProvider;
|
|
25
|
+
const useMainDevice = () => {
|
|
26
|
+
const ctx = (0, _react.useContext)(DeviceContext);
|
|
27
|
+
if (!ctx) {
|
|
28
|
+
throw new Error("No DeviceContext found.");
|
|
29
|
+
}
|
|
30
|
+
return ctx;
|
|
31
|
+
};
|
|
32
|
+
exports.useMainDevice = useMainDevice;
|
|
33
|
+
//# sourceMappingURL=GPUDeviceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DeviceContext","createContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","createElement","Provider","value","exports","useMainDevice","ctx","useContext","Error"],"sourceRoot":"../../src","sources":["GPUDeviceProvider.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAAoC,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAOpC,MAAMkB,aAAa,gBAAG,IAAAC,oBAAa,EAA4B,IAAI,CAAC;AAQ7D,MAAMC,iBAAiB,GAAGA,CAAC;EAChCC,QAAQ;EACRC,cAAc;EACdC;AACmB,CAAC,KAAK;EACzB,MAAMC,KAAK,GAAG,IAAAC,gBAAS,EAACH,cAAc,EAAEC,gBAAgB,CAAC;EACzD,IAAI,CAACC,KAAK,CAACE,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EACA,oBACE/B,MAAA,CAAAc,OAAA,CAAAkB,aAAA,CAACT,aAAa,CAACU,QAAQ;IAACC,KAAK,EAAEL;EAAM,GAAEH,QAAiC,CAAC;AAE7E,CAAC;AAACS,OAAA,CAAAV,iBAAA,GAAAA,iBAAA;AAEK,MAAMW,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACf,aAAa,CAAC;EACrC,IAAI,CAACc,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EACA,OAAOF,GAAG;AACZ,CAAC;AAACF,OAAA,CAAAC,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -13,7 +13,13 @@ function getNativeSurface(contextId) {
|
|
|
13
13
|
height,
|
|
14
14
|
width,
|
|
15
15
|
clientHeight: height,
|
|
16
|
-
clientWidth: width
|
|
16
|
+
clientWidth: width,
|
|
17
|
+
// On web the real DOM canvas handles events; delegate to it.
|
|
18
|
+
addEventListener: canvas.addEventListener.bind(canvas),
|
|
19
|
+
removeEventListener: canvas.removeEventListener.bind(canvas),
|
|
20
|
+
dispatchEvent: canvas.dispatchEvent.bind(canvas),
|
|
21
|
+
setPointerCapture: canvas.setPointerCapture.bind(canvas),
|
|
22
|
+
releasePointerCapture: canvas.releasePointerCapture.bind(canvas)
|
|
17
23
|
};
|
|
18
24
|
}
|
|
19
25
|
function makeWebGPUCanvasContext(contextId, width, height) {
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"names":["_utils","require","fabric","getNativeSurface","contextId","canvas","document","getElementById","contextIdToId","height","width","getBoundingClientRect","surface","BigInt","clientHeight","clientWidth","addEventListener","bind","removeEventListener","dispatchEvent","setPointerCapture","releasePointerCapture","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,KAAK;IAClB;IACAM,gBAAgB,EAAEX,MAAM,CAACW,gBAAgB,CAACC,IAAI,CAACZ,MAAM,CAAC;IACtDa,mBAAmB,EAAEb,MAAM,CAACa,mBAAmB,CAACD,IAAI,CAACZ,MAAM,CAAC;IAC5Dc,aAAa,EAAEd,MAAM,CAACc,aAAa,CAACF,IAAI,CAACZ,MAAM,CAAC;IAChDe,iBAAiB,EAAEf,MAAM,CAACe,iBAAiB,CAACH,IAAI,CAACZ,MAAM,CAAC;IACxDgB,qBAAqB,EAAEhB,MAAM,CAACgB,qBAAqB,CAACJ,IAAI,CAACZ,MAAM;EACjE,CAAC;AACH;AAEA,SAASiB,uBAAuBA,CAC9BlB,SAAiB,EACjBM,KAAa,EACbD,MAAc,EACd;EACA,MAAMJ,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpC,IAAAC,oBAAa,EAACJ,SAAS,CACzB,CAAsB;EAEtB,MAAMmB,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAAChB,KAAK,GAAGa,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACnB,MAAM,GAAGc,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACEtB,MAAM,CAACwB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3CrB,MAAM,CAACwB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAvB,MAAM,CAACyB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCrB,MAAM,CAACyB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAG1B,MAAM,CAAC2B,UAAU,CAAC,QAAQ,CAAE;EAC5C;EACA;EACA,OAAOC,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAAEI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC;AACtD;;AAEA;AACAX,MAAM,CAACY,QAAQ,GAAG;EAChBjC,gBAAgB;EAChBkC,uBAAuB,EAAEf,uBAAuB;EAChDpB;AACF,CAAC","ignoreList":[]}
|
|
@@ -32,9 +32,24 @@ exports.GPUTextureUsage = exports.GPUShaderStage = exports.GPUMapMode = exports.
|
|
|
32
32
|
// re-exports `./main` before `./constants`, and `./main` installs the native
|
|
33
33
|
// module synchronously, so the globals always exist by the time this runs.
|
|
34
34
|
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
35
|
+
const {
|
|
36
|
+
GPUBufferUsage
|
|
37
|
+
} = globalThis;
|
|
38
|
+
exports.GPUBufferUsage = GPUBufferUsage;
|
|
39
|
+
const {
|
|
40
|
+
GPUTextureUsage
|
|
41
|
+
} = globalThis;
|
|
42
|
+
exports.GPUTextureUsage = GPUTextureUsage;
|
|
43
|
+
const {
|
|
44
|
+
GPUShaderStage
|
|
45
|
+
} = globalThis;
|
|
46
|
+
exports.GPUShaderStage = GPUShaderStage;
|
|
47
|
+
const {
|
|
48
|
+
GPUColorWrite
|
|
49
|
+
} = globalThis;
|
|
50
|
+
exports.GPUColorWrite = GPUColorWrite;
|
|
51
|
+
const {
|
|
52
|
+
GPUMapMode
|
|
53
|
+
} = globalThis;
|
|
54
|
+
exports.GPUMapMode = GPUMapMode;
|
|
40
55
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GPUBufferUsage","
|
|
1
|
+
{"version":3,"names":["GPUBufferUsage","globalThis","exports","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAM;EAAEA;AAAe,CAAC,GAAGC,UAAU;AAACC,OAAA,CAAAF,cAAA,GAAAA,cAAA;AAEtC,MAAM;EAAEG;AAAgB,CAAC,GAAGF,UAAU;AAACC,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAEvC,MAAM;EAAEC;AAAe,CAAC,GAAGH,UAAU;AAACC,OAAA,CAAAE,cAAA,GAAAA,cAAA;AAEtC,MAAM;EAAEC;AAAc,CAAC,GAAGJ,UAAU;AAACC,OAAA,CAAAG,aAAA,GAAAA,aAAA;AAErC,MAAM;EAAEC;AAAW,CAAC,GAAGL,UAAU;AAACC,OAAA,CAAAI,UAAA,GAAAA,UAAA","ignoreList":[]}
|
package/lib/commonjs/hooks.js
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.warnIfNotHardwareAccelerated = exports.useSurface = exports.
|
|
7
|
-
var _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); }
|
|
6
|
+
exports.warnIfNotHardwareAccelerated = exports.useSurface = exports.useDevice = exports.useCanvasRef = void 0;
|
|
7
|
+
var _react = require("react");
|
|
9
8
|
const warnIfNotHardwareAccelerated = adapter => {
|
|
10
9
|
// Check if adapter is a fallback adapter using the new GPUAdapterInfo API
|
|
11
10
|
// Note: isFallbackAdapter was moved from GPUAdapter to GPUAdapterInfo in Chrome 140
|
|
@@ -14,21 +13,6 @@ const warnIfNotHardwareAccelerated = adapter => {
|
|
|
14
13
|
}
|
|
15
14
|
};
|
|
16
15
|
exports.warnIfNotHardwareAccelerated = warnIfNotHardwareAccelerated;
|
|
17
|
-
const DeviceContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
18
|
-
const GPUDeviceProvider = ({
|
|
19
|
-
children,
|
|
20
|
-
adapterOptions,
|
|
21
|
-
deviceDescriptor
|
|
22
|
-
}) => {
|
|
23
|
-
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
24
|
-
if (!state.device) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
return /*#__PURE__*/_react.default.createElement(DeviceContext.Provider, {
|
|
28
|
-
value: state
|
|
29
|
-
}, children);
|
|
30
|
-
};
|
|
31
|
-
exports.GPUDeviceProvider = GPUDeviceProvider;
|
|
32
16
|
const useSurface = () => {
|
|
33
17
|
const ref = (0, _react.useRef)(null);
|
|
34
18
|
const [surface, setSurface] = (0, _react.useState)(null);
|
|
@@ -42,14 +26,6 @@ const useSurface = () => {
|
|
|
42
26
|
};
|
|
43
27
|
};
|
|
44
28
|
exports.useSurface = useSurface;
|
|
45
|
-
const useMainDevice = () => {
|
|
46
|
-
const ctx = (0, _react.useContext)(DeviceContext);
|
|
47
|
-
if (!ctx) {
|
|
48
|
-
throw new Error("No DeviceContext found.");
|
|
49
|
-
}
|
|
50
|
-
return ctx;
|
|
51
|
-
};
|
|
52
|
-
exports.useMainDevice = useMainDevice;
|
|
53
29
|
const useCanvasRef = () => (0, _react.useRef)(null);
|
|
54
30
|
exports.useCanvasRef = useCanvasRef;
|
|
55
31
|
const useDevice = (adapterOptions, deviceDescriptor) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","require","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","exports","useSurface","ref","useRef","surface","setSurface","useState","useLayoutEffect","sur","current","getNativeSurface","useCanvasRef","useDevice","adapterOptions","deviceDescriptor","state","setState","useEffect","navigator","gpu","requestAdapter","Error","device","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE;EACA;EACA,IAAIA,OAAO,CAACC,IAAI,IAAID,OAAO,CAACC,IAAI,CAACC,iBAAiB,EAAE;IAClDC,OAAO,CAACC,IAAI,CACV,wIACF,CAAC;EACH;AACF,CAAC;AAACC,OAAA,CAAAN,4BAAA,GAAAA,4BAAA;AAOK,MAAMO,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAY,IAAI,CAAC;EACnC,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAsB,IAAI,CAAC;EACjE,IAAAC,sBAAe,EAAC,MAAM;IACpB,MAAMC,GAAG,GAAGN,GAAG,CAACO,OAAO,CAAEC,gBAAgB,CAAC,CAAC;IAC3CL,UAAU,CAACG,GAAG,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IAAEN,GAAG;IAAEE;EAAQ,CAAC;AACzB,CAAC;AAACJ,OAAA,CAAAC,UAAA,GAAAA,UAAA;AAEK,MAAMU,YAAY,GAAGA,CAAA,KAAM,IAAAR,aAAM,EAAY,IAAI,CAAC;AAACH,OAAA,CAAAW,YAAA,GAAAA,YAAA;AAEnD,MAAMC,SAAS,GAAGA,CACvBC,cAAyC,EACzCC,gBAAsC,KACnC;EACH,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAV,eAAQ,EAAqB,IAAI,CAAC;EAC5D,IAAAW,gBAAS,EAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI,CAACF,KAAK,EAAE;QACV,MAAMpB,OAAO,GAAG,MAAMuB,SAAS,CAACC,GAAG,CAACC,cAAc,CAACP,cAAc,CAAC;QAClE,IAAI,CAAClB,OAAO,EAAE;UACZ,MAAM,IAAI0B,KAAK,CAAC,kCAAkC,CAAC;QACrD;QACA3B,4BAA4B,CAACC,OAAO,CAAC;QACrC,MAAM2B,MAAM,GAAG,MAAM3B,OAAO,CAAC4B,aAAa,CAACT,gBAAgB,CAAC;QAC5D,IAAI,CAACQ,MAAM,EAAE;UACX,MAAM,IAAID,KAAK,CAAC,iCAAiC,CAAC;QACpD;QACAL,QAAQ,CAAC;UAAErB,OAAO;UAAE2B;QAAO,CAAC,CAAC;QAC7B;MACF;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACT,cAAc,EAAEC,gBAAgB,EAAEC,KAAK,CAAC,CAAC;EAC7C,OAAO;IAAEpB,OAAO,EAAEoB,KAAK,EAAEpB,OAAO,IAAI,IAAI;IAAE2B,MAAM,EAAEP,KAAK,EAAEO,MAAM,IAAI;EAAK,CAAC;AAC3E,CAAC;AAACtB,OAAA,CAAAY,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -62,6 +62,18 @@ Object.keys(_hooks).forEach(function (key) {
|
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
});
|
|
65
|
+
var _GPUDeviceProvider = require("../GPUDeviceProvider");
|
|
66
|
+
Object.keys(_GPUDeviceProvider).forEach(function (key) {
|
|
67
|
+
if (key === "default" || key === "__esModule") return;
|
|
68
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
69
|
+
if (key in exports && exports[key] === _GPUDeviceProvider[key]) return;
|
|
70
|
+
Object.defineProperty(exports, key, {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
get: function () {
|
|
73
|
+
return _GPUDeviceProvider[key];
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
65
77
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
66
78
|
const _installOk = _NativeWebGPUModule.default.install();
|
|
67
79
|
(0, _external.registerWebGPUForReanimated)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_external","require","_NativeWebGPUModule","_interopRequireDefault","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","e","__esModule","default","_installOk","WebGPUModule","install","registerWebGPUForReanimated","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,UAAA,GAAAhB,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAW,UAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,UAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,0BAAA,GAAAjB,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAY,0BAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,0BAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,0BAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,MAAA,GAAAlB,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAa,MAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,MAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;
|
|
1
|
+
{"version":3,"names":["_external","require","_NativeWebGPUModule","_interopRequireDefault","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","_GPUDeviceProvider","e","__esModule","default","_installOk","WebGPUModule","install","registerWebGPUForReanimated","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -48,4 +48,15 @@ Object.keys(_hooks).forEach(function (key) {
|
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
|
+
var _GPUDeviceProvider = require("../GPUDeviceProvider");
|
|
52
|
+
Object.keys(_GPUDeviceProvider).forEach(function (key) {
|
|
53
|
+
if (key === "default" || key === "__esModule") return;
|
|
54
|
+
if (key in exports && exports[key] === _GPUDeviceProvider[key]) return;
|
|
55
|
+
Object.defineProperty(exports, key, {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () {
|
|
58
|
+
return _GPUDeviceProvider[key];
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
51
62
|
//# sourceMappingURL=index.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_Canvas","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks"],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":";;;;;AAAAA,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAR,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAV,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,0BAAA,GAAAX,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAQ,0BAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,0BAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,0BAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAZ,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["require","_Canvas","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","_GPUDeviceProvider"],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":";;;;;AAAAA,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAR,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAV,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,0BAAA,GAAAX,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAQ,0BAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,0BAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,0BAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAZ,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,kBAAA,GAAAb,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAU,kBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,kBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,kBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/lib/module/Canvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useImperativeHandle","useRef","useState","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","Canvas","transparent","ref","props","viewRef","contextId","_","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","createElement","_extends","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEpE,SAASC,IAAI,QAAQ,cAAc;AAEnC,OAAOC,gBAAgB,MAAM,6BAA6B;AAE1D,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;
|
|
1
|
+
{"version":3,"names":["React","useImperativeHandle","useRef","useState","View","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","Canvas","transparent","ref","props","viewRef","contextId","_","getContextId","getNativeSurface","RNWebGPU","getContext","contextName","Error","current","view","size","getBoundingClientRect","unstable_getBoundingClientRect","MakeWebGPUCanvasContext","width","height","createElement","_extends","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEpE,SAASC,IAAI,QAAQ,cAAc;AAEnC,OAAOC,gBAAgB,MAAM,6BAA6B;AAE1D,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AA2CA,OAAO,MAAME,MAAM,GAAGA,CAAC;EAAEC,WAAW;EAAEC,GAAG;EAAE,GAAGC;AAAmB,CAAC,KAAK;EACrE,MAAMC,OAAO,GAAGV,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAM,CAACW,SAAS,EAAEC,CAAC,CAAC,GAAGX,QAAQ,CAAC,MAAMI,iBAAiB,CAAC,CAAC,CAAC;EAC1DN,mBAAmB,CAACS,GAAG,EAAE,OAAO;IAC9BK,YAAY,EAAEA,CAAA,KAAMF,SAAS;IAC7BG,gBAAgB,EAAEA,CAAA,KAAM;MACtB,OAAOC,QAAQ,CAACD,gBAAgB,CAACH,SAAS,CAAC;IAC7C,CAAC;IACDK,UAAUA,CAACC,WAAqB,EAA0B;MACxD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAIC,KAAK,CAAC,iCAAiCD,WAAW,EAAE,CAAC;MACjE;MACA,IAAI,CAACP,OAAO,CAACS,OAAO,EAAE;QACpB,MAAM,IAAID,KAAK,CAAC,0CAA0C,CAAC;MAC7D;MACA;MACA;MACA,MAAME,IAAI,GAAGV,OAAO,CAACS,OAAc;MACnC,MAAME,IAAI,GACR,uBAAuB,IAAID,IAAI,GAC3BA,IAAI,CAACE,qBAAqB,CAAC,CAAC,GAC5BF,IAAI,CAACG,8BAA8B,CAAC,CAAC;MAC3C,OAAOR,QAAQ,CAACS,uBAAuB,CACrCb,SAAS,EACTU,IAAI,CAACI,KAAK,EACVJ,IAAI,CAACK,MACP,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,oBACE5B,KAAA,CAAA6B,aAAA,CAACzB,IAAI,EAAA0B,QAAA;IAACC,WAAW,EAAE,KAAM;IAACrB,GAAG,EAAEE;EAAQ,GAAKD,KAAK,gBAC/CX,KAAA,CAAA6B,aAAA,CAACxB,gBAAgB;IACf2B,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACnBpB,SAAS,EAAEA,SAAU;IACrBJ,WAAW,EAAE,CAAC,CAACA;EAAY,CAC5B,CACG,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { createContext, useContext } from "react";
|
|
2
|
+
import { useDevice } from "./hooks";
|
|
3
|
+
const DeviceContext = /*#__PURE__*/createContext(null);
|
|
4
|
+
export const GPUDeviceProvider = ({
|
|
5
|
+
children,
|
|
6
|
+
adapterOptions,
|
|
7
|
+
deviceDescriptor
|
|
8
|
+
}) => {
|
|
9
|
+
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
10
|
+
if (!state.device) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return /*#__PURE__*/React.createElement(DeviceContext.Provider, {
|
|
14
|
+
value: state
|
|
15
|
+
}, children);
|
|
16
|
+
};
|
|
17
|
+
export const useMainDevice = () => {
|
|
18
|
+
const ctx = useContext(DeviceContext);
|
|
19
|
+
if (!ctx) {
|
|
20
|
+
throw new Error("No DeviceContext found.");
|
|
21
|
+
}
|
|
22
|
+
return ctx;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=GPUDeviceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","useDevice","DeviceContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","device","createElement","Provider","value","useMainDevice","ctx","Error"],"sourceRoot":"../../src","sources":["GPUDeviceProvider.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAGxD,SAASC,SAAS,QAAQ,SAAS;AAOnC,MAAMC,aAAa,gBAAGH,aAAa,CAA4B,IAAI,CAAC;AAQpE,OAAO,MAAMI,iBAAiB,GAAGA,CAAC;EAChCC,QAAQ;EACRC,cAAc;EACdC;AACmB,CAAC,KAAK;EACzB,MAAMC,KAAK,GAAGN,SAAS,CAACI,cAAc,EAAEC,gBAAgB,CAAC;EACzD,IAAI,CAACC,KAAK,CAACC,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EACA,oBACEV,KAAA,CAAAW,aAAA,CAACP,aAAa,CAACQ,QAAQ;IAACC,KAAK,EAAEJ;EAAM,GAAEH,QAAiC,CAAC;AAE7E,CAAC;AAED,OAAO,MAAMQ,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,GAAG,GAAGb,UAAU,CAACE,aAAa,CAAC;EACrC,IAAI,CAACW,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EACA,OAAOD,GAAG;AACZ,CAAC","ignoreList":[]}
|
|
@@ -11,7 +11,13 @@ function getNativeSurface(contextId) {
|
|
|
11
11
|
height,
|
|
12
12
|
width,
|
|
13
13
|
clientHeight: height,
|
|
14
|
-
clientWidth: width
|
|
14
|
+
clientWidth: width,
|
|
15
|
+
// On web the real DOM canvas handles events; delegate to it.
|
|
16
|
+
addEventListener: canvas.addEventListener.bind(canvas),
|
|
17
|
+
removeEventListener: canvas.removeEventListener.bind(canvas),
|
|
18
|
+
dispatchEvent: canvas.dispatchEvent.bind(canvas),
|
|
19
|
+
setPointerCapture: canvas.setPointerCapture.bind(canvas),
|
|
20
|
+
releasePointerCapture: canvas.releasePointerCapture.bind(canvas)
|
|
15
21
|
};
|
|
16
22
|
}
|
|
17
23
|
function makeWebGPUCanvasContext(contextId, width, height) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["contextIdToId","fabric","getNativeSurface","contextId","canvas","document","getElementById","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,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEI,MAAM;IAAEC;EAAM,CAAC,GAAGJ,MAAM,CAACK,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACR,SAAS,CAAC;IAC1BI,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL;
|
|
1
|
+
{"version":3,"names":["contextIdToId","fabric","getNativeSurface","contextId","canvas","document","getElementById","height","width","getBoundingClientRect","surface","BigInt","clientHeight","clientWidth","addEventListener","bind","removeEventListener","dispatchEvent","setPointerCapture","releasePointerCapture","makeWebGPUCanvasContext","dpr","window","devicePixelRatio","pixelWidth","toString","pixelHeight","getAttribute","setAttribute","context","getContext","Object","assign","present","RNWebGPU","MakeWebGPUCanvasContext"],"sourceRoot":"../../src","sources":["WebPolyfillGPUModule.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAS;AAEvC,MAAMC,MAAM,GAAG,IAAI;AAEnB,SAASC,gBAAgBA,CAACC,SAAiB,EAAE;EAC3C,MAAMC,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAM;IAAEI,MAAM;IAAEC;EAAM,CAAC,GAAGJ,MAAM,CAACK,qBAAqB,CAAC,CAAE;EAEzD,OAAO;IACLC,OAAO,EAAEC,MAAM,CAACR,SAAS,CAAC;IAC1BI,MAAM;IACNC,KAAK;IACLI,YAAY,EAAEL,MAAM;IACpBM,WAAW,EAAEL,KAAK;IAClB;IACAM,gBAAgB,EAAEV,MAAM,CAACU,gBAAgB,CAACC,IAAI,CAACX,MAAM,CAAC;IACtDY,mBAAmB,EAAEZ,MAAM,CAACY,mBAAmB,CAACD,IAAI,CAACX,MAAM,CAAC;IAC5Da,aAAa,EAAEb,MAAM,CAACa,aAAa,CAACF,IAAI,CAACX,MAAM,CAAC;IAChDc,iBAAiB,EAAEd,MAAM,CAACc,iBAAiB,CAACH,IAAI,CAACX,MAAM,CAAC;IACxDe,qBAAqB,EAAEf,MAAM,CAACe,qBAAqB,CAACJ,IAAI,CAACX,MAAM;EACjE,CAAC;AACH;AAEA,SAASgB,uBAAuBA,CAC9BjB,SAAiB,EACjBK,KAAa,EACbD,MAAc,EACd;EACA,MAAMH,MAAM,GAAGC,QAAQ,CAACC,cAAc,CACpCN,aAAa,CAACG,SAAS,CACzB,CAAsB;EAEtB,MAAMkB,GAAG,GAAGC,MAAM,CAACC,gBAAgB,IAAI,CAAC;EACxC,MAAMC,UAAU,GAAG,CAAChB,KAAK,GAAGa,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAC3C,MAAMC,WAAW,GAAG,CAACnB,MAAM,GAAGc,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAE7C,IACErB,MAAM,CAACuB,YAAY,CAAC,OAAO,CAAC,KAAKH,UAAU,IAC3CpB,MAAM,CAACuB,YAAY,CAAC,QAAQ,CAAC,KAAKD,WAAW,EAC7C;IACAtB,MAAM,CAACwB,YAAY,CAAC,OAAO,EAAEJ,UAAU,CAAC;IACxCpB,MAAM,CAACwB,YAAY,CAAC,QAAQ,EAAEF,WAAW,CAAC;EAC5C;EAEA,MAAMG,OAAO,GAAGzB,MAAM,CAAC0B,UAAU,CAAC,QAAQ,CAAE;EAC5C;EACA;EACA,OAAOC,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAAEI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC;AACtD;;AAEA;AACAX,MAAM,CAACY,QAAQ,GAAG;EAChBhC,gBAAgB;EAChBiC,uBAAuB,EAAEf,uBAAuB;EAChDnB;AACF,CAAC","ignoreList":[]}
|
package/lib/module/constants.js
CHANGED
|
@@ -26,9 +26,19 @@
|
|
|
26
26
|
// re-exports `./main` before `./constants`, and `./main` installs the native
|
|
27
27
|
// module synchronously, so the globals always exist by the time this runs.
|
|
28
28
|
|
|
29
|
-
export const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
export const
|
|
33
|
-
|
|
29
|
+
export const {
|
|
30
|
+
GPUBufferUsage
|
|
31
|
+
} = globalThis;
|
|
32
|
+
export const {
|
|
33
|
+
GPUTextureUsage
|
|
34
|
+
} = globalThis;
|
|
35
|
+
export const {
|
|
36
|
+
GPUShaderStage
|
|
37
|
+
} = globalThis;
|
|
38
|
+
export const {
|
|
39
|
+
GPUColorWrite
|
|
40
|
+
} = globalThis;
|
|
41
|
+
export const {
|
|
42
|
+
GPUMapMode
|
|
43
|
+
} = globalThis;
|
|
34
44
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GPUBufferUsage","globalThis","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,
|
|
1
|
+
{"version":3,"names":["GPUBufferUsage","globalThis","GPUTextureUsage","GPUShaderStage","GPUColorWrite","GPUMapMode"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAM;EAAEA;AAAe,CAAC,GAAGC,UAAU;AAE5C,OAAO,MAAM;EAAEC;AAAgB,CAAC,GAAGD,UAAU;AAE7C,OAAO,MAAM;EAAEE;AAAe,CAAC,GAAGF,UAAU;AAE5C,OAAO,MAAM;EAAEG;AAAc,CAAC,GAAGH,UAAU;AAE3C,OAAO,MAAM;EAAEI;AAAW,CAAC,GAAGJ,UAAU","ignoreList":[]}
|
package/lib/module/hooks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
2
2
|
export const warnIfNotHardwareAccelerated = adapter => {
|
|
3
3
|
// Check if adapter is a fallback adapter using the new GPUAdapterInfo API
|
|
4
4
|
// Note: isFallbackAdapter was moved from GPUAdapter to GPUAdapterInfo in Chrome 140
|
|
@@ -6,20 +6,6 @@ export const warnIfNotHardwareAccelerated = adapter => {
|
|
|
6
6
|
console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow. Some features may be unavailable.");
|
|
7
7
|
}
|
|
8
8
|
};
|
|
9
|
-
const DeviceContext = /*#__PURE__*/createContext(null);
|
|
10
|
-
export const GPUDeviceProvider = ({
|
|
11
|
-
children,
|
|
12
|
-
adapterOptions,
|
|
13
|
-
deviceDescriptor
|
|
14
|
-
}) => {
|
|
15
|
-
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
16
|
-
if (!state.device) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return /*#__PURE__*/React.createElement(DeviceContext.Provider, {
|
|
20
|
-
value: state
|
|
21
|
-
}, children);
|
|
22
|
-
};
|
|
23
9
|
export const useSurface = () => {
|
|
24
10
|
const ref = useRef(null);
|
|
25
11
|
const [surface, setSurface] = useState(null);
|
|
@@ -32,13 +18,6 @@ export const useSurface = () => {
|
|
|
32
18
|
surface
|
|
33
19
|
};
|
|
34
20
|
};
|
|
35
|
-
export const useMainDevice = () => {
|
|
36
|
-
const ctx = useContext(DeviceContext);
|
|
37
|
-
if (!ctx) {
|
|
38
|
-
throw new Error("No DeviceContext found.");
|
|
39
|
-
}
|
|
40
|
-
return ctx;
|
|
41
|
-
};
|
|
42
21
|
export const useCanvasRef = () => useRef(null);
|
|
43
22
|
export const useDevice = (adapterOptions, deviceDescriptor) => {
|
|
44
23
|
const [state, setState] = useState(null);
|
package/lib/module/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useEffect","useLayoutEffect","useRef","useState","warnIfNotHardwareAccelerated","adapter","info","isFallbackAdapter","console","warn","useSurface","ref","surface","setSurface","sur","current","getNativeSurface","useCanvasRef","useDevice","adapterOptions","deviceDescriptor","state","setState","navigator","gpu","requestAdapter","Error","device","requestDevice"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAIpE,OAAO,MAAMC,4BAA4B,GAAIC,OAAmB,IAAK;EACnE;EACA;EACA,IAAIA,OAAO,CAACC,IAAI,IAAID,OAAO,CAACC,IAAI,CAACC,iBAAiB,EAAE;IAClDC,OAAO,CAACC,IAAI,CACV,wIACF,CAAC;EACH;AACF,CAAC;AAOD,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,GAAG,GAAGT,MAAM,CAAY,IAAI,CAAC;EACnC,MAAM,CAACU,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAsB,IAAI,CAAC;EACjEF,eAAe,CAAC,MAAM;IACpB,MAAMa,GAAG,GAAGH,GAAG,CAACI,OAAO,CAAEC,gBAAgB,CAAC,CAAC;IAC3CH,UAAU,CAACC,GAAG,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EACN,OAAO;IAAEH,GAAG;IAAEC;EAAQ,CAAC;AACzB,CAAC;AAED,OAAO,MAAMK,YAAY,GAAGA,CAAA,KAAMf,MAAM,CAAY,IAAI,CAAC;AAEzD,OAAO,MAAMgB,SAAS,GAAGA,CACvBC,cAAyC,EACzCC,gBAAsC,KACnC;EACH,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,QAAQ,CAAqB,IAAI,CAAC;EAC5DH,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI,CAACqB,KAAK,EAAE;QACV,MAAMhB,OAAO,GAAG,MAAMkB,SAAS,CAACC,GAAG,CAACC,cAAc,CAACN,cAAc,CAAC;QAClE,IAAI,CAACd,OAAO,EAAE;UACZ,MAAM,IAAIqB,KAAK,CAAC,kCAAkC,CAAC;QACrD;QACAtB,4BAA4B,CAACC,OAAO,CAAC;QACrC,MAAMsB,MAAM,GAAG,MAAMtB,OAAO,CAACuB,aAAa,CAACR,gBAAgB,CAAC;QAC5D,IAAI,CAACO,MAAM,EAAE;UACX,MAAM,IAAID,KAAK,CAAC,iCAAiC,CAAC;QACpD;QACAJ,QAAQ,CAAC;UAAEjB,OAAO;UAAEsB;QAAO,CAAC,CAAC;QAC7B;MACF;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACR,cAAc,EAAEC,gBAAgB,EAAEC,KAAK,CAAC,CAAC;EAC7C,OAAO;IAAEhB,OAAO,EAAEgB,KAAK,EAAEhB,OAAO,IAAI,IAAI;IAAEsB,MAAM,EAAEN,KAAK,EAAEM,MAAM,IAAI;EAAK,CAAC;AAC3E,CAAC","ignoreList":[]}
|
package/lib/module/main/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "../Canvas";
|
|
|
4
4
|
export * from "../Offscreen";
|
|
5
5
|
export * from "../WebGPUViewNativeComponent";
|
|
6
6
|
export * from "../hooks";
|
|
7
|
+
export * from "../GPUDeviceProvider";
|
|
7
8
|
export { default as WebGPUModule } from "../NativeWebGPUModule";
|
|
8
9
|
const _installOk = WebGPUModule.install();
|
|
9
10
|
registerWebGPUForReanimated();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerWebGPUForReanimated","WebGPUModule","default","_installOk","install","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,aAAa;AACzD,OAAOC,YAAY,MAAM,uBAAuB;AAEhD,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;
|
|
1
|
+
{"version":3,"names":["registerWebGPUForReanimated","WebGPUModule","default","_installOk","install","RNWebGPU","navigator","gpu","userAgent","global","createImageBitmap","bind","console","warn"],"sourceRoot":"../../../src","sources":["main/index.tsx"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,aAAa;AACzD,OAAOC,YAAY,MAAM,uBAAuB;AAEhD,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;AACxB,cAAc,sBAAsB;AAEpC,SAASC,OAAO,IAAID,YAAY,QAAQ,uBAAuB;AAE/D,MAAME,UAAU,GAAGF,YAAY,CAACG,OAAO,CAAC,CAAC;AAEzCJ,2BAA2B,CAAC,CAAC;AAE7B,IAAI,OAAOK,QAAQ,KAAK,WAAW,EAAE;EACnC,IAAI,CAACC,SAAS,EAAE;IACd;IACAA,SAAS,GAAG;MACVC,GAAG,EAAEF,QAAQ,CAACE,GAAG;MACjBC,SAAS,EAAE;IACb,CAAC;EACH,CAAC,MAAM;IACLF,SAAS,CAACC,GAAG,GAAGF,QAAQ,CAACE,GAAG;IAC5B,IAAI,OAAOD,SAAS,CAACE,SAAS,KAAK,QAAQ,EAAE;MAC3C,IAAI;QACF;QACA;QACAF,SAAS,CAACE,SAAS,GAAG,cAAc;MACtC,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ;EACF;EACAC,MAAM,CAACC,iBAAiB,GACtBD,MAAM,CAACC,iBAAiB,IAAIL,QAAQ,CAACK,iBAAiB,CAACC,IAAI,CAACN,QAAQ,CAAC;AACzE,CAAC,MAAM;EACLO,OAAO,CAACC,IAAI,CACV,4CAA4CV,UAAU,uCACxD,CAAC;AACH","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ export * from "../Canvas";
|
|
|
3
3
|
export * from "../Offscreen";
|
|
4
4
|
export * from "../WebGPUViewNativeComponent";
|
|
5
5
|
export * from "../hooks";
|
|
6
|
+
export * from "../GPUDeviceProvider";
|
|
6
7
|
|
|
7
8
|
// We don't need to set all global properties on web, webgpu is already available globally
|
|
8
9
|
//# sourceMappingURL=index.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":"AAAA,OAAO,yBAAyB;AAEhC,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;;
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["main/index.web.tsx"],"mappings":"AAAA,OAAO,yBAAyB;AAEhC,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,UAAU;AACxB,cAAc,sBAAsB;;AAEpC","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const __esModule: boolean;
|
|
2
|
+
export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
|
|
3
|
+
children: any;
|
|
4
|
+
adapterOptions: any;
|
|
5
|
+
deviceDescriptor: any;
|
|
6
|
+
}): any;
|
|
7
|
+
export function useMainDevice(): any;
|
|
8
|
+
//# sourceMappingURL=GPUDeviceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GPUDeviceProvider.d.ts","sourceRoot":"","sources":["../../../commonjs/GPUDeviceProvider.js"],"names":[],"mappings":";AAUA;;;;QAYC;AAED,qCAMC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export const __esModule: boolean;
|
|
2
|
-
export
|
|
2
|
+
export const GPUBufferUsage: GPUBufferUsage;
|
|
3
|
+
export const GPUTextureUsage: GPUTextureUsage;
|
|
4
|
+
export const GPUShaderStage: GPUShaderStage;
|
|
5
|
+
export const GPUColorWrite: GPUColorWrite;
|
|
6
|
+
export const GPUMapMode: GPUMapMode;
|
|
3
7
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
export const __esModule: boolean;
|
|
2
2
|
export function warnIfNotHardwareAccelerated(adapter: any): void;
|
|
3
|
-
export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
|
|
4
|
-
children: any;
|
|
5
|
-
adapterOptions: any;
|
|
6
|
-
deviceDescriptor: any;
|
|
7
|
-
}): any;
|
|
8
3
|
export function useSurface(): {
|
|
9
|
-
ref:
|
|
10
|
-
surface:
|
|
4
|
+
ref: _react.MutableRefObject<null>;
|
|
5
|
+
surface: null;
|
|
11
6
|
};
|
|
12
|
-
export function
|
|
13
|
-
export function useCanvasRef(): any;
|
|
7
|
+
export function useCanvasRef(): _react.MutableRefObject<null>;
|
|
14
8
|
export function useDevice(adapterOptions: any, deviceDescriptor: any): {
|
|
15
9
|
adapter: any;
|
|
16
10
|
device: any;
|
|
17
11
|
};
|
|
12
|
+
import _react = require("react");
|
|
18
13
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../commonjs/hooks.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../commonjs/hooks.js"],"names":[],"mappings":";AAOA,iEAMC;AAED;;;EAWC;AAED,8DAAmD;AAEnD;;;EA0BC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
|
|
2
|
+
children: any;
|
|
3
|
+
adapterOptions: any;
|
|
4
|
+
deviceDescriptor: any;
|
|
5
|
+
}): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | null;
|
|
6
|
+
export function useMainDevice(): never;
|
|
7
|
+
import React from "react";
|
|
8
|
+
//# sourceMappingURL=GPUDeviceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GPUDeviceProvider.d.ts","sourceRoot":"","sources":["../../../module/GPUDeviceProvider.js"],"names":[],"mappings":"AAGO;;;;yGAYN;AACM,uCAMN;kBAtBgD,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../module/constants.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../module/constants.js"],"names":[],"mappings":""}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
export function warnIfNotHardwareAccelerated(adapter: any): void;
|
|
2
|
-
export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
|
|
3
|
-
children: any;
|
|
4
|
-
adapterOptions: any;
|
|
5
|
-
deviceDescriptor: any;
|
|
6
|
-
}): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | null;
|
|
7
2
|
export function useSurface(): {
|
|
8
|
-
ref:
|
|
3
|
+
ref: import("react").MutableRefObject<null>;
|
|
9
4
|
surface: null;
|
|
10
5
|
};
|
|
11
|
-
export function
|
|
12
|
-
export function useCanvasRef(): React.MutableRefObject<null>;
|
|
6
|
+
export function useCanvasRef(): import("react").MutableRefObject<null>;
|
|
13
7
|
export function useDevice(adapterOptions: any, deviceDescriptor: any): {
|
|
14
8
|
adapter: any;
|
|
15
9
|
device: any;
|
|
16
10
|
};
|
|
17
|
-
import React from "react";
|
|
18
11
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../module/hooks.js"],"names":[],"mappings":"AACO,iEAMN;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../module/hooks.js"],"names":[],"mappings":"AACO,iEAMN;AACM;;;EAWN;AACM,uEAAuC;AACvC;;;EA0BN"}
|
|
@@ -2,5 +2,6 @@ export * from "../Canvas";
|
|
|
2
2
|
export * from "../Offscreen";
|
|
3
3
|
export * from "../WebGPUViewNativeComponent";
|
|
4
4
|
export * from "../hooks";
|
|
5
|
+
export * from "../GPUDeviceProvider";
|
|
5
6
|
export { default as WebGPUModule } from "../NativeWebGPUModule";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -7,6 +7,11 @@ export interface NativeCanvas {
|
|
|
7
7
|
height: number;
|
|
8
8
|
clientWidth: number;
|
|
9
9
|
clientHeight: number;
|
|
10
|
+
addEventListener(type: string, listener: EventListener): void;
|
|
11
|
+
removeEventListener(type: string, listener: EventListener): void;
|
|
12
|
+
dispatchEvent(event: Event): void;
|
|
13
|
+
setPointerCapture(pointerId: number): void;
|
|
14
|
+
releasePointerCapture(pointerId: number): void;
|
|
10
15
|
}
|
|
11
16
|
export type RNCanvasContext = GPUCanvasContext & {
|
|
12
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAU9C,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;
|
|
1
|
+
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAU9C,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;IAGrB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACjE,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;CACtC;AAED,UAAU,WAAY,SAAQ,SAAS;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,GAAI,gCAAgC,WAAW,sBAuCjE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
interface DeviceContextValue {
|
|
4
|
+
device: GPUDevice | null;
|
|
5
|
+
adapter: GPUAdapter | null;
|
|
6
|
+
}
|
|
7
|
+
interface DeviceProviderProps {
|
|
8
|
+
children?: ReactNode | ReactNode[];
|
|
9
|
+
adapterOptions?: GPURequestAdapterOptions;
|
|
10
|
+
deviceDescriptor?: GPUDeviceDescriptor;
|
|
11
|
+
}
|
|
12
|
+
export declare const GPUDeviceProvider: ({ children, adapterOptions, deviceDescriptor, }: DeviceProviderProps) => React.JSX.Element | null;
|
|
13
|
+
export declare const useMainDevice: () => DeviceContextValue;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=GPUDeviceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GPUDeviceProvider.d.ts","sourceRoot":"","sources":["../../../src/GPUDeviceProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B;AAID,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IACnC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACxC;AAED,eAAO,MAAM,iBAAiB,GAAI,iDAI/B,mBAAmB,6BAQrB,CAAC;AAEF,eAAO,MAAM,aAAa,0BAMzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AA4BA,eAAO,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/constants.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAQ,cAAc,gBAAe,CAAC;AAE7C,eAAO,MAAQ,eAAe,iBAAe,CAAC;AAE9C,eAAO,MAAQ,cAAc,gBAAe,CAAC;AAE7C,eAAO,MAAQ,aAAa,eAAe,CAAC;AAE5C,eAAO,MAAQ,UAAU,YAAe,CAAC"}
|
|
@@ -1,27 +1,12 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { ReactNode } from "react";
|
|
3
1
|
import type { CanvasRef, NativeCanvas } from "./Canvas";
|
|
4
2
|
export declare const warnIfNotHardwareAccelerated: (adapter: GPUAdapter) => void;
|
|
5
|
-
interface DeviceContext {
|
|
6
|
-
device: GPUDevice | null;
|
|
7
|
-
adapter: GPUAdapter | null;
|
|
8
|
-
}
|
|
9
|
-
declare const DeviceContext: React.Context<DeviceContext | null>;
|
|
10
|
-
interface DeviceProviderProps {
|
|
11
|
-
children?: ReactNode | ReactNode[];
|
|
12
|
-
adapterOptions?: GPURequestAdapterOptions;
|
|
13
|
-
deviceDescriptor?: GPUDeviceDescriptor;
|
|
14
|
-
}
|
|
15
|
-
export declare const GPUDeviceProvider: ({ children, adapterOptions, deviceDescriptor, }: DeviceProviderProps) => React.JSX.Element | null;
|
|
16
3
|
export declare const useSurface: () => {
|
|
17
|
-
ref:
|
|
4
|
+
ref: import("react").RefObject<CanvasRef>;
|
|
18
5
|
surface: NativeCanvas | null;
|
|
19
6
|
};
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const useCanvasRef: () => React.RefObject<CanvasRef>;
|
|
7
|
+
export declare const useCanvasRef: () => import("react").RefObject<CanvasRef>;
|
|
22
8
|
export declare const useDevice: (adapterOptions?: GPURequestAdapterOptions, deviceDescriptor?: GPUDeviceDescriptor) => {
|
|
23
9
|
adapter: GPUAdapter | null;
|
|
24
10
|
device: GPUDevice | null;
|
|
25
11
|
};
|
|
26
|
-
export {};
|
|
27
12
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,4BAA4B,GAAI,SAAS,UAAU,SAQ/D,CAAC;AAOF,eAAO,MAAM,UAAU;;;CAQtB,CAAC;AAEF,eAAO,MAAM,YAAY,4CAAgC,CAAC;AAE1D,eAAO,MAAM,SAAS,GACpB,iBAAiB,wBAAwB,EACzC,mBAAmB,mBAAmB;;;CAqBvC,CAAC"}
|
|
@@ -2,5 +2,6 @@ export * from "../Canvas";
|
|
|
2
2
|
export * from "../Offscreen";
|
|
3
3
|
export * from "../WebGPUViewNativeComponent";
|
|
4
4
|
export * from "../hooks";
|
|
5
|
+
export * from "../GPUDeviceProvider";
|
|
5
6
|
export { default as WebGPUModule } from "../NativeWebGPUModule";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/main/index.tsx"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/main/index.tsx"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/main/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/main/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAEjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC"}
|
|
@@ -5,6 +5,11 @@ export interface NativeCanvas {
|
|
|
5
5
|
height: number;
|
|
6
6
|
clientWidth: number;
|
|
7
7
|
clientHeight: number;
|
|
8
|
+
addEventListener(type: string, listener: EventListener): void;
|
|
9
|
+
removeEventListener(type: string, listener: EventListener): void;
|
|
10
|
+
dispatchEvent(event: Event): void;
|
|
11
|
+
setPointerCapture(pointerId: number): void;
|
|
12
|
+
releasePointerCapture(pointerId: number): void;
|
|
8
13
|
}
|
|
9
14
|
export type RNCanvasContext = GPUCanvasContext & {
|
|
10
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,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;IAGrB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACjE,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;CACtC;AAKD,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,MAAM,CAAC;AAkBtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC;CACjB;AAKD,MAAM,WAAW,WAAW;IAC1B,eAAe,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC3C,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IAKvC,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED,MAAM,WAAW,gCAAgC;IAM/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,SAAS,GACT,wBAAwB,CAAC;AAE7B,MAAM,WAAW,wBAAwB;IAGvC,IAAI,EAAE,kBAAkB,CAAC;IAGzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,kBAAkB,CAAC;IAIzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,IAAI,wBAAwB,CAAC;CACpC;AAGD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,oCAAoC;IACnD,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAQD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAMD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,UAAU,CAAC,EAAE,oBAAoB,GAAG,UAAU,CAAC;IAM7D,WAAW,CACT,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE,mBAAmB,EAAE,GAC7B,IAAI,CAAC;IAGR,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,oCAAoC,CAAC;CACtE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-webgpu",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.16",
|
|
4
4
|
"description": "React Native WebGPU",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"lint": "eslint . --ext .ts,.tsx --max-warnings 0 --cache --fix",
|
|
28
28
|
"tsc": "tsc --noEmit",
|
|
29
29
|
"build": "bob build",
|
|
30
|
+
"release": "semantic-release",
|
|
30
31
|
"build-dawn": "tsx scripts/build/dawn.ts",
|
|
31
32
|
"clean-dawn": "rimraf ./libs && rimraf ../../externals/dawn/out",
|
|
32
33
|
"clang-format": "yarn clang-format-ios && yarn clang-format-android && yarn clang-format-common",
|
|
@@ -51,11 +52,17 @@
|
|
|
51
52
|
"bugs": {
|
|
52
53
|
"url": "https://github.com/wcandillon/react-native-webgpu/issues"
|
|
53
54
|
},
|
|
54
|
-
"homepage": "https://github.
|
|
55
|
+
"homepage": "https://wcandillon.github.io/react-native-webgpu/",
|
|
55
56
|
"publishConfig": {
|
|
56
|
-
"registry": "https://registry.npmjs.org/"
|
|
57
|
+
"registry": "https://registry.npmjs.org/",
|
|
58
|
+
"access": "public",
|
|
59
|
+
"provenance": true
|
|
57
60
|
},
|
|
58
61
|
"devDependencies": {
|
|
62
|
+
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
63
|
+
"@semantic-release/exec": "^7.0.3",
|
|
64
|
+
"@semantic-release/github": "^10.3.3",
|
|
65
|
+
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
59
66
|
"@types/jest": "^29.5.12",
|
|
60
67
|
"@types/lodash": "^4.17.5",
|
|
61
68
|
"@types/node": "^20.14.7",
|
|
@@ -87,6 +94,8 @@
|
|
|
87
94
|
"react-native-worklets": "0.8.3",
|
|
88
95
|
"rimraf": "^5.0.7",
|
|
89
96
|
"seedrandom": "^3.0.5",
|
|
97
|
+
"semantic-release": "^24.1.0",
|
|
98
|
+
"semantic-release-yarn": "^3.0.2",
|
|
90
99
|
"teapot": "^1.0.0",
|
|
91
100
|
"ts-morph": "^22.0.0",
|
|
92
101
|
"tsx": "^4.20.5",
|
package/src/Canvas.tsx
CHANGED
|
@@ -17,6 +17,13 @@ export interface NativeCanvas {
|
|
|
17
17
|
height: number;
|
|
18
18
|
clientWidth: number;
|
|
19
19
|
clientHeight: number;
|
|
20
|
+
// No-op DOM-compatibility stubs so web renderers (Three.js,
|
|
21
|
+
// react-three-fiber) can treat the canvas like an HTMLCanvasElement.
|
|
22
|
+
addEventListener(type: string, listener: EventListener): void;
|
|
23
|
+
removeEventListener(type: string, listener: EventListener): void;
|
|
24
|
+
dispatchEvent(event: Event): void;
|
|
25
|
+
setPointerCapture(pointerId: number): void;
|
|
26
|
+
releasePointerCapture(pointerId: number): void;
|
|
20
27
|
}
|
|
21
28
|
|
|
22
29
|
export type RNCanvasContext = GPUCanvasContext & {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React, { createContext, useContext } from "react";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
import { useDevice } from "./hooks";
|
|
5
|
+
|
|
6
|
+
interface DeviceContextValue {
|
|
7
|
+
device: GPUDevice | null;
|
|
8
|
+
adapter: GPUAdapter | null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const DeviceContext = createContext<DeviceContextValue | null>(null);
|
|
12
|
+
|
|
13
|
+
interface DeviceProviderProps {
|
|
14
|
+
children?: ReactNode | ReactNode[];
|
|
15
|
+
adapterOptions?: GPURequestAdapterOptions;
|
|
16
|
+
deviceDescriptor?: GPUDeviceDescriptor;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const GPUDeviceProvider = ({
|
|
20
|
+
children,
|
|
21
|
+
adapterOptions,
|
|
22
|
+
deviceDescriptor,
|
|
23
|
+
}: DeviceProviderProps) => {
|
|
24
|
+
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
25
|
+
if (!state.device) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return (
|
|
29
|
+
<DeviceContext.Provider value={state}>{children}</DeviceContext.Provider>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const useMainDevice = () => {
|
|
34
|
+
const ctx = useContext(DeviceContext);
|
|
35
|
+
if (!ctx) {
|
|
36
|
+
throw new Error("No DeviceContext found.");
|
|
37
|
+
}
|
|
38
|
+
return ctx;
|
|
39
|
+
};
|
|
@@ -15,6 +15,12 @@ function getNativeSurface(contextId: number) {
|
|
|
15
15
|
width,
|
|
16
16
|
clientHeight: height,
|
|
17
17
|
clientWidth: width,
|
|
18
|
+
// On web the real DOM canvas handles events; delegate to it.
|
|
19
|
+
addEventListener: canvas.addEventListener.bind(canvas),
|
|
20
|
+
removeEventListener: canvas.removeEventListener.bind(canvas),
|
|
21
|
+
dispatchEvent: canvas.dispatchEvent.bind(canvas),
|
|
22
|
+
setPointerCapture: canvas.setPointerCapture.bind(canvas),
|
|
23
|
+
releasePointerCapture: canvas.releasePointerCapture.bind(canvas),
|
|
18
24
|
};
|
|
19
25
|
}
|
|
20
26
|
|
package/src/constants.ts
CHANGED
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
// re-exports `./main` before `./constants`, and `./main` installs the native
|
|
27
27
|
// module synchronously, so the globals always exist by the time this runs.
|
|
28
28
|
|
|
29
|
-
export const GPUBufferUsage = globalThis
|
|
29
|
+
export const { GPUBufferUsage } = globalThis;
|
|
30
30
|
|
|
31
|
-
export const GPUTextureUsage = globalThis
|
|
31
|
+
export const { GPUTextureUsage } = globalThis;
|
|
32
32
|
|
|
33
|
-
export const GPUShaderStage = globalThis
|
|
33
|
+
export const { GPUShaderStage } = globalThis;
|
|
34
34
|
|
|
35
|
-
export const GPUColorWrite = globalThis
|
|
35
|
+
export const { GPUColorWrite } = globalThis;
|
|
36
36
|
|
|
37
|
-
export const GPUMapMode = globalThis
|
|
37
|
+
export const { GPUMapMode } = globalThis;
|
package/src/hooks.tsx
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
createContext,
|
|
3
|
-
useContext,
|
|
4
|
-
useEffect,
|
|
5
|
-
useLayoutEffect,
|
|
6
|
-
useRef,
|
|
7
|
-
useState,
|
|
8
|
-
} from "react";
|
|
9
|
-
import type { ReactNode } from "react";
|
|
1
|
+
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
10
2
|
|
|
11
3
|
import type { CanvasRef, NativeCanvas } from "./Canvas";
|
|
12
4
|
|
|
@@ -20,33 +12,11 @@ export const warnIfNotHardwareAccelerated = (adapter: GPUAdapter) => {
|
|
|
20
12
|
}
|
|
21
13
|
};
|
|
22
14
|
|
|
23
|
-
interface
|
|
15
|
+
interface DeviceState {
|
|
24
16
|
device: GPUDevice | null;
|
|
25
17
|
adapter: GPUAdapter | null;
|
|
26
18
|
}
|
|
27
19
|
|
|
28
|
-
const DeviceContext = createContext<DeviceContext | null>(null);
|
|
29
|
-
|
|
30
|
-
interface DeviceProviderProps {
|
|
31
|
-
children?: ReactNode | ReactNode[];
|
|
32
|
-
adapterOptions?: GPURequestAdapterOptions;
|
|
33
|
-
deviceDescriptor?: GPUDeviceDescriptor;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export const GPUDeviceProvider = ({
|
|
37
|
-
children,
|
|
38
|
-
adapterOptions,
|
|
39
|
-
deviceDescriptor,
|
|
40
|
-
}: DeviceProviderProps) => {
|
|
41
|
-
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
42
|
-
if (!state.device) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
return (
|
|
46
|
-
<DeviceContext.Provider value={state}>{children}</DeviceContext.Provider>
|
|
47
|
-
);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
20
|
export const useSurface = () => {
|
|
51
21
|
const ref = useRef<CanvasRef>(null);
|
|
52
22
|
const [surface, setSurface] = useState<NativeCanvas | null>(null);
|
|
@@ -57,21 +27,13 @@ export const useSurface = () => {
|
|
|
57
27
|
return { ref, surface };
|
|
58
28
|
};
|
|
59
29
|
|
|
60
|
-
export const useMainDevice = () => {
|
|
61
|
-
const ctx = useContext(DeviceContext);
|
|
62
|
-
if (!ctx) {
|
|
63
|
-
throw new Error("No DeviceContext found.");
|
|
64
|
-
}
|
|
65
|
-
return ctx;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
30
|
export const useCanvasRef = () => useRef<CanvasRef>(null);
|
|
69
31
|
|
|
70
32
|
export const useDevice = (
|
|
71
33
|
adapterOptions?: GPURequestAdapterOptions,
|
|
72
34
|
deviceDescriptor?: GPUDeviceDescriptor,
|
|
73
35
|
) => {
|
|
74
|
-
const [state, setState] = useState<
|
|
36
|
+
const [state, setState] = useState<DeviceState | null>(null);
|
|
75
37
|
useEffect(() => {
|
|
76
38
|
(async () => {
|
|
77
39
|
if (!state) {
|
package/src/main/index.tsx
CHANGED
package/src/main/index.web.tsx
CHANGED
package/src/types.ts
CHANGED
|
@@ -6,6 +6,13 @@ export interface NativeCanvas {
|
|
|
6
6
|
height: number;
|
|
7
7
|
clientWidth: number;
|
|
8
8
|
clientHeight: number;
|
|
9
|
+
// No-op DOM-compatibility stubs so web renderers (Three.js,
|
|
10
|
+
// react-three-fiber) can treat the canvas like an HTMLCanvasElement.
|
|
11
|
+
addEventListener(type: string, listener: EventListener): void;
|
|
12
|
+
removeEventListener(type: string, listener: EventListener): void;
|
|
13
|
+
dispatchEvent(event: Event): void;
|
|
14
|
+
setPointerCapture(pointerId: number): void;
|
|
15
|
+
releasePointerCapture(pointerId: number): void;
|
|
9
16
|
}
|
|
10
17
|
|
|
11
18
|
export type RNCanvasContext = GPUCanvasContext & {
|