@shopify/react-native-skia 2.11.0 → 2.11.2-next.1

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 (127) hide show
  1. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +0 -10
  2. package/android/src/main/java/com/shopify/reactnative/skia/ViewScreenshotService.java +9 -12
  3. package/apple/RNSkApplePlatformContext.h +0 -3
  4. package/apple/RNSkApplePlatformContext.mm +0 -11
  5. package/cpp/api/JsiSkApi.h +0 -6
  6. package/cpp/api/JsiSkFont.h +5 -10
  7. package/cpp/api/JsiSkMatrix.h +4 -2
  8. package/cpp/api/recorder/Convertor.h +5 -2
  9. package/cpp/api/recorder/Drawings.h +13 -3
  10. package/cpp/api/recorder/ImageFilters.h +15 -1
  11. package/cpp/api/recorder/Paint.h +8 -1
  12. package/cpp/dawn/include/dawn/dawn_proc.h +53 -0
  13. package/cpp/dawn/include/dawn/dawn_proc_table.h +330 -0
  14. package/cpp/dawn/include/dawn/dawn_thread_dispatch_proc.h +47 -0
  15. package/cpp/dawn/include/dawn/dawn_version.h +41 -0
  16. package/cpp/dawn/include/dawn/native/D3D11Backend.h +65 -0
  17. package/cpp/dawn/include/dawn/native/D3D12Backend.h +103 -0
  18. package/cpp/dawn/include/dawn/native/D3DBackend.h +56 -0
  19. package/cpp/dawn/include/dawn/native/DawnNative.h +368 -0
  20. package/cpp/dawn/include/dawn/native/MetalBackend.h +56 -0
  21. package/cpp/dawn/include/dawn/native/NullBackend.h +39 -0
  22. package/cpp/dawn/include/dawn/native/OpenGLBackend.h +89 -0
  23. package/cpp/dawn/include/dawn/native/VulkanBackend.h +183 -0
  24. package/cpp/dawn/include/dawn/native/WebGPUBackend.h +49 -0
  25. package/cpp/dawn/include/dawn/native/dawn_native_export.h +49 -0
  26. package/cpp/dawn/include/dawn/platform/DawnPlatform.h +207 -0
  27. package/cpp/dawn/include/dawn/platform/dawn_platform_export.h +49 -0
  28. package/cpp/dawn/include/dawn/replay/Replay.h +99 -0
  29. package/cpp/dawn/include/dawn/replay/dawn_replay_export.h +49 -0
  30. package/cpp/dawn/include/dawn/webgpu_cpp_print.h +2856 -0
  31. package/cpp/dawn/include/tint/tint.h +91 -0
  32. package/cpp/dawn/include/webgpu/webgpu.h +5029 -0
  33. package/cpp/dawn/include/webgpu/webgpu_cpp.h +10353 -0
  34. package/cpp/dawn/include/webgpu/webgpu_cpp_chained_struct.h +57 -0
  35. package/cpp/dawn/include/webgpu/webgpu_enum_class_bitmasks.h +162 -0
  36. package/cpp/dawn/include/webgpu/webgpu_glfw.h +88 -0
  37. package/cpp/jsi/NativeObject.h +50 -32
  38. package/cpp/jsi/RuntimeAwareCache.cpp +1 -0
  39. package/cpp/jsi/RuntimeAwareCache.h +29 -0
  40. package/cpp/rnskia/RNSkManager.cpp +5 -0
  41. package/cpp/rnskia/RNSkPlatformContext.h +0 -3
  42. package/cpp/skia/src/gpu/graphite/ContextOptionsPriv.h +45 -0
  43. package/cpp/skia/src/gpu/graphite/ResourceTypes.h +360 -0
  44. package/cpp/skia/src/gpu/graphite/TextureProxyView.h +105 -0
  45. package/lib/commonjs/dom/nodes/datatypes/Rect.js +5 -1
  46. package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
  47. package/lib/commonjs/external/reanimated/useVideo.js +8 -2
  48. package/lib/commonjs/external/reanimated/useVideo.js.map +1 -1
  49. package/lib/commonjs/renderer/components/Mask.js +3 -9
  50. package/lib/commonjs/renderer/components/Mask.js.map +1 -1
  51. package/lib/commonjs/skia/types/JsiInstance.d.ts +1 -0
  52. package/lib/commonjs/skia/types/JsiInstance.js.map +1 -1
  53. package/lib/commonjs/skia/types/Matrix4.js +7 -2
  54. package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
  55. package/lib/commonjs/skia/types/Skia.d.ts +1 -6
  56. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  57. package/lib/commonjs/skia/web/JsiSkia.js +0 -3
  58. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  59. package/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +1 -0
  60. package/lib/commonjs/sksg/Recorder/DrawingContext.js +15 -0
  61. package/lib/commonjs/sksg/Recorder/DrawingContext.js.map +1 -1
  62. package/lib/commonjs/sksg/Recorder/Player.js +1 -1
  63. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
  64. package/lib/commonjs/sksg/Recorder/Visitor.js +6 -1
  65. package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -1
  66. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +10 -8
  67. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  68. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js +15 -1
  69. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  70. package/lib/commonjs/sksg/Recorder/commands/Shaders.js +1 -1
  71. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
  72. package/lib/commonjs/views/SkiaPictureView.web.js +19 -14
  73. package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
  74. package/lib/module/dom/nodes/datatypes/Rect.js +5 -1
  75. package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
  76. package/lib/module/external/reanimated/useVideo.js +8 -2
  77. package/lib/module/external/reanimated/useVideo.js.map +1 -1
  78. package/lib/module/renderer/components/Mask.js +3 -9
  79. package/lib/module/renderer/components/Mask.js.map +1 -1
  80. package/lib/module/skia/types/JsiInstance.d.ts +1 -0
  81. package/lib/module/skia/types/JsiInstance.js.map +1 -1
  82. package/lib/module/skia/types/Matrix4.js +7 -2
  83. package/lib/module/skia/types/Matrix4.js.map +1 -1
  84. package/lib/module/skia/types/Skia.d.ts +1 -6
  85. package/lib/module/skia/types/Skia.js.map +1 -1
  86. package/lib/module/skia/web/JsiSkia.js +0 -3
  87. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  88. package/lib/module/sksg/Recorder/DrawingContext.d.ts +1 -0
  89. package/lib/module/sksg/Recorder/DrawingContext.js +15 -0
  90. package/lib/module/sksg/Recorder/DrawingContext.js.map +1 -1
  91. package/lib/module/sksg/Recorder/Player.js +1 -1
  92. package/lib/module/sksg/Recorder/Player.js.map +1 -1
  93. package/lib/module/sksg/Recorder/Visitor.js +6 -1
  94. package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
  95. package/lib/module/sksg/Recorder/commands/Drawing.js +10 -8
  96. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  97. package/lib/module/sksg/Recorder/commands/ImageFilters.js +15 -1
  98. package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  99. package/lib/module/sksg/Recorder/commands/Shaders.js +1 -1
  100. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  101. package/lib/module/views/SkiaPictureView.web.js +19 -14
  102. package/lib/module/views/SkiaPictureView.web.js.map +1 -1
  103. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +0 -1
  104. package/lib/typescript/lib/commonjs/sksg/Recorder/DrawingContext.d.ts +1 -0
  105. package/lib/typescript/lib/module/skia/Skia.web.d.ts +0 -1
  106. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +0 -1
  107. package/lib/typescript/lib/module/sksg/Recorder/DrawingContext.d.ts +1 -0
  108. package/lib/typescript/src/skia/types/JsiInstance.d.ts +1 -0
  109. package/lib/typescript/src/skia/types/Skia.d.ts +1 -6
  110. package/lib/typescript/src/sksg/Recorder/DrawingContext.d.ts +1 -0
  111. package/libs/.graphite +1 -0
  112. package/package.json +6 -6
  113. package/src/dom/nodes/datatypes/Rect.ts +6 -1
  114. package/src/external/reanimated/useVideo.ts +7 -2
  115. package/src/renderer/components/Mask.tsx +10 -3
  116. package/src/skia/types/JsiInstance.ts +2 -0
  117. package/src/skia/types/Matrix4.ts +6 -2
  118. package/src/skia/types/Skia.ts +1 -7
  119. package/src/skia/web/JsiSkia.ts +0 -4
  120. package/src/sksg/Recorder/DrawingContext.ts +15 -0
  121. package/src/sksg/Recorder/Player.ts +1 -1
  122. package/src/sksg/Recorder/Visitor.ts +9 -6
  123. package/src/sksg/Recorder/commands/Drawing.ts +10 -8
  124. package/src/sksg/Recorder/commands/ImageFilters.ts +20 -1
  125. package/src/sksg/Recorder/commands/Shaders.ts +1 -1
  126. package/src/views/SkiaPictureView.web.tsx +17 -14
  127. package/cpp/api/JsiSkiaContext.h +0 -94
