| /* |
| * Copyright (C) 2017 Apple Inc. All rights reserved. |
| * Copyright (C) 2017 Yuichiro Kikura (y.kikura@gmail.com) |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY |
| * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| [ |
| Conditional=WEBGPU, |
| EnabledAtRuntime=WebGPU, |
| JSCustomMarkFunction, |
| DoNotCheckConstants |
| ] interface WebGPURenderingContext { |
| // back-reference to the canvas |
| readonly attribute HTMLCanvasElement canvas; |
| |
| // Pixel formats |
| |
| const unsigned int PixelFormatBGRA8Unorm = 80; |
| const unsigned int PixelFormatDepth32Float = 252; |
| const unsigned int PixelFormatStencil8 = 253; |
| const unsigned int PixelFormatInvalid = 0; |
| |
| // Load actions |
| |
| const unsigned int LoadActionDontCare = 0; |
| const unsigned int LoadActionLoad = 1; |
| const unsigned int LoadActionClear = 2; |
| |
| // Store actions |
| |
| const unsigned int StoreActionDontCare = 0; |
| const unsigned int StoreActionStore = 1; |
| const unsigned int StoreActionMultisampleResolve = 2; |
| |
| // Primitive types |
| |
| const unsigned int PrimitiveTypePoint = 0; |
| const unsigned int PrimitiveTypeLine = 1; |
| const unsigned int PrimitiveTypeLineStrip = 2; |
| const unsigned int PrimitiveTypeTriangle = 3; |
| const unsigned int PrimitiveTypeTriangleStrip = 4; |
| |
| // Comparison functions |
| |
| const unsigned int CompareFunctionNever = 0; |
| const unsigned int CompareFunctionLess = 1; |
| const unsigned int CompareFunctionEqual = 2; |
| const unsigned int CompareFunctionLessEqual = 3; |
| const unsigned int CompareFunctionGreater = 4; |
| const unsigned int CompareFunctionNotEqual = 5; |
| const unsigned int CompareFunctionGreaterEqual = 6; |
| const unsigned int CompareFunctionAlways = 7; |
| |
| // Texture Types |
| |
| const unsigned int TextureType1D = 0; |
| const unsigned int TextureType1DArray = 1; |
| const unsigned int TextureType2D = 2; |
| const unsigned int TextureType2DArray = 3; |
| const unsigned int TextureType2DMultisample = 4; |
| const unsigned int TextureTypeCube = 5; |
| const unsigned int TextureTypeCubeArray = 6; |
| const unsigned int TextureType3D = 7; |
| |
| // Storage modes |
| |
| const unsigned int StorageModeShared = 0; |
| const unsigned int StorageModeManaged = 1; |
| const unsigned int StorageModePrivate = 2; |
| |
| // Usage |
| |
| const unsigned int TextureUsageUnknown = 0x0000; |
| const unsigned int TextureUsageShaderRead = 0x0001; |
| const unsigned int TextureUsageShaderWrite = 0x0002; |
| const unsigned int TextureUsageRenderTarget = 0x0004; |
| const unsigned int TextureUsagePixelFormatView = 0x0010; |
| |
| // Entry points |
| |
| WebGPULibrary createLibrary(DOMString sourceCode); |
| |
| WebGPURenderPipelineState? createRenderPipelineState(WebGPURenderPipelineDescriptor descriptor); |
| WebGPUDepthStencilState? createDepthStencilState(WebGPUDepthStencilDescriptor descriptor); |
| WebGPUComputePipelineState? createComputePipelineState(WebGPUFunction function); |
| |
| WebGPUCommandQueue? createCommandQueue(); |
| |
| WebGPUDrawable? nextDrawable(); |
| |
| WebGPUBuffer? createBuffer(ArrayBufferView data); |
| |
| WebGPUTexture? createTexture(WebGPUTextureDescriptor descriptor); |
| |
| }; |