Title: [290877] trunk/Source/WebGPU
Revision
290877
Author
[email protected]
Date
2022-03-06 22:43:16 -0800 (Sun, 06 Mar 2022)

Log Message

[WebGPU] Use C++ references instead of pointers where applicable
https://bugs.webkit.org/show_bug.cgi?id=237508

Reviewed by Tim Horton.

The header we're implementing uses pointers because it's a C header.
Our internal implementation can use references instead.

* WebGPU/Adapter.h:
* WebGPU/Adapter.mm:
(WebGPU::Adapter::getLimits):
(WebGPU::Adapter::getProperties):
(WebGPU::Adapter::requestDevice):
(wgpuAdapterGetLimits):
(wgpuAdapterGetProperties):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
* WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
* WebGPU/BindGroupLayout.mm:
(WebGPU::Device::createBindGroupLayout):
* WebGPU/Buffer.mm:
(WebGPU::Device::createBuffer):
* WebGPU/CommandEncoder.h:
* WebGPU/CommandEncoder.mm:
(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::CommandEncoder::finish):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderCopyBufferToTexture):
(wgpuCommandEncoderCopyTextureToBuffer):
(wgpuCommandEncoderCopyTextureToTexture):
(wgpuCommandEncoderFinish):
* WebGPU/ComputePipeline.mm:
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
* WebGPU/Device.h:
* WebGPU/Device.mm:
(WebGPU::Device::getLimits):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceGetLimits):
* WebGPU/Instance.h:
* WebGPU/Instance.mm:
(WebGPU::Instance::create):
(WebGPU::Instance::createSurface):
(WebGPU::Instance::requestAdapter):
(wgpuCreateInstance):
(wgpuInstanceCreateSurface):
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):
* WebGPU/PipelineLayout.mm:
(WebGPU::Device::createPipelineLayout):
* WebGPU/QuerySet.mm:
(WebGPU::Device::createQuerySet):
* WebGPU/Queue.h:
* WebGPU/Queue.mm:
(WebGPU::Queue::writeTexture):
(wgpuQueueWriteTexture):
* WebGPU/RenderBundleEncoder.h:
* WebGPU/RenderBundleEncoder.mm:
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::finish):
(wgpuRenderBundleEncoderFinish):
* WebGPU/RenderPassEncoder.h:
* WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::setBlendConstant):
(wgpuRenderPassEncoderSetBlendConstant):
* WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):
* WebGPU/Sampler.mm:
(WebGPU::Device::createSampler):
* WebGPU/ShaderModule.h:
* WebGPU/ShaderModule.mm:
(WebGPU::findShaderModuleParameters):
(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::getCompilationInfo):
(wgpuShaderModuleGetCompilationInfo):
(wgpuShaderModuleGetCompilationInfoWithBlock):
* WebGPU/SwapChain.mm:
(WebGPU::Device::createSwapChain):
* WebGPU/Texture.h:
* WebGPU/Texture.mm:
(WebGPU::Device::createTexture):
(WebGPU::Texture::createView):
(wgpuTextureCreateView):

Modified Paths

Diff

Modified: trunk/Source/WebGPU/ChangeLog (290876 => 290877)


--- trunk/Source/WebGPU/ChangeLog	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/ChangeLog	2022-03-07 06:43:16 UTC (rev 290877)
@@ -1,3 +1,113 @@
+2022-03-06  Myles C. Maxfield  <[email protected]>
+
+        [WebGPU] Use C++ references instead of pointers where applicable
+        https://bugs.webkit.org/show_bug.cgi?id=237508
+
+        Reviewed by Tim Horton.
+
+        The header we're implementing uses pointers because it's a C header.
+        Our internal implementation can use references instead.
+
+        * WebGPU/Adapter.h:
+        * WebGPU/Adapter.mm:
+        (WebGPU::Adapter::getLimits):
+        (WebGPU::Adapter::getProperties):
+        (WebGPU::Adapter::requestDevice):
+        (wgpuAdapterGetLimits):
+        (wgpuAdapterGetProperties):
+        (wgpuAdapterRequestDevice):
+        (wgpuAdapterRequestDeviceWithBlock):
+        * WebGPU/BindGroup.mm:
+        (WebGPU::Device::createBindGroup):
+        * WebGPU/BindGroupLayout.mm:
+        (WebGPU::Device::createBindGroupLayout):
+        * WebGPU/Buffer.mm:
+        (WebGPU::Device::createBuffer):
+        * WebGPU/CommandEncoder.h:
+        * WebGPU/CommandEncoder.mm:
+        (WebGPU::Device::createCommandEncoder):
+        (WebGPU::CommandEncoder::beginComputePass):
+        (WebGPU::CommandEncoder::beginRenderPass):
+        (WebGPU::CommandEncoder::copyBufferToTexture):
+        (WebGPU::CommandEncoder::copyTextureToBuffer):
+        (WebGPU::CommandEncoder::copyTextureToTexture):
+        (WebGPU::CommandEncoder::finish):
+        (wgpuCommandEncoderBeginComputePass):
+        (wgpuCommandEncoderBeginRenderPass):
+        (wgpuCommandEncoderCopyBufferToTexture):
+        (wgpuCommandEncoderCopyTextureToBuffer):
+        (wgpuCommandEncoderCopyTextureToTexture):
+        (wgpuCommandEncoderFinish):
+        * WebGPU/ComputePipeline.mm:
+        (WebGPU::Device::createComputePipeline):
+        (WebGPU::Device::createComputePipelineAsync):
+        * WebGPU/Device.h:
+        * WebGPU/Device.mm:
+        (WebGPU::Device::getLimits):
+        (wgpuDeviceCreateBindGroup):
+        (wgpuDeviceCreateBindGroupLayout):
+        (wgpuDeviceCreateBuffer):
+        (wgpuDeviceCreateCommandEncoder):
+        (wgpuDeviceCreateComputePipeline):
+        (wgpuDeviceCreateComputePipelineAsync):
+        (wgpuDeviceCreateComputePipelineAsyncWithBlock):
+        (wgpuDeviceCreatePipelineLayout):
+        (wgpuDeviceCreateQuerySet):
+        (wgpuDeviceCreateRenderBundleEncoder):
+        (wgpuDeviceCreateRenderPipeline):
+        (wgpuDeviceCreateRenderPipelineAsync):
+        (wgpuDeviceCreateRenderPipelineAsyncWithBlock):
+        (wgpuDeviceCreateSampler):
+        (wgpuDeviceCreateShaderModule):
+        (wgpuDeviceCreateSwapChain):
+        (wgpuDeviceCreateTexture):
+        (wgpuDeviceGetLimits):
+        * WebGPU/Instance.h:
+        * WebGPU/Instance.mm:
+        (WebGPU::Instance::create):
+        (WebGPU::Instance::createSurface):
+        (WebGPU::Instance::requestAdapter):
+        (wgpuCreateInstance):
+        (wgpuInstanceCreateSurface):
+        (wgpuInstanceRequestAdapter):
+        (wgpuInstanceRequestAdapterWithBlock):
+        * WebGPU/PipelineLayout.mm:
+        (WebGPU::Device::createPipelineLayout):
+        * WebGPU/QuerySet.mm:
+        (WebGPU::Device::createQuerySet):
+        * WebGPU/Queue.h:
+        * WebGPU/Queue.mm:
+        (WebGPU::Queue::writeTexture):
+        (wgpuQueueWriteTexture):
+        * WebGPU/RenderBundleEncoder.h:
+        * WebGPU/RenderBundleEncoder.mm:
+        (WebGPU::Device::createRenderBundleEncoder):
+        (WebGPU::RenderBundleEncoder::finish):
+        (wgpuRenderBundleEncoderFinish):
+        * WebGPU/RenderPassEncoder.h:
+        * WebGPU/RenderPassEncoder.mm:
+        (WebGPU::RenderPassEncoder::setBlendConstant):
+        (wgpuRenderPassEncoderSetBlendConstant):
+        * WebGPU/RenderPipeline.mm:
+        (WebGPU::Device::createRenderPipeline):
+        (WebGPU::Device::createRenderPipelineAsync):
+        * WebGPU/Sampler.mm:
+        (WebGPU::Device::createSampler):
+        * WebGPU/ShaderModule.h:
+        * WebGPU/ShaderModule.mm:
+        (WebGPU::findShaderModuleParameters):
+        (WebGPU::Device::createShaderModule):
+        (WebGPU::ShaderModule::getCompilationInfo):
+        (wgpuShaderModuleGetCompilationInfo):
+        (wgpuShaderModuleGetCompilationInfoWithBlock):
+        * WebGPU/SwapChain.mm:
+        (WebGPU::Device::createSwapChain):
+        * WebGPU/Texture.h:
+        * WebGPU/Texture.mm:
+        (WebGPU::Device::createTexture):
+        (WebGPU::Texture::createView):
+        (wgpuTextureCreateView):
+
 2022-03-03  Michael Saboff  <[email protected]>
 
         Copy WebKit frameworks and XPC processes to Secondary Path

