react-native-wgpu 0.1.18 → 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.
@@ -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
- long usage = HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE |
41
- HardwareBuffer.USAGE_GPU_COLOR_OUTPUT;
42
- ImageReader imageReader = ImageReader.newInstance(getWidth(), getHeight(), PixelFormat.RGBA_8888, 2, usage);
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(imageReader.getSurface());
49
+ mApi.surfaceChanged(mReader.getSurface());
47
50
  }
48
- imageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
49
- @Override
50
- public void onImageAvailable(ImageReader reader) {
51
- try (Image image = reader.acquireLatestImage()) {
52
- if (image != null) {
53
- HardwareBuffer hb = image.getHardwareBuffer();
54
- if (hb != null) {
55
- Bitmap bitmap = Bitmap.wrapHardwareBuffer(hb, null);
56
- if (bitmap != null) {
57
- mBitmap = bitmap;
58
- hb.close();
59
- invalidate();
60
- ImageReader imageReader = mImageReaders.poll();
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
- }, null);
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
  }
@@ -15,13 +15,13 @@ import androidx.annotation.RequiresApi;
15
15
 
16
16
  @SuppressLint("ViewConstructor")
17
17
  @RequiresApi(api = Build.VERSION_CODES.Q)
18
- public class SurfaceView2 extends SurfaceView implements SurfaceHolder.Callback {
18
+ public class WebGPUSurfaceViewWithSC extends SurfaceView implements SurfaceHolder.Callback {
19
19
 
20
20
  WebGPUAPI mApi;
21
21
  SurfaceControl mSurfaceControl;
22
22
  Surface mSurface;
23
23
 
24
- public SurfaceView2(Context context, WebGPUAPI api) {
24
+ public WebGPUSurfaceViewWithSC(Context context, WebGPUAPI api) {
25
25
  super(context);
26
26
  mApi = api;
27
27
  getHolder().addCallback(this);
@@ -48,7 +48,7 @@ public class SurfaceView2 extends SurfaceView implements SurfaceHolder.Callback
48
48
  } else {
49
49
  SurfaceControl.Builder scb = new SurfaceControl.Builder();
50
50
  scb.setName("WebGPUView");
51
- scb.setOpaque(false);
51
+ scb.setOpaque(true);
52
52
  scb.setBufferSize(getWidth(), getHeight());
53
53
  scb.setParent(getSurfaceControl());
54
54
  scb.setFormat(PixelFormat.RGBA_8888);
@@ -5,37 +5,17 @@ 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
-
12
8
  import com.facebook.proguard.annotations.DoNotStrip;
13
9
  import com.facebook.react.uimanager.ThemedReactContext;
14
10
  import com.facebook.react.views.view.ReactViewGroup;
15
11
 
16
- import java.lang.annotation.Retention;
17
- import java.lang.annotation.RetentionPolicy;
18
-
19
12
  public class WebGPUView extends ReactViewGroup implements WebGPUAPI {
20
13
 
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
14
 
35
15
  private int mContextId;
36
- private @ViewType String mName = null;
16
+ private boolean mTransparent = false;
37
17
  private WebGPUModule mModule;
38
- private View mView;
18
+ private View mView = null;
39
19
 
40
20
  WebGPUView(Context context) {
41
21
  super(context);
@@ -51,28 +31,21 @@ public class WebGPUView extends ReactViewGroup implements WebGPUAPI {
51
31
  mContextId = contextId;
52
32
  }
53
33
 
54
- public void setView(@NonNull @ViewType String name) {
34
+ public void setTransparent(boolean value) {
55
35
  Context ctx = getContext();
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
- }
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);
74
46
  }
75
- default -> mView = new WebGPUSurfaceView(ctx, this);
47
+ } else {
48
+ mView = new WebGPUSurfaceView(ctx, this);
76
49
  }
77
50
  addView(mView);
78
51
  }
@@ -25,9 +25,9 @@ public class WebGPUViewManager extends WebGPUViewManagerSpec<WebGPUView> {
25
25
  }
26
26
 
27
27
  @Override
28
- @ReactProp(name = "androidView")
29
- public void setAndroidView(WebGPUView view, @Nullable String value) {
30
- view.setView(value == null ? WebGPUView.SURFACE_VIEW : value);
28
+ @ReactProp(name = "transparent")
29
+ public void setTransparent(WebGPUView view, boolean value) {
30
+ view.setTransparent(value);
31
31
  }
32
32
 
33
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 setAndroidView(T view, @Nullable String name);
11
+ public abstract void setTransparent(T view, boolean transparency);
12
12
  }
@@ -55,8 +55,7 @@ const useSizePaper = _ref => {
55
55
  };
56
56
  const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
57
57
  onLayout: _onLayout,
58
- androidTransparency,
59
- androidExperimental,
58
+ transparent,
60
59
  ...props
61
60
  }, ref) => {
62
61
  const viewRef = (0, _react.useRef)(null);
@@ -107,9 +106,7 @@ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
107
106
  flex: 1
108
107
  },
109
108
  contextId: contextId,
110
- androidView:
111
- // eslint-disable-next-line no-nested-ternary
112
- androidExperimental ? androidTransparency ? "HardwareBuffer" : "SurfaceView2" : androidTransparency ? "TextureView" : "SurfaceView"
109
+ transparent: !!transparent
113
110
  }));
