diff options
Diffstat (limited to 'components/script/dom/webidls')
-rw-r--r-- | components/script/dom/webidls/GPUBuffer.webidl | 25 | ||||
-rw-r--r-- | components/script/dom/webidls/GPUBufferUsage.webidl | 17 | ||||
-rw-r--r-- | components/script/dom/webidls/GPUDevice.webidl | 4 |
3 files changed, 44 insertions, 2 deletions
diff --git a/components/script/dom/webidls/GPUBuffer.webidl b/components/script/dom/webidls/GPUBuffer.webidl new file mode 100644 index 00000000000..0b327bdcbd2 --- /dev/null +++ b/components/script/dom/webidls/GPUBuffer.webidl @@ -0,0 +1,25 @@ +/* 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; diff --git a/components/script/dom/webidls/GPUBufferUsage.webidl b/components/script/dom/webidls/GPUBufferUsage.webidl new file mode 100644 index 00000000000..549f6652d1f --- /dev/null +++ b/components/script/dom/webidls/GPUBufferUsage.webidl @@ -0,0 +1,17 @@ +/* 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/#buffer-usage +[Exposed=(Window, DedicatedWorker), Pref="dom.webgpu.enabled"] +interface GPUBufferUsage { + const GPUBufferUsageFlags MAP_READ = 0x0001; + const GPUBufferUsageFlags MAP_WRITE = 0x0002; + const GPUBufferUsageFlags COPY_SRC = 0x0004; + const GPUBufferUsageFlags COPY_DST = 0x0008; + const GPUBufferUsageFlags INDEX = 0x0010; + const GPUBufferUsageFlags VERTEX = 0x0020; + const GPUBufferUsageFlags UNIFORM = 0x0040; + const GPUBufferUsageFlags STORAGE = 0x0080; + const GPUBufferUsageFlags INDIRECT = 0x0100; +}; diff --git a/components/script/dom/webidls/GPUDevice.webidl b/components/script/dom/webidls/GPUDevice.webidl index 1cd441e6ef3..965f7e1b7d5 100644 --- a/components/script/dom/webidls/GPUDevice.webidl +++ b/components/script/dom/webidls/GPUDevice.webidl @@ -9,9 +9,9 @@ interface GPUDevice : EventTarget { readonly attribute object extensions; readonly attribute object limits; - /*GPUBuffer createBuffer(GPUBufferDescriptor descriptor); + GPUBuffer createBuffer(GPUBufferDescriptor descriptor); GPUMappedBuffer createBufferMapped(GPUBufferDescriptor descriptor); - Promise<GPUMappedBuffer> createBufferMappedAsync(GPUBufferDescriptor descriptor); + /*Promise<GPUMappedBuffer> createBufferMappedAsync(GPUBufferDescriptor descriptor); GPUTexture createTexture(GPUTextureDescriptor descriptor); GPUSampler createSampler(optional GPUSamplerDescriptor descriptor = {}); |