UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

1,308 lines (1,306 loc) 30.3 kB
const ADDRESS_REPEAT = 0; const ADDRESS_CLAMP_TO_EDGE = 1; const ADDRESS_MIRRORED_REPEAT = 2; const BLENDMODE_ZERO = 0; const BLENDMODE_ONE = 1; const BLENDMODE_SRC_COLOR = 2; const BLENDMODE_ONE_MINUS_SRC_COLOR = 3; const BLENDMODE_DST_COLOR = 4; const BLENDMODE_ONE_MINUS_DST_COLOR = 5; const BLENDMODE_SRC_ALPHA = 6; const BLENDMODE_SRC_ALPHA_SATURATE = 7; const BLENDMODE_ONE_MINUS_SRC_ALPHA = 8; const BLENDMODE_DST_ALPHA = 9; const BLENDMODE_ONE_MINUS_DST_ALPHA = 10; const BLENDMODE_CONSTANT = 11; const BLENDMODE_ONE_MINUS_CONSTANT = 12; const BLENDEQUATION_ADD = 0; const BLENDEQUATION_SUBTRACT = 1; const BLENDEQUATION_REVERSE_SUBTRACT = 2; const BLENDEQUATION_MIN = 3; const BLENDEQUATION_MAX = 4; const BUFFERUSAGE_READ = 0x0001; const BUFFERUSAGE_WRITE = 0x0002; const BUFFERUSAGE_COPY_SRC = 0x0004; const BUFFERUSAGE_COPY_DST = 0x0008; const BUFFERUSAGE_INDEX = 0x0010; const BUFFERUSAGE_VERTEX = 0x0020; const BUFFERUSAGE_UNIFORM = 0x0040; const BUFFERUSAGE_STORAGE = 0x0080; const BUFFERUSAGE_INDIRECT = 0x0100; const BUFFER_STATIC = 0; const BUFFER_DYNAMIC = 1; const BUFFER_STREAM = 2; const BUFFER_GPUDYNAMIC = 3; const CLEARFLAG_COLOR = 1; const CLEARFLAG_DEPTH = 2; const CLEARFLAG_STENCIL = 4; const CUBEFACE_POSX = 0; const CUBEFACE_NEGX = 1; const CUBEFACE_POSY = 2; const CUBEFACE_NEGY = 3; const CUBEFACE_POSZ = 4; const CUBEFACE_NEGZ = 5; const CULLFACE_NONE = 0; const CULLFACE_BACK = 1; const CULLFACE_FRONT = 2; const CULLFACE_FRONTANDBACK = 3; const FILTER_NEAREST = 0; const FILTER_LINEAR = 1; const FILTER_NEAREST_MIPMAP_NEAREST = 2; const FILTER_NEAREST_MIPMAP_LINEAR = 3; const FILTER_LINEAR_MIPMAP_NEAREST = 4; const FILTER_LINEAR_MIPMAP_LINEAR = 5; const FUNC_NEVER = 0; const FUNC_LESS = 1; const FUNC_EQUAL = 2; const FUNC_LESSEQUAL = 3; const FUNC_GREATER = 4; const FUNC_NOTEQUAL = 5; const FUNC_GREATEREQUAL = 6; const FUNC_ALWAYS = 7; const INDEXFORMAT_UINT8 = 0; const INDEXFORMAT_UINT16 = 1; const INDEXFORMAT_UINT32 = 2; const indexFormatByteSize = [ 1, 2, 4 ]; const PIXELFORMAT_A8 = 0; const PIXELFORMAT_L8 = 1; const PIXELFORMAT_LA8 = 2; const PIXELFORMAT_RGB565 = 3; const PIXELFORMAT_RGBA5551 = 4; const PIXELFORMAT_RGBA4 = 5; const PIXELFORMAT_RGB8 = 6; const PIXELFORMAT_RGBA8 = 7; const PIXELFORMAT_DXT1 = 8; const PIXELFORMAT_DXT3 = 9; const PIXELFORMAT_DXT5 = 10; const PIXELFORMAT_RGB16F = 11; const PIXELFORMAT_RGBA16F = 12; const PIXELFORMAT_RGB32F = 13; const PIXELFORMAT_RGBA32F = 14; const PIXELFORMAT_R32F = 15; const PIXELFORMAT_DEPTH = 16; const PIXELFORMAT_DEPTHSTENCIL = 17; const PIXELFORMAT_111110F = 18; const PIXELFORMAT_SRGB8 = 19; const PIXELFORMAT_SRGBA8 = 20; const PIXELFORMAT_ETC1 = 21; const PIXELFORMAT_ETC2_RGB = 22; const PIXELFORMAT_ETC2_RGBA = 23; const PIXELFORMAT_PVRTC_2BPP_RGB_1 = 24; const PIXELFORMAT_PVRTC_2BPP_RGBA_1 = 25; const PIXELFORMAT_PVRTC_4BPP_RGB_1 = 26; const PIXELFORMAT_PVRTC_4BPP_RGBA_1 = 27; const PIXELFORMAT_ASTC_4x4 = 28; const PIXELFORMAT_ATC_RGB = 29; const PIXELFORMAT_ATC_RGBA = 30; const PIXELFORMAT_BGRA8 = 31; const PIXELFORMAT_R8I = 32; const PIXELFORMAT_R8U = 33; const PIXELFORMAT_R16I = 34; const PIXELFORMAT_R16U = 35; const PIXELFORMAT_R32I = 36; const PIXELFORMAT_R32U = 37; const PIXELFORMAT_RG8I = 38; const PIXELFORMAT_RG8U = 39; const PIXELFORMAT_RG16I = 40; const PIXELFORMAT_RG16U = 41; const PIXELFORMAT_RG32I = 42; const PIXELFORMAT_RG32U = 43; const PIXELFORMAT_RGBA8I = 44; const PIXELFORMAT_RGBA8U = 45; const PIXELFORMAT_RGBA16I = 46; const PIXELFORMAT_RGBA16U = 47; const PIXELFORMAT_RGBA32I = 48; const PIXELFORMAT_RGBA32U = 49; const PIXELFORMAT_R16F = 50; const PIXELFORMAT_RG16F = 51; const PIXELFORMAT_R8 = 52; const PIXELFORMAT_RG8 = 53; const PIXELFORMAT_DXT1_SRGB = 54; const PIXELFORMAT_DXT3_SRGBA = 55; const PIXELFORMAT_DXT5_SRGBA = 56; const PIXELFORMAT_ETC2_SRGB = 61; const PIXELFORMAT_ETC2_SRGBA = 62; const PIXELFORMAT_ASTC_4x4_SRGB = 63; const PIXELFORMAT_SBGRA8 = 64; const PIXELFORMAT_BC6F = 65; const PIXELFORMAT_BC6UF = 66; const PIXELFORMAT_BC7 = 67; const PIXELFORMAT_BC7_SRGBA = 68; const PIXELFORMAT_DEPTH16 = 69; const pixelFormatInfo = new Map([ [ PIXELFORMAT_A8, { name: 'A8', size: 1, ldr: true } ], [ PIXELFORMAT_R8, { name: 'R8', size: 1, ldr: true } ], [ PIXELFORMAT_L8, { name: 'L8', size: 1, ldr: true } ], [ PIXELFORMAT_LA8, { name: 'LA8', size: 2, ldr: true } ], [ PIXELFORMAT_RG8, { name: 'RG8', size: 2, ldr: true } ], [ PIXELFORMAT_RGB565, { name: 'RGB565', size: 2, ldr: true } ], [ PIXELFORMAT_RGBA5551, { name: 'RGBA5551', size: 2, ldr: true } ], [ PIXELFORMAT_RGBA4, { name: 'RGBA4', size: 2, ldr: true } ], [ PIXELFORMAT_RGB8, { name: 'RGB8', size: 4, ldr: true } ], [ PIXELFORMAT_RGBA8, { name: 'RGBA8', size: 4, ldr: true, srgbFormat: PIXELFORMAT_SRGBA8 } ], [ PIXELFORMAT_R16F, { name: 'R16F', size: 2 } ], [ PIXELFORMAT_RG16F, { name: 'RG16F', size: 4 } ], [ PIXELFORMAT_RGB16F, { name: 'RGB16F', size: 8 } ], [ PIXELFORMAT_RGBA16F, { name: 'RGBA16F', size: 8 } ], [ PIXELFORMAT_RGB32F, { name: 'RGB32F', size: 16 } ], [ PIXELFORMAT_RGBA32F, { name: 'RGBA32F', size: 16 } ], [ PIXELFORMAT_R32F, { name: 'R32F', size: 4 } ], [ PIXELFORMAT_DEPTH, { name: 'DEPTH', size: 4 } ], [ PIXELFORMAT_DEPTH16, { name: 'DEPTH16', size: 2 } ], [ PIXELFORMAT_DEPTHSTENCIL, { name: 'DEPTHSTENCIL', size: 4 } ], [ PIXELFORMAT_111110F, { name: '111110F', size: 4 } ], [ PIXELFORMAT_SRGB8, { name: 'SRGB8', size: 4, ldr: true, srgb: true } ], [ PIXELFORMAT_SRGBA8, { name: 'SRGBA8', size: 4, ldr: true, srgb: true } ], [ PIXELFORMAT_BGRA8, { name: 'BGRA8', size: 4, ldr: true } ], [ PIXELFORMAT_SBGRA8, { name: 'SBGRA8', size: 4, ldr: true, srgb: true } ], [ PIXELFORMAT_DXT1, { name: 'DXT1', blockSize: 8, ldr: true, srgbFormat: PIXELFORMAT_DXT1_SRGB } ], [ PIXELFORMAT_DXT3, { name: 'DXT3', blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_DXT3_SRGBA } ], [ PIXELFORMAT_DXT5, { name: 'DXT5', blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_DXT5_SRGBA } ], [ PIXELFORMAT_ETC1, { name: 'ETC1', blockSize: 8, ldr: true } ], [ PIXELFORMAT_ETC2_RGB, { name: 'ETC2_RGB', blockSize: 8, ldr: true, srgbFormat: PIXELFORMAT_ETC2_SRGB } ], [ PIXELFORMAT_ETC2_RGBA, { name: 'ETC2_RGBA', blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_ETC2_SRGBA } ], [ PIXELFORMAT_PVRTC_2BPP_RGB_1, { name: 'PVRTC_2BPP_RGB_1', ldr: true, blockSize: 8 } ], [ PIXELFORMAT_PVRTC_2BPP_RGBA_1, { name: 'PVRTC_2BPP_RGBA_1', ldr: true, blockSize: 8 } ], [ PIXELFORMAT_PVRTC_4BPP_RGB_1, { name: 'PVRTC_4BPP_RGB_1', ldr: true, blockSize: 8 } ], [ PIXELFORMAT_PVRTC_4BPP_RGBA_1, { name: 'PVRTC_4BPP_RGBA_1', ldr: true, blockSize: 8 } ], [ PIXELFORMAT_ASTC_4x4, { name: 'ASTC_4x4', blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_ASTC_4x4_SRGB } ], [ PIXELFORMAT_ATC_RGB, { name: 'ATC_RGB', blockSize: 8, ldr: true } ], [ PIXELFORMAT_ATC_RGBA, { name: 'ATC_RGBA', blockSize: 16, ldr: true } ], [ PIXELFORMAT_BC6F, { name: 'BC6H_RGBF', blockSize: 16 } ], [ PIXELFORMAT_BC6UF, { name: 'BC6H_RGBUF', blockSize: 16 } ], [ PIXELFORMAT_BC7, { name: 'BC7_RGBA', blockSize: 16, ldr: true, srgbFormat: PIXELFORMAT_BC7_SRGBA } ], [ PIXELFORMAT_DXT1_SRGB, { name: 'DXT1_SRGB', blockSize: 8, ldr: true, srgb: true } ], [ PIXELFORMAT_DXT3_SRGBA, { name: 'DXT3_SRGBA', blockSize: 16, ldr: true, srgb: true } ], [ PIXELFORMAT_DXT5_SRGBA, { name: 'DXT5_SRGBA', blockSize: 16, ldr: true, srgb: true } ], [ PIXELFORMAT_ETC2_SRGB, { name: 'ETC2_SRGB', blockSize: 8, ldr: true, srgb: true } ], [ PIXELFORMAT_ETC2_SRGBA, { name: 'ETC2_SRGBA', blockSize: 16, ldr: true, srgb: true } ], [ PIXELFORMAT_ASTC_4x4_SRGB, { name: 'ASTC_4x4_SRGB', blockSize: 16, ldr: true, srgb: true } ], [ PIXELFORMAT_BC7_SRGBA, { name: 'BC7_SRGBA', blockSize: 16, ldr: true, srgb: true } ], [ PIXELFORMAT_R8I, { name: 'R8I', size: 1, isInt: true } ], [ PIXELFORMAT_R8U, { name: 'R8U', size: 1, isInt: true } ], [ PIXELFORMAT_R16I, { name: 'R16I', size: 2, isInt: true } ], [ PIXELFORMAT_R16U, { name: 'R16U', size: 2, isInt: true } ], [ PIXELFORMAT_R32I, { name: 'R32I', size: 4, isInt: true } ], [ PIXELFORMAT_R32U, { name: 'R32U', size: 4, isInt: true } ], [ PIXELFORMAT_RG8I, { name: 'RG8I', size: 2, isInt: true } ], [ PIXELFORMAT_RG8U, { name: 'RG8U', size: 2, isInt: true } ], [ PIXELFORMAT_RG16I, { name: 'RG16I', size: 4, isInt: true } ], [ PIXELFORMAT_RG16U, { name: 'RG16U', size: 4, isInt: true } ], [ PIXELFORMAT_RG32I, { name: 'RG32I', size: 8, isInt: true } ], [ PIXELFORMAT_RG32U, { name: 'RG32U', size: 8, isInt: true } ], [ PIXELFORMAT_RGBA8I, { name: 'RGBA8I', size: 4, isInt: true } ], [ PIXELFORMAT_RGBA8U, { name: 'RGBA8U', size: 4, isInt: true } ], [ PIXELFORMAT_RGBA16I, { name: 'RGBA16I', size: 8, isInt: true } ], [ PIXELFORMAT_RGBA16U, { name: 'RGBA16U', size: 8, isInt: true } ], [ PIXELFORMAT_RGBA32I, { name: 'RGBA32I', size: 16, isInt: true } ], [ PIXELFORMAT_RGBA32U, { name: 'RGBA32U', size: 16, isInt: true } ] ]); const isCompressedPixelFormat = (format)=>{ return pixelFormatInfo.get(format)?.blockSize !== undefined; }; const isSrgbPixelFormat = (format)=>{ return pixelFormatInfo.get(format)?.srgb === true; }; const isIntegerPixelFormat = (format)=>{ return pixelFormatInfo.get(format)?.isInt === true; }; const pixelFormatLinearToGamma = (format)=>{ return pixelFormatInfo.get(format)?.srgbFormat || format; }; const pixelFormatGammaToLinear = (format)=>{ for (const [key, value] of pixelFormatInfo){ if (value.srgbFormat === format) { return key; } } return format; }; const requiresManualGamma = (format)=>{ const info = pixelFormatInfo.get(format); return !!(info?.ldr && !info?.srgb); }; const getPixelFormatArrayType = (format)=>{ switch(format){ case PIXELFORMAT_R32F: case PIXELFORMAT_RGB32F: case PIXELFORMAT_RGBA32F: return Float32Array; case PIXELFORMAT_R32I: case PIXELFORMAT_RG32I: case PIXELFORMAT_RGBA32I: return Int32Array; case PIXELFORMAT_R32U: case PIXELFORMAT_RG32U: case PIXELFORMAT_RGBA32U: return Uint32Array; case PIXELFORMAT_R16I: case PIXELFORMAT_RG16I: case PIXELFORMAT_RGBA16I: return Int16Array; case PIXELFORMAT_RG8: case PIXELFORMAT_R16U: case PIXELFORMAT_RG16U: case PIXELFORMAT_RGBA16U: case PIXELFORMAT_RGB565: case PIXELFORMAT_RGBA5551: case PIXELFORMAT_RGBA4: case PIXELFORMAT_R16F: case PIXELFORMAT_RG16F: case PIXELFORMAT_RGB16F: case PIXELFORMAT_RGBA16F: return Uint16Array; case PIXELFORMAT_R8I: case PIXELFORMAT_RG8I: case PIXELFORMAT_RGBA8I: return Int8Array; default: return Uint8Array; } }; const PRIMITIVE_POINTS = 0; const PRIMITIVE_LINES = 1; const PRIMITIVE_LINELOOP = 2; const PRIMITIVE_LINESTRIP = 3; const PRIMITIVE_TRIANGLES = 4; const PRIMITIVE_TRISTRIP = 5; const PRIMITIVE_TRIFAN = 6; const SEMANTIC_POSITION = 'POSITION'; const SEMANTIC_NORMAL = 'NORMAL'; const SEMANTIC_TANGENT = 'TANGENT'; const SEMANTIC_BLENDWEIGHT = 'BLENDWEIGHT'; const SEMANTIC_BLENDINDICES = 'BLENDINDICES'; const SEMANTIC_COLOR = 'COLOR'; const SEMANTIC_TEXCOORD = 'TEXCOORD'; const SEMANTIC_TEXCOORD0 = 'TEXCOORD0'; const SEMANTIC_TEXCOORD1 = 'TEXCOORD1'; const SEMANTIC_TEXCOORD2 = 'TEXCOORD2'; const SEMANTIC_TEXCOORD3 = 'TEXCOORD3'; const SEMANTIC_TEXCOORD4 = 'TEXCOORD4'; const SEMANTIC_TEXCOORD5 = 'TEXCOORD5'; const SEMANTIC_TEXCOORD6 = 'TEXCOORD6'; const SEMANTIC_TEXCOORD7 = 'TEXCOORD7'; const SEMANTIC_ATTR0 = 'ATTR0'; const SEMANTIC_ATTR1 = 'ATTR1'; const SEMANTIC_ATTR2 = 'ATTR2'; const SEMANTIC_ATTR3 = 'ATTR3'; const SEMANTIC_ATTR4 = 'ATTR4'; const SEMANTIC_ATTR5 = 'ATTR5'; const SEMANTIC_ATTR6 = 'ATTR6'; const SEMANTIC_ATTR7 = 'ATTR7'; const SEMANTIC_ATTR8 = 'ATTR8'; const SEMANTIC_ATTR9 = 'ATTR9'; const SEMANTIC_ATTR10 = 'ATTR10'; const SEMANTIC_ATTR11 = 'ATTR11'; const SEMANTIC_ATTR12 = 'ATTR12'; const SEMANTIC_ATTR13 = 'ATTR13'; const SEMANTIC_ATTR14 = 'ATTR14'; const SEMANTIC_ATTR15 = 'ATTR15'; const SHADERTAG_MATERIAL = 1; const STENCILOP_KEEP = 0; const STENCILOP_ZERO = 1; const STENCILOP_REPLACE = 2; const STENCILOP_INCREMENT = 3; const STENCILOP_INCREMENTWRAP = 4; const STENCILOP_DECREMENT = 5; const STENCILOP_DECREMENTWRAP = 6; const STENCILOP_INVERT = 7; const TEXTURELOCK_NONE = 0; const TEXTURELOCK_READ = 1; const TEXTURELOCK_WRITE = 2; const TEXTURETYPE_DEFAULT = 'default'; const TEXTURETYPE_RGBM = 'rgbm'; const TEXTURETYPE_RGBE = 'rgbe'; const TEXTURETYPE_RGBP = 'rgbp'; const TEXTURETYPE_SWIZZLEGGGR = 'swizzleGGGR'; const TEXHINT_NONE = 0; const TEXHINT_SHADOWMAP = 1; const TEXHINT_ASSET = 2; const TEXHINT_LIGHTMAP = 3; const TEXTUREDIMENSION_1D = '1d'; const TEXTUREDIMENSION_2D = '2d'; const TEXTUREDIMENSION_2D_ARRAY = '2d-array'; const TEXTUREDIMENSION_CUBE = 'cube'; const TEXTUREDIMENSION_CUBE_ARRAY = 'cube-array'; const TEXTUREDIMENSION_3D = '3d'; const SAMPLETYPE_FLOAT = 0; const SAMPLETYPE_UNFILTERABLE_FLOAT = 1; const SAMPLETYPE_DEPTH = 2; const SAMPLETYPE_INT = 3; const SAMPLETYPE_UINT = 4; const TEXTUREPROJECTION_NONE = 'none'; const TEXTUREPROJECTION_CUBE = 'cube'; const TEXTUREPROJECTION_EQUIRECT = 'equirect'; const TEXTUREPROJECTION_OCTAHEDRAL = 'octahedral'; const SHADERLANGUAGE_GLSL = 'glsl'; const SHADERLANGUAGE_WGSL = 'wgsl'; const TYPE_INT8 = 0; const TYPE_UINT8 = 1; const TYPE_INT16 = 2; const TYPE_UINT16 = 3; const TYPE_INT32 = 4; const TYPE_UINT32 = 5; const TYPE_FLOAT32 = 6; const TYPE_FLOAT16 = 7; const UNIFORMTYPE_BOOL = 0; const UNIFORMTYPE_INT = 1; const UNIFORMTYPE_FLOAT = 2; const UNIFORMTYPE_VEC2 = 3; const UNIFORMTYPE_VEC3 = 4; const UNIFORMTYPE_VEC4 = 5; const UNIFORMTYPE_IVEC2 = 6; const UNIFORMTYPE_IVEC3 = 7; const UNIFORMTYPE_IVEC4 = 8; const UNIFORMTYPE_BVEC2 = 9; const UNIFORMTYPE_BVEC3 = 10; const UNIFORMTYPE_BVEC4 = 11; const UNIFORMTYPE_MAT2 = 12; const UNIFORMTYPE_MAT3 = 13; const UNIFORMTYPE_MAT4 = 14; const UNIFORMTYPE_TEXTURE2D = 15; const UNIFORMTYPE_TEXTURECUBE = 16; const UNIFORMTYPE_FLOATARRAY = 17; const UNIFORMTYPE_TEXTURE2D_SHADOW = 18; const UNIFORMTYPE_TEXTURECUBE_SHADOW = 19; const UNIFORMTYPE_TEXTURE3D = 20; const UNIFORMTYPE_VEC2ARRAY = 21; const UNIFORMTYPE_VEC3ARRAY = 22; const UNIFORMTYPE_VEC4ARRAY = 23; const UNIFORMTYPE_MAT4ARRAY = 24; const UNIFORMTYPE_TEXTURE2D_ARRAY = 25; const UNIFORMTYPE_UINT = 26; const UNIFORMTYPE_UVEC2 = 27; const UNIFORMTYPE_UVEC3 = 28; const UNIFORMTYPE_UVEC4 = 29; const UNIFORMTYPE_INTARRAY = 30; const UNIFORMTYPE_UINTARRAY = 31; const UNIFORMTYPE_BOOLARRAY = 32; const UNIFORMTYPE_IVEC2ARRAY = 33; const UNIFORMTYPE_UVEC2ARRAY = 34; const UNIFORMTYPE_BVEC2ARRAY = 35; const UNIFORMTYPE_IVEC3ARRAY = 36; const UNIFORMTYPE_UVEC3ARRAY = 37; const UNIFORMTYPE_BVEC3ARRAY = 38; const UNIFORMTYPE_IVEC4ARRAY = 39; const UNIFORMTYPE_UVEC4ARRAY = 40; const UNIFORMTYPE_BVEC4ARRAY = 41; const UNIFORMTYPE_ITEXTURE2D = 42; const UNIFORMTYPE_UTEXTURE2D = 43; const UNIFORMTYPE_ITEXTURECUBE = 44; const UNIFORMTYPE_UTEXTURECUBE = 45; const UNIFORMTYPE_ITEXTURE3D = 46; const UNIFORMTYPE_UTEXTURE3D = 47; const UNIFORMTYPE_ITEXTURE2D_ARRAY = 48; const UNIFORMTYPE_UTEXTURE2D_ARRAY = 49; const uniformTypeToName = [ 'bool', 'int', 'float', 'vec2', 'vec3', 'vec4', 'ivec2', 'ivec3', 'ivec4', 'bvec2', 'bvec3', 'bvec4', 'mat2', 'mat3', 'mat4', 'sampler2D', 'samplerCube', '', 'sampler2DShadow', 'samplerCubeShadow', 'sampler3D', '', '', '', '', 'sampler2DArray', 'uint', 'uvec2', 'uvec3', 'uvec4', '', '', '', '', '', '', '', '', '', '', '', '', 'isampler2D', 'usampler2D', 'isamplerCube', 'usamplerCube', 'isampler3D', 'usampler3D', 'isampler2DArray', 'usampler2DArray' ]; const uniformTypeToNameWGSL = [ [ 'bool' ], [ 'i32' ], [ 'f32' ], [ 'vec2f', 'vec2<f32>' ], [ 'vec3f', 'vec3<f32>' ], [ 'vec4f', 'vec4<f32>' ], [ 'vec2i', 'vec2<i32>' ], [ 'vec3i', 'vec3<i32>' ], [ 'vec4i', 'vec4<i32>' ], [ 'vec2<bool>' ], [ 'vec3<bool>' ], [ 'vec4<bool>' ], [ 'mat2x2f', 'mat2x2<f32>' ], [ 'mat3x3f', 'mat3x3<f32>' ], [ 'mat4x4f', 'mat4x4<f32>' ], [ 'texture_2d<f32>' ], [ 'texture_cube<f32>' ], [ 'array<f32>' ], [ 'texture_depth_2d' ], [ 'texture_depth_cube' ], [ 'texture_3d<f32>' ], [ 'array<vec2<f32>>' ], [ 'array<vec3<f32>>' ], [ 'array<vec4<f32>>' ], [ 'array<mat4x4<f32>>' ], [ 'texture_2d_array<f32>' ], [ 'u32' ], [ 'vec2u', 'vec2<u32>' ], [ 'vec3u', 'vec3<u32>' ], [ 'vec4u', 'vec4<u32>' ], [ 'array<i32>' ], [ 'array<u32>' ], [ 'array<bool>' ], [ 'array<vec2i>', 'array<vec2<i32>>' ], [ 'array<vec2u>', 'array<vec2<u32>>' ], [ 'array<vec2b>', 'array<vec2<bool>>' ], [ 'array<vec3i>', 'array<vec3<i32>>' ], [ 'array<vec3u>', 'array<vec3<u32>>' ], [ 'array<vec3b>', 'array<vec3<bool>>' ], [ 'array<vec4i>', 'array<vec4<i32>>' ], [ 'array<vec4u>', 'array<vec4<u32>>' ], [ 'array<vec4b>', 'array<vec4<bool>>' ], [ 'texture_2d<i32>' ], [ 'texture_2d<u32>' ], [ 'texture_cube<i32>' ], [ 'texture_cube<u32>' ], [ 'texture_3d<i32>' ], [ 'texture_3d<u32>' ], [ 'texture_2d_array<i32>' ], [ 'texture_2d_array<u32>' ] ]; const uniformTypeToNameMapWGSL = new Map(); uniformTypeToNameWGSL.forEach((names, index)=>{ names.forEach((name)=>uniformTypeToNameMapWGSL.set(name, index)); }); const uniformTypeToStorage = new Uint8Array([ TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_INT32, TYPE_INT32, TYPE_INT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_FLOAT32, TYPE_INT32, TYPE_UINT32, TYPE_UINT32, TYPE_UINT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32, TYPE_INT32, TYPE_UINT32 ]); const DEVICETYPE_WEBGL2 = 'webgl2'; const DEVICETYPE_WEBGPU = 'webgpu'; const DEVICETYPE_NULL = 'null'; const SHADERSTAGE_VERTEX = 1; const SHADERSTAGE_FRAGMENT = 2; const SHADERSTAGE_COMPUTE = 4; const DISPLAYFORMAT_LDR = 'ldr'; const DISPLAYFORMAT_LDR_SRGB = 'ldr_srgb'; const DISPLAYFORMAT_HDR = 'hdr'; const TEXPROPERTY_MIN_FILTER = 1; const TEXPROPERTY_MAG_FILTER = 2; const TEXPROPERTY_ADDRESS_U = 4; const TEXPROPERTY_ADDRESS_V = 8; const TEXPROPERTY_ADDRESS_W = 16; const TEXPROPERTY_COMPARE_ON_READ = 32; const TEXPROPERTY_COMPARE_FUNC = 64; const TEXPROPERTY_ANISOTROPY = 128; const TEXPROPERTY_ALL = 255; const BINDGROUP_VIEW = 0; const BINDGROUP_MESH = 1; const BINDGROUP_MESH_UB = 2; const bindGroupNames = [ 'view', 'mesh', 'mesh_ub' ]; const UNIFORM_BUFFER_DEFAULT_SLOT_NAME = 'default'; const UNUSED_UNIFORM_NAME = '_unused_float_uniform'; const typedArrayTypes = [ Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Uint16Array ]; const typedArrayTypesByteSize = [ 1, 1, 2, 2, 4, 4, 4, 2 ]; const vertexTypesNames = [ 'INT8', 'UINT8', 'INT16', 'UINT16', 'INT32', 'UINT32', 'FLOAT32', 'FLOAT16' ]; const typedArrayToType = { 'Int8Array': TYPE_INT8, 'Uint8Array': TYPE_UINT8, 'Int16Array': TYPE_INT16, 'Uint16Array': TYPE_UINT16, 'Int32Array': TYPE_INT32, 'Uint32Array': TYPE_UINT32, 'Float32Array': TYPE_FLOAT32 }; const typedArrayIndexFormats = [ Uint8Array, Uint16Array, Uint32Array ]; const typedArrayIndexFormatsByteSize = [ 1, 2, 4 ]; const primitiveGlslToWgslTypeMap = new Map([ [ 'float', 'f32' ], [ 'vec2', 'vec2f' ], [ 'vec3', 'vec3f' ], [ 'vec4', 'vec4f' ], [ 'int', 'i32' ], [ 'ivec2', 'vec2i' ], [ 'ivec3', 'vec3i' ], [ 'ivec4', 'vec4i' ], [ 'uint', 'u32' ], [ 'uvec2', 'vec2u' ], [ 'uvec3', 'vec3u' ], [ 'uvec4', 'vec4u' ] ]); const semanticToLocation = {}; semanticToLocation[SEMANTIC_POSITION] = 0; semanticToLocation[SEMANTIC_NORMAL] = 1; semanticToLocation[SEMANTIC_BLENDWEIGHT] = 2; semanticToLocation[SEMANTIC_BLENDINDICES] = 3; semanticToLocation[SEMANTIC_COLOR] = 4; semanticToLocation[SEMANTIC_TEXCOORD0] = 5; semanticToLocation[SEMANTIC_TEXCOORD1] = 6; semanticToLocation[SEMANTIC_TEXCOORD2] = 7; semanticToLocation[SEMANTIC_TEXCOORD3] = 8; semanticToLocation[SEMANTIC_TEXCOORD4] = 9; semanticToLocation[SEMANTIC_TEXCOORD5] = 10; semanticToLocation[SEMANTIC_TEXCOORD6] = 11; semanticToLocation[SEMANTIC_TEXCOORD7] = 12; semanticToLocation[SEMANTIC_TANGENT] = 13; semanticToLocation[SEMANTIC_ATTR0] = 0; semanticToLocation[SEMANTIC_ATTR1] = 1; semanticToLocation[SEMANTIC_ATTR2] = 2; semanticToLocation[SEMANTIC_ATTR3] = 3; semanticToLocation[SEMANTIC_ATTR4] = 4; semanticToLocation[SEMANTIC_ATTR5] = 5; semanticToLocation[SEMANTIC_ATTR6] = 6; semanticToLocation[SEMANTIC_ATTR7] = 7; semanticToLocation[SEMANTIC_ATTR8] = 8; semanticToLocation[SEMANTIC_ATTR9] = 9; semanticToLocation[SEMANTIC_ATTR10] = 10; semanticToLocation[SEMANTIC_ATTR11] = 11; semanticToLocation[SEMANTIC_ATTR12] = 12; semanticToLocation[SEMANTIC_ATTR13] = 13; semanticToLocation[SEMANTIC_ATTR14] = 14; semanticToLocation[SEMANTIC_ATTR15] = 15; export { ADDRESS_CLAMP_TO_EDGE, ADDRESS_MIRRORED_REPEAT, ADDRESS_REPEAT, BINDGROUP_MESH, BINDGROUP_MESH_UB, BINDGROUP_VIEW, BLENDEQUATION_ADD, BLENDEQUATION_MAX, BLENDEQUATION_MIN, BLENDEQUATION_REVERSE_SUBTRACT, BLENDEQUATION_SUBTRACT, BLENDMODE_CONSTANT, BLENDMODE_DST_ALPHA, BLENDMODE_DST_COLOR, BLENDMODE_ONE, BLENDMODE_ONE_MINUS_CONSTANT, BLENDMODE_ONE_MINUS_DST_ALPHA, BLENDMODE_ONE_MINUS_DST_COLOR, BLENDMODE_ONE_MINUS_SRC_ALPHA, BLENDMODE_ONE_MINUS_SRC_COLOR, BLENDMODE_SRC_ALPHA, BLENDMODE_SRC_ALPHA_SATURATE, BLENDMODE_SRC_COLOR, BLENDMODE_ZERO, BUFFERUSAGE_COPY_DST, BUFFERUSAGE_COPY_SRC, BUFFERUSAGE_INDEX, BUFFERUSAGE_INDIRECT, BUFFERUSAGE_READ, BUFFERUSAGE_STORAGE, BUFFERUSAGE_UNIFORM, BUFFERUSAGE_VERTEX, BUFFERUSAGE_WRITE, BUFFER_DYNAMIC, BUFFER_GPUDYNAMIC, BUFFER_STATIC, BUFFER_STREAM, CLEARFLAG_COLOR, CLEARFLAG_DEPTH, CLEARFLAG_STENCIL, CUBEFACE_NEGX, CUBEFACE_NEGY, CUBEFACE_NEGZ, CUBEFACE_POSX, CUBEFACE_POSY, CUBEFACE_POSZ, CULLFACE_BACK, CULLFACE_FRONT, CULLFACE_FRONTANDBACK, CULLFACE_NONE, DEVICETYPE_NULL, DEVICETYPE_WEBGL2, DEVICETYPE_WEBGPU, DISPLAYFORMAT_HDR, DISPLAYFORMAT_LDR, DISPLAYFORMAT_LDR_SRGB, FILTER_LINEAR, FILTER_LINEAR_MIPMAP_LINEAR, FILTER_LINEAR_MIPMAP_NEAREST, FILTER_NEAREST, FILTER_NEAREST_MIPMAP_LINEAR, FILTER_NEAREST_MIPMAP_NEAREST, FUNC_ALWAYS, FUNC_EQUAL, FUNC_GREATER, FUNC_GREATEREQUAL, FUNC_LESS, FUNC_LESSEQUAL, FUNC_NEVER, FUNC_NOTEQUAL, INDEXFORMAT_UINT16, INDEXFORMAT_UINT32, INDEXFORMAT_UINT8, PIXELFORMAT_111110F, PIXELFORMAT_A8, PIXELFORMAT_ASTC_4x4, PIXELFORMAT_ASTC_4x4_SRGB, PIXELFORMAT_ATC_RGB, PIXELFORMAT_ATC_RGBA, PIXELFORMAT_BC6F, PIXELFORMAT_BC6UF, PIXELFORMAT_BC7, PIXELFORMAT_BC7_SRGBA, PIXELFORMAT_BGRA8, PIXELFORMAT_DEPTH, PIXELFORMAT_DEPTH16, PIXELFORMAT_DEPTHSTENCIL, PIXELFORMAT_DXT1, PIXELFORMAT_DXT1_SRGB, PIXELFORMAT_DXT3, PIXELFORMAT_DXT3_SRGBA, PIXELFORMAT_DXT5, PIXELFORMAT_DXT5_SRGBA, PIXELFORMAT_ETC1, PIXELFORMAT_ETC2_RGB, PIXELFORMAT_ETC2_RGBA, PIXELFORMAT_ETC2_SRGB, PIXELFORMAT_ETC2_SRGBA, PIXELFORMAT_L8, PIXELFORMAT_LA8, PIXELFORMAT_PVRTC_2BPP_RGBA_1, PIXELFORMAT_PVRTC_2BPP_RGB_1, PIXELFORMAT_PVRTC_4BPP_RGBA_1, PIXELFORMAT_PVRTC_4BPP_RGB_1, PIXELFORMAT_R16F, PIXELFORMAT_R16I, PIXELFORMAT_R16U, PIXELFORMAT_R32F, PIXELFORMAT_R32I, PIXELFORMAT_R32U, PIXELFORMAT_R8, PIXELFORMAT_R8I, PIXELFORMAT_R8U, PIXELFORMAT_RG16F, PIXELFORMAT_RG16I, PIXELFORMAT_RG16U, PIXELFORMAT_RG32I, PIXELFORMAT_RG32U, PIXELFORMAT_RG8, PIXELFORMAT_RG8I, PIXELFORMAT_RG8U, PIXELFORMAT_RGB16F, PIXELFORMAT_RGB32F, PIXELFORMAT_RGB565, PIXELFORMAT_RGB8, PIXELFORMAT_RGBA16F, PIXELFORMAT_RGBA16I, PIXELFORMAT_RGBA16U, PIXELFORMAT_RGBA32F, PIXELFORMAT_RGBA32I, PIXELFORMAT_RGBA32U, PIXELFORMAT_RGBA4, PIXELFORMAT_RGBA5551, PIXELFORMAT_RGBA8, PIXELFORMAT_RGBA8I, PIXELFORMAT_RGBA8U, PIXELFORMAT_SBGRA8, PIXELFORMAT_SRGB8, PIXELFORMAT_SRGBA8, PRIMITIVE_LINELOOP, PRIMITIVE_LINES, PRIMITIVE_LINESTRIP, PRIMITIVE_POINTS, PRIMITIVE_TRIANGLES, PRIMITIVE_TRIFAN, PRIMITIVE_TRISTRIP, SAMPLETYPE_DEPTH, SAMPLETYPE_FLOAT, SAMPLETYPE_INT, SAMPLETYPE_UINT, SAMPLETYPE_UNFILTERABLE_FLOAT, SEMANTIC_ATTR0, SEMANTIC_ATTR1, SEMANTIC_ATTR10, SEMANTIC_ATTR11, SEMANTIC_ATTR12, SEMANTIC_ATTR13, SEMANTIC_ATTR14, SEMANTIC_ATTR15, SEMANTIC_ATTR2, SEMANTIC_ATTR3, SEMANTIC_ATTR4, SEMANTIC_ATTR5, SEMANTIC_ATTR6, SEMANTIC_ATTR7, SEMANTIC_ATTR8, SEMANTIC_ATTR9, SEMANTIC_BLENDINDICES, SEMANTIC_BLENDWEIGHT, SEMANTIC_COLOR, SEMANTIC_NORMAL, SEMANTIC_POSITION, SEMANTIC_TANGENT, SEMANTIC_TEXCOORD, SEMANTIC_TEXCOORD0, SEMANTIC_TEXCOORD1, SEMANTIC_TEXCOORD2, SEMANTIC_TEXCOORD3, SEMANTIC_TEXCOORD4, SEMANTIC_TEXCOORD5, SEMANTIC_TEXCOORD6, SEMANTIC_TEXCOORD7, SHADERLANGUAGE_GLSL, SHADERLANGUAGE_WGSL, SHADERSTAGE_COMPUTE, SHADERSTAGE_FRAGMENT, SHADERSTAGE_VERTEX, SHADERTAG_MATERIAL, STENCILOP_DECREMENT, STENCILOP_DECREMENTWRAP, STENCILOP_INCREMENT, STENCILOP_INCREMENTWRAP, STENCILOP_INVERT, STENCILOP_KEEP, STENCILOP_REPLACE, STENCILOP_ZERO, TEXHINT_ASSET, TEXHINT_LIGHTMAP, TEXHINT_NONE, TEXHINT_SHADOWMAP, TEXPROPERTY_ADDRESS_U, TEXPROPERTY_ADDRESS_V, TEXPROPERTY_ADDRESS_W, TEXPROPERTY_ALL, TEXPROPERTY_ANISOTROPY, TEXPROPERTY_COMPARE_FUNC, TEXPROPERTY_COMPARE_ON_READ, TEXPROPERTY_MAG_FILTER, TEXPROPERTY_MIN_FILTER, TEXTUREDIMENSION_1D, TEXTUREDIMENSION_2D, TEXTUREDIMENSION_2D_ARRAY, TEXTUREDIMENSION_3D, TEXTUREDIMENSION_CUBE, TEXTUREDIMENSION_CUBE_ARRAY, TEXTURELOCK_NONE, TEXTURELOCK_READ, TEXTURELOCK_WRITE, TEXTUREPROJECTION_CUBE, TEXTUREPROJECTION_EQUIRECT, TEXTUREPROJECTION_NONE, TEXTUREPROJECTION_OCTAHEDRAL, TEXTURETYPE_DEFAULT, TEXTURETYPE_RGBE, TEXTURETYPE_RGBM, TEXTURETYPE_RGBP, TEXTURETYPE_SWIZZLEGGGR, TYPE_FLOAT16, TYPE_FLOAT32, TYPE_INT16, TYPE_INT32, TYPE_INT8, TYPE_UINT16, TYPE_UINT32, TYPE_UINT8, UNIFORMTYPE_BOOL, UNIFORMTYPE_BOOLARRAY, UNIFORMTYPE_BVEC2, UNIFORMTYPE_BVEC2ARRAY, UNIFORMTYPE_BVEC3, UNIFORMTYPE_BVEC3ARRAY, UNIFORMTYPE_BVEC4, UNIFORMTYPE_BVEC4ARRAY, UNIFORMTYPE_FLOAT, UNIFORMTYPE_FLOATARRAY, UNIFORMTYPE_INT, UNIFORMTYPE_INTARRAY, UNIFORMTYPE_ITEXTURE2D, UNIFORMTYPE_ITEXTURE2D_ARRAY, UNIFORMTYPE_ITEXTURE3D, UNIFORMTYPE_ITEXTURECUBE, UNIFORMTYPE_IVEC2, UNIFORMTYPE_IVEC2ARRAY, UNIFORMTYPE_IVEC3, UNIFORMTYPE_IVEC3ARRAY, UNIFORMTYPE_IVEC4, UNIFORMTYPE_IVEC4ARRAY, UNIFORMTYPE_MAT2, UNIFORMTYPE_MAT3, UNIFORMTYPE_MAT4, UNIFORMTYPE_MAT4ARRAY, UNIFORMTYPE_TEXTURE2D, UNIFORMTYPE_TEXTURE2D_ARRAY, UNIFORMTYPE_TEXTURE2D_SHADOW, UNIFORMTYPE_TEXTURE3D, UNIFORMTYPE_TEXTURECUBE, UNIFORMTYPE_TEXTURECUBE_SHADOW, UNIFORMTYPE_UINT, UNIFORMTYPE_UINTARRAY, UNIFORMTYPE_UTEXTURE2D, UNIFORMTYPE_UTEXTURE2D_ARRAY, UNIFORMTYPE_UTEXTURE3D, UNIFORMTYPE_UTEXTURECUBE, UNIFORMTYPE_UVEC2, UNIFORMTYPE_UVEC2ARRAY, UNIFORMTYPE_UVEC3, UNIFORMTYPE_UVEC3ARRAY, UNIFORMTYPE_UVEC4, UNIFORMTYPE_UVEC4ARRAY, UNIFORMTYPE_VEC2, UNIFORMTYPE_VEC2ARRAY, UNIFORMTYPE_VEC3, UNIFORMTYPE_VEC3ARRAY, UNIFORMTYPE_VEC4, UNIFORMTYPE_VEC4ARRAY, UNIFORM_BUFFER_DEFAULT_SLOT_NAME, UNUSED_UNIFORM_NAME, bindGroupNames, getPixelFormatArrayType, indexFormatByteSize, isCompressedPixelFormat, isIntegerPixelFormat, isSrgbPixelFormat, pixelFormatGammaToLinear, pixelFormatInfo, pixelFormatLinearToGamma, primitiveGlslToWgslTypeMap, requiresManualGamma, semanticToLocation, typedArrayIndexFormats, typedArrayIndexFormatsByteSize, typedArrayToType, typedArrayTypes, typedArrayTypesByteSize, uniformTypeToName, uniformTypeToNameMapWGSL, uniformTypeToNameWGSL, uniformTypeToStorage, vertexTypesNames };