Modified: trunk/Source/WebGPU/WebGPU/Adapter.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Adapter.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Adapter.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -46,10 +46,10 @@
     ~Adapter();
 
     size_t enumerateFeatures(WGPUFeatureName* features);
-    bool getLimits(WGPUSupportedLimits*);
-    void getProperties(WGPUAdapterProperties*);
+    bool getLimits(WGPUSupportedLimits&);
+    void getProperties(WGPUAdapterProperties&);
     bool hasFeature(WGPUFeatureName);
-    void requestDevice(const WGPUDeviceDescriptor*, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback);
+    void requestDevice(const WGPUDeviceDescriptor&, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback);
 
 private:
     Adapter(id<MTLDevice>);

Modified: trunk/Source/WebGPU/WebGPU/Adapter.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Adapter.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Adapter.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -44,25 +44,25 @@
     return 0;
 }
 
-bool Adapter::getLimits(WGPUSupportedLimits* limits)
+bool Adapter::getLimits(WGPUSupportedLimits& limits)
 {
-    if (limits->nextInChain != nullptr)
+    if (limits.nextInChain != nullptr)
         return false;
 
     // FIXME: Implement this.
-    limits->limits = { };
+    limits.limits = { };
     return true;
 }
 
-void Adapter::getProperties(WGPUAdapterProperties* properties)
+void Adapter::getProperties(WGPUAdapterProperties& properties)
 {
     // FIXME: What should the vendorID and deviceID be?
-    properties->vendorID = 0;
-    properties->deviceID = 0;
-    properties->name = m_device.name.UTF8String;
-    properties->driverDescription = "";
-    properties->adapterType = m_device.hasUnifiedMemory ? WGPUAdapterType_IntegratedGPU : WGPUAdapterType_DiscreteGPU;
-    properties->backendType = WGPUBackendType_Metal;
+    properties.vendorID = 0;
+    properties.deviceID = 0;
+    properties.name = m_device.name.UTF8String;
+    properties.driverDescription = "";
+    properties.adapterType = m_device.hasUnifiedMemory ? WGPUAdapterType_IntegratedGPU : WGPUAdapterType_DiscreteGPU;
+    properties.backendType = WGPUBackendType_Metal;
 }
 
 bool Adapter::hasFeature(WGPUFeatureName)
@@ -103,19 +103,19 @@
         && !requiredLimits.limits.maxComputeWorkgroupsPerDimension;
 }
 
