"use strict";
((window) => {
const webidl = window.__bootstrap.webidl;
const {
GPU,
GPUAdapter,
GPUSupportedLimits,
GPUSupportedFeatures,
GPUDevice,
GPUQueue,
GPUBuffer,
GPUBufferUsage,
GPUMapMode,
GPUTextureUsage,
GPUTexture,
GPUTextureView,
GPUSampler,
GPUBindGroupLayout,
GPUPipelineLayout,
GPUBindGroup,
GPUShaderModule,
GPUShaderStage,
GPUComputePipeline,
GPURenderPipeline,
GPUColorWrite,
GPUCommandEncoder,
GPURenderPassEncoder,
GPUComputePassEncoder,
GPUCommandBuffer,
GPURenderBundleEncoder,
GPURenderBundle,
GPUQuerySet,
GPUOutOfMemoryError,
GPUValidationError,
} = window.__bootstrap.webgpu;
const { SymbolIterator, TypeError } = window.__bootstrap.primordials;
const dictMembersGPUObjectDescriptorBase = [
{ key: "label", converter: webidl.converters["USVString"] },
];
webidl.converters["GPUObjectDescriptorBase"] = webidl
.createDictionaryConverter(
"GPUObjectDescriptorBase",
dictMembersGPUObjectDescriptorBase,
);
webidl.converters.GPUSupportedLimits = webidl.createInterfaceConverter(
"GPUSupportedLimits",
GPUSupportedLimits,
);
webidl.converters.GPUSupportedFeatures = webidl.createInterfaceConverter(
"GPUSupportedFeatures",
GPUSupportedFeatures,
);
webidl.converters.GPUPredefinedColorSpace = webidl.createEnumConverter(
"GPUPredefinedColorSpace",
["srgb"],
);
webidl.converters.GPU = webidl.createInterfaceConverter("GPU", GPU);
webidl.converters["GPUPowerPreference"] = webidl.createEnumConverter(
"GPUPowerPreference",
[
"low-power",
"high-performance",
],
);
const dictMembersGPURequestAdapterOptions = [
{
key: "powerPreference",
converter: webidl.converters["GPUPowerPreference"],
},
{
key: "forceFallbackAdapter",
converter: webidl.converters.boolean,
defaultValue: false,
},
];
webidl.converters["GPURequestAdapterOptions"] = webidl
.createDictionaryConverter(
"GPURequestAdapterOptions",
dictMembersGPURequestAdapterOptions,
);
webidl.converters.GPUAdapter = webidl.createInterfaceConverter(
"GPUAdapter",
GPUAdapter,
);
webidl.converters["GPUFeatureName"] = webidl.createEnumConverter(
"GPUFeatureName",
[
"depth-clamping",
"depth24unorm-stencil8",
"depth32float-stencil8",
"pipeline-statistics-query",
"texture-compression-bc",
"timestamp-query",
"mappable-primary-buffers",
"sampled-texture-binding-array",
"sampled-texture-array-dynamic-indexing",
"sampled-texture-array-non-uniform-indexing",
"unsized-binding-array",
"multi-draw-indirect",
"multi-draw-indirect-count",
"push-constants",
"address-mode-clamp-to-border",
"non-fill-polygon-mode",
"texture-compression-etc2",
"texture-compression-astc-ldr",
"texture-adapter-specific-format-features",
"shader-float64",
"vertex-attribute-64bit",
],
);
webidl.converters["GPUSize32"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
const dictMembersGPUDeviceDescriptor = [
{
key: "nonGuaranteedFeatures",
converter: webidl.createSequenceConverter(
webidl.converters["GPUFeatureName"],
),
get defaultValue() {
return [];
},
},
{
key: "nonGuaranteedLimits",
converter: webidl.createRecordConverter(
webidl.converters["DOMString"],
webidl.converters["GPUSize32"],
),
get defaultValue() {
return {};
},
},
];
webidl.converters["GPUDeviceDescriptor"] = webidl.createDictionaryConverter(
"GPUDeviceDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUDeviceDescriptor,
);
webidl.converters.GPUDevice = webidl.createInterfaceConverter(
"GPUDevice",
GPUDevice,
);
webidl.converters.GPUBuffer = webidl.createInterfaceConverter(
"GPUBuffer",
GPUBuffer,
);
webidl.converters["GPUSize64"] = (V, opts) =>
webidl.converters["unsigned long long"](V, { ...opts, enforceRange: true });
webidl.converters["GPUBufferUsageFlags"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
const dictMembersGPUBufferDescriptor = [
{ key: "size", converter: webidl.converters["GPUSize64"], required: true },
{
key: "usage",
converter: webidl.converters["GPUBufferUsageFlags"],
required: true,
},
{
key: "mappedAtCreation",
converter: webidl.converters["boolean"],
defaultValue: false,
},
];
webidl.converters["GPUBufferDescriptor"] = webidl.createDictionaryConverter(
"GPUBufferDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUBufferDescriptor,
);
webidl.converters.GPUBufferUsage = webidl.createInterfaceConverter(
"GPUBufferUsage",
GPUBufferUsage,
);
webidl.converters["GPUMapModeFlags"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
webidl.converters.GPUMapMode = webidl.createInterfaceConverter(
"GPUMapMode",
GPUMapMode,
);
webidl.converters.GPUTexture = webidl.createInterfaceConverter(
"GPUTexture",
GPUTexture,
);
webidl.converters["GPUIntegerCoordinate"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
webidl.converters["sequence<GPUIntegerCoordinate>"] = webidl
.createSequenceConverter(webidl.converters["GPUIntegerCoordinate"]);
const dictMembersGPUExtent3DDict = [
{
key: "width",
converter: webidl.converters["GPUIntegerCoordinate"],
required: true,
},
{
key: "height",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 1,
},
{
key: "depthOrArrayLayers",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 1,
},
];
webidl.converters["GPUExtent3DDict"] = webidl.createDictionaryConverter(
"GPUExtent3DDict",
dictMembersGPUExtent3DDict,
);
webidl.converters["GPUExtent3D"] = (V, opts) => {
if (V === null || V === undefined) {
return webidl.converters["GPUExtent3DDict"](V, opts);
}
if (typeof V === "object") {
const method = V[SymbolIterator];
if (method !== undefined) {
return webidl.converters["sequence<GPUIntegerCoordinate>"](V, opts);
}
return webidl.converters["GPUExtent3DDict"](V, opts);
}
throw webidl.makeException(
TypeError,
"can not be converted to sequence<GPUIntegerCoordinate> or GPUExtent3DDict.",
opts,
);
};
webidl.converters["GPUTextureDimension"] = webidl.createEnumConverter(
"GPUTextureDimension",
[
"1d",
"2d",
"3d",
],
);
webidl.converters["GPUTextureFormat"] = webidl.createEnumConverter(
"GPUTextureFormat",
[
"r8unorm",
"r8snorm",
"r8uint",
"r8sint",
"r16uint",
"r16sint",
"r16float",
"rg8unorm",
"rg8snorm",
"rg8uint",
"rg8sint",
"r32uint",
"r32sint",
"r32float",
"rg16uint",
"rg16sint",
"rg16float",
"rgba8unorm",
"rgba8unorm-srgb",
"rgba8snorm",
"rgba8uint",
"rgba8sint",
"bgra8unorm",
"bgra8unorm-srgb",
"rgb9e5ufloat",
"rgb10a2unorm",
"rg11b10ufloat",
"rg32uint",
"rg32sint",
"rg32float",
"rgba16uint",
"rgba16sint",
"rgba16float",
"rgba32uint",
"rgba32sint",
"rgba32float",
"stencil8",
"depth16unorm",
"depth24plus",
"depth24plus-stencil8",
"depth32float",
"bc1-rgba-unorm",
"bc1-rgba-unorm-srgb",
"bc2-rgba-unorm",
"bc2-rgba-unorm-srgb",
"bc3-rgba-unorm",
"bc3-rgba-unorm-srgb",
"bc4-r-unorm",
"bc4-r-snorm",
"bc5-rg-unorm",
"bc5-rg-snorm",
"bc6h-rgb-ufloat",
"bc6h-rgb-float",
"bc7-rgba-unorm",
"bc7-rgba-unorm-srgb",
"depth24unorm-stencil8",
"depth32float-stencil8",
],
);
webidl.converters["GPUTextureUsageFlags"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
const dictMembersGPUTextureDescriptor = [
{
key: "size",
converter: webidl.converters["GPUExtent3D"],
required: true,
},
{
key: "mipLevelCount",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 1,
},
{
key: "sampleCount",
converter: webidl.converters["GPUSize32"],
defaultValue: 1,
},
{
key: "dimension",
converter: webidl.converters["GPUTextureDimension"],
defaultValue: "2d",
},
{
key: "format",
converter: webidl.converters["GPUTextureFormat"],
required: true,
},
{
key: "usage",
converter: webidl.converters["GPUTextureUsageFlags"],
required: true,
},
];
webidl.converters["GPUTextureDescriptor"] = webidl.createDictionaryConverter(
"GPUTextureDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUTextureDescriptor,
);
webidl.converters.GPUTextureUsage = webidl.createInterfaceConverter(
"GPUTextureUsage",
GPUTextureUsage,
);
webidl.converters.GPUTextureView = webidl.createInterfaceConverter(
"GPUTextureView",
GPUTextureView,
);
webidl.converters["GPUTextureViewDimension"] = webidl.createEnumConverter(
"GPUTextureViewDimension",
[
"1d",
"2d",
"2d-array",
"cube",
"cube-array",
"3d",
],
);
webidl.converters["GPUTextureAspect"] = webidl.createEnumConverter(
"GPUTextureAspect",
[
"all",
"stencil-only",
"depth-only",
],
);
const dictMembersGPUTextureViewDescriptor = [
{ key: "format", converter: webidl.converters["GPUTextureFormat"] },
{
key: "dimension",
converter: webidl.converters["GPUTextureViewDimension"],
},
{
key: "aspect",
converter: webidl.converters["GPUTextureAspect"],
defaultValue: "all",
},
{
key: "baseMipLevel",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
{
key: "mipLevelCount",
converter: webidl.converters["GPUIntegerCoordinate"],
},
{
key: "baseArrayLayer",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
{
key: "arrayLayerCount",
converter: webidl.converters["GPUIntegerCoordinate"],
},
];
webidl.converters["GPUTextureViewDescriptor"] = webidl
.createDictionaryConverter(
"GPUTextureViewDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUTextureViewDescriptor,
);
webidl.converters.GPUSampler = webidl.createInterfaceConverter(
"GPUSampler",
GPUSampler,
);
webidl.converters["GPUAddressMode"] = webidl.createEnumConverter(
"GPUAddressMode",
[
"clamp-to-edge",
"repeat",
"mirror-repeat",
],
);
webidl.converters["GPUFilterMode"] = webidl.createEnumConverter(
"GPUFilterMode",
[
"nearest",
"linear",
],
);
webidl.converters["GPUCompareFunction"] = webidl.createEnumConverter(
"GPUCompareFunction",
[
"never",
"less",
"equal",
"less-equal",
"greater",
"not-equal",
"greater-equal",
"always",
],
);
const dictMembersGPUSamplerDescriptor = [
{
key: "addressModeU",
converter: webidl.converters["GPUAddressMode"],
defaultValue: "clamp-to-edge",
},
{
key: "addressModeV",
converter: webidl.converters["GPUAddressMode"],
defaultValue: "clamp-to-edge",
},
{
key: "addressModeW",
converter: webidl.converters["GPUAddressMode"],
defaultValue: "clamp-to-edge",
},
{
key: "magFilter",
converter: webidl.converters["GPUFilterMode"],
defaultValue: "nearest",
},
{
key: "minFilter",
converter: webidl.converters["GPUFilterMode"],
defaultValue: "nearest",
},
{
key: "mipmapFilter",
converter: webidl.converters["GPUFilterMode"],
defaultValue: "nearest",
},
{
key: "lodMinClamp",
converter: webidl.converters["float"],
defaultValue: 0,
},
{
key: "lodMaxClamp",
converter: webidl.converters["float"],
defaultValue: 0xffffffff,
},
{ key: "compare", converter: webidl.converters["GPUCompareFunction"] },
{
key: "maxAnisotropy",
converter: (V, opts) =>
webidl.converters["unsigned short"](V, { ...opts, clamp: true }),
defaultValue: 1,
},
];
webidl.converters["GPUSamplerDescriptor"] = webidl.createDictionaryConverter(
"GPUSamplerDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUSamplerDescriptor,
);
webidl.converters.GPUBindGroupLayout = webidl.createInterfaceConverter(
"GPUBindGroupLayout",
GPUBindGroupLayout,
);
webidl.converters["GPUIndex32"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
webidl.converters["GPUShaderStageFlags"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
webidl.converters["GPUBufferBindingType"] = webidl.createEnumConverter(
"GPUBufferBindingType",
[
"uniform",
"storage",
"read-only-storage",
],
);
const dictMembersGPUBufferBindingLayout = [
{
key: "type",
converter: webidl.converters["GPUBufferBindingType"],
defaultValue: "uniform",
},
{
key: "hasDynamicOffset",
converter: webidl.converters["boolean"],
defaultValue: false,
},
{
key: "minBindingSize",
converter: webidl.converters["GPUSize64"],
defaultValue: 0,
},
];
webidl.converters["GPUBufferBindingLayout"] = webidl
.createDictionaryConverter(
"GPUBufferBindingLayout",
dictMembersGPUBufferBindingLayout,
);
webidl.converters["GPUSamplerBindingType"] = webidl.createEnumConverter(
"GPUSamplerBindingType",
[
"filtering",
"non-filtering",
"comparison",
],
);
const dictMembersGPUSamplerBindingLayout = [
{
key: "type",
converter: webidl.converters["GPUSamplerBindingType"],
defaultValue: "filtering",
},
];
webidl.converters["GPUSamplerBindingLayout"] = webidl
.createDictionaryConverter(
"GPUSamplerBindingLayout",
dictMembersGPUSamplerBindingLayout,
);
webidl.converters["GPUTextureSampleType"] = webidl.createEnumConverter(
"GPUTextureSampleType",
[
"float",
"unfilterable-float",
"depth",
"sint",
"uint",
],
);
const dictMembersGPUTextureBindingLayout = [
{
key: "sampleType",
converter: webidl.converters["GPUTextureSampleType"],
defaultValue: "float",
},
{
key: "viewDimension",
converter: webidl.converters["GPUTextureViewDimension"],
defaultValue: "2d",
},
{
key: "multisampled",
converter: webidl.converters["boolean"],
defaultValue: false,
},
];
webidl.converters["GPUTextureBindingLayout"] = webidl
.createDictionaryConverter(
"GPUTextureBindingLayout",
dictMembersGPUTextureBindingLayout,
);
webidl.converters["GPUStorageTextureAccess"] = webidl.createEnumConverter(
"GPUStorageTextureAccess",
[
"write-only",
],
);
const dictMembersGPUStorageTextureBindingLayout = [
{
key: "access",
converter: webidl.converters["GPUStorageTextureAccess"],
defaultValue: "write-only",
},
{
key: "format",
converter: webidl.converters["GPUTextureFormat"],
required: true,
},
{
key: "viewDimension",
converter: webidl.converters["GPUTextureViewDimension"],
defaultValue: "2d",
},
];
webidl.converters["GPUStorageTextureBindingLayout"] = webidl
.createDictionaryConverter(
"GPUStorageTextureBindingLayout",
dictMembersGPUStorageTextureBindingLayout,
);
const dictMembersGPUBindGroupLayoutEntry = [
{
key: "binding",
converter: webidl.converters["GPUIndex32"],
required: true,
},
{
key: "visibility",
converter: webidl.converters["GPUShaderStageFlags"],
required: true,
},
{ key: "buffer", converter: webidl.converters["GPUBufferBindingLayout"] },
{ key: "sampler", converter: webidl.converters["GPUSamplerBindingLayout"] },
{ key: "texture", converter: webidl.converters["GPUTextureBindingLayout"] },
{
key: "storageTexture",
converter: webidl.converters["GPUStorageTextureBindingLayout"],
},
];
webidl.converters["GPUBindGroupLayoutEntry"] = webidl
.createDictionaryConverter(
"GPUBindGroupLayoutEntry",
dictMembersGPUBindGroupLayoutEntry,
);
const dictMembersGPUBindGroupLayoutDescriptor = [
{
key: "entries",
converter: webidl.createSequenceConverter(
webidl.converters["GPUBindGroupLayoutEntry"],
),
required: true,
},
];
webidl.converters["GPUBindGroupLayoutDescriptor"] = webidl
.createDictionaryConverter(
"GPUBindGroupLayoutDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUBindGroupLayoutDescriptor,
);
webidl.converters.GPUShaderStage = webidl.createInterfaceConverter(
"GPUShaderStage",
GPUShaderStage,
);
webidl.converters.GPUBindGroup = webidl.createInterfaceConverter(
"GPUBindGroup",
GPUBindGroup,
);
const dictMembersGPUBufferBinding = [
{
key: "buffer",
converter: webidl.converters["GPUBuffer"],
required: true,
},
{
key: "offset",
converter: webidl.converters["GPUSize64"],
defaultValue: 0,
},
{ key: "size", converter: webidl.converters["GPUSize64"] },
];
webidl.converters["GPUBufferBinding"] = webidl.createDictionaryConverter(
"GPUBufferBinding",
dictMembersGPUBufferBinding,
);
webidl.converters["GPUBindingResource"] =
webidl.converters.any ;
const dictMembersGPUBindGroupEntry = [
{
key: "binding",
converter: webidl.converters["GPUIndex32"],
required: true,
},
{
key: "resource",
converter: webidl.converters["GPUBindingResource"],
required: true,
},
];
webidl.converters["GPUBindGroupEntry"] = webidl.createDictionaryConverter(
"GPUBindGroupEntry",
dictMembersGPUBindGroupEntry,
);
const dictMembersGPUBindGroupDescriptor = [
{
key: "layout",
converter: webidl.converters["GPUBindGroupLayout"],
required: true,
},
{
key: "entries",
converter: webidl.createSequenceConverter(
webidl.converters["GPUBindGroupEntry"],
),
required: true,
},
];
webidl.converters["GPUBindGroupDescriptor"] = webidl
.createDictionaryConverter(
"GPUBindGroupDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUBindGroupDescriptor,
);
webidl.converters.GPUPipelineLayout = webidl.createInterfaceConverter(
"GPUPipelineLayout",
GPUPipelineLayout,
);
const dictMembersGPUPipelineLayoutDescriptor = [
{
key: "bindGroupLayouts",
converter: webidl.createSequenceConverter(
webidl.converters["GPUBindGroupLayout"],
),
required: true,
},
];
webidl.converters["GPUPipelineLayoutDescriptor"] = webidl
.createDictionaryConverter(
"GPUPipelineLayoutDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUPipelineLayoutDescriptor,
);
webidl.converters.GPUShaderModule = webidl.createInterfaceConverter(
"GPUShaderModule",
GPUShaderModule,
);
const dictMembersGPUShaderModuleDescriptor = [
{
key: "code",
converter: webidl.converters["DOMString"],
required: true,
},
{ key: "sourceMap", converter: webidl.converters["object"] },
];
webidl.converters["GPUShaderModuleDescriptor"] = webidl
.createDictionaryConverter(
"GPUShaderModuleDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUShaderModuleDescriptor,
);
const dictMembersGPUPipelineDescriptorBase = [
{ key: "layout", converter: webidl.converters["GPUPipelineLayout"] },
];
webidl.converters["GPUPipelineDescriptorBase"] = webidl
.createDictionaryConverter(
"GPUPipelineDescriptorBase",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUPipelineDescriptorBase,
);
webidl.converters.GPUPipelineConstantValue = webidl.converters.double;
webidl.converters["record<USVString, GPUPipelineConstantValue>"] = webidl
.createRecordConverter(
webidl.converters.USVString,
webidl.converters.GPUPipelineConstantValue,
);
const dictMembersGPUProgrammableStage = [
{
key: "module",
converter: webidl.converters["GPUShaderModule"],
required: true,
},
{
key: "entryPoint",
converter: webidl.converters["USVString"],
required: true,
},
{
key: "constants",
converter:
webidl.converters["record<USVString, GPUPipelineConstantValue>"],
},
];
webidl.converters["GPUProgrammableStage"] = webidl.createDictionaryConverter(
"GPUProgrammableStage",
dictMembersGPUProgrammableStage,
);
webidl.converters.GPUComputePipeline = webidl.createInterfaceConverter(
"GPUComputePipeline",
GPUComputePipeline,
);
const dictMembersGPUComputePipelineDescriptor = [
{
key: "compute",
converter: webidl.converters["GPUProgrammableStage"],
required: true,
},
];
webidl.converters["GPUComputePipelineDescriptor"] = webidl
.createDictionaryConverter(
"GPUComputePipelineDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUPipelineDescriptorBase,
dictMembersGPUComputePipelineDescriptor,
);
webidl.converters.GPURenderPipeline = webidl.createInterfaceConverter(
"GPURenderPipeline",
GPURenderPipeline,
);
webidl.converters["GPUVertexStepMode"] = webidl.createEnumConverter(
"GPUVertexStepMode",
[
"vertex",
"instance",
],
);
webidl.converters["GPUVertexFormat"] = webidl.createEnumConverter(
"GPUVertexFormat",
[
"uint8x2",
"uint8x4",
"sint8x2",
"sint8x4",
"unorm8x2",
"unorm8x4",
"snorm8x2",
"snorm8x4",
"uint16x2",
"uint16x4",
"sint16x2",
"sint16x4",
"unorm16x2",
"unorm16x4",
"snorm16x2",
"snorm16x4",
"float16x2",
"float16x4",
"float32",
"float32x2",
"float32x3",
"float32x4",
"uint32",
"uint32x2",
"uint32x3",
"uint32x4",
"sint32",
"sint32x2",
"sint32x3",
"sint32x4",
],
);
const dictMembersGPUVertexAttribute = [
{
key: "format",
converter: webidl.converters["GPUVertexFormat"],
required: true,
},
{
key: "offset",
converter: webidl.converters["GPUSize64"],
required: true,
},
{
key: "shaderLocation",
converter: webidl.converters["GPUIndex32"],
required: true,
},
];
webidl.converters["GPUVertexAttribute"] = webidl.createDictionaryConverter(
"GPUVertexAttribute",
dictMembersGPUVertexAttribute,
);
const dictMembersGPUVertexBufferLayout = [
{
key: "arrayStride",
converter: webidl.converters["GPUSize64"],
required: true,
},
{
key: "stepMode",
converter: webidl.converters["GPUVertexStepMode"],
defaultValue: "vertex",
},
{
key: "attributes",
converter: webidl.createSequenceConverter(
webidl.converters["GPUVertexAttribute"],
),
required: true,
},
];
webidl.converters["GPUVertexBufferLayout"] = webidl.createDictionaryConverter(
"GPUVertexBufferLayout",
dictMembersGPUVertexBufferLayout,
);
const dictMembersGPUVertexState = [
{
key: "buffers",
converter: webidl.createSequenceConverter(
webidl.createNullableConverter(
webidl.converters["GPUVertexBufferLayout"],
),
),
get defaultValue() {
return [];
},
},
];
webidl.converters["GPUVertexState"] = webidl.createDictionaryConverter(
"GPUVertexState",
dictMembersGPUProgrammableStage,
dictMembersGPUVertexState,
);
webidl.converters["GPUPrimitiveTopology"] = webidl.createEnumConverter(
"GPUPrimitiveTopology",
[
"point-list",
"line-list",
"line-strip",
"triangle-list",
"triangle-strip",
],
);
webidl.converters["GPUIndexFormat"] = webidl.createEnumConverter(
"GPUIndexFormat",
[
"uint16",
"uint32",
],
);
webidl.converters["GPUFrontFace"] = webidl.createEnumConverter(
"GPUFrontFace",
[
"ccw",
"cw",
],
);
webidl.converters["GPUCullMode"] = webidl.createEnumConverter("GPUCullMode", [
"none",
"front",
"back",
]);
const dictMembersGPUPrimitiveState = [
{
key: "topology",
converter: webidl.converters["GPUPrimitiveTopology"],
defaultValue: "triangle-list",
},
{ key: "stripIndexFormat", converter: webidl.converters["GPUIndexFormat"] },
{
key: "frontFace",
converter: webidl.converters["GPUFrontFace"],
defaultValue: "ccw",
},
{
key: "cullMode",
converter: webidl.converters["GPUCullMode"],
defaultValue: "none",
},
{
key: "clampDepth",
converter: webidl.converters["boolean"],
defaultValue: false,
},
];
webidl.converters["GPUPrimitiveState"] = webidl.createDictionaryConverter(
"GPUPrimitiveState",
dictMembersGPUPrimitiveState,
);
webidl.converters["GPUStencilOperation"] = webidl.createEnumConverter(
"GPUStencilOperation",
[
"keep",
"zero",
"replace",
"invert",
"increment-clamp",
"decrement-clamp",
"increment-wrap",
"decrement-wrap",
],
);
const dictMembersGPUStencilFaceState = [
{
key: "compare",
converter: webidl.converters["GPUCompareFunction"],
defaultValue: "always",
},
{
key: "failOp",
converter: webidl.converters["GPUStencilOperation"],
defaultValue: "keep",
},
{
key: "depthFailOp",
converter: webidl.converters["GPUStencilOperation"],
defaultValue: "keep",
},
{
key: "passOp",
converter: webidl.converters["GPUStencilOperation"],
defaultValue: "keep",
},
];
webidl.converters["GPUStencilFaceState"] = webidl.createDictionaryConverter(
"GPUStencilFaceState",
dictMembersGPUStencilFaceState,
);
webidl.converters["GPUStencilValue"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
webidl.converters["GPUDepthBias"] = (V, opts) =>
webidl.converters["long"](V, { ...opts, enforceRange: true });
const dictMembersGPUDepthStencilState = [
{
key: "format",
converter: webidl.converters["GPUTextureFormat"],
required: true,
},
{
key: "depthWriteEnabled",
converter: webidl.converters["boolean"],
defaultValue: false,
},
{
key: "depthCompare",
converter: webidl.converters["GPUCompareFunction"],
defaultValue: "always",
},
{
key: "stencilFront",
converter: webidl.converters["GPUStencilFaceState"],
get defaultValue() {
return {};
},
},
{
key: "stencilBack",
converter: webidl.converters["GPUStencilFaceState"],
get defaultValue() {
return {};
},
},
{
key: "stencilReadMask",
converter: webidl.converters["GPUStencilValue"],
defaultValue: 0xFFFFFFFF,
},
{
key: "stencilWriteMask",
converter: webidl.converters["GPUStencilValue"],
defaultValue: 0xFFFFFFFF,
},
{
key: "depthBias",
converter: webidl.converters["GPUDepthBias"],
defaultValue: 0,
},
{
key: "depthBiasSlopeScale",
converter: webidl.converters["float"],
defaultValue: 0,
},
{
key: "depthBiasClamp",
converter: webidl.converters["float"],
defaultValue: 0,
},
];
webidl.converters["GPUDepthStencilState"] = webidl.createDictionaryConverter(
"GPUDepthStencilState",
dictMembersGPUDepthStencilState,
);
webidl.converters["GPUSampleMask"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
const dictMembersGPUMultisampleState = [
{
key: "count",
converter: webidl.converters["GPUSize32"],
defaultValue: 1,
},
{
key: "mask",
converter: webidl.converters["GPUSampleMask"],
defaultValue: 0xFFFFFFFF,
},
{
key: "alphaToCoverageEnabled",
converter: webidl.converters["boolean"],
defaultValue: false,
},
];
webidl.converters["GPUMultisampleState"] = webidl.createDictionaryConverter(
"GPUMultisampleState",
dictMembersGPUMultisampleState,
);
webidl.converters["GPUBlendFactor"] = webidl.createEnumConverter(
"GPUBlendFactor",
[
"zero",
"one",
"src",
"one-minus-src",
"src-alpha",
"one-minus-src-alpha",
"dst",
"one-minus-dst",
"dst-alpha",
"one-minus-dst-alpha",
"src-alpha-saturated",
"constant",
"one-minus-constant",
],
);
webidl.converters["GPUBlendOperation"] = webidl.createEnumConverter(
"GPUBlendOperation",
[
"add",
"subtract",
"reverse-subtract",
"min",
"max",
],
);
const dictMembersGPUBlendComponent = [
{
key: "srcFactor",
converter: webidl.converters["GPUBlendFactor"],
defaultValue: "one",
},
{
key: "dstFactor",
converter: webidl.converters["GPUBlendFactor"],
defaultValue: "zero",
},
{
key: "operation",
converter: webidl.converters["GPUBlendOperation"],
defaultValue: "add",
},
];
webidl.converters["GPUBlendComponent"] = webidl.createDictionaryConverter(
"GPUBlendComponent",
dictMembersGPUBlendComponent,
);
const dictMembersGPUBlendState = [
{
key: "color",
converter: webidl.converters["GPUBlendComponent"],
required: true,
},
{
key: "alpha",
converter: webidl.converters["GPUBlendComponent"],
required: true,
},
];
webidl.converters["GPUBlendState"] = webidl.createDictionaryConverter(
"GPUBlendState",
dictMembersGPUBlendState,
);
webidl.converters["GPUColorWriteFlags"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
const dictMembersGPUColorTargetState = [
{
key: "format",
converter: webidl.converters["GPUTextureFormat"],
required: true,
},
{ key: "blend", converter: webidl.converters["GPUBlendState"] },
{
key: "writeMask",
converter: webidl.converters["GPUColorWriteFlags"],
defaultValue: 0xF,
},
];
webidl.converters["GPUColorTargetState"] = webidl.createDictionaryConverter(
"GPUColorTargetState",
dictMembersGPUColorTargetState,
);
const dictMembersGPUFragmentState = [
{
key: "targets",
converter: webidl.createSequenceConverter(
webidl.converters["GPUColorTargetState"],
),
required: true,
},
];
webidl.converters["GPUFragmentState"] = webidl.createDictionaryConverter(
"GPUFragmentState",
dictMembersGPUProgrammableStage,
dictMembersGPUFragmentState,
);
const dictMembersGPURenderPipelineDescriptor = [
{
key: "vertex",
converter: webidl.converters["GPUVertexState"],
required: true,
},
{
key: "primitive",
converter: webidl.converters["GPUPrimitiveState"],
get defaultValue() {
return {};
},
},
{
key: "depthStencil",
converter: webidl.converters["GPUDepthStencilState"],
},
{
key: "multisample",
converter: webidl.converters["GPUMultisampleState"],
get defaultValue() {
return {};
},
},
{ key: "fragment", converter: webidl.converters["GPUFragmentState"] },
];
webidl.converters["GPURenderPipelineDescriptor"] = webidl
.createDictionaryConverter(
"GPURenderPipelineDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUPipelineDescriptorBase,
dictMembersGPURenderPipelineDescriptor,
);
webidl.converters.GPUColorWrite = webidl.createInterfaceConverter(
"GPUColorWrite",
GPUColorWrite,
);
webidl.converters.GPUCommandBuffer = webidl.createInterfaceConverter(
"GPUCommandBuffer",
GPUCommandBuffer,
);
webidl.converters["sequence<GPUCommandBuffer>"] = webidl
.createSequenceConverter(webidl.converters["GPUCommandBuffer"]);
const dictMembersGPUCommandBufferDescriptor = [];
webidl.converters["GPUCommandBufferDescriptor"] = webidl
.createDictionaryConverter(
"GPUCommandBufferDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUCommandBufferDescriptor,
);
webidl.converters.GPUCommandEncoder = webidl.createInterfaceConverter(
"GPUCommandEncoder",
GPUCommandEncoder,
);
const dictMembersGPUCommandEncoderDescriptor = [
{
key: "measureExecutionTime",
converter: webidl.converters["boolean"],
defaultValue: false,
},
];
webidl.converters["GPUCommandEncoderDescriptor"] = webidl
.createDictionaryConverter(
"GPUCommandEncoderDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUCommandEncoderDescriptor,
);
const dictMembersGPUImageDataLayout = [
{
key: "offset",
converter: webidl.converters["GPUSize64"],
defaultValue: 0,
},
{ key: "bytesPerRow", converter: webidl.converters["GPUSize32"] },
{ key: "rowsPerImage", converter: webidl.converters["GPUSize32"] },
];
webidl.converters["GPUImageDataLayout"] = webidl.createDictionaryConverter(
"GPUImageDataLayout",
dictMembersGPUImageDataLayout,
);
const dictMembersGPUImageCopyBuffer = [
{
key: "buffer",
converter: webidl.converters["GPUBuffer"],
required: true,
},
];
webidl.converters["GPUImageCopyBuffer"] = webidl.createDictionaryConverter(
"GPUImageCopyBuffer",
dictMembersGPUImageDataLayout,
dictMembersGPUImageCopyBuffer,
);
const dictMembersGPUOrigin3DDict = [
{
key: "x",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
{
key: "y",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
{
key: "z",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
];
webidl.converters["GPUOrigin3DDict"] = webidl.createDictionaryConverter(
"GPUOrigin3DDict",
dictMembersGPUOrigin3DDict,
);
webidl.converters["GPUOrigin3D"] = (V, opts) => {
if (V === null || V === undefined) {
return webidl.converters["GPUOrigin3DDict"](V, opts);
}
if (typeof V === "object") {
const method = V[SymbolIterator];
if (method !== undefined) {
return webidl.converters["sequence<GPUIntegerCoordinate>"](V, opts);
}
return webidl.converters["GPUOrigin3DDict"](V, opts);
}
throw webidl.makeException(
TypeError,
"can not be converted to sequence<GPUIntegerCoordinate> or GPUOrigin3DDict.",
opts,
);
};
const dictMembersGPUImageCopyTexture = [
{
key: "texture",
converter: webidl.converters["GPUTexture"],
required: true,
},
{
key: "mipLevel",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
{
key: "origin",
converter: webidl.converters["GPUOrigin3D"],
get defaultValue() {
return {};
},
},
{
key: "aspect",
converter: webidl.converters["GPUTextureAspect"],
defaultValue: "all",
},
];
webidl.converters["GPUImageCopyTexture"] = webidl.createDictionaryConverter(
"GPUImageCopyTexture",
dictMembersGPUImageCopyTexture,
);
const dictMembersGPUOrigin2DDict = [
{
key: "x",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
{
key: "y",
converter: webidl.converters["GPUIntegerCoordinate"],
defaultValue: 0,
},
];
webidl.converters["GPUOrigin2DDict"] = webidl.createDictionaryConverter(
"GPUOrigin2DDict",
dictMembersGPUOrigin2DDict,
);
webidl.converters["GPUOrigin2D"] = (V, opts) => {
if (V === null || V === undefined) {
return webidl.converters["GPUOrigin2DDict"](V, opts);
}
if (typeof V === "object") {
const method = V[SymbolIterator];
if (method !== undefined) {
return webidl.converters["sequence<GPUIntegerCoordinate>"](V, opts);
}
return webidl.converters["GPUOrigin2DDict"](V, opts);
}
throw webidl.makeException(
TypeError,
"can not be converted to sequence<GPUIntegerCoordinate> or GPUOrigin2DDict.",
opts,
);
};
webidl.converters.GPUComputePassEncoder = webidl.createInterfaceConverter(
"GPUComputePassEncoder",
GPUComputePassEncoder,
);
const dictMembersGPUComputePassDescriptor = [];
webidl.converters["GPUComputePassDescriptor"] = webidl
.createDictionaryConverter(
"GPUComputePassDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUComputePassDescriptor,
);
webidl.converters.GPURenderPassEncoder = webidl.createInterfaceConverter(
"GPURenderPassEncoder",
GPURenderPassEncoder,
);
webidl.converters["GPULoadOp"] = webidl.createEnumConverter("GPULoadOp", [
"load",
]);
const dictMembersGPUColorDict = [
{ key: "r", converter: webidl.converters["double"], required: true },
{ key: "g", converter: webidl.converters["double"], required: true },
{ key: "b", converter: webidl.converters["double"], required: true },
{ key: "a", converter: webidl.converters["double"], required: true },
];
webidl.converters["GPUColorDict"] = webidl.createDictionaryConverter(
"GPUColorDict",
dictMembersGPUColorDict,
);
webidl.converters["GPUColor"] = (V, opts) => {
if (V === null || V === undefined) {
return webidl.converters["GPUColorDict"](V, opts);
}
if (typeof V === "object") {
const method = V[SymbolIterator];
if (method !== undefined) {
return webidl.converters["sequence<double>"](V, opts);
}
return webidl.converters["GPUColorDict"](V, opts);
}
throw webidl.makeException(
TypeError,
"can not be converted to sequence<double> or GPUColorDict.",
opts,
);
};
webidl.converters["GPUStoreOp"] = webidl.createEnumConverter("GPUStoreOp", [
"store",
"discard",
]);
const dictMembersGPURenderPassColorAttachment = [
{
key: "view",
converter: webidl.converters["GPUTextureView"],
required: true,
},
{ key: "resolveTarget", converter: webidl.converters["GPUTextureView"] },
{
key: "loadValue",
converter: webidl.converters.any,
required: true,
},
{
key: "storeOp",
converter: webidl.converters["GPUStoreOp"],
required: true,
},
];
webidl.converters["GPURenderPassColorAttachment"] = webidl
.createDictionaryConverter(
"GPURenderPassColorAttachment",
dictMembersGPURenderPassColorAttachment,
);
const dictMembersGPURenderPassDepthStencilAttachment = [
{
key: "view",
converter: webidl.converters["GPUTextureView"],
required: true,
},
{
key: "depthLoadValue",
converter: webidl.converters.any,
required: true,
},
{
key: "depthStoreOp",
converter: webidl.converters["GPUStoreOp"],
required: true,
},
{
key: "depthReadOnly",
converter: webidl.converters["boolean"],
defaultValue: false,
},
{
key: "stencilLoadValue",
converter: webidl.converters.any,
required: true,
},
{
key: "stencilStoreOp",
converter: webidl.converters["GPUStoreOp"],
required: true,
},
{
key: "stencilReadOnly",
converter: webidl.converters["boolean"],
defaultValue: false,
},
];
webidl.converters["GPURenderPassDepthStencilAttachment"] = webidl
.createDictionaryConverter(
"GPURenderPassDepthStencilAttachment",
dictMembersGPURenderPassDepthStencilAttachment,
);
webidl.converters.GPUQuerySet = webidl.createInterfaceConverter(
"GPUQuerySet",
GPUQuerySet,
);
const dictMembersGPURenderPassDescriptor = [
{
key: "colorAttachments",
converter: webidl.createSequenceConverter(
webidl.converters["GPURenderPassColorAttachment"],
),
required: true,
},
{
key: "depthStencilAttachment",
converter: webidl.converters["GPURenderPassDepthStencilAttachment"],
},
{ key: "occlusionQuerySet", converter: webidl.converters["GPUQuerySet"] },
];
webidl.converters["GPURenderPassDescriptor"] = webidl
.createDictionaryConverter(
"GPURenderPassDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPURenderPassDescriptor,
);
webidl.converters.GPURenderBundle = webidl.createInterfaceConverter(
"GPURenderBundle",
GPURenderBundle,
);
webidl.converters["sequence<GPURenderBundle>"] = webidl
.createSequenceConverter(webidl.converters["GPURenderBundle"]);
const dictMembersGPURenderBundleDescriptor = [];
webidl.converters["GPURenderBundleDescriptor"] = webidl
.createDictionaryConverter(
"GPURenderBundleDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPURenderBundleDescriptor,
);
webidl.converters.GPURenderBundleEncoder = webidl.createInterfaceConverter(
"GPURenderBundleEncoder",
GPURenderBundleEncoder,
);
const dictMembersGPURenderPassLayout = [
{
key: "colorFormats",
converter: webidl.createSequenceConverter(
webidl.converters["GPUTextureFormat"],
),
required: true,
},
{
key: "depthStencilFormat",
converter: webidl.converters["GPUTextureFormat"],
},
{
key: "sampleCount",
converter: webidl.converters["GPUSize32"],
defaultValue: 1,
},
];
webidl.converters["GPURenderPassLayout"] = webidl
.createDictionaryConverter(
"GPURenderPassLayout",
dictMembersGPUObjectDescriptorBase,
dictMembersGPURenderPassLayout,
);
const dictMembersGPURenderBundleEncoderDescriptor = [
{
key: "depthReadOnly",
converter: webidl.converters.boolean,
defaultValue: false,
},
{
key: "stencilReadOnly",
converter: webidl.converters.boolean,
defaultValue: false,
},
];
webidl.converters["GPURenderBundleEncoderDescriptor"] = webidl
.createDictionaryConverter(
"GPURenderBundleEncoderDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPURenderPassLayout,
dictMembersGPURenderBundleEncoderDescriptor,
);
webidl.converters.GPUQueue = webidl.createInterfaceConverter(
"GPUQueue",
GPUQueue,
);
webidl.converters["GPUQueryType"] = webidl.createEnumConverter(
"GPUQueryType",
[
"occlusion",
"pipeline-statistics",
"timestamp",
],
);
webidl.converters["GPUPipelineStatisticName"] = webidl.createEnumConverter(
"GPUPipelineStatisticName",
[
"vertex-shader-invocations",
"clipper-invocations",
"clipper-primitives-out",
"fragment-shader-invocations",
"compute-shader-invocations",
],
);
const dictMembersGPUQuerySetDescriptor = [
{
key: "type",
converter: webidl.converters["GPUQueryType"],
required: true,
},
{ key: "count", converter: webidl.converters["GPUSize32"], required: true },
{
key: "pipelineStatistics",
converter: webidl.createSequenceConverter(
webidl.converters["GPUPipelineStatisticName"],
),
get defaultValue() {
return [];
},
},
];
webidl.converters["GPUQuerySetDescriptor"] = webidl.createDictionaryConverter(
"GPUQuerySetDescriptor",
dictMembersGPUObjectDescriptorBase,
dictMembersGPUQuerySetDescriptor,
);
webidl.converters["GPUDeviceLostReason"] = webidl.createEnumConverter(
"GPUDeviceLostReason",
[
"destroyed",
],
);
webidl.converters["GPUErrorFilter"] = webidl.createEnumConverter(
"GPUErrorFilter",
[
"out-of-memory",
"validation",
],
);
webidl.converters.GPUOutOfMemoryError = webidl.createInterfaceConverter(
"GPUOutOfMemoryError",
GPUOutOfMemoryError,
);
webidl.converters.GPUValidationError = webidl.createInterfaceConverter(
"GPUValidationError",
GPUValidationError,
);
webidl.converters["GPUError"] = webidl.converters.any ;
const dictMembersGPUUncapturedErrorEventInit = [
{ key: "error", converter: webidl.converters["GPUError"], required: true },
];
webidl.converters["GPUUncapturedErrorEventInit"] = webidl
.createDictionaryConverter(
"GPUUncapturedErrorEventInit",
dictMembersGPUUncapturedErrorEventInit,
);
webidl.converters["GPUBufferDynamicOffset"] = (V, opts) =>
webidl.converters["unsigned long"](V, { ...opts, enforceRange: true });
webidl.converters["GPUSignedOffset32"] = (V, opts) =>
webidl.converters["long"](V, { ...opts, enforceRange: true });
webidl.converters["GPUFlagsConstant"] = webidl.converters["unsigned long"];
})(this);