react-native-wgpu 0.1.17 → 0.1.19
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/WebGPUAHBView.java +41 -33
- package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +79 -0
- package/android/src/main/java/com/webgpu/WebGPUView.java +20 -15
- package/android/src/main/java/com/webgpu/WebGPUViewManager.java +3 -2
- package/android/src/oldarch/com/webgpu/WebGPUViewManagerSpec.java +1 -1
- package/lib/commonjs/Canvas.js +2 -2
- package/lib/commonjs/Canvas.js.map +1 -1
- package/lib/module/Canvas.js +2 -2
- package/lib/module/Canvas.js.map +1 -1
- package/lib/typescript/src/Canvas.d.ts +1 -1
- package/lib/typescript/src/Canvas.d.ts.map +1 -1
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts +2 -2
- package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Canvas.tsx +3 -3
- package/src/WebGPUViewNativeComponent.ts +2 -2
|
@@ -15,14 +15,12 @@ import android.view.View;
|
|
|
15
15
|
import androidx.annotation.NonNull;
|
|
16
16
|
import androidx.annotation.RequiresApi;
|
|
17
17
|
|
|
18
|
-
import java.util.LinkedList;
|
|
19
|
-
import java.util.Queue;
|
|
20
|
-
|
|
21
18
|
@SuppressLint("ViewConstructor")
|
|
22
19
|
@RequiresApi(api = Build.VERSION_CODES.Q)
|
|
23
|
-
public class WebGPUAHBView extends View {
|
|
20
|
+
public class WebGPUAHBView extends View implements ImageReader.OnImageAvailableListener {
|
|
21
|
+
|
|
22
|
+
private ImageReader mReader;
|
|
24
23
|
|
|
25
|
-
private final Queue<ImageReader> mImageReaders = new LinkedList<>();
|
|
26
24
|
private Bitmap mBitmap = null;
|
|
27
25
|
|
|
28
26
|
private final Matrix matrix = new Matrix();
|
|
@@ -34,48 +32,58 @@ public class WebGPUAHBView extends View {
|
|
|
34
32
|
mApi = api;
|
|
35
33
|
}
|
|
36
34
|
|
|
35
|
+
private ImageReader createReader() {
|
|
36
|
+
ImageReader reader = ImageReader.newInstance(getWidth(), getHeight(), PixelFormat.RGBA_8888, 2, HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE |
|
|
37
|
+
HardwareBuffer.USAGE_GPU_COLOR_OUTPUT);
|
|
38
|
+
reader.setOnImageAvailableListener(this, null);
|
|
39
|
+
return reader;
|
|
40
|
+
}
|
|
41
|
+
|
|
37
42
|
@Override
|
|
38
43
|
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
|
39
44
|
super.onLayout(changed, left, top, right, bottom);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (mImageReaders.isEmpty()) {
|
|
44
|
-
mApi.surfaceCreated(imageReader.getSurface());
|
|
45
|
+
if (mReader == null) {
|
|
46
|
+
mReader = createReader();
|
|
47
|
+
mApi.surfaceCreated(mReader.getSurface());
|
|
45
48
|
} else {
|
|
46
|
-
mApi.surfaceChanged(
|
|
49
|
+
mApi.surfaceChanged(mReader.getSurface());
|
|
47
50
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
ImageReader ir;
|
|
62
|
-
while((ir = mImageReaders.poll()) != null) {
|
|
63
|
-
ir.close();
|
|
64
|
-
}
|
|
65
|
-
mImageReaders.add(imageReader);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@Override
|
|
54
|
+
public void onImageAvailable(ImageReader reader) {
|
|
55
|
+
try (Image image = reader.acquireLatestImage()) {
|
|
56
|
+
if (image != null) {
|
|
57
|
+
HardwareBuffer hb = image.getHardwareBuffer();
|
|
58
|
+
if (hb != null) {
|
|
59
|
+
Bitmap bitmap = Bitmap.wrapHardwareBuffer(hb, null);
|
|
60
|
+
if (bitmap != null) {
|
|
61
|
+
mBitmap = bitmap;
|
|
62
|
+
hb.close();
|
|
63
|
+
invalidate();
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
66
|
}
|
|
71
|
-
}
|
|
72
|
-
mImageReaders.add(imageReader);
|
|
67
|
+
}
|
|
73
68
|
}
|
|
74
69
|
|
|
75
70
|
@Override
|
|
76
71
|
protected void onDraw(@NonNull Canvas canvas) {
|
|
77
72
|
super.onDraw(canvas);
|
|
78
73
|
if (mBitmap != null) {
|
|
74
|
+
float viewWidth = getWidth();
|
|
75
|
+
float viewHeight = getHeight();
|
|
76
|
+
float bitmapWidth = mBitmap.getWidth();
|
|
77
|
+
float bitmapHeight = mBitmap.getHeight();
|
|
78
|
+
|
|
79
|
+
// Calculate the scale factors
|
|
80
|
+
float scaleX = viewWidth / bitmapWidth;
|
|
81
|
+
float scaleY = viewHeight / bitmapHeight;
|
|
82
|
+
|
|
83
|
+
// Reset the matrix and apply scaling
|
|
84
|
+
matrix.reset();
|
|
85
|
+
matrix.setScale(scaleX, scaleY);
|
|
86
|
+
|
|
79
87
|
canvas.drawBitmap(mBitmap, matrix, null);
|
|
80
88
|
}
|
|
81
89
|
}
|
|
@@ -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 WebGPUSurfaceViewWithSC extends SurfaceView implements SurfaceHolder.Callback {
|
|
19
|
+
|
|
20
|
+
WebGPUAPI mApi;
|
|
21
|
+
SurfaceControl mSurfaceControl;
|
|
22
|
+
Surface mSurface;
|
|
23
|
+
|
|
24
|
+
public WebGPUSurfaceViewWithSC(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(true);
|
|
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
|
+
}
|
|
@@ -10,10 +10,12 @@ import com.facebook.react.uimanager.ThemedReactContext;
|
|
|
10
10
|
import com.facebook.react.views.view.ReactViewGroup;
|
|
11
11
|
|
|
12
12
|
public class WebGPUView extends ReactViewGroup implements WebGPUAPI {
|
|
13
|
+
|
|
14
|
+
|
|
13
15
|
private int mContextId;
|
|
14
|
-
private boolean mTransparent;
|
|
16
|
+
private boolean mTransparent = false;
|
|
15
17
|
private WebGPUModule mModule;
|
|
16
|
-
private View mView;
|
|
18
|
+
private View mView = null;
|
|
17
19
|
|
|
18
20
|
WebGPUView(Context context) {
|
|
19
21
|
super(context);
|
|
@@ -29,21 +31,24 @@ public class WebGPUView extends ReactViewGroup implements WebGPUAPI {
|
|
|
29
31
|
mContextId = contextId;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
public void setTransparent(boolean
|
|
34
|
+
public void setTransparent(boolean value) {
|
|
33
35
|
Context ctx = getContext();
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
if (value != mTransparent || mView == null) {
|
|
37
|
+
if (mView != null) {
|
|
38
|
+
removeView(mView);
|
|
39
|
+
}
|
|
40
|
+
mTransparent = value;
|
|
41
|
+
if (mTransparent) {
|
|
42
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
|
43
|
+
mView = new WebGPUAHBView(ctx, this);
|
|
44
|
+
} else {
|
|
45
|
+
mView = new WebGPUTextureView(ctx, this);
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
mView = new WebGPUSurfaceView(ctx, this);
|
|
49
|
+
}
|
|
50
|
+
addView(mView);
|
|
45
51
|
}
|
|
46
|
-
addView(mView);
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
@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,8 +25,8 @@ public class WebGPUViewManager extends WebGPUViewManagerSpec<WebGPUView> {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
@Override
|
|
27
|
-
@ReactProp(name = "
|
|
28
|
-
public void
|
|
28
|
+
@ReactProp(name = "transparent")
|
|
29
|
+
public void setTransparent(WebGPUView view, boolean value) {
|
|
29
30
|
view.setTransparent(value);
|
|
30
31
|
}
|
|
31
32
|
|
|
@@ -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 setTransparent(T view, boolean transparency);
|
|
12
12
|
}
|
package/lib/commonjs/Canvas.js
CHANGED
|
@@ -55,7 +55,7 @@ const useSizePaper = _ref => {
|
|
|
55
55
|
};
|
|
56
56
|
const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
57
57
|
onLayout: _onLayout,
|
|
58
|
-
|
|
58
|
+
transparent,
|
|
59
59
|
...props
|
|
60
60
|
}, ref) => {
|
|
61
61
|
const viewRef = (0, _react.useRef)(null);
|
|
@@ -106,7 +106,7 @@ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
106
106
|
flex: 1
|
|
107
107
|
},
|
|
108
108
|
contextId: contextId,
|
|
109
|
-
|
|
109
|
+
transparent: !!transparent
|
|
110
110
|
}));
|
|
111
111
|
});
|
|
112
112
|
//# 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","
|
|
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","transparent","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":"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","ignoreList":[]}
|
package/lib/module/Canvas.js
CHANGED
|
@@ -48,7 +48,7 @@ const useSizePaper = _ref => {
|
|
|
48
48
|
};
|
|
49
49
|
export const Canvas = /*#__PURE__*/forwardRef(({
|
|
50
50
|
onLayout: _onLayout,
|
|
51
|
-
|
|
51
|
+
transparent,
|
|
52
52
|
...props
|
|
53
53
|
}, ref) => {
|
|
54
54
|
const viewRef = useRef(null);
|
|
@@ -99,7 +99,7 @@ export const Canvas = /*#__PURE__*/forwardRef(({
|
|
|
99
99
|
flex: 1
|
|
100
100
|
},
|
|
101
101
|
contextId: contextId,
|
|
102
|
-
|
|
102
|
+
transparent: !!transparent
|
|
103
103
|
}));
|
|
104
104
|
});
|
|
105
105
|
//# 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","
|
|
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","transparent","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":"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","ignoreList":[]}
|
|
@@ -27,7 +27,7 @@ export interface CanvasRef {
|
|
|
27
27
|
whenReady: (callback: () => void) => void;
|
|
28
28
|
}
|
|
29
29
|
export declare const Canvas: import("react").ForwardRefExoticComponent<ViewProps & {
|
|
30
|
-
|
|
30
|
+
transparent?: boolean;
|
|
31
31
|
} & import("react").RefAttributes<CanvasRef>>;
|
|
32
32
|
export {};
|
|
33
33
|
//# 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;
|
|
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;kBAEW,OAAO;6CAmDnC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ViewProps } from "react-native";
|
|
2
2
|
import type { Int32 } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
3
|
interface NativeProps extends ViewProps {
|
|
4
|
-
contextId
|
|
5
|
-
|
|
4
|
+
contextId: Int32;
|
|
5
|
+
transparent: boolean;
|
|
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,
|
|
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,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;;AAGD,wBAAiE"}
|
package/package.json
CHANGED
package/src/Canvas.tsx
CHANGED
|
@@ -92,8 +92,8 @@ const useSizePaper = (_ref: RefObject<View>) => {
|
|
|
92
92
|
|
|
93
93
|
export const Canvas = forwardRef<
|
|
94
94
|
CanvasRef,
|
|
95
|
-
ViewProps & {
|
|
96
|
-
>(({ onLayout: _onLayout,
|
|
95
|
+
ViewProps & { transparent?: boolean }
|
|
96
|
+
>(({ onLayout: _onLayout, transparent, ...props }, ref) => {
|
|
97
97
|
const viewRef = useRef(null);
|
|
98
98
|
const FABRIC = RNWebGPU.fabric;
|
|
99
99
|
const useSize = FABRIC ? useSizeFabric : useSizePaper;
|
|
@@ -139,7 +139,7 @@ export const Canvas = forwardRef<
|
|
|
139
139
|
<WebGPUNativeView
|
|
140
140
|
style={{ flex: 1 }}
|
|
141
141
|
contextId={contextId}
|
|
142
|
-
|
|
142
|
+
transparent={!!transparent}
|
|
143
143
|
/>
|
|
144
144
|
</View>
|
|
145
145
|
);
|
|
@@ -3,8 +3,8 @@ import type { ViewProps } from "react-native";
|
|
|
3
3
|
import type { Int32 } from "react-native/Libraries/Types/CodegenTypes";
|
|
4
4
|
|
|
5
5
|
interface NativeProps extends ViewProps {
|
|
6
|
-
contextId
|
|
7
|
-
|
|
6
|
+
contextId: Int32;
|
|
7
|
+
transparent: boolean;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
// eslint-disable-next-line import/no-default-export
|