// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// https://gpuweb.github.io/gpuweb/
typedef unsigned long long GPUSize64Out;
[
Exposed=(Window, Worker),
SecureContext
] interface GPUBuffer {
[CallWith=ScriptState, RaisesException] Promise<undefined> mapAsync(
GPUMapModeFlags mode,
optional GPUSize64 offset = 0,
optional GPUSize64 size);
[CallWith=ScriptState, RaisesException] ArrayBuffer getMappedRange(
optional GPUSize64 offset = 0,
optional GPUSize64 size);
[CallWith=Isolate] void unmap();
[CallWith=Isolate] void destroy();
readonly attribute GPUSize64Out size;
readonly attribute GPUFlagsConstant usage;
readonly attribute GPUBufferMapState mapState;
};
GPUBuffer includes GPUObjectBase;
enum GPUBufferMapState {
"unmapped",
"pending",
"mapped"
};