react-native-webgpu 0.14.2 → 0.15.0

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.
Files changed (104) hide show
  1. package/android/cpp/AndroidColorSpace.h +107 -0
  2. package/android/cpp/AndroidPlatformContext.h +100 -9
  3. package/android/cpp/AndroidVideoPlayer.h +46 -1
  4. package/android/cpp/cpp-adapter.cpp +53 -1
  5. package/android/src/main/java/com/webgpu/SyncFences.java +88 -0
  6. package/android/src/main/java/com/webgpu/ViewSnapshot.java +66 -23
  7. package/android/src/main/java/com/webgpu/WebGPUModule.java +69 -5
  8. package/android/src/main/java/com/webgpu/WebGPUVideoPlayer.java +109 -0
  9. package/apple/ApplePlatformContext.h +5 -5
  10. package/apple/ApplePlatformContext.mm +75 -3
  11. package/apple/AppleVideoPlayer.mm +68 -35
  12. package/cpp/dawn/common/ExternalTextureParams.h +67 -0
  13. package/cpp/rnwgpu/PlatformContext.h +65 -16
  14. package/cpp/rnwgpu/api/GPUAdapter.cpp +35 -0
  15. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +172 -156
  16. package/cpp/rnwgpu/api/GPUExternalTexture.h +2 -19
  17. package/cpp/rnwgpu/api/GPUQueue.cpp +98 -3
  18. package/cpp/rnwgpu/api/RNWebGPU.h +9 -3
  19. package/cpp/rnwgpu/api/VideoFrameBlit.h +39 -24
  20. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +10 -3
  21. package/lib/commonjs/Canvas.js +32 -5
  22. package/lib/commonjs/Canvas.js.map +1 -1
  23. package/lib/commonjs/WebPolyfillGPUModule.js +6 -3
  24. package/lib/commonjs/WebPolyfillGPUModule.js.map +1 -1
  25. package/lib/commonjs/constants.js +6 -3
  26. package/lib/commonjs/constants.js.map +1 -1
  27. package/lib/commonjs/index.js +1 -0
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/install.js +9 -22
  30. package/lib/commonjs/install.js.map +1 -1
  31. package/lib/commonjs/main/index.js +8 -7
  32. package/lib/commonjs/main/index.js.map +1 -1
  33. package/lib/commonjs/main/index.web.js +1 -1
  34. package/lib/commonjs/main/installNative.js +20 -0
  35. package/lib/commonjs/main/installNative.js.map +1 -0
  36. package/lib/commonjs/main/installNative.web.js +4 -0
  37. package/lib/commonjs/main/installNative.web.js.map +1 -0
  38. package/lib/commonjs/mock.js +60 -13
  39. package/lib/commonjs/mock.js.map +1 -1
  40. package/lib/module/Canvas.js +33 -6
  41. package/lib/module/Canvas.js.map +1 -1
  42. package/lib/module/WebPolyfillGPUModule.js +6 -3
  43. package/lib/module/WebPolyfillGPUModule.js.map +1 -1
  44. package/lib/module/constants.js +6 -3
  45. package/lib/module/constants.js.map +1 -1
  46. package/lib/module/index.js +8 -1
  47. package/lib/module/index.js.map +1 -1
  48. package/lib/module/install.js +8 -20
  49. package/lib/module/install.js.map +1 -1
  50. package/lib/module/main/index.js +6 -7
  51. package/lib/module/main/index.js.map +1 -1
  52. package/lib/module/main/index.web.js +1 -1
  53. package/lib/module/main/index.web.js.map +1 -1
  54. package/lib/module/main/installNative.js +18 -0
  55. package/lib/module/main/installNative.js.map +1 -0
  56. package/lib/module/main/installNative.web.js +6 -0
  57. package/lib/module/main/installNative.web.js.map +1 -0
  58. package/lib/module/mock.js +55 -1
  59. package/lib/module/mock.js.map +1 -1
  60. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +1 -1
  61. package/lib/typescript/lib/commonjs/install.d.ts +41 -3
  62. package/lib/typescript/lib/commonjs/install.d.ts.map +1 -1
  63. package/lib/typescript/lib/commonjs/main/installNative.d.ts +2 -0
  64. package/lib/typescript/lib/commonjs/main/installNative.d.ts.map +1 -0
  65. package/lib/typescript/lib/commonjs/main/installNative.web.d.ts +2 -0
  66. package/lib/typescript/lib/commonjs/main/installNative.web.d.ts.map +1 -0
  67. package/lib/typescript/lib/commonjs/mock.d.ts +39 -0
  68. package/lib/typescript/lib/commonjs/mock.d.ts.map +1 -1
  69. package/lib/typescript/lib/module/Canvas.d.ts.map +1 -1
  70. package/lib/typescript/lib/module/install.d.ts +0 -1
  71. package/lib/typescript/lib/module/install.d.ts.map +1 -1
  72. package/lib/typescript/lib/module/main/installNative.d.ts +2 -0
  73. package/lib/typescript/lib/module/main/installNative.d.ts.map +1 -0
  74. package/lib/typescript/lib/module/main/installNative.web.d.ts +2 -0
  75. package/lib/typescript/lib/module/main/installNative.web.d.ts.map +1 -0
  76. package/lib/typescript/lib/module/mock.d.ts +39 -1
  77. package/lib/typescript/lib/module/mock.d.ts.map +1 -1
  78. package/lib/typescript/src/Canvas.d.ts.map +1 -1
  79. package/lib/typescript/src/constants.d.ts.map +1 -1
  80. package/lib/typescript/src/index.d.ts +2 -2
  81. package/lib/typescript/src/index.d.ts.map +1 -1
  82. package/lib/typescript/src/install.d.ts +0 -5
  83. package/lib/typescript/src/install.d.ts.map +1 -1
  84. package/lib/typescript/src/main/index.d.ts +1 -0
  85. package/lib/typescript/src/main/index.d.ts.map +1 -1
  86. package/lib/typescript/src/main/index.web.d.ts +1 -1
  87. package/lib/typescript/src/main/index.web.d.ts.map +1 -1
  88. package/lib/typescript/src/main/installNative.d.ts +2 -0
  89. package/lib/typescript/src/main/installNative.d.ts.map +1 -0
  90. package/lib/typescript/src/main/installNative.web.d.ts +2 -0
  91. package/lib/typescript/src/main/installNative.web.d.ts.map +1 -0
  92. package/lib/typescript/src/mock.d.ts +5 -1
  93. package/lib/typescript/src/mock.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/src/Canvas.tsx +44 -28
  96. package/src/WebPolyfillGPUModule.ts +3 -1
  97. package/src/constants.ts +6 -3
  98. package/src/index.tsx +18 -10
  99. package/src/install.ts +9 -18
  100. package/src/main/index.tsx +7 -10
  101. package/src/main/index.web.tsx +1 -1
  102. package/src/main/installNative.ts +20 -0
  103. package/src/main/installNative.web.ts +5 -0
  104. package/src/mock.ts +60 -1