114
111
  });
115
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","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":[]}
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":[]}
@@ -48,8 +48,7 @@ const useSizePaper = _ref => {
48
48
  };
49
49
  export const Canvas = /*#__PURE__*/forwardRef(({
50
50
  onLayout: _onLayout,
51
- androidTransparency,
52
- androidExperimental,
51
+ transparent,
53
52
  ...props
54
53
  }, ref) => {
55
54
  const viewRef = useRef(null);
@@ -100,9 +99,7 @@ export const Canvas = /*#__PURE__*/forwardRef(({
100
99
  flex: 1
101
100
  },
102
101
  contextId: contextId,
103
- androidView:
104
- // eslint-disable-next-line no-nested-ternary
105
- androidExperimental ? androidTransparency ? "HardwareBuffer" : "SurfaceView2" : androidTransparency ? "TextureView" : "SurfaceView"
102
+ transparent: !!transparent
106
103
  }));
107
104
  });
108
105
  //# sourceMappingURL=Canvas.js.map
@@ -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","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":"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","ignoreList":[]}
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":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAgDA,mGA0DG"}
1
+ {"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../../module/Canvas.js"],"names":[],"mappings":"AAgDA,mGAuDG"}
@@ -27,8 +27,7 @@ export interface CanvasRef {
27
27
  whenReady: (callback: () => void) => void;
28
28
  }
29
29
  export declare const Canvas: import("react").ForwardRefExoticComponent<ViewProps & {
30
- androidTransparency?: boolean;
31
- androidExperimental?: boolean;
30
+ transparent?: boolean;
32
31
  } & import("react").RefAttributes<CanvasRef>>;
33
32
  export {};
34
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;0BAEmB,OAAO;0BAAwB,OAAO;6CAiE3E,CAAC"}
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?: Int32;
5
- androidView?: string;
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,CAAC,EAAE,KAAK,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;AAGD,wBAAiE"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-wgpu",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "description": "React Native WebGPU",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/Canvas.tsx CHANGED
@@ -92,69 +92,55 @@ const useSizePaper = (_ref: RefObject<View>) => {
92
92
 
93
93
  export const Canvas = forwardRef<
94
94
  CanvasRef,
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();
95
+ ViewProps & { transparent?: boolean }
96
+ >(({ onLayout: _onLayout, transparent, ...props }, ref) => {
97
+ const viewRef = useRef(null);
98
+ const FABRIC = RNWebGPU.fabric;
99
+ const useSize = FABRIC ? useSizeFabric : useSizePaper;
100
+ const [contextId, _] = useState(() => generateContextId());
101
+ const cb = useRef<() => void>();
102
+ const { size, onLayout } = useSize(viewRef);
103
+ useEffect(() => {
104
+ if (size && cb.current) {
105
+ cb.current();
106
+ }
107
+ }, [size]);
108
+ useImperativeHandle(ref, () => ({
109
+ getContextId: () => contextId,
110
+ getNativeSurface: () => {
111
+ if (size === null) {
112
+ throw new Error("[WebGPU] Canvas size is not available yet");
110
113
  }
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
- );
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}`);
126
+ }
127
+ if (size === null) {
128
+ throw new Error("[WebGPU] Canvas size is not available yet");
129
+ }
130
+ return RNWebGPU.MakeWebGPUCanvasContext(
131
+ contextId,
132
+ size.width,
133
+ size.height,
134
+ );
135
+ },
136
+ }));
137
+ return (
138
+ <View collapsable={false} ref={viewRef} onLayout={onLayout} {...props}>
139
+ <WebGPUNativeView
140
+ style={{ flex: 1 }}
141
+ contextId={contextId}
142
+ transparent={!!transparent}
143
+ />
144
+ </View>
145
+ );
146
+ });
@@ -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?: Int32;
7
- androidView?: string;
6
+ contextId: Int32;
7
+ transparent: boolean;
8
8
  }
9
9
 
10
10
  // eslint-disable-next-line import/no-default-export