playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
1,130 lines (1,129 loc) • 32.8 kB
JavaScript
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 = 1;
const BUFFERUSAGE_WRITE = 2;
const BUFFERUSAGE_COPY_SRC = 4;
const BUFFERUSAGE_COPY_DST = 8;
const BUFFERUSAGE_INDEX = 16;
const BUFFERUSAGE_VERTEX = 32;
const BUFFERUSAGE_UNIFORM = 64;
const BUFFERUSAGE_STORAGE = 128;
const BUFFERUSAGE_INDIRECT = 256;
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 FRONTFACE_CCW = 0;
const FRONTFACE_CW = 1;
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 PIXELFORMAT_RG32F = 70;
const PIXELFORMAT_RGB9E5 = 71;
const PIXELFORMAT_RG8S = 72;
const PIXELFORMAT_RGBA8S = 73;
const PIXELFORMAT_RGB10A2 = 74;
const PIXELFORMAT_RGB10A2U = 75;
const pixelFormatInfo = /* @__PURE__ */ new Map([
// float formats
[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_RG32F, { name: "RG32F", size: 8 }],
[PIXELFORMAT_RGB9E5, { name: "RGB9E5", size: 4 }],
[PIXELFORMAT_RG8S, { name: "RG8S", size: 2 }],
[PIXELFORMAT_RGBA8S, { name: "RGBA8S", size: 4 }],
[PIXELFORMAT_RGB10A2, { name: "RGB10A2", size: 4 }],
[PIXELFORMAT_RGB10A2U, { name: "RGB10A2U", size: 4, isUint: true }],
[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 }],
// compressed formats
[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 }],
// compressed sRGB formats
[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 }],
// signed integer formats
[PIXELFORMAT_R8I, { name: "R8I", size: 1, isInt: true }],
[PIXELFORMAT_R16I, { name: "R16I", size: 2, isInt: true }],
[PIXELFORMAT_R32I, { name: "R32I", size: 4, isInt: true }],
[PIXELFORMAT_RG8I, { name: "RG8I", size: 2, isInt: true }],
[PIXELFORMAT_RG16I, { name: "RG16I", size: 4, isInt: true }],
[PIXELFORMAT_RG32I, { name: "RG32I", size: 8, isInt: true }],
[PIXELFORMAT_RGBA8I, { name: "RGBA8I", size: 4, isInt: true }],
[PIXELFORMAT_RGBA16I, { name: "RGBA16I", size: 8, isInt: true }],
[PIXELFORMAT_RGBA32I, { name: "RGBA32I", size: 16, isInt: true }],
// unsigned integer formats
[PIXELFORMAT_R8U, { name: "R8U", size: 1, isUint: true }],
[PIXELFORMAT_R16U, { name: "R16U", size: 2, isUint: true }],
[PIXELFORMAT_R32U, { name: "R32U", size: 4, isUint: true }],
[PIXELFORMAT_RG8U, { name: "RG8U", size: 2, isUint: true }],
[PIXELFORMAT_RG16U, { name: "RG16U", size: 4, isUint: true }],
[PIXELFORMAT_RG32U, { name: "RG32U", size: 8, isUint: true }],
[PIXELFORMAT_RGBA8U, { name: "RGBA8U", size: 4, isUint: true }],
[PIXELFORMAT_RGBA16U, { name: "RGBA16U", size: 8, isUint: true }],
[PIXELFORMAT_RGBA32U, { name: "RGBA32U", size: 16, isUint: true }]
]);
const isCompressedPixelFormat = (format) => {
return pixelFormatInfo.get(format)?.blockSize !== void 0;
};
const isSrgbPixelFormat = (format) => {
return pixelFormatInfo.get(format)?.srgb === true;
};
const isIntegerPixelFormat = (format) => {
const info = pixelFormatInfo.get(format);
return info?.isInt === true || info?.isUint === true;
};
const GLSL_FLOAT = { sampler: "sampler2D", returnType: "vec4" };
const GLSL_UINT = { sampler: "usampler2D", returnType: "uvec4" };
const GLSL_INT = { sampler: "isampler2D", returnType: "ivec4" };
const WGSL_FLOAT = { textureType: "texture_2d<f32>", returnType: "vec4f" };
const WGSL_UINT = { textureType: "texture_2d<u32>", returnType: "vec4u" };
const WGSL_INT = { textureType: "texture_2d<i32>", returnType: "vec4i" };
const getGlslShaderType = (format) => {
const info = pixelFormatInfo.get(format);
if (info?.isUint) return GLSL_UINT;
if (info?.isInt) return GLSL_INT;
return GLSL_FLOAT;
};
const getWgslShaderType = (format) => {
const info = pixelFormatInfo.get(format);
if (info?.isUint) return WGSL_UINT;
if (info?.isInt) return WGSL_INT;
return WGSL_FLOAT;
};
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_RG32F:
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:
case PIXELFORMAT_RGB9E5:
case PIXELFORMAT_RGB10A2:
case PIXELFORMAT_RGB10A2U:
return Uint32Array;
case PIXELFORMAT_R16I:
case PIXELFORMAT_RG16I:
case PIXELFORMAT_RGBA16I:
return Int16Array;
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:
case PIXELFORMAT_RG8S:
case PIXELFORMAT_RGBA8S:
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 = [
// Uniforms
"bool",
"int",
"float",
"vec2",
"vec3",
"vec4",
"ivec2",
"ivec3",
"ivec4",
"bvec2",
"bvec3",
"bvec4",
"mat2",
"mat3",
"mat4",
"sampler2D",
"samplerCube",
"",
// not directly handled: UNIFORMTYPE_FLOATARRAY
"sampler2DShadow",
"samplerCubeShadow",
"sampler3D",
"",
// not directly handled: UNIFORMTYPE_VEC2ARRAY
"",
// not directly handled: UNIFORMTYPE_VEC3ARRAY
"",
// not directly handled: UNIFORMTYPE_VEC4ARRAY
"",
// not directly handled: UNIFORMTYPE_MAT4ARRAY
"sampler2DArray",
"uint",
"uvec2",
"uvec3",
"uvec4",
"",
// not directly handled: UNIFORMTYPE_INTARRAY
"",
// not directly handled: UNIFORMTYPE_UINTARRAY
"",
// not directly handled: UNIFORMTYPE_BOOLARRAY
"",
// not directly handled: UNIFORMTYPE_IVEC2ARRAY
"",
// not directly handled: UNIFORMTYPE_UVEC2ARRAY
"",
// not directly handled: UNIFORMTYPE_BVEC2ARRAY
"",
// not directly handled: UNIFORMTYPE_IVEC3ARRAY
"",
// not directly handled: UNIFORMTYPE_UVEC3ARRAY
"",
// not directly handled: UNIFORMTYPE_BVEC3ARRAY
"",
// not directly handled: UNIFORMTYPE_IVEC4ARRAY
"",
// not directly handled: UNIFORMTYPE_UVEC4ARRAY
"",
// not directly handled: UNIFORMTYPE_BVEC4ARRAY
"isampler2D",
"usampler2D",
"isamplerCube",
"usamplerCube",
"isampler3D",
"usampler3D",
"isampler2DArray",
"usampler2DArray"
];
const uniformTypeToNameWGSL = [
// Uniforms
["bool"],
// UNIFORMTYPE_BOOL
["i32"],
// UNIFORMTYPE_INT
["f32"],
// UNIFORMTYPE_FLOAT
["vec2f", "vec2<f32>"],
// UNIFORMTYPE_VEC2
["vec3f", "vec3<f32>"],
// UNIFORMTYPE_VEC3
["vec4f", "vec4<f32>"],
// UNIFORMTYPE_VEC4
["vec2i", "vec2<i32>"],
// UNIFORMTYPE_IVEC2
["vec3i", "vec3<i32>"],
// UNIFORMTYPE_IVEC3
["vec4i", "vec4<i32>"],
// UNIFORMTYPE_IVEC4
["vec2<bool>"],
// UNIFORMTYPE_BVEC2
["vec3<bool>"],
// UNIFORMTYPE_BVEC3
["vec4<bool>"],
// UNIFORMTYPE_BVEC4
["mat2x2f", "mat2x2<f32>"],
// UNIFORMTYPE_MAT2
["mat3x3f", "mat3x3<f32>"],
// UNIFORMTYPE_MAT3
["mat4x4f", "mat4x4<f32>"],
// UNIFORMTYPE_MAT4
["texture_2d<f32>"],
// UNIFORMTYPE_TEXTURE2D
["texture_cube<f32>"],
// UNIFORMTYPE_TEXTURECUBE
["array<f32>"],
// UNIFORMTYPE_FLOATARRAY
["texture_depth_2d"],
// UNIFORMTYPE_TEXTURE2D_SHADOW
["texture_depth_cube"],
// UNIFORMTYPE_TEXTURECUBE_SHADOW
["texture_3d<f32>"],
// UNIFORMTYPE_TEXTURE3D
["array<vec2<f32>>"],
// UNIFORMTYPE_VEC2ARRAY
["array<vec3<f32>>"],
// UNIFORMTYPE_VEC3ARRAY
["array<vec4<f32>>"],
// UNIFORMTYPE_VEC4ARRAY
["array<mat4x4<f32>>"],
// UNIFORMTYPE_MAT4ARRAY
["texture_2d_array<f32>"],
// UNIFORMTYPE_TEXTURE2D_ARRAY
// Unsigned integer uniforms
["u32"],
// UNIFORMTYPE_UINT
["vec2u", "vec2<u32>"],
// UNIFORMTYPE_UVEC2
["vec3u", "vec3<u32>"],
// UNIFORMTYPE_UVEC3
["vec4u", "vec4<u32>"],
// UNIFORMTYPE_UVEC4
// Integer array uniforms
["array<i32>"],
// UNIFORMTYPE_INTARRAY
["array<u32>"],
// UNIFORMTYPE_UINTARRAY
["array<bool>"],
// UNIFORMTYPE_BOOLARRAY
["array<vec2i>", "array<vec2<i32>>"],
// UNIFORMTYPE_IVEC2ARRAY
["array<vec2u>", "array<vec2<u32>>"],
// UNIFORMTYPE_UVEC2ARRAY
["array<vec2b>", "array<vec2<bool>>"],
// UNIFORMTYPE_BVEC2ARRAY
["array<vec3i>", "array<vec3<i32>>"],
// UNIFORMTYPE_IVEC3ARRAY
["array<vec3u>", "array<vec3<u32>>"],
// UNIFORMTYPE_UVEC3ARRAY
["array<vec3b>", "array<vec3<bool>>"],
// UNIFORMTYPE_BVEC3ARRAY
["array<vec4i>", "array<vec4<i32>>"],
// UNIFORMTYPE_IVEC4ARRAY
["array<vec4u>", "array<vec4<u32>>"],
// UNIFORMTYPE_UVEC4ARRAY
["array<vec4b>", "array<vec4<bool>>"],
// UNIFORMTYPE_BVEC4ARRAY
// Integer texture types
["texture_2d<i32>"],
// UNIFORMTYPE_ITEXTURE2D
["texture_2d<u32>"],
// UNIFORMTYPE_UTEXTURE2D
["texture_cube<i32>"],
// UNIFORMTYPE_ITEXTURECUBE
["texture_cube<u32>"],
// UNIFORMTYPE_UTEXTURECUBE
["texture_3d<i32>"],
// UNIFORMTYPE_ITEXTURE3D
["texture_3d<u32>"],
// UNIFORMTYPE_UTEXTURE3D
["texture_2d_array<i32>"],
// UNIFORMTYPE_ITEXTURE2D_ARRAY
["texture_2d_array<u32>"]
// UNIFORMTYPE_UTEXTURE2D_ARRAY
];
const uniformTypeToNameMapWGSL = /* @__PURE__ */ new Map();
uniformTypeToNameWGSL.forEach((names, index) => {
names.forEach((name) => uniformTypeToNameMapWGSL.set(name, index));
});
const uniformTypeToStorage = new Uint8Array([
TYPE_INT32,
// UNIFORMTYPE_BOOL
TYPE_INT32,
// UNIFORMTYPE_INT
TYPE_FLOAT32,
// UNIFORMTYPE_FLOAT
TYPE_FLOAT32,
// UNIFORMTYPE_VEC2
TYPE_FLOAT32,
// UNIFORMTYPE_VEC3
TYPE_FLOAT32,
// UNIFORMTYPE_VEC4
TYPE_INT32,
// UNIFORMTYPE_IVEC2
TYPE_INT32,
// UNIFORMTYPE_IVEC3
TYPE_INT32,
// UNIFORMTYPE_IVEC4
TYPE_INT32,
// UNIFORMTYPE_BVEC2
TYPE_INT32,
// UNIFORMTYPE_BVEC3
TYPE_INT32,
// UNIFORMTYPE_BVEC4
TYPE_FLOAT32,
// UNIFORMTYPE_MAT2
TYPE_FLOAT32,
// UNIFORMTYPE_MAT3
TYPE_FLOAT32,
// UNIFORMTYPE_MAT4
TYPE_INT32,
// UNIFORMTYPE_TEXTURE2D
TYPE_INT32,
// UNIFORMTYPE_TEXTURECUBE
TYPE_FLOAT32,
// UNIFORMTYPE_FLOATARRAY
TYPE_INT32,
// UNIFORMTYPE_TEXTURE2D_SHADOW
TYPE_INT32,
// UNIFORMTYPE_TEXTURECUBE_SHADOW
TYPE_INT32,
// UNIFORMTYPE_TEXTURE3D
TYPE_FLOAT32,
// UNIFORMTYPE_VEC2ARRAY
TYPE_FLOAT32,
// UNIFORMTYPE_VEC3ARRAY
TYPE_FLOAT32,
// UNIFORMTYPE_VEC4ARRAY
TYPE_FLOAT32,
// UNIFORMTYPE_MAT4ARRAY
TYPE_INT32,
// UNIFORMTYPE_TEXTURE2D_ARRAY
TYPE_UINT32,
// UNIFORMTYPE_UINT
TYPE_UINT32,
// UNIFORMTYPE_UVEC2
TYPE_UINT32,
// UNIFORMTYPE_UVEC3
TYPE_UINT32,
// UNIFORMTYPE_UVEC4
TYPE_INT32,
// UNIFORMTYPE_INTARRAY
TYPE_UINT32,
// UNIFORMTYPE_UINTARRAY
TYPE_INT32,
// UNIFORMTYPE_BOOLARRAY
TYPE_INT32,
// UNIFORMTYPE_IVEC2ARRAY
TYPE_UINT32,
// UNIFORMTYPE_UVEC2ARRAY
TYPE_INT32,
// UNIFORMTYPE_BVEC2ARRAY
TYPE_INT32,
// UNIFORMTYPE_IVEC3ARRAY
TYPE_UINT32,
// UNIFORMTYPE_UVEC3ARRAY
TYPE_INT32,
// UNIFORMTYPE_BVEC3ARRAY
TYPE_INT32,
// UNIFORMTYPE_IVEC4ARRAY
TYPE_UINT32,
// UNIFORMTYPE_UVEC4ARRAY
TYPE_INT32,
// UNIFORMTYPE_BVEC4ARRAY
TYPE_INT32,
// UNIFORMTYPE_ITEXTURE2D
TYPE_UINT32,
// UNIFORMTYPE_UTEXTURE2D
TYPE_INT32,
// UNIFORMTYPE_ITEXTURECUBE
TYPE_UINT32,
// UNIFORMTYPE_UTEXTURECUBE
TYPE_INT32,
// UNIFORMTYPE_ITEXTURE3D
TYPE_UINT32,
// UNIFORMTYPE_UTEXTURE3D
TYPE_INT32,
// UNIFORMTYPE_ITEXTURE2D_ARRAY
TYPE_UINT32
// UNIFORMTYPE_UTEXTURE2D_ARRAY
]);
const DEVICETYPE_WEBGL2 = "webgl2";
const DEVICETYPE_WEBGPU = "webgpu";
const DEVICETYPE_WEBGPU_BARE = "webgpu:bare";
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 = /* @__PURE__ */ new Map([
// floating-point
["float", "f32"],
["vec2", "vec2f"],
["vec3", "vec3f"],
["vec4", "vec4f"],
// signed integer
["int", "i32"],
["ivec2", "vec2i"],
["ivec3", "vec3i"],
["ivec4", "vec4i"],
// unsigned integer
["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,
DEVICETYPE_WEBGPU_BARE,
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,
FRONTFACE_CCW,
FRONTFACE_CW,
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_RG32F,
PIXELFORMAT_RG32I,
PIXELFORMAT_RG32U,
PIXELFORMAT_RG8,
PIXELFORMAT_RG8I,
PIXELFORMAT_RG8S,
PIXELFORMAT_RG8U,
PIXELFORMAT_RGB10A2,
PIXELFORMAT_RGB10A2U,
PIXELFORMAT_RGB16F,
PIXELFORMAT_RGB32F,
PIXELFORMAT_RGB565,
PIXELFORMAT_RGB8,
PIXELFORMAT_RGB9E5,
PIXELFORMAT_RGBA16F,
PIXELFORMAT_RGBA16I,
PIXELFORMAT_RGBA16U,
PIXELFORMAT_RGBA32F,
PIXELFORMAT_RGBA32I,
PIXELFORMAT_RGBA32U,
PIXELFORMAT_RGBA4,
PIXELFORMAT_RGBA5551,
PIXELFORMAT_RGBA8,
PIXELFORMAT_RGBA8I,
PIXELFORMAT_RGBA8S,
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,
getGlslShaderType,
getPixelFormatArrayType,
getWgslShaderType,
indexFormatByteSize,
isCompressedPixelFormat,
isIntegerPixelFormat,
isSrgbPixelFormat,
pixelFormatGammaToLinear,
pixelFormatInfo,
pixelFormatLinearToGamma,
primitiveGlslToWgslTypeMap,
requiresManualGamma,
semanticToLocation,
typedArrayIndexFormats,
typedArrayIndexFormatsByteSize,
typedArrayToType,
typedArrayTypes,
typedArrayTypesByteSize,
uniformTypeToName,
uniformTypeToNameMapWGSL,
uniformTypeToNameWGSL,
uniformTypeToStorage,
vertexTypesNames
};