Utility.h (2348B)
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #ifndef GPU_UTIL_H_ 7 #define GPU_UTIL_H_ 8 9 #include "mozilla/dom/TypedArray.h" 10 #include "mozilla/dom/WebGPUBinding.h" 11 12 namespace mozilla { 13 class ErrorResult; 14 15 namespace dom { 16 struct GPUComputePassDescriptor; 17 enum class PredefinedColorSpace : uint8_t; 18 template <typename T> 19 class Sequence; 20 using GPUExtent3D = RangeEnforcedUnsignedLongSequenceOrGPUExtent3DDict; 21 using OwningGPUExtent3D = 22 OwningRangeEnforcedUnsignedLongSequenceOrGPUExtent3DDict; 23 } // namespace dom 24 namespace webgpu { 25 namespace ffi { 26 struct WGPUExtent3d; 27 } // namespace ffi 28 29 void ConvertExtent3DToFFI(const dom::GPUExtent3D& aExtent, 30 ffi::WGPUExtent3d* aExtentFFI); 31 32 void ConvertExtent3DToFFI(const dom::OwningGPUExtent3D& aExtent, 33 ffi::WGPUExtent3d* aExtentFFI); 34 35 ffi::WGPUExtent3d ConvertExtent(const dom::GPUExtent3D& aExtent); 36 37 ffi::WGPUExtent3d ConvertExtent(const dom::OwningGPUExtent3D& aExtent); 38 39 ffi::WGPUCompareFunction ConvertCompareFunction( 40 const dom::GPUCompareFunction& aCompare); 41 42 ffi::WGPUTextureFormat ConvertTextureFormat( 43 const dom::GPUTextureFormat& aFormat); 44 45 ffi::WGPUTextureAspect ConvertTextureAspect( 46 const dom::GPUTextureAspect& aAspect); 47 48 ffi::WGPUVertexFormat ConvertVertexFormat(const dom::GPUVertexFormat& aFormat); 49 50 ffi::WGPUMultisampleState ConvertMultisampleState( 51 const dom::GPUMultisampleState& aDesc); 52 53 ffi::WGPUBlendComponent ConvertBlendComponent( 54 const dom::GPUBlendComponent& aDesc); 55 56 ffi::WGPUStencilFaceState ConvertStencilFaceState( 57 const dom::GPUStencilFaceState& aDesc); 58 59 ffi::WGPUDepthStencilState ConvertDepthStencilState( 60 const dom::GPUDepthStencilState& aDesc); 61 62 ffi::WGPUPredefinedColorSpace ConvertPredefinedColorSpace( 63 const dom::PredefinedColorSpace& aColorSpace); 64 65 mozilla::Maybe<mozilla::Buffer<uint32_t>> GetDynamicOffsetsFromArray( 66 const dom::Uint32Array& aDynamicOffsetsData, 67 uint64_t aDynamicOffsetsDataStart, uint64_t aDynamicOffsetsDataLength, 68 ErrorResult& aRv); 69 70 } // namespace webgpu 71 } // namespace mozilla 72 73 #endif // GPU_UTIL_H_