Commit ce980655 authored by Erich Gubler's avatar Erich Gubler
Browse files

Bug 1830762: refactor(webgpu): add `Owning*` variant for...

Bug 1830762: refactor(webgpu): add `Owning*` variant for `ConvertExtent{,3DtoFFI}` r=webgpu-reviewers,jimb

Differential Revision: https://phabricator.services.mozilla.com/D176848
parent c9709fa8
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -10,8 +10,8 @@

namespace mozilla::webgpu {

void ConvertExtent3DToFFI(const dom::GPUExtent3D& aExtent,
                          ffi::WGPUExtent3d* aExtentFFI) {
template <typename E>
void ConvertToExtent3D(const E& aExtent, ffi::WGPUExtent3d* aExtentFFI) {
  *aExtentFFI = {};
  if (aExtent.IsRangeEnforcedUnsignedLongSequence()) {
    const auto& seq = aExtent.GetAsRangeEnforcedUnsignedLongSequence();
@@ -28,9 +28,25 @@ void ConvertExtent3DToFFI(const dom::GPUExtent3D& aExtent,
  }
}

void ConvertExtent3DToFFI(const dom::GPUExtent3D& aExtent,
                          ffi::WGPUExtent3d* aExtentFFI) {
  ConvertToExtent3D(aExtent, aExtentFFI);
}

void ConvertExtent3DToFFI(const dom::OwningGPUExtent3D& aExtent,
                          ffi::WGPUExtent3d* aExtentFFI) {
  ConvertToExtent3D(aExtent, aExtentFFI);
}

ffi::WGPUExtent3d ConvertExtent(const dom::GPUExtent3D& aExtent) {
  ffi::WGPUExtent3d extent = {};
  ConvertExtent3DToFFI(aExtent, &extent);
  ConvertToExtent3D(aExtent, &extent);
  return extent;
}

ffi::WGPUExtent3d ConvertExtent(const dom::OwningGPUExtent3D& aExtent) {
  ffi::WGPUExtent3d extent = {};
  ConvertToExtent3D(aExtent, &extent);
  return extent;
}

+7 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@ struct GPUComputePassDescriptor;
template <typename T>
class Sequence;
using GPUExtent3D = RangeEnforcedUnsignedLongSequenceOrGPUExtent3DDict;
using OwningGPUExtent3D =
    OwningRangeEnforcedUnsignedLongSequenceOrGPUExtent3DDict;
}  // namespace dom
namespace webgpu {
namespace ffi {
@@ -25,8 +27,13 @@ struct WGPUExtent3d;
void ConvertExtent3DToFFI(const dom::GPUExtent3D& aExtent,
                          ffi::WGPUExtent3d* aExtentFFI);

void ConvertExtent3DToFFI(const dom::OwningGPUExtent3D& aExtent,
                          ffi::WGPUExtent3d* aExtentFFI);

ffi::WGPUExtent3d ConvertExtent(const dom::GPUExtent3D& aExtent);

ffi::WGPUExtent3d ConvertExtent(const dom::OwningGPUExtent3D& aExtent);

}  // namespace webgpu
}  // namespace mozilla