react-native-wgpu 0.1.17 → 0.1.18
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/android/src/main/java/com/webgpu/SurfaceView2.java +79 -0
- package/android/src/main/java/com/webgpu/WebGPUView.java +46 -14
- package/android/src/main/java/com/webgpu/WebGPUViewManager.java +4 -3
- package/android/src/oldarch/com/webgpu/WebGPUViewManagerSpec.java +1 -1
- package/lib/commonjs/Canvas.js +4 -1
- package/lib/commonjs/Canvas.js.map +1 -1
- package/lib/module/Canvas.js +4 -1
- package/lib/module/Canvas.js.map +1 -1
- package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
- package/lib/typescript/src/Canvas.d.ts +1 -0
- package/lib/typescript/src/Canvas.d.ts.map +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Canvas.tsx +65 -51
- package/src/WebGPUViewNativeComponent.ts +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
package com.webgpu;
|
|
2
|
+
|
|
3
|
+
import android.annotation.SuppressLint;
|
|
4
|
+
import android.content.Context;
|
|
5
|
+
import android.graphics.PixelFormat;
|
|
6
|
+
import android.os.Build;
|
|
7
|
+
import android.view.Surface;
|
|
8
|
+
import android.view.SurfaceControl;
|
|
9
|
+
import android.view.SurfaceHolder;
|
|
10
|
+
import android.view.SurfaceView;
|
|
11
|
+
|
|
12
|
+
import androidx.annotation.NonNull;
|
|
13
|
+
import androidx.annotation.RequiresApi;
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@SuppressLint("ViewConstructor")
|
|
17
|
+
@RequiresApi(api = Build.VERSION_CODES.Q)
|
|
18
|
+
public class SurfaceView2 extends SurfaceView implements SurfaceHolder.Callback {
|
|
19
|
+
|
|
20
|
+
WebGPUAPI mApi;
|
|
21
|
+
SurfaceControl mSurfaceControl;
|
|
22
|
+
Surface mSurface;
|
|
23
|
+
|
|
24
|
+
public SurfaceView2(Context context, WebGPUAPI api) {
|
|
25
|
+
super(context);
|
|
26
|
+
mApi = api;
|
|
27
|
+
getHolder().addCallback(this);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Override
|
|
31
|
+
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
|
32
|
+
super.onLayout(changed, left, top, right, bottom);
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Override
|
|
37
|
+
protected void onDetachedFromWindow() {
|
|
38
|
+
super.onDetachedFromWindow();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Override
|
|
42
|
+
public void surfaceCreated(@NonNull SurfaceHolder holder) {
|
|
43
|
+
if (mSurfaceControl != null) {
|
|
44
|
+
SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
|
|
45
|
+
tr.setVisibility(mSurfaceControl, true);
|
|
46
|
+
tr.reparent(mSurfaceControl, getSurfaceControl());
|
|
47
|
+
tr.apply();
|
|
48
|
+
} else {
|
|
49
|
+
SurfaceControl.Builder scb = new SurfaceControl.Builder();
|
|
50
|
+
scb.setName("WebGPUView");
|
|
51
|
+
scb.setOpaque(false);
|
|
52
|
+
scb.setBufferSize(getWidth(), getHeight());
|
|
53
|
+
scb.setParent(getSurfaceControl());
|
|
54
|
+
scb.setFormat(PixelFormat.RGBA_8888);
|
|
55
|
+
mSurfaceControl = scb.build();
|
|
56
|
+
mSurface = new Surface(mSurfaceControl);
|
|
57
|
+
mApi.surfaceCreated(mSurface);
|
|
58
|
+
}
|
|
59
|
+
SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
|
|
60
|
+
tr.setVisibility(mSurfaceControl, true);
|
|
61
|
+
tr.apply();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@Override
|
|
65
|
+
public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) {
|
|
66
|
+
mApi.surfaceChanged(mSurface);
|
|
67
|
+
SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
|
|
68
|
+
tr.setVisibility(mSurfaceControl, true);
|
|
69
|
+
tr.setBufferSize(mSurfaceControl, getWidth(), getHeight());
|
|
70
|
+
tr.apply();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@Override
|
|
74
|
+
public void surfaceDestroyed(@NonNull SurfaceHolder holder) {
|
|
75
|
+
SurfaceControl.Transaction tr = new SurfaceControl.Transaction();
|
|
76
|
+
tr.reparent(mSurfaceControl, null);
|
|
77
|
+
tr.apply();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -5,13 +5,35 @@ import android.os.Build;
|
|
|
5
5
|
import android.view.Surface;
|
|
6
6
|
import android.view.View;
|
|
7
7
|
|
|
8
|
+
import androidx.annotation.NonNull;
|
|
9
|
+
import androidx.annotation.Nullable;
|
|
10
|
+
import androidx.annotation.StringDef;
|
|
11
|
+
|
|
8
12
|
import com.facebook.proguard.annotations.DoNotStrip;
|
|
9
13
|
import com.facebook.react.uimanager.ThemedReactContext;
|
|
10
14
|
import com.facebook.react.views.view.ReactViewGroup;
|
|
11
15
|
|
|
16
|
+
import java.lang.annotation.Retention;
|
|
17
|
+
import java.lang.annotation.RetentionPolicy;
|
|
18
|
+
|
|
12
19
|
public class WebGPUView extends ReactViewGroup implements WebGPUAPI {
|
|
20
|
+
|
|
21
|
+
public static final String SURFACE_VIEW = "SurfaceView";
|
|
22
|
+
public static final String TEXTURE_VIEW = "TextureView";
|
|
23
|
+
public static final String HARDWARE_BUFFER = "HardwareBuffer";
|
|
24
|
+
public static final String SURFACE_VIEW2 = "SurfaceView2";
|
|
25
|
+
|
|
26
|
+
@Retention(RetentionPolicy.SOURCE)
|
|
27
|
+
@StringDef({
|
|
28
|
+
SURFACE_VIEW,
|
|
29
|
+
TEXTURE_VIEW,
|
|
30
|
+
HARDWARE_BUFFER,
|
|
31
|
+
SURFACE_VIEW2
|
|
32
|
+
})
|
|
33
|
+
public @interface ViewType {}
|
|
34
|
+
|
|
13
35
|
private int mContextId;
|
|
14
|
-
private
|
|
36
|
+
private @ViewType String mName = null;
|
|
15
37
|
private WebGPUModule mModule;
|
|
16
38
|
private View mView;
|
|
17
39
|
|
|
@@ -29,21 +51,31 @@ public class WebGPUView extends ReactViewGroup implements WebGPUAPI {
|
|
|
29
51
|
mContextId = contextId;
|
|
30
52
|
}
|
|
31
53
|
|
|
32
|
-
public void
|
|
54
|
+
public void setView(@NonNull @ViewType String name) {
|
|
33
55
|
Context ctx = getContext();
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
56
|
+
if (mName == null || !mName.equals(name)) {
|
|
57
|
+
removeView(mView);
|
|
58
|
+
mName = name;
|
|
59
|
+
switch (name) {
|
|
60
|
+
case TEXTURE_VIEW -> mView = new WebGPUTextureView(ctx, this);
|
|
61
|
+
case HARDWARE_BUFFER -> {
|
|
62
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
|
63
|
+
mView = new WebGPUAHBView(ctx, this);
|
|
64
|
+
} else {
|
|
65
|
+
throw new RuntimeException("HardwareBuffer Canvas implementation is only available on API Level 29 and above");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
case SURFACE_VIEW2 -> {
|
|
69
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
|
70
|
+
mView = new SurfaceView2(ctx, this);
|
|
71
|
+
} else {
|
|
72
|
+
throw new RuntimeException("HardwareBuffer Canvas implementation is only available on API Level 29 and above");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
default -> mView = new WebGPUSurfaceView(ctx, this);
|
|
76
|
+
}
|
|
77
|
+
addView(mView);
|
|
45
78
|
}
|
|
46
|
-
addView(mView);
|
|
47
79
|
}
|
|
48
80
|
|
|
49
81
|
@Override
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.webgpu;
|
|
2
2
|
|
|
3
3
|
import androidx.annotation.NonNull;
|
|
4
|
+
import androidx.annotation.Nullable;
|
|
4
5
|
|
|
5
6
|
import com.facebook.react.module.annotations.ReactModule;
|
|
6
7
|
import com.facebook.react.uimanager.ThemedReactContext;
|
|
@@ -24,9 +25,9 @@ public class WebGPUViewManager extends WebGPUViewManagerSpec<WebGPUView> {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
@Override
|
|
27
|
-
@ReactProp(name = "
|
|
28
|
-
public void
|
|
29
|
-
view.
|
|
28
|
+
@ReactProp(name = "androidView")
|
|
29
|
+
public void setAndroidView(WebGPUView view, @Nullable String value) {
|
|
30
|
+
view.setView(value == null ? WebGPUView.SURFACE_VIEW : value);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
@Override
|
|
@@ -8,5 +8,5 @@ import com.facebook.react.uimanager.SimpleViewManager;
|
|
|
8
8
|
|
|
9
9
|
public abstract class WebGPUViewManagerSpec<T extends View> extends SimpleViewManager<T> {
|
|
10
10
|
public abstract void setContextId(T view, int contextId);
|
|
11
|
-
public abstract void
|
|
11
|
+
public abstract void setAndroidView(T view, @Nullable String name);
|
|
12
12
|
}
|
package/lib/commonjs/Canvas.js
CHANGED
|
@@ -56,6 +56,7 @@ const useSizePaper = _ref => {
|
|
|
56
56
|
const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
57
57
|
onLayout: _onLayout,
|
|
58
58
|
androidTransparency,
|
|
59
|
+
androidExperimental,
|
|
59
60
|
...props
|
|
60
61
|
}, ref) => {
|
|
61
62
|
const viewRef = (0, _react.useRef)(null);
|
|
@@ -106,7 +107,9 @@ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
106
107
|
flex: 1
|
|
107
108
|
},
|
|
108
109
|
contextId: contextId,
|
|
109
|
-
|
|
110
|
+
androidView:
|
|
111
|
+
// eslint-disable-next-line no-nested-ternary
|
|
112
|
+
androidExperimental ? androidTransparency ? "HardwareBuffer" : "SurfaceView2" : androidTransparency ? "TextureView" : "SurfaceView"
|
|
110
113
|
}));
|
|
111
114
|
});
|
|
112
115
|
//# sourceMappingURL=Canvas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_react","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CONTEXT_COUNTER","generateContextId","useSizeFabric","ref","size","setSize","useState","useLayoutEffect","current","Error","measureInWindow","_x","_y","width","height","onLayout","undefined","useSizePaper","_ref","useCallback","nativeEvent","layout","Canvas","exports","forwardRef","_onLayout","androidTransparency","props","viewRef","useRef","FABRIC","RNWebGPU","fabric","useSize","contextId","_","cb","useEffect","useImperativeHandle","getContextId","getNativeSurface","whenReady","callback","getContext","contextName","MakeWebGPUCanvasContext","React","createElement","View","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAWA,IAAAE,0BAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA2D,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAE3D,IAAIO,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AA4CA,MAAME,aAAa,GAAIC,GAAoB,IAAK;EAC9C,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAc,IAAI,CAAC;EACnD,IAAAC,sBAAe,EAAC,MAAM;IACpB,IAAI,CAACJ,GAAG,CAACK,OAAO,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,oBAAoB,CAAC;IACvC;IACAN,GAAG,CAACK,OAAO,CAACE,eAAe,CAAC,CAACC,EAAE,EAAEC,EAAE,EAAEC,KAAK,EAAEC,MAAM,KAAK;MACrDT,OAAO,CAAC;QAAEQ,KAAK;QAAEC;MAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;EACJ,CAAC,EAAE,CAACX,GAAG,CAAC,CAAC;EACT,OAAO;IAAEC,IAAI;IAAEW,QAAQ,EAAEC;EAAU,CAAC;AACtC,CAAC;AAED,MAAMC,YAAY,GAAIC,IAAqB,IAAK;EAC9C,MAAM,CAACd,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAc,IAAI,CAAC;EACnD,MAAMS,QAAQ,GAAG,IAAAI,kBAAW,EAC1B,CAAC;IACCC,WAAW,EAAE;MACXC,MAAM,EAAE;QAAER,KAAK;QAAEC;MAAO;IAC1B;EACF,CAAC,KAAK;IACJ,IAAIV,IAAI,KAAK,IAAI,EAAE;MACjBC,OAAO,CAAC;QAAEQ,KAAK;QAAEC;MAAO,CAAC,CAAC;IAC5B;EACF,CAAC,EACD,CAACV,IAAI,CACP,CAAC;EACD,OAAO;IAAEA,IAAI;IAAEW;EAAS,CAAC;AAC3B,CAAC;AAEM,MAAMO,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAG,IAAAE,iBAAU,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_react","_WebGPUViewNativeComponent","_interopRequireDefault","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CONTEXT_COUNTER","generateContextId","useSizeFabric","ref","size","setSize","useState","useLayoutEffect","current","Error","measureInWindow","_x","_y","width","height","onLayout","undefined","useSizePaper","_ref","useCallback","nativeEvent","layout","Canvas","exports","forwardRef","_onLayout","androidTransparency","androidExperimental","props","viewRef","useRef","FABRIC","RNWebGPU","fabric","useSize","contextId","_","cb","useEffect","useImperativeHandle","getContextId","getNativeSurface","whenReady","callback","getContext","contextName","MakeWebGPUCanvasContext","React","createElement","View","collapsable","style","flex","androidView"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/Canvas.js
CHANGED
|
@@ -49,6 +49,7 @@ const useSizePaper = _ref => {
|
|
|
49
49
|
export const Canvas = /*#__PURE__*/forwardRef(({
|
|
50
50
|
onLayout: _onLayout,
|
|
51
51
|
androidTransparency,
|
|
52
|
+
androidExperimental,
|
|
52
53
|
...props
|
|
53
54
|
}, ref) => {
|
|
54
55
|
const viewRef = useRef(null);
|
|
@@ -99,7 +100,9 @@ export const Canvas = /*#__PURE__*/forwardRef(({
|
|
|
99
100
|
flex: 1
|
|
100
101
|
},
|
|
101
102
|
contextId: contextId,
|
|
102
|
-
|
|
103
|
+
androidView:
|
|
104
|
+
// eslint-disable-next-line no-nested-ternary
|
|
105
|
+
androidExperimental ? androidTransparency ? "HardwareBuffer" : "SurfaceView2" : androidTransparency ? "TextureView" : "SurfaceView"
|
|
103
106
|
}));
|
|
104
107
|
});
|
|
105
108
|
//# sourceMappingURL=Canvas.js.map
|
package/lib/module/Canvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","forwardRef","useEffect","useImperativeHandle","useRef","useState","useLayoutEffect","useCallback","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","useSizeFabric","ref","size","setSize","current","Error","measureInWindow","_x","_y","width","height","onLayout","undefined","useSizePaper","_ref","nativeEvent","layout","Canvas","_onLayout","androidTransparency","props","viewRef","FABRIC","RNWebGPU","fabric","useSize","contextId","_","cb","getContextId","getNativeSurface","whenReady","callback","getContext","contextName","MakeWebGPUCanvasContext","React","createElement","_extends","collapsable","style","flex"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AACA,SAASA,IAAI,QAAQ,cAAc;AACnC,SACEC,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBC,MAAM,EACNC,QAAQ,EACRC,eAAe,EACfC,WAAW,QACN,OAAO;AAGd,OAAOC,gBAAgB,MAAM,6BAA6B;AAE1D,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AA4CA,MAAME,aAAa,GAAIC,GAAoB,IAAK;EAC9C,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGT,QAAQ,CAAc,IAAI,CAAC;EACnDC,eAAe,CAAC,MAAM;IACpB,IAAI,CAACM,GAAG,CAACG,OAAO,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,oBAAoB,CAAC;IACvC;IACAJ,GAAG,CAACG,OAAO,CAACE,eAAe,CAAC,CAACC,EAAE,EAAEC,EAAE,EAAEC,KAAK,EAAEC,MAAM,KAAK;MACrDP,OAAO,CAAC;QAAEM,KAAK;QAAEC;MAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,GAAG,CAAC,CAAC;EACT,OAAO;IAAEC,IAAI;IAAES,QAAQ,EAAEC;EAAU,CAAC;AACtC,CAAC;AAED,MAAMC,YAAY,GAAIC,IAAqB,IAAK;EAC9C,MAAM,CAACZ,IAAI,EAAEC,OAAO,CAAC,GAAGT,QAAQ,CAAc,IAAI,CAAC;EACnD,MAAMiB,QAAQ,GAAGf,WAAW,CAC1B,CAAC;IACCmB,WAAW,EAAE;MACXC,MAAM,EAAE;QAAEP,KAAK;QAAEC;MAAO;IAC1B;EACF,CAAC,KAAK;IACJ,IAAIR,IAAI,KAAK,IAAI,EAAE;MACjBC,OAAO,CAAC;QAAEM,KAAK;QAAEC;MAAO,CAAC,CAAC;IAC5B;EACF,CAAC,EACD,CAACR,IAAI,CACP,CAAC;EACD,OAAO;IAAEA,IAAI;IAAES;EAAS,CAAC;AAC3B,CAAC;AAED,OAAO,MAAMM,MAAM,gBAAG3B,UAAU,
|
|
1
|
+
{"version":3,"names":["View","forwardRef","useEffect","useImperativeHandle","useRef","useState","useLayoutEffect","useCallback","WebGPUNativeView","CONTEXT_COUNTER","generateContextId","useSizeFabric","ref","size","setSize","current","Error","measureInWindow","_x","_y","width","height","onLayout","undefined","useSizePaper","_ref","nativeEvent","layout","Canvas","_onLayout","androidTransparency","androidExperimental","props","viewRef","FABRIC","RNWebGPU","fabric","useSize","contextId","_","cb","getContextId","getNativeSurface","whenReady","callback","getContext","contextName","MakeWebGPUCanvasContext","React","createElement","_extends","collapsable","style","flex","androidView"],"sourceRoot":"../../src","sources":["Canvas.tsx"],"mappings":";AACA,SAASA,IAAI,QAAQ,cAAc;AACnC,SACEC,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBC,MAAM,EACNC,QAAQ,EACRC,eAAe,EACfC,WAAW,QACN,OAAO;AAGd,OAAOC,gBAAgB,MAAM,6BAA6B;AAE1D,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASC,iBAAiBA,CAAA,EAAG;EAC3B,OAAOD,eAAe,EAAE;AAC1B;AA4CA,MAAME,aAAa,GAAIC,GAAoB,IAAK;EAC9C,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGT,QAAQ,CAAc,IAAI,CAAC;EACnDC,eAAe,CAAC,MAAM;IACpB,IAAI,CAACM,GAAG,CAACG,OAAO,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,oBAAoB,CAAC;IACvC;IACAJ,GAAG,CAACG,OAAO,CAACE,eAAe,CAAC,CAACC,EAAE,EAAEC,EAAE,EAAEC,KAAK,EAAEC,MAAM,KAAK;MACrDP,OAAO,CAAC;QAAEM,KAAK;QAAEC;MAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,GAAG,CAAC,CAAC;EACT,OAAO;IAAEC,IAAI;IAAES,QAAQ,EAAEC;EAAU,CAAC;AACtC,CAAC;AAED,MAAMC,YAAY,GAAIC,IAAqB,IAAK;EAC9C,MAAM,CAACZ,IAAI,EAAEC,OAAO,CAAC,GAAGT,QAAQ,CAAc,IAAI,CAAC;EACnD,MAAMiB,QAAQ,GAAGf,WAAW,CAC1B,CAAC;IACCmB,WAAW,EAAE;MACXC,MAAM,EAAE;QAAEP,KAAK;QAAEC;MAAO;IAC1B;EACF,CAAC,KAAK;IACJ,IAAIR,IAAI,KAAK,IAAI,EAAE;MACjBC,OAAO,CAAC;QAAEM,KAAK;QAAEC;MAAO,CAAC,CAAC;IAC5B;EACF,CAAC,EACD,CAACR,IAAI,CACP,CAAC;EACD,OAAO;IAAEA,IAAI;IAAES;EAAS,CAAC;AAC3B,CAAC;AAED,OAAO,MAAMM,MAAM,gBAAG3B,UAAU,CAI9B,CACE;EAAEqB,QAAQ,EAAEO,SAAS;EAAEC,mBAAmB;EAAEC,mBAAmB;EAAE,GAAGC;AAAM,CAAC,EAC3EpB,GAAG,KACA;EACH,MAAMqB,OAAO,GAAG7B,MAAM,CAAC,IAAI,CAAC;EAC5B,MAAM8B,MAAM,GAAGC,QAAQ,CAACC,MAAM;EAC9B,MAAMC,OAAO,GAAGH,MAAM,GAAGvB,aAAa,GAAGa,YAAY;EACrD,MAAM,CAACc,SAAS,EAAEC,CAAC,CAAC,GAAGlC,QAAQ,CAAC,MAAMK,iBAAiB,CAAC,CAAC,CAAC;EAC1D,MAAM8B,EAAE,GAAGpC,MAAM,CAAa,CAAC;EAC/B,MAAM;IAAES,IAAI;IAAES;EAAS,CAAC,GAAGe,OAAO,CAACJ,OAAO,CAAC;EAC3C/B,SAAS,CAAC,MAAM;IACd,IAAIW,IAAI,IAAI2B,EAAE,CAACzB,OAAO,EAAE;MACtByB,EAAE,CAACzB,OAAO,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACF,IAAI,CAAC,CAAC;EACVV,mBAAmB,CAACS,GAAG,EAAE,OAAO;IAC9B6B,YAAY,EAAEA,CAAA,KAAMH,SAAS;IAC7BI,gBAAgB,EAAEA,CAAA,KAAM;MACtB,IAAI7B,IAAI,KAAK,IAAI,EAAE;QACjB,MAAM,IAAIG,KAAK,CAAC,2CAA2C,CAAC;MAC9D;MACA,OAAOmB,QAAQ,CAACO,gBAAgB,CAACJ,SAAS,CAAC;IAC7C,CAAC;IACDK,SAASA,CAACC,QAAoB,EAAE;MAC9B,IAAI/B,IAAI,KAAK,IAAI,EAAE;QACjB2B,EAAE,CAACzB,OAAO,GAAG6B,QAAQ;MACvB,CAAC,MAAM;QACLA,QAAQ,CAAC,CAAC;MACZ;IACF,CAAC;IACDC,UAAUA,CAACC,WAAqB,EAA0B;MACxD,IAAIA,WAAW,KAAK,QAAQ,EAAE;QAC5B,MAAM,IAAI9B,KAAK,CAAC,iCAAiC8B,WAAW,EAAE,CAAC;MACjE;MACA,IAAIjC,IAAI,KAAK,IAAI,EAAE;QACjB,MAAM,IAAIG,KAAK,CAAC,2CAA2C,CAAC;MAC9D;MACA,OAAOmB,QAAQ,CAACY,uBAAuB,CACrCT,SAAS,EACTzB,IAAI,CAACO,KAAK,EACVP,IAAI,CAACQ,MACP,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EACH,oBACE2B,KAAA,CAAAC,aAAA,CAACjD,IAAI,EAAAkD,QAAA;IAACC,WAAW,EAAE,KAAM;IAACvC,GAAG,EAAEqB,OAAQ;IAACX,QAAQ,EAAEA;EAAS,GAAKU,KAAK,gBACnEgB,KAAA,CAAAC,aAAA,CAACzC,gBAAgB;IACf4C,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IACnBf,SAAS,EAAEA,SAAU;IACrBgB,WAAW;IACT;IACAvB,mBAAmB,GACfD,mBAAmB,GACjB,gBAAgB,GAChB,cAAc,GAChBA,mBAAmB,GACjB,aAAa,GACb;EACP,CACF,CACG,CAAC;AAEX,CACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAgDA,
|
|
1
|
+
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAgDA,mGA0DG"}
|
|
@@ -28,6 +28,7 @@ export interface CanvasRef {
|
|
|
28
28
|
}
|
|
29
29
|
export declare const Canvas: import("react").ForwardRefExoticComponent<ViewProps & {
|
|
30
30
|
androidTransparency?: boolean;
|
|
31
|
+
androidExperimental?: boolean;
|
|
31
32
|
} & import("react").RefAttributes<CanvasRef>>;
|
|
32
33
|
export {};
|
|
33
34
|
//# sourceMappingURL=Canvas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,cAAc,CAAC;AAoBjE,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,QAAQ,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,OAAO,CAAC;QAChB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC;QACtD,uBAAuB,EAAE,CACvB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,KACX,eAAe,CAAC;QACrB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,GAAG,WAAW,KAAK,MAAM,CAAC;QACvE,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;KAC7C,CAAC;CACH;AAED,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC3C;AAqCD,eAAO,MAAM,MAAM;0BAEmB,OAAO;
|
|
1
|
+
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../src/Canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,cAAc,CAAC;AAoBjE,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,QAAQ,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC;QACT,MAAM,EAAE,OAAO,CAAC;QAChB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,CAAC;QACtD,uBAAuB,EAAE,CACvB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,KACX,eAAe,CAAC;QACrB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,GAAG,WAAW,KAAK,MAAM,CAAC;QACvE,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;KAC7C,CAAC;CACH;AAED,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,UAAU,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC;IAC1D,gBAAgB,EAAE,MAAM,YAAY,CAAC;IACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CAC3C;AAqCD,eAAO,MAAM,MAAM;0BAEmB,OAAO;0BAAwB,OAAO;6CAiE3E,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { ViewProps } from "react-native";
|
|
|
2
2
|
import type { Int32 } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
3
|
interface NativeProps extends ViewProps {
|
|
4
4
|
contextId?: Int32;
|
|
5
|
-
|
|
5
|
+
androidView?: string;
|
|
6
6
|
}
|
|
7
7
|
declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeProps>;
|
|
8
8
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGPUViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/WebGPUViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAEvE,UAAU,WAAY,SAAQ,SAAS;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"WebGPUViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/WebGPUViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAEvE,UAAU,WAAY,SAAQ,SAAS;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;AAGD,wBAAiE"}
|
package/package.json
CHANGED
package/src/Canvas.tsx
CHANGED
|
@@ -92,55 +92,69 @@ const useSizePaper = (_ref: RefObject<View>) => {
|
|
|
92
92
|
|
|
93
93
|
export const Canvas = forwardRef<
|
|
94
94
|
CanvasRef,
|
|
95
|
-
ViewProps & { androidTransparency?: boolean }
|
|
96
|
-
>(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
getNativeSurface: () => {
|
|
111
|
-
if (size === null) {
|
|
112
|
-
throw new Error("[WebGPU] Canvas size is not available yet");
|
|
113
|
-
}
|
|
114
|
-
return RNWebGPU.getNativeSurface(contextId);
|
|
115
|
-
},
|
|
116
|
-
whenReady(callback: () => void) {
|
|
117
|
-
if (size === null) {
|
|
118
|
-
cb.current = callback;
|
|
119
|
-
} else {
|
|
120
|
-
callback();
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
getContext(contextName: "webgpu"): RNCanvasContext | null {
|
|
124
|
-
if (contextName !== "webgpu") {
|
|
125
|
-
throw new Error(`[WebGPU] Unsupported context: ${contextName}`);
|
|
95
|
+
ViewProps & { androidTransparency?: boolean; androidExperimental?: boolean }
|
|
96
|
+
>(
|
|
97
|
+
(
|
|
98
|
+
{ onLayout: _onLayout, androidTransparency, androidExperimental, ...props },
|
|
99
|
+
ref,
|
|
100
|
+
) => {
|
|
101
|
+
const viewRef = useRef(null);
|
|
102
|
+
const FABRIC = RNWebGPU.fabric;
|
|
103
|
+
const useSize = FABRIC ? useSizeFabric : useSizePaper;
|
|
104
|
+
const [contextId, _] = useState(() => generateContextId());
|
|
105
|
+
const cb = useRef<() => void>();
|
|
106
|
+
const { size, onLayout } = useSize(viewRef);
|
|
107
|
+
useEffect(() => {
|
|
108
|
+
if (size && cb.current) {
|
|
109
|
+
cb.current();
|
|
126
110
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
111
|
+
}, [size]);
|
|
112
|
+
useImperativeHandle(ref, () => ({
|
|
113
|
+
getContextId: () => contextId,
|
|
114
|
+
getNativeSurface: () => {
|
|
115
|
+
if (size === null) {
|
|
116
|
+
throw new Error("[WebGPU] Canvas size is not available yet");
|
|
117
|
+
}
|
|
118
|
+
return RNWebGPU.getNativeSurface(contextId);
|
|
119
|
+
},
|
|
120
|
+
whenReady(callback: () => void) {
|
|
121
|
+
if (size === null) {
|
|
122
|
+
cb.current = callback;
|
|
123
|
+
} else {
|
|
124
|
+
callback();
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
getContext(contextName: "webgpu"): RNCanvasContext | null {
|
|
128
|
+
if (contextName !== "webgpu") {
|
|
129
|
+
throw new Error(`[WebGPU] Unsupported context: ${contextName}`);
|
|
130
|
+
}
|
|
131
|
+
if (size === null) {
|
|
132
|
+
throw new Error("[WebGPU] Canvas size is not available yet");
|
|
133
|
+
}
|
|
134
|
+
return RNWebGPU.MakeWebGPUCanvasContext(
|
|
135
|
+
contextId,
|
|
136
|
+
size.width,
|
|
137
|
+
size.height,
|
|
138
|
+
);
|
|
139
|
+
},
|
|
140
|
+
}));
|
|
141
|
+
return (
|
|
142
|
+
<View collapsable={false} ref={viewRef} onLayout={onLayout} {...props}>
|
|
143
|
+
<WebGPUNativeView
|
|
144
|
+
style={{ flex: 1 }}
|
|
145
|
+
contextId={contextId}
|
|
146
|
+
androidView={
|
|
147
|
+
// eslint-disable-next-line no-nested-ternary
|
|
148
|
+
androidExperimental
|
|
149
|
+
? androidTransparency
|
|
150
|
+
? "HardwareBuffer"
|
|
151
|
+
: "SurfaceView2"
|
|
152
|
+
: androidTransparency
|
|
153
|
+
? "TextureView"
|
|
154
|
+
: "SurfaceView"
|
|
155
|
+
}
|
|
156
|
+
/>
|
|
157
|
+
</View>
|
|
158
|
+
);
|
|
159
|
+
},
|
|
160
|
+
);
|