Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Source/WebCore/Modules/WebGPU/GPUBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,16 @@ void GPUBuffer::setLabel(String&& label)
m_backing->setLabel(WTFMove(label));
}

void GPUBuffer::mapAsync(GPUMapModeFlags mode, GPUSize64 offset, std::optional<GPUSize64> size, MapAsyncPromise&& promise)
void GPUBuffer::mapAsync(GPUMapModeFlags mode, std::optional<GPUSize64> offset, std::optional<GPUSize64> size, MapAsyncPromise&& promise)
{
m_backing->mapAsync(convertMapModeFlagsToBacking(mode), offset, size, [promise = WTFMove(promise)] () mutable {
m_backing->mapAsync(convertMapModeFlagsToBacking(mode), offset.value_or(0), size, [promise = WTFMove(promise)] () mutable {
promise.resolve(nullptr);
});
}

Ref<JSC::ArrayBuffer> GPUBuffer::getMappedRange(GPUSize64 offset, std::optional<GPUSize64> size)
Ref<JSC::ArrayBuffer> GPUBuffer::getMappedRange(std::optional<GPUSize64> offset, std::optional<GPUSize64> size)
{
auto mappedRange = m_backing->getMappedRange(offset, size);
auto mappedRange = m_backing->getMappedRange(offset.value_or(0), size);
return ArrayBuffer::create(mappedRange.source, mappedRange.byteLength);
}

Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/Modules/WebGPU/GPUBuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ class GPUBuffer : public RefCounted<GPUBuffer> {
void setLabel(String&&);

using MapAsyncPromise = DOMPromiseDeferred<IDLNull>;
void mapAsync(GPUMapModeFlags, GPUSize64 offset, std::optional<GPUSize64> sizeForMap, MapAsyncPromise&&);
Ref<JSC::ArrayBuffer> getMappedRange(GPUSize64 offset, std::optional<GPUSize64> rangeSize);
void mapAsync(GPUMapModeFlags, std::optional<GPUSize64> offset, std::optional<GPUSize64> sizeForMap, MapAsyncPromise&&);
Ref<JSC::ArrayBuffer> getMappedRange(std::optional<GPUSize64> offset, std::optional<GPUSize64> rangeSize);
void unmap();

void destroy();
Expand Down
5 changes: 3 additions & 2 deletions Source/WebCore/Modules/WebGPU/GPUBuffer.idl
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ typedef [EnforceRange] unsigned long long GPUSize64;
SecureContext
]
interface GPUBuffer {
Promise<undefined> mapAsync(GPUMapModeFlags mode, optional GPUSize64 offset = 0, optional GPUSize64 size);
ArrayBuffer getMappedRange(optional GPUSize64 offset = 0, optional GPUSize64 size);
// FIXME: https://bugs.webkit.org/show_bug.cgi?id=240219 The next two lines should be able to say "optional thingy = 0" instead of just "optional thingy".
Promise<undefined> mapAsync(GPUMapModeFlags mode, optional GPUSize64 offset, optional GPUSize64 size);
ArrayBuffer getMappedRange(optional GPUSize64 offset, optional GPUSize64 size);
undefined unmap();

undefined destroy();
Expand Down