-void Adapter::requestDevice(const WGPUDeviceDescriptor* descriptor, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback)
+void Adapter::requestDevice(const WGPUDeviceDescriptor& descriptor, WTF::Function<void(WGPURequestDeviceStatus, RefPtr<Device>&&, const char*)>&& callback)
 {
-    if (descriptor->nextInChain) {
+    if (descriptor.nextInChain) {
         callback(WGPURequestDeviceStatus_Error, nullptr, "Unknown descriptor type");
         return;
     }
 
-    if (descriptor->requiredFeaturesCount) {
+    if (descriptor.requiredFeaturesCount) {
         callback(WGPURequestDeviceStatus_Error, nullptr, "Device does not support requested features");
         return;
     }
 
-    if (descriptor->requiredLimits && !deviceMeetsRequiredLimits(m_device, *descriptor->requiredLimits)) {
+    if (descriptor.requiredLimits && !deviceMeetsRequiredLimits(m_device, *descriptor.requiredLimits)) {
         callback(WGPURequestDeviceStatus_Error, nullptr, "Device does not support requested limits");
         return;
     }
@@ -139,12 +139,12 @@
 
 bool wgpuAdapterGetLimits(WGPUAdapter adapter, WGPUSupportedLimits* limits)
 {
-    return adapter->adapter->getLimits(limits);
+    return adapter->adapter->getLimits(*limits);
 }
 
 void wgpuAdapterGetProperties(WGPUAdapter adapter, WGPUAdapterProperties* properties)
 {
-    adapter->adapter->getProperties(properties);
+    adapter->adapter->getProperties(*properties);
 }
 
 bool wgpuAdapterHasFeature(WGPUAdapter adapter, WGPUFeatureName feature)
@@ -154,7 +154,7 @@
 
 void wgpuAdapterRequestDevice(WGPUAdapter adapter, const WGPUDeviceDescriptor* descriptor, WGPURequestDeviceCallback callback, void* userdata)
 {
-    adapter->adapter->requestDevice(descriptor, [callback, userdata] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
+    adapter->adapter->requestDevice(*descriptor, [callback, userdata] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
         callback(status, device ? new WGPUDeviceImpl { device.releaseNonNull() } : nullptr, message, userdata);
     });
 }
@@ -161,7 +161,7 @@
 
 void wgpuAdapterRequestDeviceWithBlock(WGPUAdapter adapter, WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceBlockCallback callback)
 {
-    adapter->adapter->requestDevice(descriptor, [callback] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
+    adapter->adapter->requestDevice(*descriptor, [callback] (WGPURequestDeviceStatus status, RefPtr<WebGPU::Device>&& device, const char* message) {
         callback(status, device ? new WGPUDeviceImpl { device.releaseNonNull() } : nullptr, message);
     });
 }

Modified: trunk/Source/WebGPU/WebGPU/BindGroup.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/BindGroup.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/BindGroup.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -49,12 +49,12 @@
     return entry.textureView;
 }
 
-RefPtr<BindGroup> Device::createBindGroup(const WGPUBindGroupDescriptor* descriptor)
+RefPtr<BindGroup> Device::createBindGroup(const WGPUBindGroupDescriptor& descriptor)
 {
-    if (descriptor->nextInChain)
+    if (descriptor.nextInChain)
         return nullptr;
 
-    const BindGroupLayout& bindGroupLayout = descriptor->layout->bindGroupLayout;
+    const BindGroupLayout& bindGroupLayout = descriptor.layout->bindGroupLayout;
 
     // FIXME: Don't allocate 3 new buffers for every bind group.
     // In fact, don't even allocate a single new buffer for every bind group.
@@ -64,7 +64,7 @@
     if (!vertexArgumentBuffer || !fragmentArgumentBuffer || !computeArgumentBuffer)
         return nullptr;
 
-    auto label = [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding];
+    auto label = [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding];
     vertexArgumentBuffer.label = label;
     fragmentArgumentBuffer.label = label;
     computeArgumentBuffer.label = label;
@@ -76,8 +76,8 @@
     [fragmentArgumentEncoder setArgumentBuffer:fragmentArgumentBuffer offset:0];
     [computeArgumentEncoder setArgumentBuffer:computeArgumentBuffer offset:0];
 
-    for (uint32_t i = 0; i < descriptor->entryCount; ++i) {
-        const WGPUBindGroupEntry& entry = descriptor->entries[i];
+    for (uint32_t i = 0; i < descriptor.entryCount; ++i) {
+        const WGPUBindGroupEntry& entry = descriptor.entries[i];
 
         if (entry.nextInChain)
             return nullptr;

Modified: trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/BindGroupLayout.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -112,19 +112,19 @@
     return descriptor;
 }
 
-RefPtr<BindGroupLayout> Device::createBindGroupLayout(const WGPUBindGroupLayoutDescriptor* descriptor)
+RefPtr<BindGroupLayout> Device::createBindGroupLayout(const WGPUBindGroupLayoutDescriptor& descriptor)
 {
-    if (descriptor->nextInChain)
+    if (descriptor.nextInChain)
         return nullptr;
 
-    NSMutableArray<MTLArgumentDescriptor *> *vertexArguments = [NSMutableArray arrayWithCapacity:descriptor->entryCount];
-    NSMutableArray<MTLArgumentDescriptor *> *fragmentArguments = [NSMutableArray arrayWithCapacity:descriptor->entryCount];
-    NSMutableArray<MTLArgumentDescriptor *> *computeArguments = [NSMutableArray arrayWithCapacity:descriptor->entryCount];
+    NSMutableArray<MTLArgumentDescriptor *> *vertexArguments = [NSMutableArray arrayWithCapacity:descriptor.entryCount];
+    NSMutableArray<MTLArgumentDescriptor *> *fragmentArguments = [NSMutableArray arrayWithCapacity:descriptor.entryCount];
+    NSMutableArray<MTLArgumentDescriptor *> *computeArguments = [NSMutableArray arrayWithCapacity:descriptor.entryCount];
     if (!vertexArguments || !fragmentArguments || !computeArguments)
         return nullptr;
 
-    for (uint32_t i = 0; i < descriptor->entryCount; ++i) {
-        const WGPUBindGroupLayoutEntry& entry = descriptor->entries[i];
+    for (uint32_t i = 0; i < descriptor.entryCount; ++i) {
+        const WGPUBindGroupLayoutEntry& entry = descriptor.entries[i];
         if (entry.nextInChain)
             return nullptr;
 
@@ -205,7 +205,7 @@
     if (!vertexArgumentEncoder || !fragmentArgumentEncoder || !computeArgumentEncoder)
         return nullptr;
 
-    auto label = [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding];
+    auto label = [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding];
     vertexArgumentEncoder.label = label;
     fragmentArgumentEncoder.label = label;
     computeArgumentEncoder.label = label;

Modified: trunk/Source/WebGPU/WebGPU/Buffer.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Buffer.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Buffer.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -30,7 +30,7 @@
 
 namespace WebGPU {
 
-RefPtr<Buffer> Device::createBuffer(const WGPUBufferDescriptor* descriptor)
+RefPtr<Buffer> Device::createBuffer(const WGPUBufferDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return Buffer::create(nil);

Modified: trunk/Source/WebGPU/WebGPU/CommandEncoder.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/CommandEncoder.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/CommandEncoder.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -48,14 +48,14 @@
 
     ~CommandEncoder();
 
-    RefPtr<ComputePassEncoder> beginComputePass(const WGPUComputePassDescriptor*);
-    RefPtr<RenderPassEncoder> beginRenderPass(const WGPURenderPassDescriptor*);
+    RefPtr<ComputePassEncoder> beginComputePass(const WGPUComputePassDescriptor&);
+    RefPtr<RenderPassEncoder> beginRenderPass(const WGPURenderPassDescriptor&);
     void copyBufferToBuffer(const Buffer& source, uint64_t sourceOffset, const Buffer& destination, uint64_t destinationOffset, uint64_t size);
-    void copyBufferToTexture(const WGPUImageCopyBuffer* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize);
-    void copyTextureToBuffer(const WGPUImageCopyTexture* source, const WGPUImageCopyBuffer* destination, const WGPUExtent3D* copySize);
-    void copyTextureToTexture(const WGPUImageCopyTexture* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize);
+    void copyBufferToTexture(const WGPUImageCopyBuffer& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize);
+    void copyTextureToBuffer(const WGPUImageCopyTexture& source, const WGPUImageCopyBuffer& destination, const WGPUExtent3D& copySize);
+    void copyTextureToTexture(const WGPUImageCopyTexture& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize);
     void clearBuffer(const Buffer&, uint64_t offset, uint64_t size);
-    RefPtr<CommandBuffer> finish(const WGPUCommandBufferDescriptor*);
+    RefPtr<CommandBuffer> finish(const WGPUCommandBufferDescriptor&);
     void insertDebugMarker(const char* markerLabel);
     void popDebugGroup();
     void pushDebugGroup(const char* groupLabel);

Modified: trunk/Source/WebGPU/WebGPU/CommandEncoder.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/CommandEncoder.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/CommandEncoder.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -35,7 +35,7 @@
 
 namespace WebGPU {
 
-RefPtr<CommandEncoder> Device::createCommandEncoder(const WGPUCommandEncoderDescriptor* descriptor)
+RefPtr<CommandEncoder> Device::createCommandEncoder(const WGPUCommandEncoderDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return CommandEncoder::create(nil);
@@ -48,13 +48,13 @@
 
 CommandEncoder::~CommandEncoder() = default;
 
-RefPtr<ComputePassEncoder> CommandEncoder::beginComputePass(const WGPUComputePassDescriptor* descriptor)
+RefPtr<ComputePassEncoder> CommandEncoder::beginComputePass(const WGPUComputePassDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return ComputePassEncoder::create(nil);
 }
 
-RefPtr<RenderPassEncoder> CommandEncoder::beginRenderPass(const WGPURenderPassDescriptor* descriptor)
+RefPtr<RenderPassEncoder> CommandEncoder::beginRenderPass(const WGPURenderPassDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return RenderPassEncoder::create(nil);
@@ -69,7 +69,7 @@
     UNUSED_PARAM(size);
 }
 
-void CommandEncoder::copyBufferToTexture(const WGPUImageCopyBuffer* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
+void CommandEncoder::copyBufferToTexture(const WGPUImageCopyBuffer& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize)
 {
     UNUSED_PARAM(source);
     UNUSED_PARAM(destination);
@@ -76,7 +76,7 @@
     UNUSED_PARAM(copySize);
 }
 
-void CommandEncoder::copyTextureToBuffer(const WGPUImageCopyTexture* source, const WGPUImageCopyBuffer* destination, const WGPUExtent3D* copySize)
+void CommandEncoder::copyTextureToBuffer(const WGPUImageCopyTexture& source, const WGPUImageCopyBuffer& destination, const WGPUExtent3D& copySize)
 {
     UNUSED_PARAM(source);
     UNUSED_PARAM(destination);
@@ -83,7 +83,7 @@
     UNUSED_PARAM(copySize);
 }
 
-void CommandEncoder::copyTextureToTexture(const WGPUImageCopyTexture* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
+void CommandEncoder::copyTextureToTexture(const WGPUImageCopyTexture& source, const WGPUImageCopyTexture& destination, const WGPUExtent3D& copySize)
 {
     UNUSED_PARAM(source);
     UNUSED_PARAM(destination);
@@ -97,7 +97,7 @@
     UNUSED_PARAM(size);
 }
 
-RefPtr<CommandBuffer> CommandEncoder::finish(const WGPUCommandBufferDescriptor* descriptor)
+RefPtr<CommandBuffer> CommandEncoder::finish(const WGPUCommandBufferDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return CommandBuffer::create(nil);
@@ -146,13 +146,13 @@
 
 WGPUComputePassEncoder wgpuCommandEncoderBeginComputePass(WGPUCommandEncoder commandEncoder, const WGPUComputePassDescriptor* descriptor)
 {
-    auto result = commandEncoder->commandEncoder->beginComputePass(descriptor);
+    auto result = commandEncoder->commandEncoder->beginComputePass(*descriptor);
     return result ? new WGPUComputePassEncoderImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPURenderPassEncoder wgpuCommandEncoderBeginRenderPass(WGPUCommandEncoder commandEncoder, const WGPURenderPassDescriptor* descriptor)
 {
-    auto result = commandEncoder->commandEncoder->beginRenderPass(descriptor);
+    auto result = commandEncoder->commandEncoder->beginRenderPass(*descriptor);
     return result ? new WGPURenderPassEncoderImpl { result.releaseNonNull() } : nullptr;
 }
 
@@ -163,17 +163,17 @@
 
 void wgpuCommandEncoderCopyBufferToTexture(WGPUCommandEncoder commandEncoder, const WGPUImageCopyBuffer* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
 {
-    commandEncoder->commandEncoder->copyBufferToTexture(source, destination, copySize);
+    commandEncoder->commandEncoder->copyBufferToTexture(*source, *destination, *copySize);
 }
 
 void wgpuCommandEncoderCopyTextureToBuffer(WGPUCommandEncoder commandEncoder, const WGPUImageCopyTexture* source, const WGPUImageCopyBuffer* destination, const WGPUExtent3D* copySize)
 {
-    commandEncoder->commandEncoder->copyTextureToBuffer(source, destination, copySize);
+    commandEncoder->commandEncoder->copyTextureToBuffer(*source, *destination, *copySize);
 }
 
 void wgpuCommandEncoderCopyTextureToTexture(WGPUCommandEncoder commandEncoder, const WGPUImageCopyTexture* source, const WGPUImageCopyTexture* destination, const WGPUExtent3D* copySize)
 {
-    commandEncoder->commandEncoder->copyTextureToTexture(source, destination, copySize);
+    commandEncoder->commandEncoder->copyTextureToTexture(*source, *destination, *copySize);
 }
 
 void wgpuCommandEncoderClearBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size)
@@ -183,7 +183,7 @@
 
 WGPUCommandBuffer wgpuCommandEncoderFinish(WGPUCommandEncoder commandEncoder, const WGPUCommandBufferDescriptor* descriptor)
 {
-    auto result = commandEncoder->commandEncoder->finish(descriptor);
+    auto result = commandEncoder->commandEncoder->finish(*descriptor);
     return result ? new WGPUCommandBufferImpl { result.releaseNonNull() } : nullptr;
 }
 

Modified: trunk/Source/WebGPU/WebGPU/ComputePipeline.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/ComputePipeline.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/ComputePipeline.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -143,16 +143,16 @@
     return computePipelineState;
 }
 
-RefPtr<ComputePipeline> Device::createComputePipeline(const WGPUComputePipelineDescriptor* descriptor)
+RefPtr<ComputePipeline> Device::createComputePipeline(const WGPUComputePipelineDescriptor& descriptor)
 {
-    if (descriptor->nextInChain || descriptor->compute.nextInChain)
+    if (descriptor.nextInChain || descriptor.compute.nextInChain)
         return nullptr;
 
-    const ShaderModule& shaderModule = descriptor->compute.module->shaderModule;
-    const PipelineLayout& pipelineLayout = descriptor->layout->pipelineLayout;
-    auto label = [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding];
+    const ShaderModule& shaderModule = descriptor.compute.module->shaderModule;
+    const PipelineLayout& pipelineLayout = descriptor.layout->pipelineLayout;
+    auto label = [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding];
 
-    auto libraryCreationResult = createLibrary(m_device, shaderModule, pipelineLayout, descriptor->compute.entryPoint, label);
+    auto libraryCreationResult = createLibrary(m_device, shaderModule, pipelineLayout, descriptor.compute.entryPoint, label);
     if (!libraryCreationResult)
         return nullptr;
 
@@ -163,7 +163,7 @@
         return nullptr;
     const auto& computeInformation = std::get<WGSL::Reflection::Compute>(entryPointInformation.typedEntryPoint);
 
-    auto function = createFunction(library, entryPointInformation, descriptor->compute, label);
+    auto function = createFunction(library, entryPointInformation, descriptor.compute, label);
 
     auto computePipelineState = createComputePipelineState(m_device, function, pipelineLayout, computeInformation, label);
 
@@ -170,7 +170,7 @@
     return ComputePipeline::create(computePipelineState);
 }
 
-void Device::createComputePipelineAsync(const WGPUComputePipelineDescriptor* descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback)
+void Device::createComputePipelineAsync(const WGPUComputePipelineDescriptor& descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback)
 {
     // FIXME: Implement this
     UNUSED_PARAM(descriptor);

Modified: trunk/Source/WebGPU/WebGPU/Device.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Device.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Device.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -56,24 +56,24 @@
 
     ~Device();
 
-    RefPtr<BindGroup> createBindGroup(const WGPUBindGroupDescriptor*);
-    RefPtr<BindGroupLayout> createBindGroupLayout(const WGPUBindGroupLayoutDescriptor*);
-    RefPtr<Buffer> createBuffer(const WGPUBufferDescriptor*);
-    RefPtr<CommandEncoder> createCommandEncoder(const WGPUCommandEncoderDescriptor*);
-    RefPtr<ComputePipeline> createComputePipeline(const WGPUComputePipelineDescriptor*);
-    void createComputePipelineAsync(const WGPUComputePipelineDescriptor*, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback);
-    RefPtr<PipelineLayout> createPipelineLayout(const WGPUPipelineLayoutDescriptor*);
-    RefPtr<QuerySet> createQuerySet(const WGPUQuerySetDescriptor*);
-    RefPtr<RenderBundleEncoder> createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor*);
-    RefPtr<RenderPipeline> createRenderPipeline(const WGPURenderPipelineDescriptor*);
-    void createRenderPipelineAsync(const WGPURenderPipelineDescriptor*, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback);
-    RefPtr<Sampler> createSampler(const WGPUSamplerDescriptor*);
-    RefPtr<ShaderModule> createShaderModule(const WGPUShaderModuleDescriptor*);
-    RefPtr<SwapChain> createSwapChain(const Surface&, const WGPUSwapChainDescriptor*);
-    RefPtr<Texture> createTexture(const WGPUTextureDescriptor*);
+    RefPtr<BindGroup> createBindGroup(const WGPUBindGroupDescriptor&);
+    RefPtr<BindGroupLayout> createBindGroupLayout(const WGPUBindGroupLayoutDescriptor&);
+    RefPtr<Buffer> createBuffer(const WGPUBufferDescriptor&);
+    RefPtr<CommandEncoder> createCommandEncoder(const WGPUCommandEncoderDescriptor&);
+    RefPtr<ComputePipeline> createComputePipeline(const WGPUComputePipelineDescriptor&);
+    void createComputePipelineAsync(const WGPUComputePipelineDescriptor&, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<ComputePipeline>&&, const char* message)>&& callback);
+    RefPtr<PipelineLayout> createPipelineLayout(const WGPUPipelineLayoutDescriptor&);
+    RefPtr<QuerySet> createQuerySet(const WGPUQuerySetDescriptor&);
+    RefPtr<RenderBundleEncoder> createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor&);
+    RefPtr<RenderPipeline> createRenderPipeline(const WGPURenderPipelineDescriptor&);
+    void createRenderPipelineAsync(const WGPURenderPipelineDescriptor&, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback);
+    RefPtr<Sampler> createSampler(const WGPUSamplerDescriptor&);
+    RefPtr<ShaderModule> createShaderModule(const WGPUShaderModuleDescriptor&);
+    RefPtr<SwapChain> createSwapChain(const Surface&, const WGPUSwapChainDescriptor&);
+    RefPtr<Texture> createTexture(const WGPUTextureDescriptor&);
     void destroy();
     size_t enumerateFeatures(WGPUFeatureName* features);
-    bool getLimits(WGPUSupportedLimits*);
+    bool getLimits(WGPUSupportedLimits&);
     RefPtr<Queue> getQueue();
     bool hasFeature(WGPUFeatureName);
     bool popErrorScope(WTF::Function<void(WGPUErrorType, const char*)>&& callback);

Modified: trunk/Source/WebGPU/WebGPU/Device.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Device.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Device.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -74,13 +74,13 @@
     return 0;
 }
 
-bool Device::getLimits(WGPUSupportedLimits* limits)
+bool Device::getLimits(WGPUSupportedLimits& limits)
 {
-    if (limits->nextInChain != nullptr)
+    if (limits.nextInChain != nullptr)
         return false;
 
     // FIXME: Implement this.
-    limits->limits = { };
+    limits.limits = { };
     return true;
 }
 
@@ -134,37 +134,37 @@
 
 WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, const WGPUBindGroupDescriptor* descriptor)
 {
-    auto result = device->device->createBindGroup(descriptor);
+    auto result = device->device->createBindGroup(*descriptor);
     return result ? new WGPUBindGroupImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, const WGPUBindGroupLayoutDescriptor* descriptor)
 {
-    auto result = device->device->createBindGroupLayout(descriptor);
+    auto result = device->device->createBindGroupLayout(*descriptor);
     return result ? new WGPUBindGroupLayoutImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, const WGPUBufferDescriptor* descriptor)
 {
-    auto result = device->device->createBuffer(descriptor);
+    auto result = device->device->createBuffer(*descriptor);
     return result ? new WGPUBufferImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, const WGPUCommandEncoderDescriptor* descriptor)
 {
-    auto result = device->device->createCommandEncoder(descriptor);
+    auto result = device->device->createCommandEncoder(*descriptor);
     return result ? new WGPUCommandEncoderImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUComputePipeline wgpuDeviceCreateComputePipeline(WGPUDevice device, const WGPUComputePipelineDescriptor* descriptor)
 {
-    auto result = device->device->createComputePipeline(descriptor);
+    auto result = device->device->createComputePipeline(*descriptor);
     return result ? new WGPUComputePipelineImpl { result.releaseNonNull() } : nullptr;
 }
 
 void wgpuDeviceCreateComputePipelineAsync(WGPUDevice device, const WGPUComputePipelineDescriptor* descriptor, WGPUCreateComputePipelineAsyncCallback callback, void* userdata)
 {
-    device->device->createComputePipelineAsync(descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
+    device->device->createComputePipelineAsync(*descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
         callback(status, pipeline ? new WGPUComputePipelineImpl { pipeline.releaseNonNull() } : nullptr, message, userdata);
     });
 }
@@ -171,7 +171,7 @@
 
 void wgpuDeviceCreateComputePipelineAsyncWithBlock(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUCreateComputePipelineAsyncBlockCallback callback)
 {
-    device->device->createComputePipelineAsync(descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
+    device->device->createComputePipelineAsync(*descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::ComputePipeline>&& pipeline, const char* message) {
         callback(status, pipeline ? new WGPUComputePipelineImpl { pipeline.releaseNonNull() } : nullptr, message);
     });
 }
@@ -178,31 +178,31 @@
 
 WGPUPipelineLayout wgpuDeviceCreatePipelineLayout(WGPUDevice device, const WGPUPipelineLayoutDescriptor* descriptor)
 {
-    auto result = device->device->createPipelineLayout(descriptor);
+    auto result = device->device->createPipelineLayout(*descriptor);
     return result ? new WGPUPipelineLayoutImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUQuerySet wgpuDeviceCreateQuerySet(WGPUDevice device, const WGPUQuerySetDescriptor* descriptor)
 {
-    auto result = device->device->createQuerySet(descriptor);
+    auto result = device->device->createQuerySet(*descriptor);
     return result ? new WGPUQuerySetImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPURenderBundleEncoder wgpuDeviceCreateRenderBundleEncoder(WGPUDevice device, const WGPURenderBundleEncoderDescriptor* descriptor)
 {
-    auto result = device->device->createRenderBundleEncoder(descriptor);
+    auto result = device->device->createRenderBundleEncoder(*descriptor);
     return result ? new WGPURenderBundleEncoderImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPURenderPipeline wgpuDeviceCreateRenderPipeline(WGPUDevice device, const WGPURenderPipelineDescriptor* descriptor)
 {
-    auto result = device->device->createRenderPipeline(descriptor);
+    auto result = device->device->createRenderPipeline(*descriptor);
     return result ? new WGPURenderPipelineImpl { result.releaseNonNull() } : nullptr;
 }
 
 void wgpuDeviceCreateRenderPipelineAsync(WGPUDevice device, const WGPURenderPipelineDescriptor* descriptor, WGPUCreateRenderPipelineAsyncCallback callback, void* userdata)
 {
-    device->device->createRenderPipelineAsync(descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
+    device->device->createRenderPipelineAsync(*descriptor, [callback, userdata] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
         callback(status, pipeline ? new WGPURenderPipelineImpl { pipeline.releaseNonNull() } : nullptr, message, userdata);
     });
 }
@@ -209,7 +209,7 @@
 
 void wgpuDeviceCreateRenderPipelineAsyncWithBlock(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUCreateRenderPipelineAsyncBlockCallback callback)
 {
-    device->device->createRenderPipelineAsync(descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
+    device->device->createRenderPipelineAsync(*descriptor, [callback] (WGPUCreatePipelineAsyncStatus status, RefPtr<WebGPU::RenderPipeline>&& pipeline, const char* message) {
         callback(status, pipeline ? new WGPURenderPipelineImpl { pipeline.releaseNonNull() } : nullptr, message);
     });
 }
@@ -216,25 +216,25 @@
 
 WGPUSampler wgpuDeviceCreateSampler(WGPUDevice device, const WGPUSamplerDescriptor* descriptor)
 {
-    auto result = device->device->createSampler(descriptor);
+    auto result = device->device->createSampler(*descriptor);
     return result ? new WGPUSamplerImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUShaderModule wgpuDeviceCreateShaderModule(WGPUDevice device, const WGPUShaderModuleDescriptor* descriptor)
 {
-    auto result = device->device->createShaderModule(descriptor);
+    auto result = device->device->createShaderModule(*descriptor);
     return result ? new WGPUShaderModuleImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUSwapChain wgpuDeviceCreateSwapChain(WGPUDevice device, WGPUSurface surface, const WGPUSwapChainDescriptor* descriptor)
 {
-    auto result = device->device->createSwapChain(surface->surface, descriptor);
+    auto result = device->device->createSwapChain(surface->surface, *descriptor);
     return result ? new WGPUSwapChainImpl { result.releaseNonNull() } : nullptr;
 }
 
 WGPUTexture wgpuDeviceCreateTexture(WGPUDevice device, const WGPUTextureDescriptor* descriptor)
 {
-    auto result = device->device->createTexture(descriptor);
+    auto result = device->device->createTexture(*descriptor);
     return result ? new WGPUTextureImpl { result.releaseNonNull() } : nullptr;
 }
 
@@ -250,7 +250,7 @@
 
 bool wgpuDeviceGetLimits(WGPUDevice device, WGPUSupportedLimits* limits)
 {
-    return device->device->getLimits(limits);
+    return device->device->getLimits(*limits);
 }
 
 WGPUQueue wgpuDeviceGetQueue(WGPUDevice device)

Modified: trunk/Source/WebGPU/WebGPU/Instance.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Instance.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Instance.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -40,13 +40,13 @@
 class Instance : public RefCounted<Instance> {
     WTF_MAKE_FAST_ALLOCATED;
 public:
-    static RefPtr<Instance> create(const WGPUInstanceDescriptor*);
+    static RefPtr<Instance> create(const WGPUInstanceDescriptor&);
 
     ~Instance();
 
-    RefPtr<Surface> createSurface(const WGPUSurfaceDescriptor*);
+    RefPtr<Surface> createSurface(const WGPUSurfaceDescriptor&);
     void processEvents();
-    void requestAdapter(const WGPURequestAdapterOptions*, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback);
+    void requestAdapter(const WGPURequestAdapterOptions&, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback);
 
     NSRunLoop *runLoop() const { return m_runLoop; }
 

Modified: trunk/Source/WebGPU/WebGPU/Instance.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Instance.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Instance.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -35,9 +35,9 @@
 
 static constexpr NSString *runLoopMode = @"kCFRunLoopWebGPUMode";
 
-RefPtr<Instance> Instance::create(const WGPUInstanceDescriptor* descriptor)
+RefPtr<Instance> Instance::create(const WGPUInstanceDescriptor& descriptor)
 {
-    if (descriptor->nextInChain)
+    if (descriptor.nextInChain)
         return nullptr;
 
     NSRunLoop *runLoop = NSRunLoop.currentRunLoop;
@@ -54,7 +54,7 @@
 
 Instance::~Instance() = default;
 
-RefPtr<Surface> Instance::createSurface(const WGPUSurfaceDescriptor* descriptor)
+RefPtr<Surface> Instance::createSurface(const WGPUSurfaceDescriptor& descriptor)
 {
     // FIXME: Implement this.
     UNUSED_PARAM(descriptor);
@@ -110,7 +110,7 @@
     }
 }
 
-void Instance::requestAdapter(const WGPURequestAdapterOptions* options, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback)
+void Instance::requestAdapter(const WGPURequestAdapterOptions& options, WTF::Function<void(WGPURequestAdapterStatus, RefPtr<Adapter>&&, const char*)>&& callback)
 {
 #if PLATFORM(MAC) || PLATFORM(MACCATALYST)
     NSArray<id<MTLDevice>> *devices = MTLCopyAllDevices();
@@ -120,16 +120,16 @@
         [devices addObject:device];
 #endif
 
-    // FIXME: Deal with options->compatibleSurface.
+    // FIXME: Deal with options.compatibleSurface.
 
-    auto sortedDevices = WebGPU::sortedDevices(devices, options->powerPreference);
+    auto sortedDevices = WebGPU::sortedDevices(devices, options.powerPreference);
 
-    if (options->nextInChain) {
+    if (options.nextInChain) {
         callback(WGPURequestAdapterStatus_Error, nullptr, "Unknown descriptor type");
         return;
     }
 
-    if (options->forceFallbackAdapter) {
+    if (options.forceFallbackAdapter) {
         callback(WGPURequestAdapterStatus_Unavailable, nullptr, "No adapters present");
         return;
     }
@@ -161,7 +161,7 @@
 
 WGPUInstance wgpuCreateInstance(const WGPUInstanceDescriptor* descriptor)
 {
-    auto result = WebGPU::Instance::create(descriptor);
+    auto result = WebGPU::Instance::create(*descriptor);
     return result ? new WGPUInstanceImpl { result.releaseNonNull() } : nullptr;
 }
 
@@ -416,7 +416,7 @@
 
 WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, const WGPUSurfaceDescriptor* descriptor)
 {
-    auto result = instance->instance->createSurface(descriptor);
+    auto result = instance->instance->createSurface(*descriptor);
     return result ? new WGPUSurfaceImpl { result.releaseNonNull() } : nullptr;
 }
 
@@ -427,7 +427,7 @@
 
 void wgpuInstanceRequestAdapter(WGPUInstance instance, const WGPURequestAdapterOptions* options, WGPURequestAdapterCallback callback, void* userdata)
 {
-    instance->instance->requestAdapter(options, [callback, userdata] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
+    instance->instance->requestAdapter(*options, [callback, userdata] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
         callback(status, adapter ? new WGPUAdapterImpl { adapter.releaseNonNull() } : nullptr, message, userdata);
     });
 }
@@ -434,7 +434,7 @@
 
 void wgpuInstanceRequestAdapterWithBlock(WGPUInstance instance, WGPURequestAdapterOptions const * options, WGPURequestAdapterBlockCallback callback)
 {
-    instance->instance->requestAdapter(options, [callback] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
+    instance->instance->requestAdapter(*options, [callback] (WGPURequestAdapterStatus status, RefPtr<WebGPU::Adapter>&& adapter, const char* message) {
         callback(status, adapter ? new WGPUAdapterImpl { adapter.releaseNonNull() } : nullptr, message);
     });
 }

Modified: trunk/Source/WebGPU/WebGPU/PipelineLayout.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/PipelineLayout.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/PipelineLayout.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,15 +31,15 @@
 
 namespace WebGPU {
 
-RefPtr<PipelineLayout> Device::createPipelineLayout(const WGPUPipelineLayoutDescriptor* descriptor)
+RefPtr<PipelineLayout> Device::createPipelineLayout(const WGPUPipelineLayoutDescriptor& descriptor)
 {
-    if (descriptor->nextInChain)
+    if (descriptor.nextInChain)
         return nullptr;
 
     Vector<Ref<BindGroupLayout>> bindGroupLayouts;
-    bindGroupLayouts.reserveInitialCapacity(descriptor->bindGroupLayoutCount);
-    for (uint32_t i = 0; i < descriptor->bindGroupLayoutCount; ++i) {
-        const auto* bindGroupLayout = descriptor->bindGroupLayouts[i];
+    bindGroupLayouts.reserveInitialCapacity(descriptor.bindGroupLayoutCount);
+    for (uint32_t i = 0; i < descriptor.bindGroupLayoutCount; ++i) {
+        const auto* bindGroupLayout = descriptor.bindGroupLayouts[i];
         bindGroupLayouts.uncheckedAppend(bindGroupLayout->bindGroupLayout);
     }
     return PipelineLayout::create(WTFMove(bindGroupLayouts));

Modified: trunk/Source/WebGPU/WebGPU/QuerySet.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/QuerySet.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/QuerySet.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -30,7 +30,7 @@
 
 namespace WebGPU {
 
-RefPtr<QuerySet> Device::createQuerySet(const WGPUQuerySetDescriptor* descriptor)
+RefPtr<QuerySet> Device::createQuerySet(const WGPUQuerySetDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return QuerySet::create(nil);

Modified: trunk/Source/WebGPU/WebGPU/Queue.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Queue.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Queue.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -49,7 +49,7 @@
     void onSubmittedWorkDone(uint64_t signalValue, WTF::Function<void(WGPUQueueWorkDoneStatus)>&& callback);
     void submit(Vector<std::reference_wrapper<const CommandBuffer>>&& commands);
     void writeBuffer(const Buffer&, uint64_t bufferOffset, const void* data, size_t);
-    void writeTexture(const WGPUImageCopyTexture* destination, const void* data, size_t dataSize, const WGPUTextureDataLayout*, const WGPUExtent3D* writeSize);
+    void writeTexture(const WGPUImageCopyTexture& destination, const void* data, size_t dataSize, const WGPUTextureDataLayout&, const WGPUExtent3D& writeSize);
     void setLabel(const char*);
 
 private:

Modified: trunk/Source/WebGPU/WebGPU/Queue.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Queue.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Queue.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -57,7 +57,7 @@
     UNUSED_PARAM(size);
 }
 
-void Queue::writeTexture(const WGPUImageCopyTexture* destination, const void* data, size_t dataSize, const WGPUTextureDataLayout* dataLayout, const WGPUExtent3D* writeSize)
+void Queue::writeTexture(const WGPUImageCopyTexture& destination, const void* data, size_t dataSize, const WGPUTextureDataLayout& dataLayout, const WGPUExtent3D& writeSize)
 {
     UNUSED_PARAM(destination);
     UNUSED_PARAM(data);
@@ -107,7 +107,7 @@
 
 void wgpuQueueWriteTexture(WGPUQueue queue, const WGPUImageCopyTexture* destination, const void* data, size_t dataSize, const WGPUTextureDataLayout* dataLayout, const WGPUExtent3D* writeSize)
 {
-    queue->queue->writeTexture(destination, data, dataSize, dataLayout, writeSize);
+    queue->queue->writeTexture(*destination, data, dataSize, *dataLayout, *writeSize);
 }
 
 void wgpuQueueSetLabel(WGPUQueue queue, const char* label)

Modified: trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -51,7 +51,7 @@
     void drawIndexed(uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance);
     void drawIndexedIndirect(const Buffer& indirectBuffer, uint64_t indirectOffset);
     void drawIndirect(const Buffer& indirectBuffer, uint64_t indirectOffset);
-    RefPtr<RenderBundle> finish(const WGPURenderBundleDescriptor*);
+    RefPtr<RenderBundle> finish(const WGPURenderBundleDescriptor&);
     void insertDebugMarker(const char* markerLabel);
     void popDebugGroup();
     void pushDebugGroup(const char* groupLabel);

Modified: trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderBundleEncoder.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -34,7 +34,7 @@
 
 namespace WebGPU {
 
-RefPtr<RenderBundleEncoder> Device::createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor* descriptor)
+RefPtr<RenderBundleEncoder> Device::createRenderBundleEncoder(const WGPURenderBundleEncoderDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return RenderBundleEncoder::create(nil);
@@ -76,7 +76,7 @@
     UNUSED_PARAM(indirectOffset);
 }
 
-RefPtr<RenderBundle> RenderBundleEncoder::finish(const WGPURenderBundleDescriptor* descriptor)
+RefPtr<RenderBundle> RenderBundleEncoder::finish(const WGPURenderBundleDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return RenderBundle::create(nil);
@@ -160,7 +160,7 @@
 
 WGPURenderBundle wgpuRenderBundleEncoderFinish(WGPURenderBundleEncoder renderBundleEncoder, const WGPURenderBundleDescriptor* descriptor)
 {
-    auto result = renderBundleEncoder->renderBundleEncoder->finish(descriptor);
+    auto result = renderBundleEncoder->renderBundleEncoder->finish(*descriptor);
     return result ? new WGPURenderBundleImpl { result.releaseNonNull() } : nullptr;
 }
 

Modified: trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderPassEncoder.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -63,7 +63,7 @@
     void popDebugGroup();
     void pushDebugGroup(const char* groupLabel);
     void setBindGroup(uint32_t groupIndex, const BindGroup&, uint32_t dynamicOffsetCount, const uint32_t* dynamicOffsets);
-    void setBlendConstant(const WGPUColor*);
+    void setBlendConstant(const WGPUColor&);
     void setIndexBuffer(const Buffer&, WGPUIndexFormat, uint64_t offset, uint64_t size);
     void setPipeline(const RenderPipeline&);
     void setScissorRect(uint32_t x, uint32_t y, uint32_t width, uint32_t height);

Modified: trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderPassEncoder.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -124,7 +124,7 @@
     UNUSED_PARAM(dynamicOffsets);
 }
 
-void RenderPassEncoder::setBlendConstant(const WGPUColor* color)
+void RenderPassEncoder::setBlendConstant(const WGPUColor& color)
 {
     UNUSED_PARAM(color);
 }
@@ -260,7 +260,7 @@
 
 void wgpuRenderPassEncoderSetBlendConstant(WGPURenderPassEncoder renderPassEncoder, const WGPUColor* color)
 {
-    renderPassEncoder->renderPassEncoder->setBlendConstant(color);
+    renderPassEncoder->renderPassEncoder->setBlendConstant(*color);
 }
 
 void wgpuRenderPassEncoderSetIndexBuffer(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size)

Modified: trunk/Source/WebGPU/WebGPU/RenderPipeline.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/RenderPipeline.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/RenderPipeline.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,13 +31,13 @@
 
 namespace WebGPU {
 
-RefPtr<RenderPipeline> Device::createRenderPipeline(const WGPURenderPipelineDescriptor* descriptor)
+RefPtr<RenderPipeline> Device::createRenderPipeline(const WGPURenderPipelineDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return RenderPipeline::create(nil);
 }
 
-void Device::createRenderPipelineAsync(const WGPURenderPipelineDescriptor* descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback)
+void Device::createRenderPipelineAsync(const WGPURenderPipelineDescriptor& descriptor, WTF::Function<void(WGPUCreatePipelineAsyncStatus, RefPtr<RenderPipeline>&&, const char* message)>&& callback)
 {
     UNUSED_PARAM(descriptor);
     UNUSED_PARAM(callback);

Modified: trunk/Source/WebGPU/WebGPU/Sampler.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Sampler.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Sampler.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -30,7 +30,7 @@
 
 namespace WebGPU {
 
-RefPtr<Sampler> Device::createSampler(const WGPUSamplerDescriptor* descriptor)
+RefPtr<Sampler> Device::createSampler(const WGPUSamplerDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return Sampler::create(nil);

Modified: trunk/Source/WebGPU/WebGPU/ShaderModule.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/ShaderModule.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/ShaderModule.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -46,7 +46,7 @@
 
     ~ShaderModule();
 
-    void getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo*)>&& callback);
+    void getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo&)>&& callback);
     void setLabel(const char*);
 
     static WGSL::PipelineLayout convertPipelineLayout(const PipelineLayout&);

Modified: trunk/Source/WebGPU/WebGPU/ShaderModule.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/ShaderModule.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/ShaderModule.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -36,12 +36,12 @@
     const WGPUShaderModuleDescriptorHints* hints;
 };
 
-static std::optional<ShaderModuleParameters> findShaderModuleParameters(const WGPUShaderModuleDescriptor* descriptor)
+static std::optional<ShaderModuleParameters> findShaderModuleParameters(const WGPUShaderModuleDescriptor& descriptor)
 {
     const WGPUShaderModuleWGSLDescriptor* wgsl = nullptr;
     const WGPUShaderModuleDescriptorHints* hints = nullptr;
 
-    for (const WGPUChainedStruct* ptr = descriptor->nextInChain; ptr; ptr = ptr->next) {
+    for (const WGPUChainedStruct* ptr = descriptor.nextInChain; ptr; ptr = ptr->next) {
         auto type = ptr->sType;
 
         switch (static_cast<int>(type)) {
@@ -98,9 +98,9 @@
     return ShaderModule::create(WTFMove(checkResult), WTFMove(hints), WTFMove(prepareResult.entryPoints), library);
 }
 
-RefPtr<ShaderModule> Device::createShaderModule(const WGPUShaderModuleDescriptor* descriptor)
+RefPtr<ShaderModule> Device::createShaderModule(const WGPUShaderModuleDescriptor& descriptor)
 {
-    if (!descriptor->nextInChain)
+    if (!descriptor.nextInChain)
         return nullptr;
 
     auto shaderModuleParameters = findShaderModuleParameters(descriptor);
@@ -110,7 +110,7 @@
     auto checkResult = WGSL::staticCheck(String(shaderModuleParameters->wgsl.code), std::nullopt);
 
     if (std::holds_alternative<WGSL::SuccessfulCheck>(checkResult) && shaderModuleParameters->hints && shaderModuleParameters->hints->hintsCount) {
-        if (auto result = earlyCompileShaderModule(m_device, WTFMove(checkResult), *shaderModuleParameters->hints, [NSString stringWithCString:descriptor->label encoding:NSUTF8StringEncoding]))
+        if (auto result = earlyCompileShaderModule(m_device, WTFMove(checkResult), *shaderModuleParameters->hints, [NSString stringWithCString:descriptor.label encoding:NSUTF8StringEncoding]))
             return result;
     }
 
@@ -182,7 +182,7 @@
     return { WTFMove(flattenedCompilationMessages), WTFMove(flattenedMessages) };
 }
 
-void ShaderModule::getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo*)>&& callback)
+void ShaderModule::getCompilationInfo(WTF::Function<void(WGPUCompilationInfoRequestStatus, const WGPUCompilationInfo&)>&& callback)
 {
     WTF::switchOn(m_checkResult, [&] (const WGSL::SuccessfulCheck& successfulCheck) {
         auto compilationMessageData(convertMessages({ successfulCheck.warnings, WGPUCompilationMessageType_Warning }));
@@ -191,7 +191,7 @@
             static_cast<uint32_t>(compilationMessageData.compilationMessages.size()),
             compilationMessageData.compilationMessages.data(),
         };
-        callback(WGPUCompilationInfoRequestStatus_Success, &compilationInfo);
+        callback(WGPUCompilationInfoRequestStatus_Success, compilationInfo);
     }, [&] (const WGSL::FailedCheck& failedCheck) {
         auto compilationMessageData(convertMessages(
             { failedCheck.errors, WGPUCompilationMessageType_Error },
@@ -201,7 +201,7 @@
             static_cast<uint32_t>(compilationMessageData.compilationMessages.size()),
             compilationMessageData.compilationMessages.data(),
         };
-        callback(WGPUCompilationInfoRequestStatus_Error, &compilationInfo);
+        callback(WGPUCompilationInfoRequestStatus_Error, compilationInfo);
     });
 }
 
@@ -252,15 +252,15 @@
 
 void wgpuShaderModuleGetCompilationInfo(WGPUShaderModule shaderModule, WGPUCompilationInfoCallback callback, void * userdata)
 {
-    shaderModule->shaderModule->getCompilationInfo([callback, userdata] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo* compilationInfo) {
-        callback(status, compilationInfo, userdata);
+    shaderModule->shaderModule->getCompilationInfo([callback, userdata] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo& compilationInfo) {
+        callback(status, &compilationInfo, userdata);
     });
 }
 
 void wgpuShaderModuleGetCompilationInfoWithBlock(WGPUShaderModule shaderModule, WGPUCompilationInfoBlockCallback callback)
 {
-    shaderModule->shaderModule->getCompilationInfo([callback] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo* compilationInfo) {
-        callback(status, compilationInfo);
+    shaderModule->shaderModule->getCompilationInfo([callback] (WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo& compilationInfo) {
+        callback(status, &compilationInfo);
     });
 }
 

Modified: trunk/Source/WebGPU/WebGPU/SwapChain.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/SwapChain.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/SwapChain.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,7 +31,7 @@
 
 namespace WebGPU {
 
-RefPtr<SwapChain> Device::createSwapChain(const Surface& surface, const WGPUSwapChainDescriptor* descriptor)
+RefPtr<SwapChain> Device::createSwapChain(const Surface& surface, const WGPUSwapChainDescriptor& descriptor)
 {
     UNUSED_PARAM(surface);
     UNUSED_PARAM(descriptor);

Modified: trunk/Source/WebGPU/WebGPU/Texture.h (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Texture.h	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Texture.h	2022-03-07 06:43:16 UTC (rev 290877)
@@ -44,7 +44,7 @@
 
     ~Texture();
 
-    RefPtr<TextureView> createView(const WGPUTextureViewDescriptor*);
+    RefPtr<TextureView> createView(const WGPUTextureViewDescriptor&);
     void destroy();
     void setLabel(const char*);
 

Modified: trunk/Source/WebGPU/WebGPU/Texture.mm (290876 => 290877)


--- trunk/Source/WebGPU/WebGPU/Texture.mm	2022-03-07 03:52:57 UTC (rev 290876)
+++ trunk/Source/WebGPU/WebGPU/Texture.mm	2022-03-07 06:43:16 UTC (rev 290877)
@@ -31,7 +31,7 @@
 
 namespace WebGPU {
 
-RefPtr<Texture> Device::createTexture(const WGPUTextureDescriptor* descriptor)
+RefPtr<Texture> Device::createTexture(const WGPUTextureDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return Texture::create(nil);
@@ -44,7 +44,7 @@
 
 Texture::~Texture() = default;
 
-RefPtr<TextureView> Texture::createView(const WGPUTextureViewDescriptor* descriptor)
+RefPtr<TextureView> Texture::createView(const WGPUTextureViewDescriptor& descriptor)
 {
     UNUSED_PARAM(descriptor);
     return TextureView::create(nil);
@@ -68,7 +68,7 @@
 
 WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, const WGPUTextureViewDescriptor* descriptor)
 {
-    auto result = texture->texture->createView(descriptor);
+    auto result = texture->texture->createView(*descriptor);
     return result ? new WGPUTextureViewImpl { result.releaseNonNull() } : nullptr;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to