package/src/mock.ts CHANGED
@@ -16,9 +16,68 @@ import type { CanvasProps, NativeCanvas, RNCanvasContext } from "./Canvas";
16
16
  // missing native install (see `importDevice`/`adoptTexture` in
17
17
  // `./importDevice.ts`).
18
18
 
19
- export * from "./constants";
20
19
  export * from "./formats";
21
20
 
21
+ // The flag constants. The real package re-exports the globals the native
22
+ // module installs (`./constants.ts`); nothing installs them under Jest, so the
23
+ // mock defines the spec values itself and, like the native install, also puts
24
+ // them on globalThis for code that references the bare globals.
25
+ export const GPUBufferUsage: GPUBufferUsage = {
26
+ MAP_READ: 0x0001,
27
+ MAP_WRITE: 0x0002,
28
+ COPY_SRC: 0x0004,
29
+ COPY_DST: 0x0008,
30
+ INDEX: 0x0010,
31
+ VERTEX: 0x0020,
32
+ UNIFORM: 0x0040,
33
+ STORAGE: 0x0080,
34
+ INDIRECT: 0x0100,
35
+ QUERY_RESOLVE: 0x0200,
36
+ };
37
+
38
+ export const GPUTextureUsage: GPUTextureUsage = {
39
+ COPY_SRC: 0x01,
40
+ COPY_DST: 0x02,
41
+ TEXTURE_BINDING: 0x04,
42
+ STORAGE_BINDING: 0x08,
43
+ RENDER_ATTACHMENT: 0x10,
44
+ TRANSIENT_ATTACHMENT: 0x20,
45
+ };
46
+
47
+ export const GPUShaderStage: GPUShaderStage = {
48
+ VERTEX: 0x1,
49
+ FRAGMENT: 0x2,
50
+ COMPUTE: 0x4,
51
+ };
52
+
53
+ export const GPUColorWrite: GPUColorWrite = {
54
+ RED: 0x1,
55
+ GREEN: 0x2,
56
+ BLUE: 0x4,
57
+ ALPHA: 0x8,
58
+ ALL: 0xf,
59
+ };
60
+
61
+ export const GPUMapMode: GPUMapMode = {
62
+ READ: 0x1,
63
+ WRITE: 0x2,
64
+ };
65
+
66
+ {
67
+ const g = globalThis as unknown as Record<string, unknown>;
68
+ for (const [key, value] of Object.entries({
69
+ GPUBufferUsage,
70
+ GPUTextureUsage,
71
+ GPUShaderStage,
72
+ GPUColorWrite,
73
+ GPUMapMode,
74
+ })) {
75
+ if (g[key] === undefined) {
76
+ g[key] = value;
77
+ }
78
+ }
79
+ }
80
+
22
81
  const NOT_AVAILABLE_UNDER_JEST =
23
82
  "is not available under Jest - react-native-webgpu has no native implementation in tests (see react-native-webgpu/jestSetup.js)";
24
83