react-native-wgpu 0.1.11 → 0.1.13
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/{ios/IOSPlatformContext.h → apple/ApplePlatformContext.h} +4 -4
- package/{ios/IOSPlatformContext.mm → apple/ApplePlatformContext.mm} +24 -6
- package/{ios → apple}/MetalView.h +3 -0
- package/apple/MetalView.mm +58 -0
- package/{ios → apple}/WebGPUModule.mm +2 -2
- package/{ios → apple}/WebGPUView.h +0 -3
- package/apple/WebGPUView.mm +68 -0
- package/cpp/rnwgpu/api/Convertors.h +0 -9
- package/cpp/rnwgpu/api/GPUCanvasContext.cpp +6 -5
- package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +7 -0
- package/cpp/webgpu/webgpu.h +4182 -5
- package/cpp/webgpu/webgpu_cpp.h +9009 -5
- package/lib/commonjs/hooks.js +61 -1
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/commonjs/index.js +0 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/hooks.js +57 -1
- package/lib/module/hooks.js.map +1 -1
- package/lib/module/index.js +0 -5
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/hooks.d.ts +11 -0
- 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/index.d.ts.map +1 -1
- package/lib/typescript/lib/module/hooks.d.ts +11 -0
- package/lib/typescript/lib/module/hooks.d.ts.map +1 -1
- package/lib/typescript/lib/module/index.d.ts +0 -1
- package/lib/typescript/lib/module/index.d.ts.map +1 -1
- package/lib/typescript/src/__tests__/Alpha.spec.d.ts +2 -0
- package/lib/typescript/src/__tests__/Alpha.spec.d.ts.map +1 -0
- package/lib/typescript/src/hooks.d.ts +18 -0
- package/lib/typescript/src/hooks.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +0 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/libs/apple/arm64_iphoneos/libwebgpu_dawn.a +0 -0
- package/libs/apple/arm64_iphonesimulator/libwebgpu_dawn.a +0 -0
- package/libs/apple/arm64_xros/libwebgpu_dawn.a +0 -0
- package/libs/apple/arm64_xrsimulator/libwebgpu_dawn.a +0 -0
- package/libs/apple/iphonesimulator/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +8 -8
- package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/xros-arm64/libwebgpu_dawn.a +0 -0
- package/libs/apple/libwebgpu_dawn.xcframework/xros-arm64-simulator/libwebgpu_dawn.a +0 -0
- package/libs/apple/universal_macosx/libwebgpu_dawn.a +0 -0
- package/libs/apple/x86_64_iphonesimulator/libwebgpu_dawn.a +0 -0
- package/package.json +3 -3
- package/react-native-wgpu.podspec +1 -1
- package/src/__tests__/Alpha.spec.ts +28 -0
- package/src/__tests__/snapshots/semi-opaque-cyan.png +0 -0
- package/src/hooks.tsx +125 -0
- package/src/index.tsx +0 -8
- package/cpp/dawn/dawn_proc_table.h +0 -308
- package/cpp/dawn/webgpu.h +0 -4210
- package/cpp/dawn/webgpu_cpp.h +0 -9037
- package/cpp/dawn/webgpu_cpp_print.h +0 -2466
- package/cpp/dawn/wire/client/webgpu.h +0 -339
- package/cpp/dawn/wire/client/webgpu_cpp.h +0 -9177
- package/ios/MetalView.mm +0 -40
- package/ios/SurfaceUtils.h +0 -15
- package/ios/SurfaceUtils.mm +0 -34
- package/ios/WebGPUView.mm +0 -86
- package/ios/WebGPUViewComponentDescriptor.h +0 -61
- package/src/hooks.ts +0 -53
- /package/{ios → apple}/WebGPUModule.h +0 -0
- /package/{ios → apple}/WebGPUViewManager.mm +0 -0
package/lib/commonjs/hooks.js
CHANGED
|
@@ -3,8 +3,29 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.useSurface = exports.useGPUContext = exports.useCanvasEffect = void 0;
|
|
6
|
+
exports.warnIfNotHardwareAccelerated = exports.useSurface = exports.useMainDevice = exports.useGPUContext = exports.useDevice = exports.useCanvasEffect = exports.GPUDeviceProvider = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
+
const warnIfNotHardwareAccelerated = adapter => {
|
|
9
|
+
if (adapter.info.architecture === "swiftshader") {
|
|
10
|
+
console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow.");
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
exports.warnIfNotHardwareAccelerated = warnIfNotHardwareAccelerated;
|
|
14
|
+
const DeviceContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
15
|
+
const GPUDeviceProvider = ({
|
|
16
|
+
children,
|
|
17
|
+
adapterOptions,
|
|
18
|
+
deviceDescriptor
|
|
19
|
+
}) => {
|
|
20
|
+
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
21
|
+
if (!state.device) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return /*#__PURE__*/React.createElement(DeviceContext.Provider, {
|
|
25
|
+
value: state
|
|
26
|
+
}, children);
|
|
27
|
+
};
|
|
28
|
+
exports.GPUDeviceProvider = GPUDeviceProvider;
|
|
8
29
|
const useSurface = () => {
|
|
9
30
|
const [surface, setSurface] = (0, _react.useState)(null);
|
|
10
31
|
const ref = useCanvasEffect(() => {
|
|
@@ -17,6 +38,42 @@ const useSurface = () => {
|
|
|
17
38
|
};
|
|
18
39
|
};
|
|
19
40
|
exports.useSurface = useSurface;
|
|
41
|
+
const useMainDevice = () => {
|
|
42
|
+
const ctx = (0, _react.useContext)(DeviceContext);
|
|
43
|
+
if (!ctx) {
|
|
44
|
+
throw new Error("No DeviceContext found.");
|
|
45
|
+
}
|
|
46
|
+
return ctx;
|
|
47
|
+
};
|
|
48
|
+
exports.useMainDevice = useMainDevice;
|
|
49
|
+
const useDevice = (adapterOptions, deviceDescriptor) => {
|
|
50
|
+
const [state, setState] = (0, _react.useState)(null);
|
|
51
|
+
(0, _react.useEffect)(() => {
|
|
52
|
+
(async () => {
|
|
53
|
+
if (!state) {
|
|
54
|
+
const adapter = await navigator.gpu.requestAdapter(adapterOptions);
|
|
55
|
+
if (!adapter) {
|
|
56
|
+
throw new Error("No appropriate GPUAdapter found.");
|
|
57
|
+
}
|
|
58
|
+
warnIfNotHardwareAccelerated(adapter);
|
|
59
|
+
const device = await adapter.requestDevice(deviceDescriptor);
|
|
60
|
+
if (!device) {
|
|
61
|
+
throw new Error("No appropriate GPUDevice found.");
|
|
62
|
+
}
|
|
63
|
+
setState({
|
|
64
|
+
adapter,
|
|
65
|
+
device
|
|
66
|
+
});
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
})();
|
|
70
|
+
}, [adapterOptions, deviceDescriptor, state]);
|
|
71
|
+
return {
|
|
72
|
+
adapter: state?.adapter ?? null,
|
|
73
|
+
device: state?.device ?? null
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
exports.useDevice = useDevice;
|
|
20
77
|
const useGPUContext = () => {
|
|
21
78
|
const [context, setContext] = (0, _react.useState)(null);
|
|
22
79
|
const ref = useCanvasEffect(() => {
|
|
@@ -33,6 +90,9 @@ const useCanvasEffect = effect => {
|
|
|
33
90
|
const unsub = (0, _react.useRef)(null);
|
|
34
91
|
const ref = (0, _react.useRef)(null);
|
|
35
92
|
(0, _react.useEffect)(() => {
|
|
93
|
+
if (!ref.current || !ref.current.whenReady) {
|
|
94
|
+
throw new Error("The reference is not assigned to a WebGPU Canvas");
|
|
95
|
+
}
|
|
36
96
|
ref.current.whenReady(async () => {
|
|
37
97
|
const sub = effect();
|
|
38
98
|
if (sub) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","useSurface","surface","setSurface","useState","ref","useCanvasEffect","sur","current","getNativeSurface","
|
|
1
|
+
{"version":3,"names":["_react","require","warnIfNotHardwareAccelerated","adapter","info","architecture","console","warn","exports","DeviceContext","createContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","React","createElement","Provider","value","useSurface","surface","setSurface","useState","ref","useCanvasEffect","sur","current","getNativeSurface","useMainDevice","ctx","useContext","Error","setState","useEffect","navigator","gpu","requestAdapter","requestDevice","useGPUContext","context","setContext","getContext","effect","unsub","useRef","whenReady","sub","Promise","then"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
|
-
warnIfNotHardwareAccelerated: true,
|
|
8
7
|
WebGPUModule: true
|
|
9
8
|
};
|
|
10
9
|
Object.defineProperty(exports, "WebGPUModule", {
|
|
@@ -13,7 +12,6 @@ Object.defineProperty(exports, "WebGPUModule", {
|
|
|
13
12
|
return _NativeWebGPUModule.default;
|
|
14
13
|
}
|
|
15
14
|
});
|
|
16
|
-
exports.warnIfNotHardwareAccelerated = void 0;
|
|
17
15
|
var _NativeWebGPUModule = _interopRequireDefault(require("./NativeWebGPUModule"));
|
|
18
16
|
var _Canvas = require("./Canvas");
|
|
19
17
|
Object.keys(_Canvas).forEach(function (key) {
|
|
@@ -66,12 +64,6 @@ Object.keys(_hooks).forEach(function (key) {
|
|
|
66
64
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
67
65
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
68
66
|
|
|
69
|
-
const warnIfNotHardwareAccelerated = adapter => {
|
|
70
|
-
if (adapter.info.architecture === "swiftshader") {
|
|
71
|
-
console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow.");
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
exports.warnIfNotHardwareAccelerated = warnIfNotHardwareAccelerated;
|
|
75
67
|
const GPU = {};
|
|
76
68
|
GPU[Symbol.hasInstance] = function (instance) {
|
|
77
69
|
return "__brand" in instance && instance.__brand === "GPU";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_NativeWebGPUModule","_interopRequireDefault","require","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","e","__esModule","default","
|
|
1
|
+
{"version":3,"names":["_NativeWebGPUModule","_interopRequireDefault","require","_Canvas","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Offscreen","_WebGPUViewNativeComponent","_hooks","e","__esModule","default","GPU","Symbol","hasInstance","instance","__brand","GPUAdapter","GPUAdapterInfo","GPUBindGroup","GPUBindGroupLayout","GPUBuffer","GPUCanvasContext","GPUCommandBuffer","GPUCommandEncoder","GPUCompilationInfo","GPUCompilationMessage","GPUComputePassEncoder","GPUComputePipeline","GPUDevice","GPUDeviceLostInfo","GPUError","GPUExternalTexture","GPUPipelineLayout","GPUQuerySet","GPUQueue","GPURenderBundle","GPURenderBundleEncoder","GPURenderPassEncoder","GPURenderPipeline","GPUSampler","GPUShaderModule","GPUTexture","GPUTextureView","global","WebGPUNativeModule","install","navigator","gpu","RNWebGPU","userAgent","createImageBitmap","params","Promise","resolve"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/hooks.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from "react";
|
|
1
|
+
import { createContext, useContext, useEffect, useRef, useState } from "react";
|
|
2
|
+
export const warnIfNotHardwareAccelerated = adapter => {
|
|
3
|
+
if (adapter.info.architecture === "swiftshader") {
|
|
4
|
+
console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow.");
|
|
5
|
+
}
|
|
6
|
+
};
|
|
7
|
+
const DeviceContext = /*#__PURE__*/createContext(null);
|
|
8
|
+
export const GPUDeviceProvider = ({
|
|
9
|
+
children,
|
|
10
|
+
adapterOptions,
|
|
11
|
+
deviceDescriptor
|
|
12
|
+
}) => {
|
|
13
|
+
const state = useDevice(adapterOptions, deviceDescriptor);
|
|
14
|
+
if (!state.device) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return /*#__PURE__*/React.createElement(DeviceContext.Provider, {
|
|
18
|
+
value: state
|
|
19
|
+
}, children);
|
|
20
|
+
};
|
|
2
21
|
export const useSurface = () => {
|
|
3
22
|
const [surface, setSurface] = useState(null);
|
|
4
23
|
const ref = useCanvasEffect(() => {
|
|
@@ -10,6 +29,40 @@ export const useSurface = () => {
|
|
|
10
29
|
surface
|
|
11
30
|
};
|
|
12
31
|
};
|
|
32
|
+
export const useMainDevice = () => {
|
|
33
|
+
const ctx = useContext(DeviceContext);
|
|
34
|
+
if (!ctx) {
|
|
35
|
+
throw new Error("No DeviceContext found.");
|
|
36
|
+
}
|
|
37
|
+
return ctx;
|
|
38
|
+
};
|
|
39
|
+
export const useDevice = (adapterOptions, deviceDescriptor) => {
|
|
40
|
+
const [state, setState] = useState(null);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
(async () => {
|
|
43
|
+
if (!state) {
|
|
44
|
+
const adapter = await navigator.gpu.requestAdapter(adapterOptions);
|
|
45
|
+
if (!adapter) {
|
|
46
|
+
throw new Error("No appropriate GPUAdapter found.");
|
|
47
|
+
}
|
|
48
|
+
warnIfNotHardwareAccelerated(adapter);
|
|
49
|
+
const device = await adapter.requestDevice(deviceDescriptor);
|
|
50
|
+
if (!device) {
|
|
51
|
+
throw new Error("No appropriate GPUDevice found.");
|
|
52
|
+
}
|
|
53
|
+
setState({
|
|
54
|
+
adapter,
|
|
55
|
+
device
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
})();
|
|
60
|
+
}, [adapterOptions, deviceDescriptor, state]);
|
|
61
|
+
return {
|
|
62
|
+
adapter: state?.adapter ?? null,
|
|
63
|
+
device: state?.device ?? null
|
|
64
|
+
};
|
|
65
|
+
};
|
|
13
66
|
export const useGPUContext = () => {
|
|
14
67
|
const [context, setContext] = useState(null);
|
|
15
68
|
const ref = useCanvasEffect(() => {
|
|
@@ -25,6 +78,9 @@ export const useCanvasEffect = effect => {
|
|
|
25
78
|
const unsub = useRef(null);
|
|
26
79
|
const ref = useRef(null);
|
|
27
80
|
useEffect(() => {
|
|
81
|
+
if (!ref.current || !ref.current.whenReady) {
|
|
82
|
+
throw new Error("The reference is not assigned to a WebGPU Canvas");
|
|
83
|
+
}
|
|
28
84
|
ref.current.whenReady(async () => {
|
|
29
85
|
const sub = effect();
|
|
30
86
|
if (sub) {
|
package/lib/module/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","useSurface","surface","setSurface","ref","useCanvasEffect","sur","current","getNativeSurface","useGPUContext","context","setContext","
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useEffect","useRef","useState","warnIfNotHardwareAccelerated","adapter","info","architecture","console","warn","DeviceContext","GPUDeviceProvider","children","adapterOptions","deviceDescriptor","state","useDevice","device","React","createElement","Provider","value","useSurface","surface","setSurface","ref","useCanvasEffect","sur","current","getNativeSurface","useMainDevice","ctx","Error","setState","navigator","gpu","requestAdapter","requestDevice","useGPUContext","context","setContext","getContext","effect","unsub","whenReady","sub","Promise","then"],"sourceRoot":"../../src","sources":["hooks.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -5,11 +5,6 @@ export * from "./Offscreen";
|
|
|
5
5
|
export * from "./WebGPUViewNativeComponent";
|
|
6
6
|
export * from "./hooks";
|
|
7
7
|
export { default as WebGPUModule } from "./NativeWebGPUModule";
|
|
8
|
-
export const warnIfNotHardwareAccelerated = adapter => {
|
|
9
|
-
if (adapter.info.architecture === "swiftshader") {
|
|
10
|
-
console.warn("GPUAdapter is not hardware accelerated. This is common on Android emulators. Rendering will be slow.");
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
8
|
const GPU = {};
|
|
14
9
|
GPU[Symbol.hasInstance] = function (instance) {
|
|
15
10
|
return "__brand" in instance && instance.__brand === "GPU";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebGPUNativeModule","default","WebGPUModule","
|
|
1
|
+
{"version":3,"names":["WebGPUNativeModule","default","WebGPUModule","GPU","Symbol","hasInstance","instance","__brand","GPUAdapter","GPUAdapterInfo","GPUBindGroup","GPUBindGroupLayout","GPUBuffer","GPUCanvasContext","GPUCommandBuffer","GPUCommandEncoder","GPUCompilationInfo","GPUCompilationMessage","GPUComputePassEncoder","GPUComputePipeline","GPUDevice","GPUDeviceLostInfo","GPUError","GPUExternalTexture","GPUPipelineLayout","GPUQuerySet","GPUQueue","GPURenderBundle","GPURenderBundleEncoder","GPURenderPassEncoder","GPURenderPipeline","GPUSampler","GPUShaderModule","GPUTexture","GPUTextureView","global","install","navigator","gpu","RNWebGPU","userAgent","createImageBitmap","params","Promise","resolve"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
export const __esModule: boolean;
|
|
2
|
+
export function warnIfNotHardwareAccelerated(adapter: any): void;
|
|
3
|
+
export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
|
|
4
|
+
children: any;
|
|
5
|
+
adapterOptions: any;
|
|
6
|
+
deviceDescriptor: any;
|
|
7
|
+
}): _react.DetailedReactHTMLElement<_react.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | null;
|
|
2
8
|
export function useSurface(): {
|
|
3
9
|
ref: _react.MutableRefObject<null>;
|
|
4
10
|
surface: null;
|
|
5
11
|
};
|
|
12
|
+
export function useMainDevice(): never;
|
|
13
|
+
export function useDevice(adapterOptions: any, deviceDescriptor: any): {
|
|
14
|
+
adapter: any;
|
|
15
|
+
device: any;
|
|
16
|
+
};
|
|
6
17
|
export function useGPUContext(): {
|
|
7
18
|
ref: _react.MutableRefObject<null>;
|
|
8
19
|
context: null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../commonjs/hooks.js"],"names":[],"mappings":";AAOA;;;EAUC;AAED;;;EAUC;AAED,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../commonjs/hooks.js"],"names":[],"mappings":";AAOA,iEAIC;AAGD;;;;2GAYC;AAED;;;EAUC;AAED,uCAMC;AAED;;;EA0BC;AAED;;;EAUC;AAED,4EAyBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../commonjs/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../commonjs/index.js"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
export function warnIfNotHardwareAccelerated(adapter: any): void;
|
|
2
|
+
export function GPUDeviceProvider({ children, adapterOptions, deviceDescriptor }: {
|
|
3
|
+
children: any;
|
|
4
|
+
adapterOptions: any;
|
|
5
|
+
deviceDescriptor: any;
|
|
6
|
+
}): import("react").DetailedReactHTMLElement<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | null;
|
|
1
7
|
export function useSurface(): {
|
|
2
8
|
ref: import("react").MutableRefObject<null>;
|
|
3
9
|
surface: null;
|
|
4
10
|
};
|
|
11
|
+
export function useMainDevice(): never;
|
|
12
|
+
export function useDevice(adapterOptions: any, deviceDescriptor: any): {
|
|
13
|
+
adapter: any;
|
|
14
|
+
device: any;
|
|
15
|
+
};
|
|
5
16
|
export function useGPUContext(): {
|
|
6
17
|
ref: import("react").MutableRefObject<null>;
|
|
7
18
|
context: null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../module/hooks.js"],"names":[],"mappings":"AACO;;;EAUN;AACM;;;EAUN;AACM,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../module/hooks.js"],"names":[],"mappings":"AACO,iEAIN;AAEM;;;;6HAYN;AACM;;;EAUN;AACM,uCAMN;AACM;;;EA0BN;AACM;;;EAUN;AACM,qFAyBN"}
|
|
@@ -3,5 +3,4 @@ export * from "./Offscreen";
|
|
|
3
3
|
export * from "./WebGPUViewNativeComponent";
|
|
4
4
|
export * from "./hooks";
|
|
5
5
|
export { default as WebGPUModule } from "./NativeWebGPUModule";
|
|
6
|
-
export function warnIfNotHardwareAccelerated(adapter: any): void;
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../module/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../module/index.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alpha.spec.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/Alpha.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +1,27 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
1
2
|
import type { RNCanvasContext, CanvasRef, NativeCanvas } from "./Canvas";
|
|
2
3
|
type Unsubscribe = () => void;
|
|
4
|
+
export declare const warnIfNotHardwareAccelerated: (adapter: GPUAdapter) => void;
|
|
5
|
+
interface DeviceContext {
|
|
6
|
+
device: GPUDevice | null;
|
|
7
|
+
adapter: GPUAdapter | null;
|
|
8
|
+
}
|
|
9
|
+
declare const DeviceContext: import("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) => import("react").JSX.Element | null;
|
|
3
16
|
export declare const useSurface: () => {
|
|
4
17
|
ref: import("react").RefObject<CanvasRef>;
|
|
5
18
|
surface: NativeCanvas | null;
|
|
6
19
|
};
|
|
20
|
+
export declare const useMainDevice: () => DeviceContext;
|
|
21
|
+
export declare const useDevice: (adapterOptions?: GPURequestAdapterOptions, deviceDescriptor?: GPUDeviceDescriptor) => {
|
|
22
|
+
adapter: GPUAdapter | null;
|
|
23
|
+
device: GPUDevice | null;
|
|
24
|
+
};
|
|
7
25
|
export declare const useGPUContext: () => {
|
|
8
26
|
ref: import("react").RefObject<CanvasRef>;
|
|
9
27
|
context: RNCanvasContext | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/hooks.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEzE,KAAK,WAAW,GAAG,MAAM,IAAI,CAAC;AAE9B,eAAO,MAAM,4BAA4B,YAAa,UAAU,SAM/D,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B;AAED,QAAA,MAAM,aAAa,+CAA4C,CAAC;AAEhE,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,oDAI3B,mBAAmB,uCAQrB,CAAC;AAEF,eAAO,MAAM,UAAU;;;CAOtB,CAAC;AAEF,eAAO,MAAM,aAAa,qBAMzB,CAAC;AAEF,eAAO,MAAM,SAAS,oBACH,wBAAwB,qBACtB,mBAAmB;;;CAqBvC,CAAC;AAEF,eAAO,MAAM,aAAa;;;CAOzB,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,MACJ,IAAI,GACJ,WAAW,GACX,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,yCA0BlB,CAAC"}
|
|
@@ -3,5 +3,4 @@ export * from "./Offscreen";
|
|
|
3
3
|
export * from "./WebGPUViewNativeComponent";
|
|
4
4
|
export * from "./hooks";
|
|
5
5
|
export { default as WebGPUModule } from "./NativeWebGPUModule";
|
|
6
|
-
export declare const warnIfNotHardwareAccelerated: (adapter: GPUAdapter) => void;
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAGA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAGA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<key>BinaryPath</key>
|
|
9
9
|
<string>libwebgpu_dawn.a</string>
|
|
10
10
|
<key>LibraryIdentifier</key>
|
|
11
|
-
<string>xros-arm64</string>
|
|
11
|
+
<string>xros-arm64-simulator</string>
|
|
12
12
|
<key>LibraryPath</key>
|
|
13
13
|
<string>libwebgpu_dawn.a</string>
|
|
14
14
|
<key>SupportedArchitectures</key>
|
|
@@ -17,22 +17,23 @@
|
|
|
17
17
|
</array>
|
|
18
18
|
<key>SupportedPlatform</key>
|
|
19
19
|
<string>xros</string>
|
|
20
|
+
<key>SupportedPlatformVariant</key>
|
|
21
|
+
<string>simulator</string>
|
|
20
22
|
</dict>
|
|
21
23
|
<dict>
|
|
22
24
|
<key>BinaryPath</key>
|
|
23
25
|
<string>libwebgpu_dawn.a</string>
|
|
24
26
|
<key>LibraryIdentifier</key>
|
|
25
|
-
<string>
|
|
27
|
+
<string>macos-arm64_x86_64</string>
|
|
26
28
|
<key>LibraryPath</key>
|
|
27
29
|
<string>libwebgpu_dawn.a</string>
|
|
28
30
|
<key>SupportedArchitectures</key>
|
|
29
31
|
<array>
|
|
30
32
|
<string>arm64</string>
|
|
33
|
+
<string>x86_64</string>
|
|
31
34
|
</array>
|
|
32
35
|
<key>SupportedPlatform</key>
|
|
33
|
-
<string>
|
|
34
|
-
<key>SupportedPlatformVariant</key>
|
|
35
|
-
<string>simulator</string>
|
|
36
|
+
<string>macos</string>
|
|
36
37
|
</dict>
|
|
37
38
|
<dict>
|
|
38
39
|
<key>BinaryPath</key>
|
|
@@ -69,16 +70,15 @@
|
|
|
69
70
|
<key>BinaryPath</key>
|
|
70
71
|
<string>libwebgpu_dawn.a</string>
|
|
71
72
|
<key>LibraryIdentifier</key>
|
|
72
|
-
<string>
|
|
73
|
+
<string>xros-arm64</string>
|
|
73
74
|
<key>LibraryPath</key>
|
|
74
75
|
<string>libwebgpu_dawn.a</string>
|
|
75
76
|
<key>SupportedArchitectures</key>
|
|
76
77
|
<array>
|
|
77
78
|
<string>arm64</string>
|
|
78
|
-
<string>x86_64</string>
|
|
79
79
|
</array>
|
|
80
80
|
<key>SupportedPlatform</key>
|
|
81
|
-
<string>
|
|
81
|
+
<string>xros</string>
|
|
82
82
|
</dict>
|
|
83
83
|
</array>
|
|
84
84
|
<key>CFBundlePackageType</key>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-wgpu",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "React Native WebGPU",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"android/cpp/**",
|
|
16
16
|
"android/src/**",
|
|
17
17
|
"cpp/**/*.{h,cpp}",
|
|
18
|
-
"
|
|
18
|
+
"apple/**",
|
|
19
19
|
"libs/**",
|
|
20
20
|
"*.podspec"
|
|
21
21
|
],
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"build-dawn": "ts-node scripts/build/dawn.ts",
|
|
29
29
|
"clean-dawn": "rimraf ./libs && rimraf ../../externals/dawn/out",
|
|
30
30
|
"clang-format": "yarn clang-format-ios && yarn clang-format-android && yarn clang-format-common",
|
|
31
|
-
"clang-format-ios": "find
|
|
31
|
+
"clang-format-ios": "find apple/ -iname \"*.h\" -o -iname \"*.mm\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
32
32
|
"clang-format-android": "find android/cpp/ -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
33
33
|
"clang-format-common": "find cpp/rnwgpu -iname \"*.h\" -o -iname \"*.m\" -o -iname \"*.cpp\" | xargs clang-format -i",
|
|
34
34
|
"cpplint": "cpplint --linelength=230 --filter=-legal/copyright,-whitespace/indent,-whitespace/comments,-whitespace/ending_newline,-build/include_order,-runtime/references,-readability/todo,-whitespace/blank_line,-whitespace/todo,-runtime/int,-build/c++11,-whitespace/parens --exclude=example --exclude=android/.cxx --exclude=cpp/webgpu --exclude=cpp/dawn --exclude=ios --exclude=android/build --exclude=node_modules --recursive .",
|
|
@@ -15,7 +15,7 @@ Pod::Spec.new do |s|
|
|
|
15
15
|
s.source = { :git => "https://github.com/wcandillon/react-native-webgpu.git", :tag => "#{s.version}" }
|
|
16
16
|
|
|
17
17
|
s.source_files = [
|
|
18
|
-
"
|
|
18
|
+
"apple/**/*.{h,c,cc,cpp,m,mm,swift}",
|
|
19
19
|
"cpp/**/*.{h,cpp}"
|
|
20
20
|
]
|
|
21
21
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { checkImage, client, encodeImage } from "./setup";
|
|
2
|
+
|
|
3
|
+
describe("Alpha", () => {
|
|
4
|
+
it("Premultiplied Color", async () => {
|
|
5
|
+
const result = await client.eval(({ device, ctx, canvas }) => {
|
|
6
|
+
const commandEncoder = device.createCommandEncoder();
|
|
7
|
+
const textureView = ctx.getCurrentTexture().createView();
|
|
8
|
+
const alpha = 0.5;
|
|
9
|
+
const renderPassDescriptor: GPURenderPassDescriptor = {
|
|
10
|
+
colorAttachments: [
|
|
11
|
+
{
|
|
12
|
+
view: textureView,
|
|
13
|
+
clearValue: [0.3 * alpha, 0.6 * alpha, 1 * alpha, alpha],
|
|
14
|
+
loadOp: "clear",
|
|
15
|
+
storeOp: "store",
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
|
|
21
|
+
passEncoder.end();
|
|
22
|
+
device.queue.submit([commandEncoder.finish()]);
|
|
23
|
+
return canvas.getImageData();
|
|
24
|
+
});
|
|
25
|
+
const image = encodeImage(result);
|
|
26
|
+
checkImage(image, "snapshots/semi-opaque-cyan.png");
|
|
27
|
+
});
|
|
28
|
+
});
|
|
Binary file
|