mirror of
https://github.com/servo/servo.git
synced 2025-06-19 22:59:03 +01:00
Implemented the `mapReadAsync` and fixed the `unmap` functions of `GPUBuffer`. Added `mapped` internal slot for tracking the ArrayBuffer/Promise. Added more states to the `GPUBufferState` enum.
25 lines
777 B
Text
25 lines
777 B
Text
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
// https://gpuweb.github.io/gpuweb/#gpubuffer
|
|
[Exposed=(Window, DedicatedWorker), Serializable, Pref="dom.webgpu.enabled"]
|
|
interface GPUBuffer {
|
|
Promise<ArrayBuffer> mapReadAsync();
|
|
// Promise<ArrayBuffer> mapWriteAsync();
|
|
void unmap();
|
|
|
|
void destroy();
|
|
};
|
|
GPUBuffer includes GPUObjectBase;
|
|
|
|
dictionary GPUBufferDescriptor : GPUObjectDescriptorBase {
|
|
required GPUBufferSize size;
|
|
required GPUBufferUsageFlags usage;
|
|
};
|
|
|
|
typedef unsigned long long GPUBufferSize;
|
|
|
|
typedef unsigned long GPUBufferUsageFlags;
|
|
|
|
typedef sequence<any> GPUMappedBuffer;
|