@@ -63,16 +63,6 @@ public:
63
63
  #endif
64
64
  }
65
65
 
66
- std::shared_ptr<WindowContext>
67
- makeContextFromNativeSurface(void *surface, int width, int height) override {
68
- #if defined(SK_GRAPHITE)
69
- return DawnContext::getInstance().MakeWindow(surface, width, height);
70
- #else
71
- auto aWindow = reinterpret_cast<ANativeWindow *>(surface);
72
- return OpenGLContext::getInstance().MakeWindow(aWindow);
73
- #endif
74
- }
75
-
76
66
  sk_sp<SkImage> makeImageFromNativeBuffer(void *buffer) override {
77
67
  #if defined(SK_GRAPHITE)
78
68
  return DawnContext::getInstance().MakeImageFromBuffer(buffer);
@@ -19,10 +19,11 @@ import android.widget.ScrollView;
19
19
  import androidx.annotation.NonNull;
20
20
  import com.facebook.react.bridge.ReactContext;
21
21
  import com.facebook.react.bridge.UIManager;
22
+ import com.facebook.react.uimanager.BackgroundStyleApplicator;
22
23
  import com.facebook.react.uimanager.UIManagerHelper;
24
+ import com.facebook.react.uimanager.ViewProps;
23
25
  import com.facebook.react.views.view.ReactViewGroup;
24
26
 
25
- import java.lang.reflect.Method;
26
27
  import java.util.concurrent.CountDownLatch;
27
28
  import java.util.concurrent.TimeUnit;
28
29
 
@@ -118,17 +119,13 @@ public class ViewScreenshotService {
118
119
  }
119
120
 
120
121
  private static void drawChildren(Canvas canvas, ViewGroup group, Paint paint, float parentOpacity) {
121
- // Handle clipping for ReactViewGroup
122
- if (group instanceof ReactViewGroup) {
123
- try {
124
- Class[] cArg = new Class[1];
125
- cArg[0] = Canvas.class;
126
- Method method = ReactViewGroup.class.getDeclaredMethod("dispatchOverflowDraw", cArg);
127
- method.setAccessible(true);
128
- method.invoke(group, canvas);
129
- } catch (Exception e) {
130
- Log.e(TAG, "couldn't invoke dispatchOverflowDraw() on ReactViewGroup", e);
131
- }
122
+ // ReactViewGroup applies `overflow: hidden` / `overflow: scroll` clipping from its
123
+ // dispatchDraw() override. We never call dispatchDraw() here because children are
124
+ // walked manually (TextureView / SurfaceView need special handling), so the clip has
125
+ // to be replicated explicitly, exactly as ReactViewGroup.dispatchDraw() does it.
126
+ if (group instanceof ReactViewGroup
127
+ && !ViewProps.VISIBLE.equals(((ReactViewGroup) group).getOverflow())) {
128
+ BackgroundStyleApplicator.clipToPaddingBox(group, canvas);
132
129
  }
133
130
  for (int i = 0; i < group.getChildCount(); i++) {
134
131
  View child = group.getChildAt(i);
@@ -63,9 +63,6 @@ public:
63
63
 
64
64
  std::shared_ptr<RNSkVideo> createVideo(const std::string &url) override;
65
65
 
66
- std::shared_ptr<WindowContext>
67
- makeContextFromNativeSurface(void *surface, int width, int height) override;
68
-
69
66
  virtual void performStreamOperation(
70
67
  const std::string &sourceUri,
71
68
  const std::function<void(std::unique_ptr<SkStreamAsset>)> &op) override;
@@ -307,17 +307,6 @@ RNSkApplePlatformContext::createVideo(const std::string &url) {
307
307
  return std::make_shared<RNSkAppleVideo>(url, this);
308
308
  }
309
309
 
310
- std::shared_ptr<WindowContext>
311
- RNSkApplePlatformContext::makeContextFromNativeSurface(void *surface, int width,
312
- int height) {
313
- #if defined(SK_GRAPHITE)
314
- return DawnContext::getInstance().MakeWindow(surface, width, height);
315
- #else
316
- return MetalContext::getInstance().MakeWindow((__bridge CALayer *)surface,
317
- width, height);
318
- #endif
319
- }
320
-
321
310
  void RNSkApplePlatformContext::raiseError(const std::exception &err) {
322
311
  RCTFatal(RCTErrorWithMessage([NSString stringWithUTF8String:err.what()]));
323
312
  }
@@ -56,7 +56,6 @@
56
56
  #include "JsiSkTypefaceFactory.h"
57
57
  #include "JsiSkTypefaceFontProviderFactory.h"
58
58
  #include "JsiSkVertices.h"
59
- #include "JsiSkiaContext.h"
60
59
  #include "JsiSkottieFactory.h"
61
60
  #include "JsiVideo.h"
62
61
  #include "api/recorder/JsiRecorder.h"
@@ -116,10 +115,6 @@ public:
116
115
  return JsiVideo::createCtor(getContext())(runtime, thisValue, arguments,
117
116
  count);
118
117
  }
119
- JSI_HOST_FUNCTION(Context) {
120
- return JsiSkiaContext::createCtor(getContext())(runtime, thisValue,
121
- arguments, count);
122
- }
123
118
  JSI_HOST_FUNCTION(Font) {
124
119
  return JsiSkFont::createCtor(getContext())(runtime, thisValue, arguments,
125
120
  count);
@@ -256,7 +251,6 @@ public:
256
251
 
257
252
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
258
253
  installHostMethod(runtime, prototype, "Video", &JsiSkApi::Video);
259
- installHostMethod(runtime, prototype, "Context", &JsiSkApi::Context);
260
254
  installHostMethod(runtime, prototype, "getNativeDevice",
261
255
  &JsiSkApi::getNativeDevice);
262
256
  installHostMethod(runtime, prototype, "Font", &JsiSkApi::Font);
@@ -135,8 +135,9 @@ public:
135
135
  bool isEmbolden() { return getObject()->isEmbolden(); }
136
136
 
137
137
  std::shared_ptr<JsiSkTypeface> getTypeface() {
138
- return std::make_shared<JsiSkTypeface>(
139
- getContext(), sk_sp<SkTypeface>(getObject()->getTypeface()));
138
+ // refTypeface(), not getTypeface(): the wrapper owns what it is handed.
139
+ return std::make_shared<JsiSkTypeface>(getContext(),
140
+ getObject()->refTypeface());
140
141
  }
141
142
 
142
143
  void setEdging(double edging) {
@@ -161,15 +162,9 @@ public:
161
162
 
162
163
  void setSize(double size) { getObject()->setSize(size); }
163
164
 
164
- // The JS API declares booleans here, but the previous implementation read
165
- // the arguments with asNumber() — keep accepting numbers.
166
- void setEmbolden(double embolden) {
167
- getObject()->setEmbolden(static_cast<bool>(embolden));
168
- }
165
+ void setEmbolden(bool embolden) { getObject()->setEmbolden(embolden); }
169
166
 
170
- void setSubpixel(double subpixel) {
171
- getObject()->setSubpixel(static_cast<bool>(subpixel));
172
- }
167
+ void setSubpixel(bool subpixel) { getObject()->setSubpixel(subpixel); }
173
168
 
174
169
  void setTypeface(std::variant<std::nullptr_t, sk_sp<SkTypeface>> typeface) {
175
170
  getObject()->setTypeface(
@@ -69,12 +69,14 @@ public:
69
69
 
70
70
  void postTranslate(double x, double y) { getObject()->postTranslate(x, y); }
71
71
 
72
+ // A missing y means a uniform scale, matching the CanvasKit backend and the
73
+ // SkMatrix type, where y is optional rather than defaulted to 1.
72
74
  void scale(double x, JsiOptional<double> y) {
73
- getObject()->preScale(x, y.has_value() ? *y : 1);
75
+ getObject()->preScale(x, y.has_value() ? *y : x);
74
76
  }
75
77
 
76
78
  void postScale(double x, JsiOptional<double> y) {
77
- getObject()->postScale(x, y.has_value() ? *y : 1);
79
+ getObject()->postScale(x, y.has_value() ? *y : x);
78
80
  }
79
81
 
80
82
  void skew(double x, double y) { getObject()->preSkew(x, y); }
@@ -361,13 +361,16 @@ SkM44 getPropertyValue(jsi::Runtime &runtime, const jsi::Value &value) {
361
361
  m4.preScale(1, s);
362
362
  } else if (key == "skewX") {
363
363
  auto angle = value.getProperty(runtime, key.c_str()).asNumber();
364
- SkM44 skewX(1, 0, 0, 0, std::tan(angle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
364
+ // The SkM44 constructor takes its arguments in row-major reading
365
+ // order, so the shear factor of a horizontal skew belongs in row 0,
366
+ // where it scales y into x.
367
+ SkM44 skewX(1, std::tan(angle), 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
365
368
  1);
366
369
  m4.preConcat(skewX);
367
370
 
368
371
  } else if (key == "skewY") {
369
372
  auto angle = value.getProperty(runtime, key.c_str()).asNumber();
370
- SkM44 skewY(1, std::tan(angle), 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
373
+ SkM44 skewY(1, 0, 0, 0, std::tan(angle), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
371
374
  1);
372
375
  m4.preConcat(skewY);
373
376
  } else if (key == "rotate" || key == "rotateZ") {
@@ -149,6 +149,9 @@ public:
149
149
  if (hasStrokeOptions) {
150
150
  const auto &stroke = props.stroke.value();
151
151
  SkPaint strokePaint;
152
+ // A default SkPaint is fill-style, and FillPathWithPaint only
153
+ // outlines a paint that strokes.
154
+ strokePaint.setStyle(SkPaint::kStroke_Style);
152
155
 
153
156
  if (stroke.cap.has_value()) {
154
157
  strokePaint.setStrokeCap(stroke.cap.value());
@@ -166,11 +169,18 @@ public:
166
169
  strokePaint.setStrokeMiter(stroke.miter_limit.value());
167
170
  }
168
171
 
172
+ float precision = stroke.precision.value_or(1.0f);
173
+
169
174
  SkPathBuilder resultBuilder;
170
- if (!skpathutils::FillPathWithPaint(*p, strokePaint, &resultBuilder)) {
171
- throw std::runtime_error("Failed to apply stroke to path");
175
+ auto ctm = SkMatrix::Scale(precision, precision);
176
+ if (skpathutils::FillPathWithPaint(*p, strokePaint, &resultBuilder,
177
+ nullptr, ctm)) {
178
+ pathToUse = std::make_shared<const SkPath>(resultBuilder.snapshot());
179
+ } else {
180
+ // The JS player keeps the unstroked path when Path.Stroke returns
181
+ // null (e.g. a hairline width of 0).
182
+ pathToUse = std::const_pointer_cast<const SkPath>(p);
172
183
  }
173
- pathToUse = std::make_shared<const SkPath>(resultBuilder.snapshot());
174
184
  } else {
175
185
  pathToUse = std::const_pointer_cast<const SkPath>(p);
176
186
  }
@@ -135,8 +135,22 @@ private:
135
135
  auto sourceAlpha = SkImageFilters::ColorFilter(
136
136
  SkColorFilters::Blend(SK_ColorBLACK, SkBlendMode::kSrcIn), nullptr);
137
137
 
138
+ // The shadow is generated outside the shape and then clipped back into it,
139
+ // so "outside" has to be the complement of the shape's silhouette. Taking
140
+ // SrcOut against the source graphic itself makes it the complement of the
141
+ // source's *alpha*: inside a translucent shape 1 - alpha is non-zero, so
142
+ // the shadow is generated across the whole interior and tints it, no matter
143
+ // how small the blur and the offset are (issue #2990). Saturating alpha
144
+ // first keeps the shadow tied to the shape's outline instead of to its
145
+ // opacity. 255 is the saturation point of an 8-bit alpha channel, so one
146
+ // unit of coverage is enough to reach 1.
147
+ static constexpr float kAlphaSaturate[20] = {
148
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0};
149
+ auto coverage = SkImageFilters::ColorFilter(
150
+ SkColorFilters::Matrix(kAlphaSaturate), nullptr);
151
+
138
152
  auto f1 = SkImageFilters::ColorFilter(
139
- SkColorFilters::Blend(color, SkBlendMode::kSrcOut), nullptr);
153
+ SkColorFilters::Blend(color, SkBlendMode::kSrcOut), coverage);
140
154
 
141
155
  auto f2 = SkImageFilters::Offset(dx, dy, f1);
142
156
  auto f3 = SkImageFilters::Blur(sigmaX, sigmaY, SkTileMode::kDecal, f2);
@@ -154,8 +154,15 @@ public:
154
154
  }
155
155
  ctx->savePaint();
156
156
  if (standalone) {
157
+ // Reset the paint that savePaint() just pushed instead of pushing a
158
+ // second one: the matching RestorePaintDeclaration pops a single frame,
159
+ // so an extra push would leave the enclosing group's opacity on the
160
+ // stack and leak it onto every sibling drawn afterwards. The fresh
161
+ // paint is anti-aliased to match the TS player, which resets with
162
+ // Skia.Paint().
157
163
  SkPaint freshPaint;
158
- ctx->pushPaint(freshPaint);
164
+ freshPaint.setAntiAlias(true);
165
+ ctx->getPaint() = freshPaint;
159
166
  }
160
167
  auto &paint = ctx->getPaint();
161
168
  if (props.opacity.has_value()) {
@@ -0,0 +1,53 @@
1
+ // Copyright 2019 The Dawn & Tint Authors
2
+ //
3
+ // Redistribution and use in source and binary forms, with or without
4
+ // modification, are permitted provided that the following conditions are met:
5
+ //
6
+ // 1. Redistributions of source code must retain the above copyright notice, this
7
+ // list of conditions and the following disclaimer.
8
+ //
9
+ // 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ // this list of conditions and the following disclaimer in the documentation
11
+ // and/or other materials provided with the distribution.
12
+ //
13
+ // 3. Neither the name of the copyright holder nor the names of its
14
+ // contributors may be used to endorse or promote products derived from
15
+ // this software without specific prior written permission.
16
+ //
17
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
+ // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+ // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
21
+ // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
+ // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
+ // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
+ // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+
28
+ #ifndef INCLUDE_DAWN_DAWN_PROC_H_
29
+ #define INCLUDE_DAWN_DAWN_PROC_H_
30
+
31
+ #include <webgpu/webgpu.h>
32
+
33
+ #include "dawn/dawn_proc_table.h"
34
+
35
+ #ifdef __cplusplus
36
+ extern "C" {
37
+ #endif
38
+
39
+ // Sets the static proctable used by libdawn_proc to implement the Dawn entrypoints. Passing NULL
40
+ // for `procs` sets up the null proctable that contains only null function pointers. It is the
41
+ // default value of the proctable. Setting the proctable back to null is good practice when you
42
+ // are done using libdawn_proc since further usage will cause a segfault instead of calling an
43
+ // unexpected function.
44
+ WGPU_EXPORT void dawnProcSetProcs(const DawnProcTable* procs);
45
+
46
+ // Returns the static array of uint8_t of size 20 representing the Dawn version.
47
+ WGPU_EXPORT const uint8_t* dawnProcGetVersion();
48
+
49
+ #ifdef __cplusplus
50
+ } // extern "C"
51
+ #endif
52
+
53
+ #endif // INCLUDE_DAWN_DAWN_PROC_H_
@@ -0,0 +1,330 @@
1
+
2
+ #ifndef DAWN_DAWN_PROC_TABLE_H_
3
+ #define DAWN_DAWN_PROC_TABLE_H_
4
+
5
+ #include "webgpu/webgpu.h"
6
+
7
+ // Note: Often allocated as a static global. Do not add a complex constructor.
8
+ typedef struct DawnProcTable {
9
+ uint8_t version[20];
10
+
11
+ WGPUProcCreateInstance createInstance;
12
+ WGPUProcGetInstanceFeatures getInstanceFeatures;
13
+ WGPUProcGetInstanceLimits getInstanceLimits;
14
+ WGPUProcHasInstanceFeature hasInstanceFeature;
15
+ WGPUProcGetProcAddress getProcAddress;
16
+
17
+ WGPUProcAdapterCreateDevice adapterCreateDevice;
18
+ WGPUProcAdapterGetFeatures adapterGetFeatures;
19
+ WGPUProcAdapterGetFormatCapabilities adapterGetFormatCapabilities;
20
+ WGPUProcAdapterGetInfo adapterGetInfo;
21
+ WGPUProcAdapterGetInstance adapterGetInstance;
22
+ WGPUProcAdapterGetLimits adapterGetLimits;
23
+ WGPUProcAdapterHasFeature adapterHasFeature;
24
+ WGPUProcAdapterRequestDevice adapterRequestDevice;
25
+ WGPUProcAdapterAddRef adapterAddRef;
26
+ WGPUProcAdapterRelease adapterRelease;
27
+
28
+ WGPUProcAdapterInfoFreeMembers adapterInfoFreeMembers;
29
+
30
+ WGPUProcAdapterPropertiesMemoryHeapsFreeMembers adapterPropertiesMemoryHeapsFreeMembers;
31
+
32
+ WGPUProcAdapterPropertiesSubgroupMatrixConfigsFreeMembers adapterPropertiesSubgroupMatrixConfigsFreeMembers;
33
+
34
+ WGPUProcBindGroupSetLabel bindGroupSetLabel;
35
+ WGPUProcBindGroupAddRef bindGroupAddRef;
36
+ WGPUProcBindGroupRelease bindGroupRelease;
37
+
38
+ WGPUProcBindGroupLayoutSetLabel bindGroupLayoutSetLabel;
39
+ WGPUProcBindGroupLayoutAddRef bindGroupLayoutAddRef;
40
+ WGPUProcBindGroupLayoutRelease bindGroupLayoutRelease;
41
+
42
+ WGPUProcBufferCreateTexelView bufferCreateTexelView;
43
+ WGPUProcBufferDestroy bufferDestroy;
44
+ WGPUProcBufferGetConstMappedRange bufferGetConstMappedRange;
45
+ WGPUProcBufferGetMappedRange bufferGetMappedRange;
46
+ WGPUProcBufferGetMapState bufferGetMapState;
47
+ WGPUProcBufferGetSize bufferGetSize;
48
+ WGPUProcBufferGetUsage bufferGetUsage;
49
+ WGPUProcBufferMapAsync bufferMapAsync;
50
+ WGPUProcBufferReadMappedRange bufferReadMappedRange;
51
+ WGPUProcBufferSetLabel bufferSetLabel;
52
+ WGPUProcBufferUnmap bufferUnmap;
53
+ WGPUProcBufferWriteMappedRange bufferWriteMappedRange;
54
+ WGPUProcBufferAddRef bufferAddRef;
55
+ WGPUProcBufferRelease bufferRelease;
56
+
57
+ WGPUProcCommandBufferSetLabel commandBufferSetLabel;
58
+ WGPUProcCommandBufferAddRef commandBufferAddRef;
59
+ WGPUProcCommandBufferRelease commandBufferRelease;
60
+
61
+ WGPUProcCommandEncoderBeginComputePass commandEncoderBeginComputePass;
62
+ WGPUProcCommandEncoderBeginRenderPass commandEncoderBeginRenderPass;
63
+ WGPUProcCommandEncoderClearBuffer commandEncoderClearBuffer;
64
+ WGPUProcCommandEncoderCopyBufferToBuffer commandEncoderCopyBufferToBuffer;
65
+ WGPUProcCommandEncoderCopyBufferToTexture commandEncoderCopyBufferToTexture;
66
+ WGPUProcCommandEncoderCopyTextureToBuffer commandEncoderCopyTextureToBuffer;
67
+ WGPUProcCommandEncoderCopyTextureToTexture commandEncoderCopyTextureToTexture;
68
+ WGPUProcCommandEncoderFinish commandEncoderFinish;
69
+ WGPUProcCommandEncoderInjectValidationError commandEncoderInjectValidationError;
70
+ WGPUProcCommandEncoderInsertDebugMarker commandEncoderInsertDebugMarker;
71
+ WGPUProcCommandEncoderPopDebugGroup commandEncoderPopDebugGroup;
72
+ WGPUProcCommandEncoderPushDebugGroup commandEncoderPushDebugGroup;
73
+ WGPUProcCommandEncoderResolveQuerySet commandEncoderResolveQuerySet;
74
+ WGPUProcCommandEncoderSetLabel commandEncoderSetLabel;
75
+ WGPUProcCommandEncoderWriteBuffer commandEncoderWriteBuffer;
76
+ WGPUProcCommandEncoderWriteTimestamp commandEncoderWriteTimestamp;
77
+ WGPUProcCommandEncoderAddRef commandEncoderAddRef;
78
+ WGPUProcCommandEncoderRelease commandEncoderRelease;
79
+
80
+ WGPUProcComputePassEncoderDispatchWorkgroups computePassEncoderDispatchWorkgroups;
81
+ WGPUProcComputePassEncoderDispatchWorkgroupsIndirect computePassEncoderDispatchWorkgroupsIndirect;
82
+ WGPUProcComputePassEncoderEnd computePassEncoderEnd;
83
+ WGPUProcComputePassEncoderInsertDebugMarker computePassEncoderInsertDebugMarker;
84
+ WGPUProcComputePassEncoderPopDebugGroup computePassEncoderPopDebugGroup;
85
+ WGPUProcComputePassEncoderPushDebugGroup computePassEncoderPushDebugGroup;
86
+ WGPUProcComputePassEncoderSetBindGroup computePassEncoderSetBindGroup;
87
+ WGPUProcComputePassEncoderSetImmediates computePassEncoderSetImmediates;
88
+ WGPUProcComputePassEncoderSetLabel computePassEncoderSetLabel;
89
+ WGPUProcComputePassEncoderSetPipeline computePassEncoderSetPipeline;
90
+ WGPUProcComputePassEncoderSetResourceTable computePassEncoderSetResourceTable;
91
+ WGPUProcComputePassEncoderWriteTimestamp computePassEncoderWriteTimestamp;
92
+ WGPUProcComputePassEncoderAddRef computePassEncoderAddRef;
93
+ WGPUProcComputePassEncoderRelease computePassEncoderRelease;
94
+
95
+ WGPUProcComputePipelineGetBindGroupLayout computePipelineGetBindGroupLayout;
96
+ WGPUProcComputePipelineSetLabel computePipelineSetLabel;
97
+ WGPUProcComputePipelineAddRef computePipelineAddRef;
98
+ WGPUProcComputePipelineRelease computePipelineRelease;
99
+
100
+ WGPUProcDawnDrmFormatCapabilitiesFreeMembers dawnDrmFormatCapabilitiesFreeMembers;
101
+
102
+ WGPUProcDeviceCreateBindGroup deviceCreateBindGroup;
103
+ WGPUProcDeviceCreateBindGroupLayout deviceCreateBindGroupLayout;
104
+ WGPUProcDeviceCreateBuffer deviceCreateBuffer;
105
+ WGPUProcDeviceCreateCommandEncoder deviceCreateCommandEncoder;
106
+ WGPUProcDeviceCreateComputePipeline deviceCreateComputePipeline;
107
+ WGPUProcDeviceCreateComputePipelineAsync deviceCreateComputePipelineAsync;
108
+ WGPUProcDeviceCreateErrorBuffer deviceCreateErrorBuffer;
109
+ WGPUProcDeviceCreateErrorComputePipeline deviceCreateErrorComputePipeline;
110
+ WGPUProcDeviceCreateErrorExternalTexture deviceCreateErrorExternalTexture;
111
+ WGPUProcDeviceCreateErrorRenderPipeline deviceCreateErrorRenderPipeline;
112
+ WGPUProcDeviceCreateErrorShaderModule deviceCreateErrorShaderModule;
113
+ WGPUProcDeviceCreateErrorTexture deviceCreateErrorTexture;
114
+ WGPUProcDeviceCreateExternalTexture deviceCreateExternalTexture;
115
+ WGPUProcDeviceCreatePipelineLayout deviceCreatePipelineLayout;
116
+ WGPUProcDeviceCreateQuerySet deviceCreateQuerySet;
117
+ WGPUProcDeviceCreateRenderBundleEncoder deviceCreateRenderBundleEncoder;
118
+ WGPUProcDeviceCreateRenderPipeline deviceCreateRenderPipeline;
119
+ WGPUProcDeviceCreateRenderPipelineAsync deviceCreateRenderPipelineAsync;
120
+ WGPUProcDeviceCreateResourceTable deviceCreateResourceTable;
121
+ WGPUProcDeviceCreateSampler deviceCreateSampler;
122
+ WGPUProcDeviceCreateShaderModule deviceCreateShaderModule;
123
+ WGPUProcDeviceCreateTexture deviceCreateTexture;
124
+ WGPUProcDeviceDestroy deviceDestroy;
125
+ WGPUProcDeviceForceLoss deviceForceLoss;
126
+ WGPUProcDeviceGetAdapter deviceGetAdapter;
127
+ WGPUProcDeviceGetAdapterInfo deviceGetAdapterInfo;
128
+ WGPUProcDeviceGetAHardwareBufferProperties deviceGetAHardwareBufferProperties;
129
+ WGPUProcDeviceGetFeatures deviceGetFeatures;
130
+ WGPUProcDeviceGetLimits deviceGetLimits;
131
+ WGPUProcDeviceGetLostFuture deviceGetLostFuture;
132
+ WGPUProcDeviceGetQueue deviceGetQueue;
133
+ WGPUProcDeviceHasFeature deviceHasFeature;
134
+ WGPUProcDeviceImportSharedBufferMemory deviceImportSharedBufferMemory;
135
+ WGPUProcDeviceImportSharedFence deviceImportSharedFence;
136
+ WGPUProcDeviceImportSharedTextureMemory deviceImportSharedTextureMemory;
137
+ WGPUProcDeviceInjectError deviceInjectError;
138
+ WGPUProcDevicePopErrorScope devicePopErrorScope;
139
+ WGPUProcDevicePushErrorScope devicePushErrorScope;
140
+ WGPUProcDeviceSetLabel deviceSetLabel;
141
+ WGPUProcDeviceSetLoggingCallback deviceSetLoggingCallback;
142
+ WGPUProcDeviceTick deviceTick;
143
+ WGPUProcDeviceValidateTextureDescriptor deviceValidateTextureDescriptor;
144
+ WGPUProcDeviceAddRef deviceAddRef;
145
+ WGPUProcDeviceRelease deviceRelease;
146
+
147
+ WGPUProcExternalTextureDestroy externalTextureDestroy;
148
+ WGPUProcExternalTextureExpire externalTextureExpire;
149
+ WGPUProcExternalTextureRefresh externalTextureRefresh;
150
+ WGPUProcExternalTextureSetLabel externalTextureSetLabel;
151
+ WGPUProcExternalTextureAddRef externalTextureAddRef;
152
+ WGPUProcExternalTextureRelease externalTextureRelease;
153
+
154
+ WGPUProcInstanceCreateSurface instanceCreateSurface;
155
+ WGPUProcInstanceGetWGSLLanguageFeatures instanceGetWGSLLanguageFeatures;
156
+ WGPUProcInstanceHasWGSLLanguageFeature instanceHasWGSLLanguageFeature;
157
+ WGPUProcInstanceProcessEvents instanceProcessEvents;
158
+ WGPUProcInstanceRequestAdapter instanceRequestAdapter;
159
+ WGPUProcInstanceWaitAny instanceWaitAny;
160
+ WGPUProcInstanceAddRef instanceAddRef;
161
+ WGPUProcInstanceRelease instanceRelease;
162
+
163
+ WGPUProcPipelineLayoutSetLabel pipelineLayoutSetLabel;
164
+ WGPUProcPipelineLayoutAddRef pipelineLayoutAddRef;
165
+ WGPUProcPipelineLayoutRelease pipelineLayoutRelease;
166
+
167
+ WGPUProcQuerySetDestroy querySetDestroy;
168
+ WGPUProcQuerySetGetCount querySetGetCount;
169
+ WGPUProcQuerySetGetType querySetGetType;
170
+ WGPUProcQuerySetSetLabel querySetSetLabel;
171
+ WGPUProcQuerySetAddRef querySetAddRef;
172
+ WGPUProcQuerySetRelease querySetRelease;
173
+
174
+ WGPUProcQueueCopyExternalTextureForBrowser queueCopyExternalTextureForBrowser;
175
+ WGPUProcQueueCopyTextureForBrowser queueCopyTextureForBrowser;
176
+ WGPUProcQueueOnSubmittedWorkDone queueOnSubmittedWorkDone;
177
+ WGPUProcQueueSetLabel queueSetLabel;
178
+ WGPUProcQueueSubmit queueSubmit;
179
+ WGPUProcQueueWriteBuffer queueWriteBuffer;
180
+ WGPUProcQueueWriteTexture queueWriteTexture;
181
+ WGPUProcQueueAddRef queueAddRef;
182
+ WGPUProcQueueRelease queueRelease;
183
+
184
+ WGPUProcRenderBundleSetLabel renderBundleSetLabel;
185
+ WGPUProcRenderBundleAddRef renderBundleAddRef;
186
+ WGPUProcRenderBundleRelease renderBundleRelease;
187
+
188
+ WGPUProcRenderBundleEncoderDraw renderBundleEncoderDraw;
189
+ WGPUProcRenderBundleEncoderDrawIndexed renderBundleEncoderDrawIndexed;
190
+ WGPUProcRenderBundleEncoderDrawIndexedIndirect renderBundleEncoderDrawIndexedIndirect;
191
+ WGPUProcRenderBundleEncoderDrawIndirect renderBundleEncoderDrawIndirect;
192
+ WGPUProcRenderBundleEncoderFinish renderBundleEncoderFinish;
193
+ WGPUProcRenderBundleEncoderInsertDebugMarker renderBundleEncoderInsertDebugMarker;
194
+ WGPUProcRenderBundleEncoderPopDebugGroup renderBundleEncoderPopDebugGroup;
195
+ WGPUProcRenderBundleEncoderPushDebugGroup renderBundleEncoderPushDebugGroup;
196
+ WGPUProcRenderBundleEncoderSetBindGroup renderBundleEncoderSetBindGroup;
197
+ WGPUProcRenderBundleEncoderSetImmediates renderBundleEncoderSetImmediates;
198
+ WGPUProcRenderBundleEncoderSetIndexBuffer renderBundleEncoderSetIndexBuffer;
199
+ WGPUProcRenderBundleEncoderSetLabel renderBundleEncoderSetLabel;
200
+ WGPUProcRenderBundleEncoderSetPipeline renderBundleEncoderSetPipeline;
201
+ WGPUProcRenderBundleEncoderSetResourceTable renderBundleEncoderSetResourceTable;
202
+ WGPUProcRenderBundleEncoderSetVertexBuffer renderBundleEncoderSetVertexBuffer;
203
+ WGPUProcRenderBundleEncoderAddRef renderBundleEncoderAddRef;
204
+ WGPUProcRenderBundleEncoderRelease renderBundleEncoderRelease;
205
+
206
+ WGPUProcRenderPassEncoderBeginOcclusionQuery renderPassEncoderBeginOcclusionQuery;
207
+ WGPUProcRenderPassEncoderDraw renderPassEncoderDraw;
208
+ WGPUProcRenderPassEncoderDrawIndexed renderPassEncoderDrawIndexed;
209
+ WGPUProcRenderPassEncoderDrawIndexedIndirect renderPassEncoderDrawIndexedIndirect;
210
+ WGPUProcRenderPassEncoderDrawIndirect renderPassEncoderDrawIndirect;
211
+ WGPUProcRenderPassEncoderEnd renderPassEncoderEnd;
212
+ WGPUProcRenderPassEncoderEndOcclusionQuery renderPassEncoderEndOcclusionQuery;
213
+ WGPUProcRenderPassEncoderExecuteBundles renderPassEncoderExecuteBundles;
214
+ WGPUProcRenderPassEncoderInsertDebugMarker renderPassEncoderInsertDebugMarker;
215
+ WGPUProcRenderPassEncoderMultiDrawIndexedIndirect renderPassEncoderMultiDrawIndexedIndirect;
216
+ WGPUProcRenderPassEncoderMultiDrawIndirect renderPassEncoderMultiDrawIndirect;
217
+ WGPUProcRenderPassEncoderPixelLocalStorageBarrier renderPassEncoderPixelLocalStorageBarrier;
218
+ WGPUProcRenderPassEncoderPopDebugGroup renderPassEncoderPopDebugGroup;
219
+ WGPUProcRenderPassEncoderPushDebugGroup renderPassEncoderPushDebugGroup;
220
+ WGPUProcRenderPassEncoderSetBindGroup renderPassEncoderSetBindGroup;
221
+ WGPUProcRenderPassEncoderSetBlendConstant renderPassEncoderSetBlendConstant;
222
+ WGPUProcRenderPassEncoderSetImmediates renderPassEncoderSetImmediates;
223
+ WGPUProcRenderPassEncoderSetIndexBuffer renderPassEncoderSetIndexBuffer;
224
+ WGPUProcRenderPassEncoderSetLabel renderPassEncoderSetLabel;
225
+ WGPUProcRenderPassEncoderSetPipeline renderPassEncoderSetPipeline;
226
+ WGPUProcRenderPassEncoderSetResourceTable renderPassEncoderSetResourceTable;
227
+ WGPUProcRenderPassEncoderSetScissorRect renderPassEncoderSetScissorRect;
228
+ WGPUProcRenderPassEncoderSetStencilReference renderPassEncoderSetStencilReference;
229
+ WGPUProcRenderPassEncoderSetVertexBuffer renderPassEncoderSetVertexBuffer;
230
+ WGPUProcRenderPassEncoderSetViewport renderPassEncoderSetViewport;
231
+ WGPUProcRenderPassEncoderWriteTimestamp renderPassEncoderWriteTimestamp;
232
+ WGPUProcRenderPassEncoderAddRef renderPassEncoderAddRef;
233
+ WGPUProcRenderPassEncoderRelease renderPassEncoderRelease;
234
+
235
+ WGPUProcRenderPipelineGetBindGroupLayout renderPipelineGetBindGroupLayout;
236
+ WGPUProcRenderPipelineSetLabel renderPipelineSetLabel;
237
+ WGPUProcRenderPipelineAddRef renderPipelineAddRef;
238
+ WGPUProcRenderPipelineRelease renderPipelineRelease;
239
+
240
+ WGPUProcResourceTableDestroy resourceTableDestroy;
241
+ WGPUProcResourceTableGetSize resourceTableGetSize;
242
+ WGPUProcResourceTableInsert resourceTableInsert;
243
+ WGPUProcResourceTableRemove resourceTableRemove;
244
+ WGPUProcResourceTableSetLabel resourceTableSetLabel;
245
+ WGPUProcResourceTableUpdate resourceTableUpdate;
246
+ WGPUProcResourceTableAddRef resourceTableAddRef;
247
+ WGPUProcResourceTableRelease resourceTableRelease;
248
+
249
+ WGPUProcSamplerSetLabel samplerSetLabel;
250
+ WGPUProcSamplerAddRef samplerAddRef;
251
+ WGPUProcSamplerRelease samplerRelease;
252
+
253
+ WGPUProcShaderModuleGetCompilationInfo shaderModuleGetCompilationInfo;
254
+ WGPUProcShaderModuleSetLabel shaderModuleSetLabel;
255
+ WGPUProcShaderModuleAddRef shaderModuleAddRef;
256
+ WGPUProcShaderModuleRelease shaderModuleRelease;
257
+
258
+ WGPUProcSharedBufferMemoryBeginAccess sharedBufferMemoryBeginAccess;
259
+ WGPUProcSharedBufferMemoryCreateBuffer sharedBufferMemoryCreateBuffer;
260
+ WGPUProcSharedBufferMemoryEndAccess sharedBufferMemoryEndAccess;
261
+ WGPUProcSharedBufferMemoryGetProperties sharedBufferMemoryGetProperties;
262
+ WGPUProcSharedBufferMemoryIsDeviceLost sharedBufferMemoryIsDeviceLost;
263
+ WGPUProcSharedBufferMemorySetLabel sharedBufferMemorySetLabel;
264
+ WGPUProcSharedBufferMemoryAddRef sharedBufferMemoryAddRef;
265
+ WGPUProcSharedBufferMemoryRelease sharedBufferMemoryRelease;
266
+
267
+ WGPUProcSharedBufferMemoryEndAccessStateFreeMembers sharedBufferMemoryEndAccessStateFreeMembers;
268
+
269
+ WGPUProcSharedFenceExportInfo sharedFenceExportInfo;
270
+ WGPUProcSharedFenceSetLabel sharedFenceSetLabel;
271
+ WGPUProcSharedFenceAddRef sharedFenceAddRef;
272
+ WGPUProcSharedFenceRelease sharedFenceRelease;
273
+
274
+ WGPUProcSharedTextureMemoryBeginAccess sharedTextureMemoryBeginAccess;
275
+ WGPUProcSharedTextureMemoryCreateTexture sharedTextureMemoryCreateTexture;
276
+ WGPUProcSharedTextureMemoryEndAccess sharedTextureMemoryEndAccess;
277
+ WGPUProcSharedTextureMemoryGetProperties sharedTextureMemoryGetProperties;
278
+ WGPUProcSharedTextureMemoryIsDeviceLost sharedTextureMemoryIsDeviceLost;
279
+ WGPUProcSharedTextureMemorySetLabel sharedTextureMemorySetLabel;
280
+ WGPUProcSharedTextureMemoryAddRef sharedTextureMemoryAddRef;
281
+ WGPUProcSharedTextureMemoryRelease sharedTextureMemoryRelease;
282
+
283
+ WGPUProcSharedTextureMemoryEndAccessStateFreeMembers sharedTextureMemoryEndAccessStateFreeMembers;
284
+
285
+ WGPUProcSupportedFeaturesFreeMembers supportedFeaturesFreeMembers;
286
+
287
+ WGPUProcSupportedInstanceFeaturesFreeMembers supportedInstanceFeaturesFreeMembers;
288
+
289
+ WGPUProcSupportedWGSLLanguageFeaturesFreeMembers supportedWGSLLanguageFeaturesFreeMembers;
290
+
291
+ WGPUProcSurfaceConfigure surfaceConfigure;
292
+ WGPUProcSurfaceGetCapabilities surfaceGetCapabilities;
293
+ WGPUProcSurfaceGetCurrentTexture surfaceGetCurrentTexture;
294
+ WGPUProcSurfacePresent surfacePresent;
295
+ WGPUProcSurfaceSetLabel surfaceSetLabel;
296
+ WGPUProcSurfaceUnconfigure surfaceUnconfigure;
297
+ WGPUProcSurfaceAddRef surfaceAddRef;
298
+ WGPUProcSurfaceRelease surfaceRelease;
299
+
300
+ WGPUProcSurfaceCapabilitiesFreeMembers surfaceCapabilitiesFreeMembers;
301
+
302
+ WGPUProcTexelBufferViewSetLabel texelBufferViewSetLabel;
303
+ WGPUProcTexelBufferViewAddRef texelBufferViewAddRef;
304
+ WGPUProcTexelBufferViewRelease texelBufferViewRelease;
305
+
306
+ WGPUProcTextureCreateErrorView textureCreateErrorView;
307
+ WGPUProcTextureCreateView textureCreateView;
308
+ WGPUProcTextureDestroy textureDestroy;
309
+ WGPUProcTextureGetDepthOrArrayLayers textureGetDepthOrArrayLayers;
310
+ WGPUProcTextureGetDimension textureGetDimension;
311
+ WGPUProcTextureGetFormat textureGetFormat;
312
+ WGPUProcTextureGetHeight textureGetHeight;
313
+ WGPUProcTextureGetMipLevelCount textureGetMipLevelCount;
314
+ WGPUProcTextureGetSampleCount textureGetSampleCount;
315
+ WGPUProcTextureGetTextureBindingViewDimension textureGetTextureBindingViewDimension;
316
+ WGPUProcTextureGetUsage textureGetUsage;
317
+ WGPUProcTextureGetWidth textureGetWidth;
318
+ WGPUProcTextureSetLabel textureSetLabel;
319
+ WGPUProcTextureSetOwnershipForMemoryDump textureSetOwnershipForMemoryDump;
320
+ WGPUProcTextureAddRef textureAddRef;
321
+ WGPUProcTextureRelease textureRelease;
322
+
323
+ WGPUProcTextureViewSetLabel textureViewSetLabel;
324
+ WGPUProcTextureViewAddRef textureViewAddRef;
325
+ WGPUProcTextureViewRelease textureViewRelease;
326
+
327
+
328
+ } DawnProcTable;
329
+
330
+ #endif // DAWN_DAWN_PROC_TABLE_H_