export const GPUPrimitiveTopology = { PointList: 'point-list', LineList: 'line-list', LineStrip: 'line-strip', TriangleList: 'triangle-list', TriangleStrip: 'triangle-strip', }; export const GPUCompareFunction = { Never: 'never', Less: 'less', Equal: 'equal', LessEqual: 'less-equal', Greater: 'greater', NotEqual: 'not-equal', GreaterEqual: 'greater-equal', Always: 'always' }; export const GPUStoreOp = { Store: 'store', Discard: 'discard' }; export const GPULoadOp = { Load: 'load', Clear: 'clear' }; export const GPUFrontFace = { CCW: 'ccw', CW: 'cw' }; export const GPUCullMode = { None: 'none', Front: 'front', Back: 'back' }; export const GPUIndexFormat = { Uint16: 'uint16', Uint32: 'uint32' }; export const GPUVertexFormat = { Uint8x2: 'uint8x2', Uint8x4: 'uint8x4', Sint8x2: 'sint8x2', Sint8x4: 'sint8x4', Unorm8x2: 'unorm8x2', Unorm8x4: 'unorm8x4', Snorm8x2: 'snorm8x2', Snorm8x4: 'snorm8x4', Uint16x2: 'uint16x2', Uint16x4: 'uint16x4', Sint16x2: 'sint16x2', Sint16x4: 'sint16x4', Unorm16x2: 'unorm16x2', Unorm16x4: 'unorm16x4', Snorm16x2: 'snorm16x2', Snorm16x4: 'snorm16x4', Float16x2: 'float16x2', Float16x4: 'float16x4', Float32: 'float32', Float32x2: 'float32x2', Float32x3: 'float32x3', Float32x4: 'float32x4', Uint32: 'uint32', Uint32x2: 'uint32x2', Uint32x3: 'uint32x3', Uint32x4: 'uint32x4', Sint32: 'sint32', Sint32x2: 'sint32x2', Sint32x3: 'sint32x3', Sint32x4: 'sint32x4' }; export const GPUTextureFormat = { // 8-bit formats R8Unorm: 'r8unorm', R8Snorm: 'r8snorm', R8Uint: 'r8uint', R8Sint: 'r8sint', // 16-bit formats R16Uint: 'r16uint', R16Sint: 'r16sint', R16Float: 'r16float', RG8Unorm: 'rg8unorm', RG8Snorm: 'rg8snorm', RG8Uint: 'rg8uint', RG8Sint: 'rg8sint', // 32-bit formats R32Uint: 'r32uint', R32Sint: 'r32sint', R32Float: 'r32float', RG16Uint: 'rg16uint', RG16Sint: 'rg16sint', RG16Float: 'rg16float', RGBA8Unorm: 'rgba8unorm', RGBA8UnormSRGB: 'rgba8unorm-srgb', RGBA8Snorm: 'rgba8snorm', RGBA8Uint: 'rgba8uint', RGBA8Sint: 'rgba8sint', BGRA8Unorm: 'bgra8unorm', BGRA8UnormSRGB: 'bgra8unorm-srgb', // Packed 32-bit formats RGB9E5UFloat: 'rgb9e5ufloat', RGB10A2Unorm: 'rgb10a2unorm', RG11B10uFloat: 'rgb10a2unorm', // 64-bit formats RG32Uint: 'rg32uint', RG32Sint: 'rg32sint', RG32Float: 'rg32float', RGBA16Uint: 'rgba16uint', RGBA16Sint: 'rgba16sint', RGBA16Float: 'rgba16float', // 128-bit formats RGBA32Uint: 'rgba32uint', RGBA32Sint: 'rgba32sint', RGBA32Float: 'rgba32float', // Depth and stencil formats Stencil8: 'stencil8', Depth16Unorm: 'depth16unorm', Depth24Plus: 'depth24plus', Depth24PlusStencil8: 'depth24plus-stencil8', Depth32Float: 'depth32float', // 'depth32float-stencil8' extension Depth32FloatStencil8: 'depth32float-stencil8', // BC compressed formats usable if 'texture-compression-bc' is both // supported by the device/user agent and enabled in requestDevice. BC1RGBAUnorm: 'bc1-rgba-unorm', BC1RGBAUnormSRGB: 'bc1-rgba-unorm-srgb', BC2RGBAUnorm: 'bc2-rgba-unorm', BC2RGBAUnormSRGB: 'bc2-rgba-unorm-srgb', BC3RGBAUnorm: 'bc3-rgba-unorm', BC3RGBAUnormSRGB: 'bc3-rgba-unorm-srgb', BC4RUnorm: 'bc4-r-unorm', BC4RSnorm: 'bc4-r-snorm', BC5RGUnorm: 'bc5-rg-unorm', BC5RGSnorm: 'bc5-rg-snorm', BC6HRGBUFloat: 'bc6h-rgb-ufloat', BC6HRGBFloat: 'bc6h-rgb-float', BC7RGBAUnorm: 'bc7-rgba-unorm', BC7RGBAUnormSRGB: 'bc7-rgba-srgb', // ETC2 compressed formats usable if 'texture-compression-etc2' is both // supported by the device/user agent and enabled in requestDevice. ETC2RGB8Unorm: 'etc2-rgb8unorm', ETC2RGB8UnormSRGB: 'etc2-rgb8unorm-srgb', ETC2RGB8A1Unorm: 'etc2-rgb8a1unorm', ETC2RGB8A1UnormSRGB: 'etc2-rgb8a1unorm-srgb', ETC2RGBA8Unorm: 'etc2-rgba8unorm', ETC2RGBA8UnormSRGB: 'etc2-rgba8unorm-srgb', EACR11Unorm: 'eac-r11unorm', EACR11Snorm: 'eac-r11snorm', EACRG11Unorm: 'eac-rg11unorm', EACRG11Snorm: 'eac-rg11snorm', // ASTC compressed formats usable if 'texture-compression-astc' is both // supported by the device/user agent and enabled in requestDevice. ASTC4x4Unorm: 'astc-4x4-unorm', ASTC4x4UnormSRGB: 'astc-4x4-unorm-srgb', ASTC5x4Unorm: 'astc-5x4-unorm', ASTC5x4UnormSRGB: 'astc-5x4-unorm-srgb', ASTC5x5Unorm: 'astc-5x5-unorm', ASTC5x5UnormSRGB: 'astc-5x5-unorm-srgb', ASTC6x5Unorm: 'astc-6x5-unorm', ASTC6x5UnormSRGB: 'astc-6x5-unorm-srgb', ASTC6x6Unorm: 'astc-6x6-unorm', ASTC6x6UnormSRGB: 'astc-6x6-unorm-srgb', ASTC8x5Unorm: 'astc-8x5-unorm', ASTC8x5UnormSRGB: 'astc-8x5-unorm-srgb', ASTC8x6Unorm: 'astc-8x6-unorm', ASTC8x6UnormSRGB: 'astc-8x6-unorm-srgb', ASTC8x8Unorm: 'astc-8x8-unorm', ASTC8x8UnormSRGB: 'astc-8x8-unorm-srgb', ASTC10x5Unorm: 'astc-10x5-unorm', ASTC10x5UnormSRGB: 'astc-10x5-unorm-srgb', ASTC10x6Unorm: 'astc-10x6-unorm', ASTC10x6UnormSRGB: 'astc-10x6-unorm-srgb', ASTC10x8Unorm: 'astc-10x8-unorm', ASTC10x8UnormSRGB: 'astc-10x8-unorm-srgb', ASTC10x10Unorm: 'astc-10x10-unorm', ASTC10x10UnormSRGB: 'astc-10x10-unorm-srgb', ASTC12x10Unorm: 'astc-12x10-unorm', ASTC12x10UnormSRGB: 'astc-12x10-unorm-srgb', ASTC12x12Unorm: 'astc-12x12-unorm', ASTC12x12UnormSRGB: 'astc-12x12-unorm-srgb', }; export const GPUAddressMode = { ClampToEdge: 'clamp-to-edge', Repeat: 'repeat', MirrorRepeat: 'mirror-repeat' }; export const GPUFilterMode = { Linear: 'linear', Nearest: 'nearest' }; export const GPUBlendFactor = { Zero: 'zero', One: 'one', Src: 'src', OneMinusSrc: 'one-minus-src', SrcAlpha: 'src-alpha', OneMinusSrcAlpha: 'one-minus-src-alpha', Dst: 'dst', OneMinusDstColor: 'one-minus-dst', DstAlpha: 'dst-alpha', OneMinusDstAlpha: 'one-minus-dst-alpha', SrcAlphaSaturated: 'src-alpha-saturated', Constant: 'constant', OneMinusConstant: 'one-minus-constant' }; export const GPUBlendOperation = { Add: 'add', Subtract: 'subtract', ReverseSubtract: 'reverse-subtract', Min: 'min', Max: 'max' }; export const GPUColorWriteFlags = { None: 0, Red: 0x1, Green: 0x2, Blue: 0x4, Alpha: 0x8, All: 0xF }; export const GPUStencilOperation = { Keep: 'keep', Zero: 'zero', Replace: 'replace', Invert: 'invert', IncrementClamp: 'increment-clamp', DecrementClamp: 'decrement-clamp', IncrementWrap: 'increment-wrap', DecrementWrap: 'decrement-wrap' }; export const GPUBufferBindingType = { Uniform: 'uniform', Storage: 'storage', ReadOnlyStorage: 'read-only-storage' }; export const GPUSamplerBindingType = { Filtering: 'filtering', NonFiltering: 'non-filtering', Comparison: 'comparison' }; export const GPUTextureSampleType = { Float: 'float', UnfilterableFloat: 'unfilterable-float', Depth: 'depth', SInt: 'sint', UInt: 'uint' }; export const GPUTextureDimension = { OneD: '1d', TwoD: '2d', ThreeD: '3d' }; export const GPUTextureViewDimension = { OneD: '1d', TwoD: '2d', TwoDArray: '2d-array', Cube: 'cube', CubeArray: 'cube-array', ThreeD: '3d' }; export const GPUTextureAspect = { All: 'all', StencilOnly: 'stencil-only', DepthOnly: 'depth-only' }; export const GPUInputStepMode = { Vertex: 'vertex', Instance: 'instance' }; export const GPUFeatureName = { DepthClipControl: 'depth-clip-control', Depth32FloatStencil8: 'depth32float-stencil8', TextureCompressionBC: 'texture-compression-bc', TextureCompressionETC2: 'texture-compression-etc2', TextureCompressionASTC: 'texture-compression-astc', TimestampQuery: 'timestamp-query', IndirectFirstInstance: 'indirect-first-instance', ShaderF16: 'shader-f16', RG11B10UFloat: 'rg11b10ufloat-renderable', BGRA8UNormStorage: 'bgra8unorm-storage', Float32Filterable: 'float32-filterable' };