@deck.gl/geo-layers 9.0.0-beta.5 → 9.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -11948,17 +11948,17 @@ in float vTime;
11948
11948
 
11949
11949
  // ../../node_modules/@luma.gl/gltf/dist/pbr/parse-pbr-material.js
11950
11950
  var import_core18 = __toESM(require_core2(), 1);
11951
- var GLEnum = function(GLEnum3) {
11952
- GLEnum3[GLEnum3["FUNC_ADD"] = 32774] = "FUNC_ADD";
11953
- GLEnum3[GLEnum3["ONE"] = 1] = "ONE";
11954
- GLEnum3[GLEnum3["SRC_ALPHA"] = 770] = "SRC_ALPHA";
11955
- GLEnum3[GLEnum3["ONE_MINUS_SRC_ALPHA"] = 771] = "ONE_MINUS_SRC_ALPHA";
11956
- GLEnum3[GLEnum3["TEXTURE_MIN_FILTER"] = 10241] = "TEXTURE_MIN_FILTER";
11957
- GLEnum3[GLEnum3["LINEAR"] = 9729] = "LINEAR";
11958
- GLEnum3[GLEnum3["LINEAR_MIPMAP_NEAREST"] = 9985] = "LINEAR_MIPMAP_NEAREST";
11959
- GLEnum3[GLEnum3["UNPACK_FLIP_Y_WEBGL"] = 37440] = "UNPACK_FLIP_Y_WEBGL";
11960
- return GLEnum3;
11961
- }(GLEnum || {});
11951
+ var GLEnum;
11952
+ (function(GLEnum2) {
11953
+ GLEnum2[GLEnum2["FUNC_ADD"] = 32774] = "FUNC_ADD";
11954
+ GLEnum2[GLEnum2["ONE"] = 1] = "ONE";
11955
+ GLEnum2[GLEnum2["SRC_ALPHA"] = 770] = "SRC_ALPHA";
11956
+ GLEnum2[GLEnum2["ONE_MINUS_SRC_ALPHA"] = 771] = "ONE_MINUS_SRC_ALPHA";
11957
+ GLEnum2[GLEnum2["TEXTURE_MIN_FILTER"] = 10241] = "TEXTURE_MIN_FILTER";
11958
+ GLEnum2[GLEnum2["LINEAR"] = 9729] = "LINEAR";
11959
+ GLEnum2[GLEnum2["LINEAR_MIPMAP_NEAREST"] = 9985] = "LINEAR_MIPMAP_NEAREST";
11960
+ GLEnum2[GLEnum2["UNPACK_FLIP_Y_WEBGL"] = 37440] = "UNPACK_FLIP_Y_WEBGL";
11961
+ })(GLEnum || (GLEnum = {}));
11962
11962
  function parsePBRMaterial(device, material, attributes, options) {
11963
11963
  const parsedMaterial = {
11964
11964
  defines: {
@@ -11974,32 +11974,28 @@ in float vTime;
11974
11974
  glParameters: {},
11975
11975
  generatedTextures: []
11976
11976
  };
11977
- if (device.features.has("glsl-texture-lod")) {
11978
- parsedMaterial.defines.USE_TEX_LOD = 1;
11979
- }
11980
- const {
11981
- imageBasedLightingEnvironment
11982
- } = options;
11977
+ parsedMaterial.defines.USE_TEX_LOD = 1;
11978
+ const { imageBasedLightingEnvironment } = options;
11983
11979
  if (imageBasedLightingEnvironment) {
11984
11980
  parsedMaterial.bindings.u_DiffuseEnvSampler = imageBasedLightingEnvironment.diffuseEnvSampler;
11985
11981
  parsedMaterial.bindings.u_SpecularEnvSampler = imageBasedLightingEnvironment.specularEnvSampler;
11986
11982
  parsedMaterial.bindings.u_brdfLUT = imageBasedLightingEnvironment.brdfLutTexture;
11987
11983
  parsedMaterial.uniforms.u_ScaleIBLAmbient = [1, 1];
11988
11984
  }
11989
- if (options !== null && options !== void 0 && options.pbrDebug) {
11985
+ if (options?.pbrDebug) {
11990
11986
  parsedMaterial.defines.PBR_DEBUG = 1;
11991
11987
  parsedMaterial.uniforms.u_ScaleDiffBaseMR = [0, 0, 0, 0];
11992
11988
  parsedMaterial.uniforms.u_ScaleFGDSpec = [0, 0, 0, 0];
11993
11989
  }
11994
11990
  if (attributes.NORMAL)
11995
11991
  parsedMaterial.defines.HAS_NORMALS = 1;
11996
- if (attributes.TANGENT && options !== null && options !== void 0 && options.useTangents)
11992
+ if (attributes.TANGENT && options?.useTangents)
11997
11993
  parsedMaterial.defines.HAS_TANGENTS = 1;
11998
11994
  if (attributes.TEXCOORD_0)
11999
11995
  parsedMaterial.defines.HAS_UV = 1;
12000
- if (options !== null && options !== void 0 && options.imageBasedLightingEnvironment)
11996
+ if (options?.imageBasedLightingEnvironment)
12001
11997
  parsedMaterial.defines.USE_IBL = 1;
12002
- if (options !== null && options !== void 0 && options.lights)
11998
+ if (options?.lights)
12003
11999
  parsedMaterial.defines.USE_LIGHTS = 1;
12004
12000
  if (material) {
12005
12001
  parseMaterial(device, material, parsedMaterial);
@@ -12013,16 +12009,12 @@ in float vTime;
12013
12009
  }
12014
12010
  if (material.normalTexture) {
12015
12011
  addTexture(device, material.normalTexture, "u_NormalSampler", "HAS_NORMALMAP", parsedMaterial);
12016
- const {
12017
- scale: scale6 = 1
12018
- } = material.normalTexture;
12012
+ const { scale: scale6 = 1 } = material.normalTexture;
12019
12013
  parsedMaterial.uniforms.u_NormalScale = scale6;
12020
12014
  }
12021
12015
  if (material.occlusionTexture) {
12022
12016
  addTexture(device, material.occlusionTexture, "u_OcclusionSampler", "HAS_OCCLUSIONMAP", parsedMaterial);
12023
- const {
12024
- strength = 1
12025
- } = material.occlusionTexture;
12017
+ const { strength = 1 } = material.occlusionTexture;
12026
12018
  parsedMaterial.uniforms.u_OcclusionStrength = strength;
12027
12019
  }
12028
12020
  if (material.emissiveTexture) {
@@ -12031,9 +12023,7 @@ in float vTime;
12031
12023
  }
12032
12024
  switch (material.alphaMode) {
12033
12025
  case "MASK":
12034
- const {
12035
- alphaCutoff = 0.5
12036
- } = material;
12026
+ const { alphaCutoff = 0.5 } = material;
12037
12027
  parsedMaterial.defines.ALPHA_CUTOFF = 1;
12038
12028
  parsedMaterial.uniforms.u_AlphaCutoff = alphaCutoff;
12039
12029
  break;
@@ -12047,7 +12037,12 @@ in float vTime;
12047
12037
  parsedMaterial.parameters.blendAlphaDstFactor = "one-minus-src-alpha";
12048
12038
  parsedMaterial.glParameters.blend = true;
12049
12039
  parsedMaterial.glParameters.blendEquation = GLEnum.FUNC_ADD;
12050
- parsedMaterial.glParameters.blendFunc = [GLEnum.SRC_ALPHA, GLEnum.ONE_MINUS_SRC_ALPHA, GLEnum.ONE, GLEnum.ONE_MINUS_SRC_ALPHA];
12040
+ parsedMaterial.glParameters.blendFunc = [
12041
+ GLEnum.SRC_ALPHA,
12042
+ GLEnum.ONE_MINUS_SRC_ALPHA,
12043
+ GLEnum.ONE,
12044
+ GLEnum.ONE_MINUS_SRC_ALPHA
12045
+ ];
12051
12046
  break;
12052
12047
  }
12053
12048
  }
@@ -12059,17 +12054,11 @@ in float vTime;
12059
12054
  if (pbrMetallicRoughness.metallicRoughnessTexture) {
12060
12055
  addTexture(device, pbrMetallicRoughness.metallicRoughnessTexture, "u_MetallicRoughnessSampler", "HAS_METALROUGHNESSMAP", parsedMaterial);
12061
12056
  }
12062
- const {
12063
- metallicFactor = 1,
12064
- roughnessFactor = 1
12065
- } = pbrMetallicRoughness;
12057
+ const { metallicFactor = 1, roughnessFactor = 1 } = pbrMetallicRoughness;
12066
12058
  parsedMaterial.uniforms.u_MetallicRoughnessValues = [metallicFactor, roughnessFactor];
12067
12059
  }
12068
- function addTexture(device, gltfTexture, uniformName) {
12069
- var _gltfTexture$texture;
12070
- let define2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
12071
- let parsedMaterial = arguments.length > 4 ? arguments[4] : void 0;
12072
- const parameters = (gltfTexture === null || gltfTexture === void 0 || (_gltfTexture$texture = gltfTexture.texture) === null || _gltfTexture$texture === void 0 || (_gltfTexture$texture = _gltfTexture$texture.sampler) === null || _gltfTexture$texture === void 0 ? void 0 : _gltfTexture$texture.parameters) || {};
12060
+ function addTexture(device, gltfTexture, uniformName, define2 = null, parsedMaterial) {
12061
+ const parameters = gltfTexture?.texture?.sampler?.parameters || {};
12073
12062
  const image = gltfTexture.texture.source.image;
12074
12063
  let textureOptions;
12075
12064
  let specialTextureParameters = {};
@@ -12079,9 +12068,7 @@ in float vTime;
12079
12068
  [GLEnum.TEXTURE_MIN_FILTER]: image.data.length > 1 ? GLEnum.LINEAR_MIPMAP_NEAREST : GLEnum.LINEAR
12080
12069
  };
12081
12070
  } else {
12082
- textureOptions = {
12083
- data: image
12084
- };
12071
+ textureOptions = { data: image };
12085
12072
  }
12086
12073
  const texture = device.createTexture({
12087
12074
  id: gltfTexture.uniformName || gltfTexture.id,
@@ -12100,188 +12087,6 @@ in float vTime;
12100
12087
  parsedMaterial.generatedTextures.push(texture);
12101
12088
  }
12102
12089
 
12103
- // ../../node_modules/@loaders.gl/textures/dist/lib/utils/version.js
12104
- var VERSION6 = true ? "4.1.0" : "latest";
12105
-
12106
- // ../../node_modules/@loaders.gl/textures/dist/lib/parsers/basis-module-loader.js
12107
- var BASIS_EXTERNAL_LIBRARIES = {
12108
- TRANSCODER: "basis_transcoder.js",
12109
- TRANSCODER_WASM: "basis_transcoder.wasm",
12110
- ENCODER: "basis_encoder.js",
12111
- ENCODER_WASM: "basis_encoder.wasm"
12112
- };
12113
- var loadBasisTranscoderPromise;
12114
- async function loadBasisTranscoderModule(options) {
12115
- const modules = options.modules || {};
12116
- if (modules.basis) {
12117
- return modules.basis;
12118
- }
12119
- loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
12120
- return await loadBasisTranscoderPromise;
12121
- }
12122
- async function loadBasisTranscoder(options) {
12123
- let BASIS = null;
12124
- let wasmBinary = null;
12125
- [BASIS, wasmBinary] = await Promise.all([await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options), await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)]);
12126
- BASIS = BASIS || globalThis.BASIS;
12127
- return await initializeBasisTranscoderModule(BASIS, wasmBinary);
12128
- }
12129
- function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
12130
- const options = {};
12131
- if (wasmBinary) {
12132
- options.wasmBinary = wasmBinary;
12133
- }
12134
- return new Promise((resolve2) => {
12135
- BasisModule(options).then((module) => {
12136
- const {
12137
- BasisFile,
12138
- initializeBasis
12139
- } = module;
12140
- initializeBasis();
12141
- resolve2({
12142
- BasisFile
12143
- });
12144
- });
12145
- });
12146
- }
12147
- var loadBasisEncoderPromise;
12148
- async function loadBasisEncoderModule(options) {
12149
- const modules = options.modules || {};
12150
- if (modules.basisEncoder) {
12151
- return modules.basisEncoder;
12152
- }
12153
- loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);
12154
- return await loadBasisEncoderPromise;
12155
- }
12156
- async function loadBasisEncoder(options) {
12157
- let BASIS_ENCODER = null;
12158
- let wasmBinary = null;
12159
- [BASIS_ENCODER, wasmBinary] = await Promise.all([await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options), await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)]);
12160
- BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
12161
- return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
12162
- }
12163
- function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
12164
- const options = {};
12165
- if (wasmBinary) {
12166
- options.wasmBinary = wasmBinary;
12167
- }
12168
- return new Promise((resolve2) => {
12169
- BasisEncoderModule(options).then((module) => {
12170
- const {
12171
- BasisFile,
12172
- KTX2File,
12173
- initializeBasis,
12174
- BasisEncoder
12175
- } = module;
12176
- initializeBasis();
12177
- resolve2({
12178
- BasisFile,
12179
- KTX2File,
12180
- BasisEncoder
12181
- });
12182
- });
12183
- });
12184
- }
12185
-
12186
- // ../../node_modules/@loaders.gl/textures/dist/lib/gl-extensions.js
12187
- var GL_EXTENSIONS_CONSTANTS = {
12188
- COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
12189
- COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
12190
- COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
12191
- COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
12192
- COMPRESSED_R11_EAC: 37488,
12193
- COMPRESSED_SIGNED_R11_EAC: 37489,
12194
- COMPRESSED_RG11_EAC: 37490,
12195
- COMPRESSED_SIGNED_RG11_EAC: 37491,
12196
- COMPRESSED_RGB8_ETC2: 37492,
12197
- COMPRESSED_RGBA8_ETC2_EAC: 37493,
12198
- COMPRESSED_SRGB8_ETC2: 37494,
12199
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
12200
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
12201
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
12202
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
12203
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
12204
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
12205
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
12206
- COMPRESSED_RGB_ETC1_WEBGL: 36196,
12207
- COMPRESSED_RGB_ATC_WEBGL: 35986,
12208
- COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35987,
12209
- COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
12210
- COMPRESSED_RGBA_ASTC_4X4_KHR: 37808,
12211
- COMPRESSED_RGBA_ASTC_5X4_KHR: 37809,
12212
- COMPRESSED_RGBA_ASTC_5X5_KHR: 37810,
12213
- COMPRESSED_RGBA_ASTC_6X5_KHR: 37811,
12214
- COMPRESSED_RGBA_ASTC_6X6_KHR: 37812,
12215
- COMPRESSED_RGBA_ASTC_8X5_KHR: 37813,
12216
- COMPRESSED_RGBA_ASTC_8X6_KHR: 37814,
12217
- COMPRESSED_RGBA_ASTC_8X8_KHR: 37815,
12218
- COMPRESSED_RGBA_ASTC_10X5_KHR: 37816,
12219
- COMPRESSED_RGBA_ASTC_10X6_KHR: 37817,
12220
- COMPRESSED_RGBA_ASTC_10X8_KHR: 37818,
12221
- COMPRESSED_RGBA_ASTC_10X10_KHR: 37819,
12222
- COMPRESSED_RGBA_ASTC_12X10_KHR: 37820,
12223
- COMPRESSED_RGBA_ASTC_12X12_KHR: 37821,
12224
- COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 37840,
12225
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 37841,
12226
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 37842,
12227
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 37843,
12228
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 37844,
12229
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 37845,
12230
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 37846,
12231
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 37847,
12232
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 37848,
12233
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 37849,
12234
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 37850,
12235
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 37851,
12236
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 37852,
12237
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 37853,
12238
- COMPRESSED_RED_RGTC1_EXT: 36283,
12239
- COMPRESSED_SIGNED_RED_RGTC1_EXT: 36284,
12240
- COMPRESSED_RED_GREEN_RGTC2_EXT: 36285,
12241
- COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 36286,
12242
- COMPRESSED_SRGB_S3TC_DXT1_EXT: 35916,
12243
- COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 35917,
12244
- COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 35918,
12245
- COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
12246
- };
12247
-
12248
- // ../../node_modules/@loaders.gl/textures/dist/lib/utils/texture-formats.js
12249
- var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
12250
- var WEBGL_EXTENSIONS = {
12251
- WEBGL_compressed_texture_s3tc: "dxt",
12252
- WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
12253
- WEBGL_compressed_texture_etc1: "etc1",
12254
- WEBGL_compressed_texture_etc: "etc2",
12255
- WEBGL_compressed_texture_pvrtc: "pvrtc",
12256
- WEBGL_compressed_texture_atc: "atc",
12257
- WEBGL_compressed_texture_astc: "astc",
12258
- EXT_texture_compression_rgtc: "rgtc"
12259
- };
12260
- var formats = null;
12261
- function getSupportedGPUTextureFormats(gl) {
12262
- if (!formats) {
12263
- gl = gl || getWebGLContext() || void 0;
12264
- formats = /* @__PURE__ */ new Set();
12265
- for (const prefix of BROWSER_PREFIXES) {
12266
- for (const extension in WEBGL_EXTENSIONS) {
12267
- if (gl && gl.getExtension(`${prefix}${extension}`)) {
12268
- const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
12269
- formats.add(gpuTextureFormat);
12270
- }
12271
- }
12272
- }
12273
- }
12274
- return formats;
12275
- }
12276
- function getWebGLContext() {
12277
- try {
12278
- const canvas = document.createElement("canvas");
12279
- return canvas.getContext("webgl");
12280
- } catch (error) {
12281
- return null;
12282
- }
12283
- }
12284
-
12285
12090
  // ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
12286
12091
  var t = new Uint8Array([0]);
12287
12092
  var n;
@@ -12310,1113 +12115,113 @@ in float vTime;
12310
12115
  t2[t2.RGB = 0] = "RGB", t2[t2.RGBA = 3] = "RGBA", t2[t2.RRR = 4] = "RRR", t2[t2.RRRG = 5] = "RRRG";
12311
12116
  }(f || (f = {}));
12312
12117
 
12313
- // ../../node_modules/@loaders.gl/textures/dist/lib/parsers/parse-ktx.js
12314
- var KTX2_ID = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
12315
- function isKTX(data) {
12316
- const id = new Uint8Array(data);
12317
- const notKTX = id.byteLength < KTX2_ID.length || id[0] !== KTX2_ID[0] || id[1] !== KTX2_ID[1] || id[2] !== KTX2_ID[2] || id[3] !== KTX2_ID[3] || id[4] !== KTX2_ID[4] || id[5] !== KTX2_ID[5] || id[6] !== KTX2_ID[6] || id[7] !== KTX2_ID[7] || id[8] !== KTX2_ID[8] || id[9] !== KTX2_ID[9] || id[10] !== KTX2_ID[10] || id[11] !== KTX2_ID[11];
12318
- return !notKTX;
12319
- }
12118
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/lights/lights-glsl.js
12119
+ var lightingShader = `#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
12120
+ struct AmbientLight {
12121
+ vec3 color;
12122
+ };
12123
+ struct PointLight {
12124
+ vec3 color;
12125
+ vec3 position;
12126
+ vec3 attenuation;
12127
+ };
12128
+ struct DirectionalLight {
12129
+ vec3 color;
12130
+ vec3 direction;
12131
+ };
12132
+ uniform AmbientLight lighting_uAmbientLight;
12133
+ uniform PointLight lighting_uPointLight[MAX_LIGHTS];
12134
+ uniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];
12135
+ uniform int lighting_uPointLightCount;
12136
+ uniform int lighting_uDirectionalLightCount;
12137
+ uniform bool lighting_uEnabled;
12138
+ float getPointLightAttenuation(PointLight pointLight, float distance) {
12139
+ return pointLight.attenuation.x
12140
+ + pointLight.attenuation.y * distance
12141
+ + pointLight.attenuation.z * distance * distance;
12142
+ }
12143
+ #endif
12144
+ `;
12320
12145
 
12321
- // ../../node_modules/@loaders.gl/textures/dist/lib/parsers/parse-basis.js
12322
- var OutputFormat = {
12323
- etc1: {
12324
- basisFormat: 0,
12325
- compressed: true,
12326
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
12327
- },
12328
- etc2: {
12329
- basisFormat: 1,
12330
- compressed: true
12331
- },
12332
- bc1: {
12333
- basisFormat: 2,
12334
- compressed: true,
12335
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
12336
- },
12337
- bc3: {
12338
- basisFormat: 3,
12339
- compressed: true,
12340
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
12341
- },
12342
- bc4: {
12343
- basisFormat: 4,
12344
- compressed: true
12345
- },
12346
- bc5: {
12347
- basisFormat: 5,
12348
- compressed: true
12349
- },
12350
- "bc7-m6-opaque-only": {
12351
- basisFormat: 6,
12352
- compressed: true
12353
- },
12354
- "bc7-m5": {
12355
- basisFormat: 7,
12356
- compressed: true
12357
- },
12358
- "pvrtc1-4-rgb": {
12359
- basisFormat: 8,
12360
- compressed: true,
12361
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
12362
- },
12363
- "pvrtc1-4-rgba": {
12364
- basisFormat: 9,
12365
- compressed: true,
12366
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
12367
- },
12368
- "astc-4x4": {
12369
- basisFormat: 10,
12370
- compressed: true,
12371
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
12372
- },
12373
- "atc-rgb": {
12374
- basisFormat: 11,
12375
- compressed: true
12376
- },
12377
- "atc-rgba-interpolated-alpha": {
12378
- basisFormat: 12,
12379
- compressed: true
12380
- },
12381
- rgba32: {
12382
- basisFormat: 13,
12383
- compressed: false
12384
- },
12385
- rgb565: {
12386
- basisFormat: 14,
12387
- compressed: false
12388
- },
12389
- bgr565: {
12390
- basisFormat: 15,
12391
- compressed: false
12392
- },
12393
- rgba4444: {
12394
- basisFormat: 16,
12395
- compressed: false
12396
- }
12146
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/lights/lights.js
12147
+ var INITIAL_MODULE_OPTIONS = {
12148
+ lightSources: {}
12397
12149
  };
12398
- async function parseBasis(data, options) {
12399
- if (options.basis.containerFormat === "auto") {
12400
- if (isKTX(data)) {
12401
- const fileConstructors = await loadBasisEncoderModule(options);
12402
- return parseKTX2File(fileConstructors.KTX2File, data, options);
12403
- }
12404
- const {
12405
- BasisFile
12406
- } = await loadBasisTranscoderModule(options);
12407
- return parseBasisFile(BasisFile, data, options);
12408
- }
12409
- switch (options.basis.module) {
12410
- case "encoder":
12411
- const fileConstructors = await loadBasisEncoderModule(options);
12412
- switch (options.basis.containerFormat) {
12413
- case "ktx2":
12414
- return parseKTX2File(fileConstructors.KTX2File, data, options);
12415
- case "basis":
12416
- default:
12417
- return parseBasisFile(fileConstructors.BasisFile, data, options);
12418
- }
12419
- case "transcoder":
12420
- default:
12421
- const {
12422
- BasisFile
12423
- } = await loadBasisTranscoderModule(options);
12424
- return parseBasisFile(BasisFile, data, options);
12425
- }
12426
- }
12427
- function parseBasisFile(BasisFile, data, options) {
12428
- const basisFile = new BasisFile(new Uint8Array(data));
12429
- try {
12430
- if (!basisFile.startTranscoding()) {
12431
- throw new Error("Failed to start basis transcoding");
12432
- }
12433
- const imageCount = basisFile.getNumImages();
12434
- const images = [];
12435
- for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {
12436
- const levelsCount = basisFile.getNumLevels(imageIndex);
12437
- const levels = [];
12438
- for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
12439
- levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));
12440
- }
12441
- images.push(levels);
12442
- }
12443
- return images;
12444
- } finally {
12445
- basisFile.close();
12446
- basisFile.delete();
12447
- }
12150
+ function convertColor(colorDef = {}) {
12151
+ const { color = [0, 0, 0], intensity = 1 } = colorDef;
12152
+ return color.map((component) => component * intensity / 255);
12448
12153
  }
12449
- function transcodeImage(basisFile, imageIndex, levelIndex, options) {
12450
- const width = basisFile.getImageWidth(imageIndex, levelIndex);
12451
- const height = basisFile.getImageHeight(imageIndex, levelIndex);
12452
- const hasAlpha = basisFile.getHasAlpha();
12453
- const {
12454
- compressed,
12455
- format,
12456
- basisFormat
12457
- } = getBasisOptions(options, hasAlpha);
12458
- const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
12459
- const decodedData = new Uint8Array(decodedSize);
12460
- if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
12461
- throw new Error("failed to start Basis transcoding");
12154
+ function getLightSourceUniforms({ ambientLight, pointLights = [], directionalLights = [] }) {
12155
+ const lightSourceUniforms = {};
12156
+ if (ambientLight) {
12157
+ lightSourceUniforms["lighting_uAmbientLight.color"] = convertColor(ambientLight);
12158
+ } else {
12159
+ lightSourceUniforms["lighting_uAmbientLight.color"] = [0, 0, 0];
12462
12160
  }
12463
- return {
12464
- width,
12465
- height,
12466
- data: decodedData,
12467
- compressed,
12468
- format,
12469
- hasAlpha
12470
- };
12161
+ pointLights.forEach((pointLight, index) => {
12162
+ lightSourceUniforms[`lighting_uPointLight[${index}].color`] = convertColor(pointLight);
12163
+ lightSourceUniforms[`lighting_uPointLight[${index}].position`] = pointLight.position;
12164
+ lightSourceUniforms[`lighting_uPointLight[${index}].attenuation`] = pointLight.attenuation || [
12165
+ 1,
12166
+ 0,
12167
+ 0
12168
+ ];
12169
+ });
12170
+ lightSourceUniforms.lighting_uPointLightCount = pointLights.length;
12171
+ directionalLights.forEach((directionalLight, index) => {
12172
+ lightSourceUniforms[`lighting_uDirectionalLight[${index}].color`] = convertColor(directionalLight);
12173
+ lightSourceUniforms[`lighting_uDirectionalLight[${index}].direction`] = directionalLight.direction;
12174
+ });
12175
+ lightSourceUniforms.lighting_uDirectionalLightCount = directionalLights.length;
12176
+ return lightSourceUniforms;
12471
12177
  }
12472
- function parseKTX2File(KTX2File, data, options) {
12473
- const ktx2File = new KTX2File(new Uint8Array(data));
12474
- try {
12475
- if (!ktx2File.startTranscoding()) {
12476
- throw new Error("failed to start KTX2 transcoding");
12477
- }
12478
- const levelsCount = ktx2File.getLevels();
12479
- const levels = [];
12480
- for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
12481
- levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
12482
- break;
12178
+ function getUniforms(opts = INITIAL_MODULE_OPTIONS) {
12179
+ if ("lightSources" in opts) {
12180
+ const { ambientLight, pointLights, directionalLights } = opts.lightSources || {};
12181
+ const hasLights = ambientLight || pointLights && pointLights.length > 0 || directionalLights && directionalLights.length > 0;
12182
+ if (!hasLights) {
12183
+ return { lighting_uEnabled: false };
12483
12184
  }
12484
- return [levels];
12485
- } finally {
12486
- ktx2File.close();
12487
- ktx2File.delete();
12488
- }
12489
- }
12490
- function transcodeKTX2Image(ktx2File, levelIndex, options) {
12491
- const {
12492
- alphaFlag,
12493
- height,
12494
- width
12495
- } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
12496
- const {
12497
- compressed,
12498
- format,
12499
- basisFormat
12500
- } = getBasisOptions(options, alphaFlag);
12501
- const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
12502
- const decodedData = new Uint8Array(decodedSize);
12503
- if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
12504
- throw new Error("Failed to transcode KTX2 image");
12505
- }
12506
- return {
12507
- width,
12508
- height,
12509
- data: decodedData,
12510
- compressed,
12511
- levelSize: decodedSize,
12512
- hasAlpha: alphaFlag,
12513
- format
12514
- };
12515
- }
12516
- function getBasisOptions(options, hasAlpha) {
12517
- let format = options && options.basis && options.basis.format;
12518
- if (format === "auto") {
12519
- format = selectSupportedBasisFormat();
12520
- }
12521
- if (typeof format === "object") {
12522
- format = hasAlpha ? format.alpha : format.noAlpha;
12185
+ return Object.assign({}, getLightSourceUniforms({ ambientLight, pointLights, directionalLights }), {
12186
+ lighting_uEnabled: true
12187
+ });
12523
12188
  }
12524
- format = format.toLowerCase();
12525
- return OutputFormat[format];
12526
- }
12527
- function selectSupportedBasisFormat() {
12528
- const supportedFormats = getSupportedGPUTextureFormats();
12529
- if (supportedFormats.has("astc")) {
12530
- return "astc-4x4";
12531
- } else if (supportedFormats.has("dxt")) {
12532
- return {
12533
- alpha: "bc3",
12534
- noAlpha: "bc1"
12535
- };
12536
- } else if (supportedFormats.has("pvrtc")) {
12537
- return {
12538
- alpha: "pvrtc1-4-rgba",
12539
- noAlpha: "pvrtc1-4-rgb"
12540
- };
12541
- } else if (supportedFormats.has("etc1")) {
12542
- return "etc1";
12543
- } else if (supportedFormats.has("etc2")) {
12544
- return "etc2";
12189
+ if ("lights" in opts) {
12190
+ const lightSources = { pointLights: [], directionalLights: [] };
12191
+ for (const light of opts.lights || []) {
12192
+ switch (light.type) {
12193
+ case "ambient":
12194
+ lightSources.ambientLight = light;
12195
+ break;
12196
+ case "directional":
12197
+ lightSources.directionalLights?.push(light);
12198
+ break;
12199
+ case "point":
12200
+ lightSources.pointLights?.push(light);
12201
+ break;
12202
+ default:
12203
+ }
12204
+ }
12205
+ return getUniforms({ lightSources });
12545
12206
  }
12546
- return "rgb565";
12207
+ return {};
12547
12208
  }
12548
-
12549
- // ../../node_modules/@loaders.gl/textures/dist/basis-loader.js
12550
- var BasisWorkerLoader = {
12551
- name: "Basis",
12552
- id: "basis",
12553
- module: "textures",
12554
- version: VERSION6,
12555
- worker: true,
12556
- extensions: ["basis", "ktx2"],
12557
- mimeTypes: ["application/octet-stream", "image/ktx2"],
12558
- tests: ["sB"],
12559
- binary: true,
12560
- options: {
12561
- basis: {
12562
- format: "auto",
12563
- libraryPath: "libs/",
12564
- containerFormat: "auto",
12565
- module: "transcoder"
12566
- }
12209
+ var lights = {
12210
+ name: "lights",
12211
+ vs: lightingShader,
12212
+ fs: lightingShader,
12213
+ getUniforms,
12214
+ defines: {
12215
+ MAX_LIGHTS: 3
12567
12216
  }
12568
12217
  };
12569
- var BasisLoader = {
12570
- ...BasisWorkerLoader,
12571
- parse: parseBasis
12572
- };
12573
12218
 
12574
- // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
12575
- function isElectron(mockUserAgent) {
12576
- if (typeof window !== "undefined" && typeof window.process === "object" && window.process.type === "renderer") {
12577
- return true;
12578
- }
12579
- if (typeof process !== "undefined" && typeof process.versions === "object" && Boolean(process.versions["electron"])) {
12580
- return true;
12581
- }
12582
- const realUserAgent = typeof navigator === "object" && typeof navigator.userAgent === "string" && navigator.userAgent;
12583
- const userAgent = mockUserAgent || realUserAgent;
12584
- if (userAgent && userAgent.indexOf("Electron") >= 0) {
12585
- return true;
12586
- }
12587
- return false;
12588
- }
12589
-
12590
- // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
12591
- function isBrowser3() {
12592
- const isNode = typeof process === "object" && String(process) === "[object process]" && !process.browser;
12593
- return !isNode || isElectron();
12594
- }
12595
-
12596
- // ../../node_modules/@probe.gl/env/dist/lib/globals.js
12597
- var self_3 = globalThis.self || globalThis.window || globalThis.global;
12598
- var window_3 = globalThis.window || globalThis.self || globalThis.global;
12599
- var document_3 = globalThis.document || {};
12600
- var process_ = globalThis.process || {};
12601
- var console_ = globalThis.console;
12602
- var navigator_ = globalThis.navigator || {};
12603
-
12604
- // ../../node_modules/@probe.gl/env/dist/utils/globals.js
12605
- var VERSION7 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
12606
- var isBrowser4 = isBrowser3();
12607
-
12608
- // ../../node_modules/@luma.gl/constants/dist/constants-enum.js
12609
- var GLEnum2 = function(GLEnum3) {
12610
- GLEnum3[GLEnum3["DEPTH_BUFFER_BIT"] = 256] = "DEPTH_BUFFER_BIT";
12611
- GLEnum3[GLEnum3["STENCIL_BUFFER_BIT"] = 1024] = "STENCIL_BUFFER_BIT";
12612
- GLEnum3[GLEnum3["COLOR_BUFFER_BIT"] = 16384] = "COLOR_BUFFER_BIT";
12613
- GLEnum3[GLEnum3["POINTS"] = 0] = "POINTS";
12614
- GLEnum3[GLEnum3["LINES"] = 1] = "LINES";
12615
- GLEnum3[GLEnum3["LINE_LOOP"] = 2] = "LINE_LOOP";
12616
- GLEnum3[GLEnum3["LINE_STRIP"] = 3] = "LINE_STRIP";
12617
- GLEnum3[GLEnum3["TRIANGLES"] = 4] = "TRIANGLES";
12618
- GLEnum3[GLEnum3["TRIANGLE_STRIP"] = 5] = "TRIANGLE_STRIP";
12619
- GLEnum3[GLEnum3["TRIANGLE_FAN"] = 6] = "TRIANGLE_FAN";
12620
- GLEnum3[GLEnum3["ZERO"] = 0] = "ZERO";
12621
- GLEnum3[GLEnum3["ONE"] = 1] = "ONE";
12622
- GLEnum3[GLEnum3["SRC_COLOR"] = 768] = "SRC_COLOR";
12623
- GLEnum3[GLEnum3["ONE_MINUS_SRC_COLOR"] = 769] = "ONE_MINUS_SRC_COLOR";
12624
- GLEnum3[GLEnum3["SRC_ALPHA"] = 770] = "SRC_ALPHA";
12625
- GLEnum3[GLEnum3["ONE_MINUS_SRC_ALPHA"] = 771] = "ONE_MINUS_SRC_ALPHA";
12626
- GLEnum3[GLEnum3["DST_ALPHA"] = 772] = "DST_ALPHA";
12627
- GLEnum3[GLEnum3["ONE_MINUS_DST_ALPHA"] = 773] = "ONE_MINUS_DST_ALPHA";
12628
- GLEnum3[GLEnum3["DST_COLOR"] = 774] = "DST_COLOR";
12629
- GLEnum3[GLEnum3["ONE_MINUS_DST_COLOR"] = 775] = "ONE_MINUS_DST_COLOR";
12630
- GLEnum3[GLEnum3["SRC_ALPHA_SATURATE"] = 776] = "SRC_ALPHA_SATURATE";
12631
- GLEnum3[GLEnum3["CONSTANT_COLOR"] = 32769] = "CONSTANT_COLOR";
12632
- GLEnum3[GLEnum3["ONE_MINUS_CONSTANT_COLOR"] = 32770] = "ONE_MINUS_CONSTANT_COLOR";
12633
- GLEnum3[GLEnum3["CONSTANT_ALPHA"] = 32771] = "CONSTANT_ALPHA";
12634
- GLEnum3[GLEnum3["ONE_MINUS_CONSTANT_ALPHA"] = 32772] = "ONE_MINUS_CONSTANT_ALPHA";
12635
- GLEnum3[GLEnum3["FUNC_ADD"] = 32774] = "FUNC_ADD";
12636
- GLEnum3[GLEnum3["FUNC_SUBTRACT"] = 32778] = "FUNC_SUBTRACT";
12637
- GLEnum3[GLEnum3["FUNC_REVERSE_SUBTRACT"] = 32779] = "FUNC_REVERSE_SUBTRACT";
12638
- GLEnum3[GLEnum3["BLEND_EQUATION"] = 32777] = "BLEND_EQUATION";
12639
- GLEnum3[GLEnum3["BLEND_EQUATION_RGB"] = 32777] = "BLEND_EQUATION_RGB";
12640
- GLEnum3[GLEnum3["BLEND_EQUATION_ALPHA"] = 34877] = "BLEND_EQUATION_ALPHA";
12641
- GLEnum3[GLEnum3["BLEND_DST_RGB"] = 32968] = "BLEND_DST_RGB";
12642
- GLEnum3[GLEnum3["BLEND_SRC_RGB"] = 32969] = "BLEND_SRC_RGB";
12643
- GLEnum3[GLEnum3["BLEND_DST_ALPHA"] = 32970] = "BLEND_DST_ALPHA";
12644
- GLEnum3[GLEnum3["BLEND_SRC_ALPHA"] = 32971] = "BLEND_SRC_ALPHA";
12645
- GLEnum3[GLEnum3["BLEND_COLOR"] = 32773] = "BLEND_COLOR";
12646
- GLEnum3[GLEnum3["ARRAY_BUFFER_BINDING"] = 34964] = "ARRAY_BUFFER_BINDING";
12647
- GLEnum3[GLEnum3["ELEMENT_ARRAY_BUFFER_BINDING"] = 34965] = "ELEMENT_ARRAY_BUFFER_BINDING";
12648
- GLEnum3[GLEnum3["LINE_WIDTH"] = 2849] = "LINE_WIDTH";
12649
- GLEnum3[GLEnum3["ALIASED_POINT_SIZE_RANGE"] = 33901] = "ALIASED_POINT_SIZE_RANGE";
12650
- GLEnum3[GLEnum3["ALIASED_LINE_WIDTH_RANGE"] = 33902] = "ALIASED_LINE_WIDTH_RANGE";
12651
- GLEnum3[GLEnum3["CULL_FACE_MODE"] = 2885] = "CULL_FACE_MODE";
12652
- GLEnum3[GLEnum3["FRONT_FACE"] = 2886] = "FRONT_FACE";
12653
- GLEnum3[GLEnum3["DEPTH_RANGE"] = 2928] = "DEPTH_RANGE";
12654
- GLEnum3[GLEnum3["DEPTH_WRITEMASK"] = 2930] = "DEPTH_WRITEMASK";
12655
- GLEnum3[GLEnum3["DEPTH_CLEAR_VALUE"] = 2931] = "DEPTH_CLEAR_VALUE";
12656
- GLEnum3[GLEnum3["DEPTH_FUNC"] = 2932] = "DEPTH_FUNC";
12657
- GLEnum3[GLEnum3["STENCIL_CLEAR_VALUE"] = 2961] = "STENCIL_CLEAR_VALUE";
12658
- GLEnum3[GLEnum3["STENCIL_FUNC"] = 2962] = "STENCIL_FUNC";
12659
- GLEnum3[GLEnum3["STENCIL_FAIL"] = 2964] = "STENCIL_FAIL";
12660
- GLEnum3[GLEnum3["STENCIL_PASS_DEPTH_FAIL"] = 2965] = "STENCIL_PASS_DEPTH_FAIL";
12661
- GLEnum3[GLEnum3["STENCIL_PASS_DEPTH_PASS"] = 2966] = "STENCIL_PASS_DEPTH_PASS";
12662
- GLEnum3[GLEnum3["STENCIL_REF"] = 2967] = "STENCIL_REF";
12663
- GLEnum3[GLEnum3["STENCIL_VALUE_MASK"] = 2963] = "STENCIL_VALUE_MASK";
12664
- GLEnum3[GLEnum3["STENCIL_WRITEMASK"] = 2968] = "STENCIL_WRITEMASK";
12665
- GLEnum3[GLEnum3["STENCIL_BACK_FUNC"] = 34816] = "STENCIL_BACK_FUNC";
12666
- GLEnum3[GLEnum3["STENCIL_BACK_FAIL"] = 34817] = "STENCIL_BACK_FAIL";
12667
- GLEnum3[GLEnum3["STENCIL_BACK_PASS_DEPTH_FAIL"] = 34818] = "STENCIL_BACK_PASS_DEPTH_FAIL";
12668
- GLEnum3[GLEnum3["STENCIL_BACK_PASS_DEPTH_PASS"] = 34819] = "STENCIL_BACK_PASS_DEPTH_PASS";
12669
- GLEnum3[GLEnum3["STENCIL_BACK_REF"] = 36003] = "STENCIL_BACK_REF";
12670
- GLEnum3[GLEnum3["STENCIL_BACK_VALUE_MASK"] = 36004] = "STENCIL_BACK_VALUE_MASK";
12671
- GLEnum3[GLEnum3["STENCIL_BACK_WRITEMASK"] = 36005] = "STENCIL_BACK_WRITEMASK";
12672
- GLEnum3[GLEnum3["VIEWPORT"] = 2978] = "VIEWPORT";
12673
- GLEnum3[GLEnum3["SCISSOR_BOX"] = 3088] = "SCISSOR_BOX";
12674
- GLEnum3[GLEnum3["COLOR_CLEAR_VALUE"] = 3106] = "COLOR_CLEAR_VALUE";
12675
- GLEnum3[GLEnum3["COLOR_WRITEMASK"] = 3107] = "COLOR_WRITEMASK";
12676
- GLEnum3[GLEnum3["UNPACK_ALIGNMENT"] = 3317] = "UNPACK_ALIGNMENT";
12677
- GLEnum3[GLEnum3["PACK_ALIGNMENT"] = 3333] = "PACK_ALIGNMENT";
12678
- GLEnum3[GLEnum3["MAX_TEXTURE_SIZE"] = 3379] = "MAX_TEXTURE_SIZE";
12679
- GLEnum3[GLEnum3["MAX_VIEWPORT_DIMS"] = 3386] = "MAX_VIEWPORT_DIMS";
12680
- GLEnum3[GLEnum3["SUBPIXEL_BITS"] = 3408] = "SUBPIXEL_BITS";
12681
- GLEnum3[GLEnum3["RED_BITS"] = 3410] = "RED_BITS";
12682
- GLEnum3[GLEnum3["GREEN_BITS"] = 3411] = "GREEN_BITS";
12683
- GLEnum3[GLEnum3["BLUE_BITS"] = 3412] = "BLUE_BITS";
12684
- GLEnum3[GLEnum3["ALPHA_BITS"] = 3413] = "ALPHA_BITS";
12685
- GLEnum3[GLEnum3["DEPTH_BITS"] = 3414] = "DEPTH_BITS";
12686
- GLEnum3[GLEnum3["STENCIL_BITS"] = 3415] = "STENCIL_BITS";
12687
- GLEnum3[GLEnum3["POLYGON_OFFSET_UNITS"] = 10752] = "POLYGON_OFFSET_UNITS";
12688
- GLEnum3[GLEnum3["POLYGON_OFFSET_FACTOR"] = 32824] = "POLYGON_OFFSET_FACTOR";
12689
- GLEnum3[GLEnum3["TEXTURE_BINDING_2D"] = 32873] = "TEXTURE_BINDING_2D";
12690
- GLEnum3[GLEnum3["SAMPLE_BUFFERS"] = 32936] = "SAMPLE_BUFFERS";
12691
- GLEnum3[GLEnum3["SAMPLES"] = 32937] = "SAMPLES";
12692
- GLEnum3[GLEnum3["SAMPLE_COVERAGE_VALUE"] = 32938] = "SAMPLE_COVERAGE_VALUE";
12693
- GLEnum3[GLEnum3["SAMPLE_COVERAGE_INVERT"] = 32939] = "SAMPLE_COVERAGE_INVERT";
12694
- GLEnum3[GLEnum3["COMPRESSED_TEXTURE_FORMATS"] = 34467] = "COMPRESSED_TEXTURE_FORMATS";
12695
- GLEnum3[GLEnum3["VENDOR"] = 7936] = "VENDOR";
12696
- GLEnum3[GLEnum3["RENDERER"] = 7937] = "RENDERER";
12697
- GLEnum3[GLEnum3["VERSION"] = 7938] = "VERSION";
12698
- GLEnum3[GLEnum3["IMPLEMENTATION_COLOR_READ_TYPE"] = 35738] = "IMPLEMENTATION_COLOR_READ_TYPE";
12699
- GLEnum3[GLEnum3["IMPLEMENTATION_COLOR_READ_FORMAT"] = 35739] = "IMPLEMENTATION_COLOR_READ_FORMAT";
12700
- GLEnum3[GLEnum3["BROWSER_DEFAULT_WEBGL"] = 37444] = "BROWSER_DEFAULT_WEBGL";
12701
- GLEnum3[GLEnum3["STATIC_DRAW"] = 35044] = "STATIC_DRAW";
12702
- GLEnum3[GLEnum3["STREAM_DRAW"] = 35040] = "STREAM_DRAW";
12703
- GLEnum3[GLEnum3["DYNAMIC_DRAW"] = 35048] = "DYNAMIC_DRAW";
12704
- GLEnum3[GLEnum3["ARRAY_BUFFER"] = 34962] = "ARRAY_BUFFER";
12705
- GLEnum3[GLEnum3["ELEMENT_ARRAY_BUFFER"] = 34963] = "ELEMENT_ARRAY_BUFFER";
12706
- GLEnum3[GLEnum3["BUFFER_SIZE"] = 34660] = "BUFFER_SIZE";
12707
- GLEnum3[GLEnum3["BUFFER_USAGE"] = 34661] = "BUFFER_USAGE";
12708
- GLEnum3[GLEnum3["CURRENT_VERTEX_ATTRIB"] = 34342] = "CURRENT_VERTEX_ATTRIB";
12709
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_ENABLED"] = 34338] = "VERTEX_ATTRIB_ARRAY_ENABLED";
12710
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_SIZE"] = 34339] = "VERTEX_ATTRIB_ARRAY_SIZE";
12711
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_STRIDE"] = 34340] = "VERTEX_ATTRIB_ARRAY_STRIDE";
12712
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_TYPE"] = 34341] = "VERTEX_ATTRIB_ARRAY_TYPE";
12713
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_NORMALIZED"] = 34922] = "VERTEX_ATTRIB_ARRAY_NORMALIZED";
12714
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_POINTER"] = 34373] = "VERTEX_ATTRIB_ARRAY_POINTER";
12715
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"] = 34975] = "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING";
12716
- GLEnum3[GLEnum3["CULL_FACE"] = 2884] = "CULL_FACE";
12717
- GLEnum3[GLEnum3["FRONT"] = 1028] = "FRONT";
12718
- GLEnum3[GLEnum3["BACK"] = 1029] = "BACK";
12719
- GLEnum3[GLEnum3["FRONT_AND_BACK"] = 1032] = "FRONT_AND_BACK";
12720
- GLEnum3[GLEnum3["BLEND"] = 3042] = "BLEND";
12721
- GLEnum3[GLEnum3["DEPTH_TEST"] = 2929] = "DEPTH_TEST";
12722
- GLEnum3[GLEnum3["DITHER"] = 3024] = "DITHER";
12723
- GLEnum3[GLEnum3["POLYGON_OFFSET_FILL"] = 32823] = "POLYGON_OFFSET_FILL";
12724
- GLEnum3[GLEnum3["SAMPLE_ALPHA_TO_COVERAGE"] = 32926] = "SAMPLE_ALPHA_TO_COVERAGE";
12725
- GLEnum3[GLEnum3["SAMPLE_COVERAGE"] = 32928] = "SAMPLE_COVERAGE";
12726
- GLEnum3[GLEnum3["SCISSOR_TEST"] = 3089] = "SCISSOR_TEST";
12727
- GLEnum3[GLEnum3["STENCIL_TEST"] = 2960] = "STENCIL_TEST";
12728
- GLEnum3[GLEnum3["NO_ERROR"] = 0] = "NO_ERROR";
12729
- GLEnum3[GLEnum3["INVALID_ENUM"] = 1280] = "INVALID_ENUM";
12730
- GLEnum3[GLEnum3["INVALID_VALUE"] = 1281] = "INVALID_VALUE";
12731
- GLEnum3[GLEnum3["INVALID_OPERATION"] = 1282] = "INVALID_OPERATION";
12732
- GLEnum3[GLEnum3["OUT_OF_MEMORY"] = 1285] = "OUT_OF_MEMORY";
12733
- GLEnum3[GLEnum3["CONTEXT_LOST_WEBGL"] = 37442] = "CONTEXT_LOST_WEBGL";
12734
- GLEnum3[GLEnum3["CW"] = 2304] = "CW";
12735
- GLEnum3[GLEnum3["CCW"] = 2305] = "CCW";
12736
- GLEnum3[GLEnum3["DONT_CARE"] = 4352] = "DONT_CARE";
12737
- GLEnum3[GLEnum3["FASTEST"] = 4353] = "FASTEST";
12738
- GLEnum3[GLEnum3["NICEST"] = 4354] = "NICEST";
12739
- GLEnum3[GLEnum3["GENERATE_MIPMAP_HINT"] = 33170] = "GENERATE_MIPMAP_HINT";
12740
- GLEnum3[GLEnum3["BYTE"] = 5120] = "BYTE";
12741
- GLEnum3[GLEnum3["UNSIGNED_BYTE"] = 5121] = "UNSIGNED_BYTE";
12742
- GLEnum3[GLEnum3["SHORT"] = 5122] = "SHORT";
12743
- GLEnum3[GLEnum3["UNSIGNED_SHORT"] = 5123] = "UNSIGNED_SHORT";
12744
- GLEnum3[GLEnum3["INT"] = 5124] = "INT";
12745
- GLEnum3[GLEnum3["UNSIGNED_INT"] = 5125] = "UNSIGNED_INT";
12746
- GLEnum3[GLEnum3["FLOAT"] = 5126] = "FLOAT";
12747
- GLEnum3[GLEnum3["DOUBLE"] = 5130] = "DOUBLE";
12748
- GLEnum3[GLEnum3["DEPTH_COMPONENT"] = 6402] = "DEPTH_COMPONENT";
12749
- GLEnum3[GLEnum3["ALPHA"] = 6406] = "ALPHA";
12750
- GLEnum3[GLEnum3["RGB"] = 6407] = "RGB";
12751
- GLEnum3[GLEnum3["RGBA"] = 6408] = "RGBA";
12752
- GLEnum3[GLEnum3["LUMINANCE"] = 6409] = "LUMINANCE";
12753
- GLEnum3[GLEnum3["LUMINANCE_ALPHA"] = 6410] = "LUMINANCE_ALPHA";
12754
- GLEnum3[GLEnum3["UNSIGNED_SHORT_4_4_4_4"] = 32819] = "UNSIGNED_SHORT_4_4_4_4";
12755
- GLEnum3[GLEnum3["UNSIGNED_SHORT_5_5_5_1"] = 32820] = "UNSIGNED_SHORT_5_5_5_1";
12756
- GLEnum3[GLEnum3["UNSIGNED_SHORT_5_6_5"] = 33635] = "UNSIGNED_SHORT_5_6_5";
12757
- GLEnum3[GLEnum3["FRAGMENT_SHADER"] = 35632] = "FRAGMENT_SHADER";
12758
- GLEnum3[GLEnum3["VERTEX_SHADER"] = 35633] = "VERTEX_SHADER";
12759
- GLEnum3[GLEnum3["COMPILE_STATUS"] = 35713] = "COMPILE_STATUS";
12760
- GLEnum3[GLEnum3["DELETE_STATUS"] = 35712] = "DELETE_STATUS";
12761
- GLEnum3[GLEnum3["LINK_STATUS"] = 35714] = "LINK_STATUS";
12762
- GLEnum3[GLEnum3["VALIDATE_STATUS"] = 35715] = "VALIDATE_STATUS";
12763
- GLEnum3[GLEnum3["ATTACHED_SHADERS"] = 35717] = "ATTACHED_SHADERS";
12764
- GLEnum3[GLEnum3["ACTIVE_ATTRIBUTES"] = 35721] = "ACTIVE_ATTRIBUTES";
12765
- GLEnum3[GLEnum3["ACTIVE_UNIFORMS"] = 35718] = "ACTIVE_UNIFORMS";
12766
- GLEnum3[GLEnum3["MAX_VERTEX_ATTRIBS"] = 34921] = "MAX_VERTEX_ATTRIBS";
12767
- GLEnum3[GLEnum3["MAX_VERTEX_UNIFORM_VECTORS"] = 36347] = "MAX_VERTEX_UNIFORM_VECTORS";
12768
- GLEnum3[GLEnum3["MAX_VARYING_VECTORS"] = 36348] = "MAX_VARYING_VECTORS";
12769
- GLEnum3[GLEnum3["MAX_COMBINED_TEXTURE_IMAGE_UNITS"] = 35661] = "MAX_COMBINED_TEXTURE_IMAGE_UNITS";
12770
- GLEnum3[GLEnum3["MAX_VERTEX_TEXTURE_IMAGE_UNITS"] = 35660] = "MAX_VERTEX_TEXTURE_IMAGE_UNITS";
12771
- GLEnum3[GLEnum3["MAX_TEXTURE_IMAGE_UNITS"] = 34930] = "MAX_TEXTURE_IMAGE_UNITS";
12772
- GLEnum3[GLEnum3["MAX_FRAGMENT_UNIFORM_VECTORS"] = 36349] = "MAX_FRAGMENT_UNIFORM_VECTORS";
12773
- GLEnum3[GLEnum3["SHADER_TYPE"] = 35663] = "SHADER_TYPE";
12774
- GLEnum3[GLEnum3["SHADING_LANGUAGE_VERSION"] = 35724] = "SHADING_LANGUAGE_VERSION";
12775
- GLEnum3[GLEnum3["CURRENT_PROGRAM"] = 35725] = "CURRENT_PROGRAM";
12776
- GLEnum3[GLEnum3["NEVER"] = 512] = "NEVER";
12777
- GLEnum3[GLEnum3["LESS"] = 513] = "LESS";
12778
- GLEnum3[GLEnum3["EQUAL"] = 514] = "EQUAL";
12779
- GLEnum3[GLEnum3["LEQUAL"] = 515] = "LEQUAL";
12780
- GLEnum3[GLEnum3["GREATER"] = 516] = "GREATER";
12781
- GLEnum3[GLEnum3["NOTEQUAL"] = 517] = "NOTEQUAL";
12782
- GLEnum3[GLEnum3["GEQUAL"] = 518] = "GEQUAL";
12783
- GLEnum3[GLEnum3["ALWAYS"] = 519] = "ALWAYS";
12784
- GLEnum3[GLEnum3["KEEP"] = 7680] = "KEEP";
12785
- GLEnum3[GLEnum3["REPLACE"] = 7681] = "REPLACE";
12786
- GLEnum3[GLEnum3["INCR"] = 7682] = "INCR";
12787
- GLEnum3[GLEnum3["DECR"] = 7683] = "DECR";
12788
- GLEnum3[GLEnum3["INVERT"] = 5386] = "INVERT";
12789
- GLEnum3[GLEnum3["INCR_WRAP"] = 34055] = "INCR_WRAP";
12790
- GLEnum3[GLEnum3["DECR_WRAP"] = 34056] = "DECR_WRAP";
12791
- GLEnum3[GLEnum3["NEAREST"] = 9728] = "NEAREST";
12792
- GLEnum3[GLEnum3["LINEAR"] = 9729] = "LINEAR";
12793
- GLEnum3[GLEnum3["NEAREST_MIPMAP_NEAREST"] = 9984] = "NEAREST_MIPMAP_NEAREST";
12794
- GLEnum3[GLEnum3["LINEAR_MIPMAP_NEAREST"] = 9985] = "LINEAR_MIPMAP_NEAREST";
12795
- GLEnum3[GLEnum3["NEAREST_MIPMAP_LINEAR"] = 9986] = "NEAREST_MIPMAP_LINEAR";
12796
- GLEnum3[GLEnum3["LINEAR_MIPMAP_LINEAR"] = 9987] = "LINEAR_MIPMAP_LINEAR";
12797
- GLEnum3[GLEnum3["TEXTURE_MAG_FILTER"] = 10240] = "TEXTURE_MAG_FILTER";
12798
- GLEnum3[GLEnum3["TEXTURE_MIN_FILTER"] = 10241] = "TEXTURE_MIN_FILTER";
12799
- GLEnum3[GLEnum3["TEXTURE_WRAP_S"] = 10242] = "TEXTURE_WRAP_S";
12800
- GLEnum3[GLEnum3["TEXTURE_WRAP_T"] = 10243] = "TEXTURE_WRAP_T";
12801
- GLEnum3[GLEnum3["TEXTURE_2D"] = 3553] = "TEXTURE_2D";
12802
- GLEnum3[GLEnum3["TEXTURE"] = 5890] = "TEXTURE";
12803
- GLEnum3[GLEnum3["TEXTURE_CUBE_MAP"] = 34067] = "TEXTURE_CUBE_MAP";
12804
- GLEnum3[GLEnum3["TEXTURE_BINDING_CUBE_MAP"] = 34068] = "TEXTURE_BINDING_CUBE_MAP";
12805
- GLEnum3[GLEnum3["TEXTURE_CUBE_MAP_POSITIVE_X"] = 34069] = "TEXTURE_CUBE_MAP_POSITIVE_X";
12806
- GLEnum3[GLEnum3["TEXTURE_CUBE_MAP_NEGATIVE_X"] = 34070] = "TEXTURE_CUBE_MAP_NEGATIVE_X";
12807
- GLEnum3[GLEnum3["TEXTURE_CUBE_MAP_POSITIVE_Y"] = 34071] = "TEXTURE_CUBE_MAP_POSITIVE_Y";
12808
- GLEnum3[GLEnum3["TEXTURE_CUBE_MAP_NEGATIVE_Y"] = 34072] = "TEXTURE_CUBE_MAP_NEGATIVE_Y";
12809
- GLEnum3[GLEnum3["TEXTURE_CUBE_MAP_POSITIVE_Z"] = 34073] = "TEXTURE_CUBE_MAP_POSITIVE_Z";
12810
- GLEnum3[GLEnum3["TEXTURE_CUBE_MAP_NEGATIVE_Z"] = 34074] = "TEXTURE_CUBE_MAP_NEGATIVE_Z";
12811
- GLEnum3[GLEnum3["MAX_CUBE_MAP_TEXTURE_SIZE"] = 34076] = "MAX_CUBE_MAP_TEXTURE_SIZE";
12812
- GLEnum3[GLEnum3["TEXTURE0"] = 33984] = "TEXTURE0";
12813
- GLEnum3[GLEnum3["ACTIVE_TEXTURE"] = 34016] = "ACTIVE_TEXTURE";
12814
- GLEnum3[GLEnum3["REPEAT"] = 10497] = "REPEAT";
12815
- GLEnum3[GLEnum3["CLAMP_TO_EDGE"] = 33071] = "CLAMP_TO_EDGE";
12816
- GLEnum3[GLEnum3["MIRRORED_REPEAT"] = 33648] = "MIRRORED_REPEAT";
12817
- GLEnum3[GLEnum3["TEXTURE_WIDTH"] = 4096] = "TEXTURE_WIDTH";
12818
- GLEnum3[GLEnum3["TEXTURE_HEIGHT"] = 4097] = "TEXTURE_HEIGHT";
12819
- GLEnum3[GLEnum3["FLOAT_VEC2"] = 35664] = "FLOAT_VEC2";
12820
- GLEnum3[GLEnum3["FLOAT_VEC3"] = 35665] = "FLOAT_VEC3";
12821
- GLEnum3[GLEnum3["FLOAT_VEC4"] = 35666] = "FLOAT_VEC4";
12822
- GLEnum3[GLEnum3["INT_VEC2"] = 35667] = "INT_VEC2";
12823
- GLEnum3[GLEnum3["INT_VEC3"] = 35668] = "INT_VEC3";
12824
- GLEnum3[GLEnum3["INT_VEC4"] = 35669] = "INT_VEC4";
12825
- GLEnum3[GLEnum3["BOOL"] = 35670] = "BOOL";
12826
- GLEnum3[GLEnum3["BOOL_VEC2"] = 35671] = "BOOL_VEC2";
12827
- GLEnum3[GLEnum3["BOOL_VEC3"] = 35672] = "BOOL_VEC3";
12828
- GLEnum3[GLEnum3["BOOL_VEC4"] = 35673] = "BOOL_VEC4";
12829
- GLEnum3[GLEnum3["FLOAT_MAT2"] = 35674] = "FLOAT_MAT2";
12830
- GLEnum3[GLEnum3["FLOAT_MAT3"] = 35675] = "FLOAT_MAT3";
12831
- GLEnum3[GLEnum3["FLOAT_MAT4"] = 35676] = "FLOAT_MAT4";
12832
- GLEnum3[GLEnum3["SAMPLER_2D"] = 35678] = "SAMPLER_2D";
12833
- GLEnum3[GLEnum3["SAMPLER_CUBE"] = 35680] = "SAMPLER_CUBE";
12834
- GLEnum3[GLEnum3["LOW_FLOAT"] = 36336] = "LOW_FLOAT";
12835
- GLEnum3[GLEnum3["MEDIUM_FLOAT"] = 36337] = "MEDIUM_FLOAT";
12836
- GLEnum3[GLEnum3["HIGH_FLOAT"] = 36338] = "HIGH_FLOAT";
12837
- GLEnum3[GLEnum3["LOW_INT"] = 36339] = "LOW_INT";
12838
- GLEnum3[GLEnum3["MEDIUM_INT"] = 36340] = "MEDIUM_INT";
12839
- GLEnum3[GLEnum3["HIGH_INT"] = 36341] = "HIGH_INT";
12840
- GLEnum3[GLEnum3["FRAMEBUFFER"] = 36160] = "FRAMEBUFFER";
12841
- GLEnum3[GLEnum3["RENDERBUFFER"] = 36161] = "RENDERBUFFER";
12842
- GLEnum3[GLEnum3["RGBA4"] = 32854] = "RGBA4";
12843
- GLEnum3[GLEnum3["RGB5_A1"] = 32855] = "RGB5_A1";
12844
- GLEnum3[GLEnum3["RGB565"] = 36194] = "RGB565";
12845
- GLEnum3[GLEnum3["DEPTH_COMPONENT16"] = 33189] = "DEPTH_COMPONENT16";
12846
- GLEnum3[GLEnum3["STENCIL_INDEX"] = 6401] = "STENCIL_INDEX";
12847
- GLEnum3[GLEnum3["STENCIL_INDEX8"] = 36168] = "STENCIL_INDEX8";
12848
- GLEnum3[GLEnum3["DEPTH_STENCIL"] = 34041] = "DEPTH_STENCIL";
12849
- GLEnum3[GLEnum3["RENDERBUFFER_WIDTH"] = 36162] = "RENDERBUFFER_WIDTH";
12850
- GLEnum3[GLEnum3["RENDERBUFFER_HEIGHT"] = 36163] = "RENDERBUFFER_HEIGHT";
12851
- GLEnum3[GLEnum3["RENDERBUFFER_INTERNAL_FORMAT"] = 36164] = "RENDERBUFFER_INTERNAL_FORMAT";
12852
- GLEnum3[GLEnum3["RENDERBUFFER_RED_SIZE"] = 36176] = "RENDERBUFFER_RED_SIZE";
12853
- GLEnum3[GLEnum3["RENDERBUFFER_GREEN_SIZE"] = 36177] = "RENDERBUFFER_GREEN_SIZE";
12854
- GLEnum3[GLEnum3["RENDERBUFFER_BLUE_SIZE"] = 36178] = "RENDERBUFFER_BLUE_SIZE";
12855
- GLEnum3[GLEnum3["RENDERBUFFER_ALPHA_SIZE"] = 36179] = "RENDERBUFFER_ALPHA_SIZE";
12856
- GLEnum3[GLEnum3["RENDERBUFFER_DEPTH_SIZE"] = 36180] = "RENDERBUFFER_DEPTH_SIZE";
12857
- GLEnum3[GLEnum3["RENDERBUFFER_STENCIL_SIZE"] = 36181] = "RENDERBUFFER_STENCIL_SIZE";
12858
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"] = 36048] = "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE";
12859
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"] = 36049] = "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME";
12860
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"] = 36050] = "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL";
12861
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"] = 36051] = "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE";
12862
- GLEnum3[GLEnum3["COLOR_ATTACHMENT0"] = 36064] = "COLOR_ATTACHMENT0";
12863
- GLEnum3[GLEnum3["DEPTH_ATTACHMENT"] = 36096] = "DEPTH_ATTACHMENT";
12864
- GLEnum3[GLEnum3["STENCIL_ATTACHMENT"] = 36128] = "STENCIL_ATTACHMENT";
12865
- GLEnum3[GLEnum3["DEPTH_STENCIL_ATTACHMENT"] = 33306] = "DEPTH_STENCIL_ATTACHMENT";
12866
- GLEnum3[GLEnum3["NONE"] = 0] = "NONE";
12867
- GLEnum3[GLEnum3["FRAMEBUFFER_COMPLETE"] = 36053] = "FRAMEBUFFER_COMPLETE";
12868
- GLEnum3[GLEnum3["FRAMEBUFFER_INCOMPLETE_ATTACHMENT"] = 36054] = "FRAMEBUFFER_INCOMPLETE_ATTACHMENT";
12869
- GLEnum3[GLEnum3["FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"] = 36055] = "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";
12870
- GLEnum3[GLEnum3["FRAMEBUFFER_INCOMPLETE_DIMENSIONS"] = 36057] = "FRAMEBUFFER_INCOMPLETE_DIMENSIONS";
12871
- GLEnum3[GLEnum3["FRAMEBUFFER_UNSUPPORTED"] = 36061] = "FRAMEBUFFER_UNSUPPORTED";
12872
- GLEnum3[GLEnum3["FRAMEBUFFER_BINDING"] = 36006] = "FRAMEBUFFER_BINDING";
12873
- GLEnum3[GLEnum3["RENDERBUFFER_BINDING"] = 36007] = "RENDERBUFFER_BINDING";
12874
- GLEnum3[GLEnum3["READ_FRAMEBUFFER"] = 36008] = "READ_FRAMEBUFFER";
12875
- GLEnum3[GLEnum3["DRAW_FRAMEBUFFER"] = 36009] = "DRAW_FRAMEBUFFER";
12876
- GLEnum3[GLEnum3["MAX_RENDERBUFFER_SIZE"] = 34024] = "MAX_RENDERBUFFER_SIZE";
12877
- GLEnum3[GLEnum3["INVALID_FRAMEBUFFER_OPERATION"] = 1286] = "INVALID_FRAMEBUFFER_OPERATION";
12878
- GLEnum3[GLEnum3["UNPACK_FLIP_Y_WEBGL"] = 37440] = "UNPACK_FLIP_Y_WEBGL";
12879
- GLEnum3[GLEnum3["UNPACK_PREMULTIPLY_ALPHA_WEBGL"] = 37441] = "UNPACK_PREMULTIPLY_ALPHA_WEBGL";
12880
- GLEnum3[GLEnum3["UNPACK_COLORSPACE_CONVERSION_WEBGL"] = 37443] = "UNPACK_COLORSPACE_CONVERSION_WEBGL";
12881
- GLEnum3[GLEnum3["READ_BUFFER"] = 3074] = "READ_BUFFER";
12882
- GLEnum3[GLEnum3["UNPACK_ROW_LENGTH"] = 3314] = "UNPACK_ROW_LENGTH";
12883
- GLEnum3[GLEnum3["UNPACK_SKIP_ROWS"] = 3315] = "UNPACK_SKIP_ROWS";
12884
- GLEnum3[GLEnum3["UNPACK_SKIP_PIXELS"] = 3316] = "UNPACK_SKIP_PIXELS";
12885
- GLEnum3[GLEnum3["PACK_ROW_LENGTH"] = 3330] = "PACK_ROW_LENGTH";
12886
- GLEnum3[GLEnum3["PACK_SKIP_ROWS"] = 3331] = "PACK_SKIP_ROWS";
12887
- GLEnum3[GLEnum3["PACK_SKIP_PIXELS"] = 3332] = "PACK_SKIP_PIXELS";
12888
- GLEnum3[GLEnum3["TEXTURE_BINDING_3D"] = 32874] = "TEXTURE_BINDING_3D";
12889
- GLEnum3[GLEnum3["UNPACK_SKIP_IMAGES"] = 32877] = "UNPACK_SKIP_IMAGES";
12890
- GLEnum3[GLEnum3["UNPACK_IMAGE_HEIGHT"] = 32878] = "UNPACK_IMAGE_HEIGHT";
12891
- GLEnum3[GLEnum3["MAX_3D_TEXTURE_SIZE"] = 32883] = "MAX_3D_TEXTURE_SIZE";
12892
- GLEnum3[GLEnum3["MAX_ELEMENTS_VERTICES"] = 33e3] = "MAX_ELEMENTS_VERTICES";
12893
- GLEnum3[GLEnum3["MAX_ELEMENTS_INDICES"] = 33001] = "MAX_ELEMENTS_INDICES";
12894
- GLEnum3[GLEnum3["MAX_TEXTURE_LOD_BIAS"] = 34045] = "MAX_TEXTURE_LOD_BIAS";
12895
- GLEnum3[GLEnum3["MAX_FRAGMENT_UNIFORM_COMPONENTS"] = 35657] = "MAX_FRAGMENT_UNIFORM_COMPONENTS";
12896
- GLEnum3[GLEnum3["MAX_VERTEX_UNIFORM_COMPONENTS"] = 35658] = "MAX_VERTEX_UNIFORM_COMPONENTS";
12897
- GLEnum3[GLEnum3["MAX_ARRAY_TEXTURE_LAYERS"] = 35071] = "MAX_ARRAY_TEXTURE_LAYERS";
12898
- GLEnum3[GLEnum3["MIN_PROGRAM_TEXEL_OFFSET"] = 35076] = "MIN_PROGRAM_TEXEL_OFFSET";
12899
- GLEnum3[GLEnum3["MAX_PROGRAM_TEXEL_OFFSET"] = 35077] = "MAX_PROGRAM_TEXEL_OFFSET";
12900
- GLEnum3[GLEnum3["MAX_VARYING_COMPONENTS"] = 35659] = "MAX_VARYING_COMPONENTS";
12901
- GLEnum3[GLEnum3["FRAGMENT_SHADER_DERIVATIVE_HINT"] = 35723] = "FRAGMENT_SHADER_DERIVATIVE_HINT";
12902
- GLEnum3[GLEnum3["RASTERIZER_DISCARD"] = 35977] = "RASTERIZER_DISCARD";
12903
- GLEnum3[GLEnum3["VERTEX_ARRAY_BINDING"] = 34229] = "VERTEX_ARRAY_BINDING";
12904
- GLEnum3[GLEnum3["MAX_VERTEX_OUTPUT_COMPONENTS"] = 37154] = "MAX_VERTEX_OUTPUT_COMPONENTS";
12905
- GLEnum3[GLEnum3["MAX_FRAGMENT_INPUT_COMPONENTS"] = 37157] = "MAX_FRAGMENT_INPUT_COMPONENTS";
12906
- GLEnum3[GLEnum3["MAX_SERVER_WAIT_TIMEOUT"] = 37137] = "MAX_SERVER_WAIT_TIMEOUT";
12907
- GLEnum3[GLEnum3["MAX_ELEMENT_INDEX"] = 36203] = "MAX_ELEMENT_INDEX";
12908
- GLEnum3[GLEnum3["RED"] = 6403] = "RED";
12909
- GLEnum3[GLEnum3["RGB8"] = 32849] = "RGB8";
12910
- GLEnum3[GLEnum3["RGBA8"] = 32856] = "RGBA8";
12911
- GLEnum3[GLEnum3["RGB10_A2"] = 32857] = "RGB10_A2";
12912
- GLEnum3[GLEnum3["TEXTURE_3D"] = 32879] = "TEXTURE_3D";
12913
- GLEnum3[GLEnum3["TEXTURE_WRAP_R"] = 32882] = "TEXTURE_WRAP_R";
12914
- GLEnum3[GLEnum3["TEXTURE_MIN_LOD"] = 33082] = "TEXTURE_MIN_LOD";
12915
- GLEnum3[GLEnum3["TEXTURE_MAX_LOD"] = 33083] = "TEXTURE_MAX_LOD";
12916
- GLEnum3[GLEnum3["TEXTURE_BASE_LEVEL"] = 33084] = "TEXTURE_BASE_LEVEL";
12917
- GLEnum3[GLEnum3["TEXTURE_MAX_LEVEL"] = 33085] = "TEXTURE_MAX_LEVEL";
12918
- GLEnum3[GLEnum3["TEXTURE_COMPARE_MODE"] = 34892] = "TEXTURE_COMPARE_MODE";
12919
- GLEnum3[GLEnum3["TEXTURE_COMPARE_FUNC"] = 34893] = "TEXTURE_COMPARE_FUNC";
12920
- GLEnum3[GLEnum3["SRGB"] = 35904] = "SRGB";
12921
- GLEnum3[GLEnum3["SRGB8"] = 35905] = "SRGB8";
12922
- GLEnum3[GLEnum3["SRGB8_ALPHA8"] = 35907] = "SRGB8_ALPHA8";
12923
- GLEnum3[GLEnum3["COMPARE_REF_TO_TEXTURE"] = 34894] = "COMPARE_REF_TO_TEXTURE";
12924
- GLEnum3[GLEnum3["RGBA32F"] = 34836] = "RGBA32F";
12925
- GLEnum3[GLEnum3["RGB32F"] = 34837] = "RGB32F";
12926
- GLEnum3[GLEnum3["RGBA16F"] = 34842] = "RGBA16F";
12927
- GLEnum3[GLEnum3["RGB16F"] = 34843] = "RGB16F";
12928
- GLEnum3[GLEnum3["TEXTURE_2D_ARRAY"] = 35866] = "TEXTURE_2D_ARRAY";
12929
- GLEnum3[GLEnum3["TEXTURE_BINDING_2D_ARRAY"] = 35869] = "TEXTURE_BINDING_2D_ARRAY";
12930
- GLEnum3[GLEnum3["R11F_G11F_B10F"] = 35898] = "R11F_G11F_B10F";
12931
- GLEnum3[GLEnum3["RGB9_E5"] = 35901] = "RGB9_E5";
12932
- GLEnum3[GLEnum3["RGBA32UI"] = 36208] = "RGBA32UI";
12933
- GLEnum3[GLEnum3["RGB32UI"] = 36209] = "RGB32UI";
12934
- GLEnum3[GLEnum3["RGBA16UI"] = 36214] = "RGBA16UI";
12935
- GLEnum3[GLEnum3["RGB16UI"] = 36215] = "RGB16UI";
12936
- GLEnum3[GLEnum3["RGBA8UI"] = 36220] = "RGBA8UI";
12937
- GLEnum3[GLEnum3["RGB8UI"] = 36221] = "RGB8UI";
12938
- GLEnum3[GLEnum3["RGBA32I"] = 36226] = "RGBA32I";
12939
- GLEnum3[GLEnum3["RGB32I"] = 36227] = "RGB32I";
12940
- GLEnum3[GLEnum3["RGBA16I"] = 36232] = "RGBA16I";
12941
- GLEnum3[GLEnum3["RGB16I"] = 36233] = "RGB16I";
12942
- GLEnum3[GLEnum3["RGBA8I"] = 36238] = "RGBA8I";
12943
- GLEnum3[GLEnum3["RGB8I"] = 36239] = "RGB8I";
12944
- GLEnum3[GLEnum3["RED_INTEGER"] = 36244] = "RED_INTEGER";
12945
- GLEnum3[GLEnum3["RGB_INTEGER"] = 36248] = "RGB_INTEGER";
12946
- GLEnum3[GLEnum3["RGBA_INTEGER"] = 36249] = "RGBA_INTEGER";
12947
- GLEnum3[GLEnum3["R8"] = 33321] = "R8";
12948
- GLEnum3[GLEnum3["RG8"] = 33323] = "RG8";
12949
- GLEnum3[GLEnum3["R16F"] = 33325] = "R16F";
12950
- GLEnum3[GLEnum3["R32F"] = 33326] = "R32F";
12951
- GLEnum3[GLEnum3["RG16F"] = 33327] = "RG16F";
12952
- GLEnum3[GLEnum3["RG32F"] = 33328] = "RG32F";
12953
- GLEnum3[GLEnum3["R8I"] = 33329] = "R8I";
12954
- GLEnum3[GLEnum3["R8UI"] = 33330] = "R8UI";
12955
- GLEnum3[GLEnum3["R16I"] = 33331] = "R16I";
12956
- GLEnum3[GLEnum3["R16UI"] = 33332] = "R16UI";
12957
- GLEnum3[GLEnum3["R32I"] = 33333] = "R32I";
12958
- GLEnum3[GLEnum3["R32UI"] = 33334] = "R32UI";
12959
- GLEnum3[GLEnum3["RG8I"] = 33335] = "RG8I";
12960
- GLEnum3[GLEnum3["RG8UI"] = 33336] = "RG8UI";
12961
- GLEnum3[GLEnum3["RG16I"] = 33337] = "RG16I";
12962
- GLEnum3[GLEnum3["RG16UI"] = 33338] = "RG16UI";
12963
- GLEnum3[GLEnum3["RG32I"] = 33339] = "RG32I";
12964
- GLEnum3[GLEnum3["RG32UI"] = 33340] = "RG32UI";
12965
- GLEnum3[GLEnum3["R8_SNORM"] = 36756] = "R8_SNORM";
12966
- GLEnum3[GLEnum3["RG8_SNORM"] = 36757] = "RG8_SNORM";
12967
- GLEnum3[GLEnum3["RGB8_SNORM"] = 36758] = "RGB8_SNORM";
12968
- GLEnum3[GLEnum3["RGBA8_SNORM"] = 36759] = "RGBA8_SNORM";
12969
- GLEnum3[GLEnum3["RGB10_A2UI"] = 36975] = "RGB10_A2UI";
12970
- GLEnum3[GLEnum3["TEXTURE_IMMUTABLE_FORMAT"] = 37167] = "TEXTURE_IMMUTABLE_FORMAT";
12971
- GLEnum3[GLEnum3["TEXTURE_IMMUTABLE_LEVELS"] = 33503] = "TEXTURE_IMMUTABLE_LEVELS";
12972
- GLEnum3[GLEnum3["UNSIGNED_INT_2_10_10_10_REV"] = 33640] = "UNSIGNED_INT_2_10_10_10_REV";
12973
- GLEnum3[GLEnum3["UNSIGNED_INT_10F_11F_11F_REV"] = 35899] = "UNSIGNED_INT_10F_11F_11F_REV";
12974
- GLEnum3[GLEnum3["UNSIGNED_INT_5_9_9_9_REV"] = 35902] = "UNSIGNED_INT_5_9_9_9_REV";
12975
- GLEnum3[GLEnum3["FLOAT_32_UNSIGNED_INT_24_8_REV"] = 36269] = "FLOAT_32_UNSIGNED_INT_24_8_REV";
12976
- GLEnum3[GLEnum3["UNSIGNED_INT_24_8"] = 34042] = "UNSIGNED_INT_24_8";
12977
- GLEnum3[GLEnum3["HALF_FLOAT"] = 5131] = "HALF_FLOAT";
12978
- GLEnum3[GLEnum3["RG"] = 33319] = "RG";
12979
- GLEnum3[GLEnum3["RG_INTEGER"] = 33320] = "RG_INTEGER";
12980
- GLEnum3[GLEnum3["INT_2_10_10_10_REV"] = 36255] = "INT_2_10_10_10_REV";
12981
- GLEnum3[GLEnum3["CURRENT_QUERY"] = 34917] = "CURRENT_QUERY";
12982
- GLEnum3[GLEnum3["QUERY_RESULT"] = 34918] = "QUERY_RESULT";
12983
- GLEnum3[GLEnum3["QUERY_RESULT_AVAILABLE"] = 34919] = "QUERY_RESULT_AVAILABLE";
12984
- GLEnum3[GLEnum3["ANY_SAMPLES_PASSED"] = 35887] = "ANY_SAMPLES_PASSED";
12985
- GLEnum3[GLEnum3["ANY_SAMPLES_PASSED_CONSERVATIVE"] = 36202] = "ANY_SAMPLES_PASSED_CONSERVATIVE";
12986
- GLEnum3[GLEnum3["MAX_DRAW_BUFFERS"] = 34852] = "MAX_DRAW_BUFFERS";
12987
- GLEnum3[GLEnum3["DRAW_BUFFER0"] = 34853] = "DRAW_BUFFER0";
12988
- GLEnum3[GLEnum3["DRAW_BUFFER1"] = 34854] = "DRAW_BUFFER1";
12989
- GLEnum3[GLEnum3["DRAW_BUFFER2"] = 34855] = "DRAW_BUFFER2";
12990
- GLEnum3[GLEnum3["DRAW_BUFFER3"] = 34856] = "DRAW_BUFFER3";
12991
- GLEnum3[GLEnum3["DRAW_BUFFER4"] = 34857] = "DRAW_BUFFER4";
12992
- GLEnum3[GLEnum3["DRAW_BUFFER5"] = 34858] = "DRAW_BUFFER5";
12993
- GLEnum3[GLEnum3["DRAW_BUFFER6"] = 34859] = "DRAW_BUFFER6";
12994
- GLEnum3[GLEnum3["DRAW_BUFFER7"] = 34860] = "DRAW_BUFFER7";
12995
- GLEnum3[GLEnum3["DRAW_BUFFER8"] = 34861] = "DRAW_BUFFER8";
12996
- GLEnum3[GLEnum3["DRAW_BUFFER9"] = 34862] = "DRAW_BUFFER9";
12997
- GLEnum3[GLEnum3["DRAW_BUFFER10"] = 34863] = "DRAW_BUFFER10";
12998
- GLEnum3[GLEnum3["DRAW_BUFFER11"] = 34864] = "DRAW_BUFFER11";
12999
- GLEnum3[GLEnum3["DRAW_BUFFER12"] = 34865] = "DRAW_BUFFER12";
13000
- GLEnum3[GLEnum3["DRAW_BUFFER13"] = 34866] = "DRAW_BUFFER13";
13001
- GLEnum3[GLEnum3["DRAW_BUFFER14"] = 34867] = "DRAW_BUFFER14";
13002
- GLEnum3[GLEnum3["DRAW_BUFFER15"] = 34868] = "DRAW_BUFFER15";
13003
- GLEnum3[GLEnum3["MAX_COLOR_ATTACHMENTS"] = 36063] = "MAX_COLOR_ATTACHMENTS";
13004
- GLEnum3[GLEnum3["COLOR_ATTACHMENT1"] = 36065] = "COLOR_ATTACHMENT1";
13005
- GLEnum3[GLEnum3["COLOR_ATTACHMENT2"] = 36066] = "COLOR_ATTACHMENT2";
13006
- GLEnum3[GLEnum3["COLOR_ATTACHMENT3"] = 36067] = "COLOR_ATTACHMENT3";
13007
- GLEnum3[GLEnum3["COLOR_ATTACHMENT4"] = 36068] = "COLOR_ATTACHMENT4";
13008
- GLEnum3[GLEnum3["COLOR_ATTACHMENT5"] = 36069] = "COLOR_ATTACHMENT5";
13009
- GLEnum3[GLEnum3["COLOR_ATTACHMENT6"] = 36070] = "COLOR_ATTACHMENT6";
13010
- GLEnum3[GLEnum3["COLOR_ATTACHMENT7"] = 36071] = "COLOR_ATTACHMENT7";
13011
- GLEnum3[GLEnum3["COLOR_ATTACHMENT8"] = 36072] = "COLOR_ATTACHMENT8";
13012
- GLEnum3[GLEnum3["COLOR_ATTACHMENT9"] = 36073] = "COLOR_ATTACHMENT9";
13013
- GLEnum3[GLEnum3["COLOR_ATTACHMENT10"] = 36074] = "COLOR_ATTACHMENT10";
13014
- GLEnum3[GLEnum3["COLOR_ATTACHMENT11"] = 36075] = "COLOR_ATTACHMENT11";
13015
- GLEnum3[GLEnum3["COLOR_ATTACHMENT12"] = 36076] = "COLOR_ATTACHMENT12";
13016
- GLEnum3[GLEnum3["COLOR_ATTACHMENT13"] = 36077] = "COLOR_ATTACHMENT13";
13017
- GLEnum3[GLEnum3["COLOR_ATTACHMENT14"] = 36078] = "COLOR_ATTACHMENT14";
13018
- GLEnum3[GLEnum3["COLOR_ATTACHMENT15"] = 36079] = "COLOR_ATTACHMENT15";
13019
- GLEnum3[GLEnum3["SAMPLER_3D"] = 35679] = "SAMPLER_3D";
13020
- GLEnum3[GLEnum3["SAMPLER_2D_SHADOW"] = 35682] = "SAMPLER_2D_SHADOW";
13021
- GLEnum3[GLEnum3["SAMPLER_2D_ARRAY"] = 36289] = "SAMPLER_2D_ARRAY";
13022
- GLEnum3[GLEnum3["SAMPLER_2D_ARRAY_SHADOW"] = 36292] = "SAMPLER_2D_ARRAY_SHADOW";
13023
- GLEnum3[GLEnum3["SAMPLER_CUBE_SHADOW"] = 36293] = "SAMPLER_CUBE_SHADOW";
13024
- GLEnum3[GLEnum3["INT_SAMPLER_2D"] = 36298] = "INT_SAMPLER_2D";
13025
- GLEnum3[GLEnum3["INT_SAMPLER_3D"] = 36299] = "INT_SAMPLER_3D";
13026
- GLEnum3[GLEnum3["INT_SAMPLER_CUBE"] = 36300] = "INT_SAMPLER_CUBE";
13027
- GLEnum3[GLEnum3["INT_SAMPLER_2D_ARRAY"] = 36303] = "INT_SAMPLER_2D_ARRAY";
13028
- GLEnum3[GLEnum3["UNSIGNED_INT_SAMPLER_2D"] = 36306] = "UNSIGNED_INT_SAMPLER_2D";
13029
- GLEnum3[GLEnum3["UNSIGNED_INT_SAMPLER_3D"] = 36307] = "UNSIGNED_INT_SAMPLER_3D";
13030
- GLEnum3[GLEnum3["UNSIGNED_INT_SAMPLER_CUBE"] = 36308] = "UNSIGNED_INT_SAMPLER_CUBE";
13031
- GLEnum3[GLEnum3["UNSIGNED_INT_SAMPLER_2D_ARRAY"] = 36311] = "UNSIGNED_INT_SAMPLER_2D_ARRAY";
13032
- GLEnum3[GLEnum3["MAX_SAMPLES"] = 36183] = "MAX_SAMPLES";
13033
- GLEnum3[GLEnum3["SAMPLER_BINDING"] = 35097] = "SAMPLER_BINDING";
13034
- GLEnum3[GLEnum3["PIXEL_PACK_BUFFER"] = 35051] = "PIXEL_PACK_BUFFER";
13035
- GLEnum3[GLEnum3["PIXEL_UNPACK_BUFFER"] = 35052] = "PIXEL_UNPACK_BUFFER";
13036
- GLEnum3[GLEnum3["PIXEL_PACK_BUFFER_BINDING"] = 35053] = "PIXEL_PACK_BUFFER_BINDING";
13037
- GLEnum3[GLEnum3["PIXEL_UNPACK_BUFFER_BINDING"] = 35055] = "PIXEL_UNPACK_BUFFER_BINDING";
13038
- GLEnum3[GLEnum3["COPY_READ_BUFFER"] = 36662] = "COPY_READ_BUFFER";
13039
- GLEnum3[GLEnum3["COPY_WRITE_BUFFER"] = 36663] = "COPY_WRITE_BUFFER";
13040
- GLEnum3[GLEnum3["COPY_READ_BUFFER_BINDING"] = 36662] = "COPY_READ_BUFFER_BINDING";
13041
- GLEnum3[GLEnum3["COPY_WRITE_BUFFER_BINDING"] = 36663] = "COPY_WRITE_BUFFER_BINDING";
13042
- GLEnum3[GLEnum3["FLOAT_MAT2x3"] = 35685] = "FLOAT_MAT2x3";
13043
- GLEnum3[GLEnum3["FLOAT_MAT2x4"] = 35686] = "FLOAT_MAT2x4";
13044
- GLEnum3[GLEnum3["FLOAT_MAT3x2"] = 35687] = "FLOAT_MAT3x2";
13045
- GLEnum3[GLEnum3["FLOAT_MAT3x4"] = 35688] = "FLOAT_MAT3x4";
13046
- GLEnum3[GLEnum3["FLOAT_MAT4x2"] = 35689] = "FLOAT_MAT4x2";
13047
- GLEnum3[GLEnum3["FLOAT_MAT4x3"] = 35690] = "FLOAT_MAT4x3";
13048
- GLEnum3[GLEnum3["UNSIGNED_INT_VEC2"] = 36294] = "UNSIGNED_INT_VEC2";
13049
- GLEnum3[GLEnum3["UNSIGNED_INT_VEC3"] = 36295] = "UNSIGNED_INT_VEC3";
13050
- GLEnum3[GLEnum3["UNSIGNED_INT_VEC4"] = 36296] = "UNSIGNED_INT_VEC4";
13051
- GLEnum3[GLEnum3["UNSIGNED_NORMALIZED"] = 35863] = "UNSIGNED_NORMALIZED";
13052
- GLEnum3[GLEnum3["SIGNED_NORMALIZED"] = 36764] = "SIGNED_NORMALIZED";
13053
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_INTEGER"] = 35069] = "VERTEX_ATTRIB_ARRAY_INTEGER";
13054
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_DIVISOR"] = 35070] = "VERTEX_ATTRIB_ARRAY_DIVISOR";
13055
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_BUFFER_MODE"] = 35967] = "TRANSFORM_FEEDBACK_BUFFER_MODE";
13056
- GLEnum3[GLEnum3["MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"] = 35968] = "MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS";
13057
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_VARYINGS"] = 35971] = "TRANSFORM_FEEDBACK_VARYINGS";
13058
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_BUFFER_START"] = 35972] = "TRANSFORM_FEEDBACK_BUFFER_START";
13059
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_BUFFER_SIZE"] = 35973] = "TRANSFORM_FEEDBACK_BUFFER_SIZE";
13060
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"] = 35976] = "TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN";
13061
- GLEnum3[GLEnum3["MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"] = 35978] = "MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS";
13062
- GLEnum3[GLEnum3["MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"] = 35979] = "MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS";
13063
- GLEnum3[GLEnum3["INTERLEAVED_ATTRIBS"] = 35980] = "INTERLEAVED_ATTRIBS";
13064
- GLEnum3[GLEnum3["SEPARATE_ATTRIBS"] = 35981] = "SEPARATE_ATTRIBS";
13065
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_BUFFER"] = 35982] = "TRANSFORM_FEEDBACK_BUFFER";
13066
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_BUFFER_BINDING"] = 35983] = "TRANSFORM_FEEDBACK_BUFFER_BINDING";
13067
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK"] = 36386] = "TRANSFORM_FEEDBACK";
13068
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_PAUSED"] = 36387] = "TRANSFORM_FEEDBACK_PAUSED";
13069
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_ACTIVE"] = 36388] = "TRANSFORM_FEEDBACK_ACTIVE";
13070
- GLEnum3[GLEnum3["TRANSFORM_FEEDBACK_BINDING"] = 36389] = "TRANSFORM_FEEDBACK_BINDING";
13071
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"] = 33296] = "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING";
13072
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"] = 33297] = "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE";
13073
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_RED_SIZE"] = 33298] = "FRAMEBUFFER_ATTACHMENT_RED_SIZE";
13074
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"] = 33299] = "FRAMEBUFFER_ATTACHMENT_GREEN_SIZE";
13075
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"] = 33300] = "FRAMEBUFFER_ATTACHMENT_BLUE_SIZE";
13076
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"] = 33301] = "FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE";
13077
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"] = 33302] = "FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE";
13078
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"] = 33303] = "FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE";
13079
- GLEnum3[GLEnum3["FRAMEBUFFER_DEFAULT"] = 33304] = "FRAMEBUFFER_DEFAULT";
13080
- GLEnum3[GLEnum3["DEPTH24_STENCIL8"] = 35056] = "DEPTH24_STENCIL8";
13081
- GLEnum3[GLEnum3["DRAW_FRAMEBUFFER_BINDING"] = 36006] = "DRAW_FRAMEBUFFER_BINDING";
13082
- GLEnum3[GLEnum3["READ_FRAMEBUFFER_BINDING"] = 36010] = "READ_FRAMEBUFFER_BINDING";
13083
- GLEnum3[GLEnum3["RENDERBUFFER_SAMPLES"] = 36011] = "RENDERBUFFER_SAMPLES";
13084
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"] = 36052] = "FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER";
13085
- GLEnum3[GLEnum3["FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"] = 36182] = "FRAMEBUFFER_INCOMPLETE_MULTISAMPLE";
13086
- GLEnum3[GLEnum3["UNIFORM_BUFFER"] = 35345] = "UNIFORM_BUFFER";
13087
- GLEnum3[GLEnum3["UNIFORM_BUFFER_BINDING"] = 35368] = "UNIFORM_BUFFER_BINDING";
13088
- GLEnum3[GLEnum3["UNIFORM_BUFFER_START"] = 35369] = "UNIFORM_BUFFER_START";
13089
- GLEnum3[GLEnum3["UNIFORM_BUFFER_SIZE"] = 35370] = "UNIFORM_BUFFER_SIZE";
13090
- GLEnum3[GLEnum3["MAX_VERTEX_UNIFORM_BLOCKS"] = 35371] = "MAX_VERTEX_UNIFORM_BLOCKS";
13091
- GLEnum3[GLEnum3["MAX_FRAGMENT_UNIFORM_BLOCKS"] = 35373] = "MAX_FRAGMENT_UNIFORM_BLOCKS";
13092
- GLEnum3[GLEnum3["MAX_COMBINED_UNIFORM_BLOCKS"] = 35374] = "MAX_COMBINED_UNIFORM_BLOCKS";
13093
- GLEnum3[GLEnum3["MAX_UNIFORM_BUFFER_BINDINGS"] = 35375] = "MAX_UNIFORM_BUFFER_BINDINGS";
13094
- GLEnum3[GLEnum3["MAX_UNIFORM_BLOCK_SIZE"] = 35376] = "MAX_UNIFORM_BLOCK_SIZE";
13095
- GLEnum3[GLEnum3["MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"] = 35377] = "MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS";
13096
- GLEnum3[GLEnum3["MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"] = 35379] = "MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS";
13097
- GLEnum3[GLEnum3["UNIFORM_BUFFER_OFFSET_ALIGNMENT"] = 35380] = "UNIFORM_BUFFER_OFFSET_ALIGNMENT";
13098
- GLEnum3[GLEnum3["ACTIVE_UNIFORM_BLOCKS"] = 35382] = "ACTIVE_UNIFORM_BLOCKS";
13099
- GLEnum3[GLEnum3["UNIFORM_TYPE"] = 35383] = "UNIFORM_TYPE";
13100
- GLEnum3[GLEnum3["UNIFORM_SIZE"] = 35384] = "UNIFORM_SIZE";
13101
- GLEnum3[GLEnum3["UNIFORM_BLOCK_INDEX"] = 35386] = "UNIFORM_BLOCK_INDEX";
13102
- GLEnum3[GLEnum3["UNIFORM_OFFSET"] = 35387] = "UNIFORM_OFFSET";
13103
- GLEnum3[GLEnum3["UNIFORM_ARRAY_STRIDE"] = 35388] = "UNIFORM_ARRAY_STRIDE";
13104
- GLEnum3[GLEnum3["UNIFORM_MATRIX_STRIDE"] = 35389] = "UNIFORM_MATRIX_STRIDE";
13105
- GLEnum3[GLEnum3["UNIFORM_IS_ROW_MAJOR"] = 35390] = "UNIFORM_IS_ROW_MAJOR";
13106
- GLEnum3[GLEnum3["UNIFORM_BLOCK_BINDING"] = 35391] = "UNIFORM_BLOCK_BINDING";
13107
- GLEnum3[GLEnum3["UNIFORM_BLOCK_DATA_SIZE"] = 35392] = "UNIFORM_BLOCK_DATA_SIZE";
13108
- GLEnum3[GLEnum3["UNIFORM_BLOCK_ACTIVE_UNIFORMS"] = 35394] = "UNIFORM_BLOCK_ACTIVE_UNIFORMS";
13109
- GLEnum3[GLEnum3["UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"] = 35395] = "UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES";
13110
- GLEnum3[GLEnum3["UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"] = 35396] = "UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER";
13111
- GLEnum3[GLEnum3["UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"] = 35398] = "UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER";
13112
- GLEnum3[GLEnum3["OBJECT_TYPE"] = 37138] = "OBJECT_TYPE";
13113
- GLEnum3[GLEnum3["SYNC_CONDITION"] = 37139] = "SYNC_CONDITION";
13114
- GLEnum3[GLEnum3["SYNC_STATUS"] = 37140] = "SYNC_STATUS";
13115
- GLEnum3[GLEnum3["SYNC_FLAGS"] = 37141] = "SYNC_FLAGS";
13116
- GLEnum3[GLEnum3["SYNC_FENCE"] = 37142] = "SYNC_FENCE";
13117
- GLEnum3[GLEnum3["SYNC_GPU_COMMANDS_COMPLETE"] = 37143] = "SYNC_GPU_COMMANDS_COMPLETE";
13118
- GLEnum3[GLEnum3["UNSIGNALED"] = 37144] = "UNSIGNALED";
13119
- GLEnum3[GLEnum3["SIGNALED"] = 37145] = "SIGNALED";
13120
- GLEnum3[GLEnum3["ALREADY_SIGNALED"] = 37146] = "ALREADY_SIGNALED";
13121
- GLEnum3[GLEnum3["TIMEOUT_EXPIRED"] = 37147] = "TIMEOUT_EXPIRED";
13122
- GLEnum3[GLEnum3["CONDITION_SATISFIED"] = 37148] = "CONDITION_SATISFIED";
13123
- GLEnum3[GLEnum3["WAIT_FAILED"] = 37149] = "WAIT_FAILED";
13124
- GLEnum3[GLEnum3["SYNC_FLUSH_COMMANDS_BIT"] = 1] = "SYNC_FLUSH_COMMANDS_BIT";
13125
- GLEnum3[GLEnum3["COLOR"] = 6144] = "COLOR";
13126
- GLEnum3[GLEnum3["DEPTH"] = 6145] = "DEPTH";
13127
- GLEnum3[GLEnum3["STENCIL"] = 6146] = "STENCIL";
13128
- GLEnum3[GLEnum3["MIN"] = 32775] = "MIN";
13129
- GLEnum3[GLEnum3["MAX"] = 32776] = "MAX";
13130
- GLEnum3[GLEnum3["DEPTH_COMPONENT24"] = 33190] = "DEPTH_COMPONENT24";
13131
- GLEnum3[GLEnum3["STREAM_READ"] = 35041] = "STREAM_READ";
13132
- GLEnum3[GLEnum3["STREAM_COPY"] = 35042] = "STREAM_COPY";
13133
- GLEnum3[GLEnum3["STATIC_READ"] = 35045] = "STATIC_READ";
13134
- GLEnum3[GLEnum3["STATIC_COPY"] = 35046] = "STATIC_COPY";
13135
- GLEnum3[GLEnum3["DYNAMIC_READ"] = 35049] = "DYNAMIC_READ";
13136
- GLEnum3[GLEnum3["DYNAMIC_COPY"] = 35050] = "DYNAMIC_COPY";
13137
- GLEnum3[GLEnum3["DEPTH_COMPONENT32F"] = 36012] = "DEPTH_COMPONENT32F";
13138
- GLEnum3[GLEnum3["DEPTH32F_STENCIL8"] = 36013] = "DEPTH32F_STENCIL8";
13139
- GLEnum3[GLEnum3["INVALID_INDEX"] = 4294967295] = "INVALID_INDEX";
13140
- GLEnum3[GLEnum3["TIMEOUT_IGNORED"] = -1] = "TIMEOUT_IGNORED";
13141
- GLEnum3[GLEnum3["MAX_CLIENT_WAIT_TIMEOUT_WEBGL"] = 37447] = "MAX_CLIENT_WAIT_TIMEOUT_WEBGL";
13142
- GLEnum3[GLEnum3["VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"] = 35070] = "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE";
13143
- GLEnum3[GLEnum3["UNMASKED_VENDOR_WEBGL"] = 37445] = "UNMASKED_VENDOR_WEBGL";
13144
- GLEnum3[GLEnum3["UNMASKED_RENDERER_WEBGL"] = 37446] = "UNMASKED_RENDERER_WEBGL";
13145
- GLEnum3[GLEnum3["MAX_TEXTURE_MAX_ANISOTROPY_EXT"] = 34047] = "MAX_TEXTURE_MAX_ANISOTROPY_EXT";
13146
- GLEnum3[GLEnum3["TEXTURE_MAX_ANISOTROPY_EXT"] = 34046] = "TEXTURE_MAX_ANISOTROPY_EXT";
13147
- GLEnum3[GLEnum3["SRGB_EXT"] = 35904] = "SRGB_EXT";
13148
- GLEnum3[GLEnum3["SRGB_ALPHA_EXT"] = 35906] = "SRGB_ALPHA_EXT";
13149
- GLEnum3[GLEnum3["SRGB8_ALPHA8_EXT"] = 35907] = "SRGB8_ALPHA8_EXT";
13150
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"] = 33296] = "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT";
13151
- GLEnum3[GLEnum3["R16_EXT"] = 33322] = "R16_EXT";
13152
- GLEnum3[GLEnum3["RG16_EXT"] = 33324] = "RG16_EXT";
13153
- GLEnum3[GLEnum3["RGB16_EXT"] = 32852] = "RGB16_EXT";
13154
- GLEnum3[GLEnum3["RGBA16_EXT"] = 32859] = "RGBA16_EXT";
13155
- GLEnum3[GLEnum3["R16_SNORM_EXT"] = 36760] = "R16_SNORM_EXT";
13156
- GLEnum3[GLEnum3["RG16_SNORM_EXT"] = 36761] = "RG16_SNORM_EXT";
13157
- GLEnum3[GLEnum3["RGB16_SNORM_EXT"] = 36762] = "RGB16_SNORM_EXT";
13158
- GLEnum3[GLEnum3["RGBA16_SNORM_EXT"] = 36763] = "RGBA16_SNORM_EXT";
13159
- GLEnum3[GLEnum3["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
13160
- GLEnum3[GLEnum3["COMPRESSED_RGBA_S3TC_DXT1_EXT"] = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT";
13161
- GLEnum3[GLEnum3["COMPRESSED_RGBA_S3TC_DXT3_EXT"] = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT";
13162
- GLEnum3[GLEnum3["COMPRESSED_RGBA_S3TC_DXT5_EXT"] = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT";
13163
- GLEnum3[GLEnum3["COMPRESSED_SRGB_S3TC_DXT1_EXT"] = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT";
13164
- GLEnum3[GLEnum3["COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"] = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT";
13165
- GLEnum3[GLEnum3["COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"] = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT";
13166
- GLEnum3[GLEnum3["COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"] = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT";
13167
- GLEnum3[GLEnum3["COMPRESSED_RED_RGTC1_EXT"] = 36283] = "COMPRESSED_RED_RGTC1_EXT";
13168
- GLEnum3[GLEnum3["COMPRESSED_SIGNED_RED_RGTC1_EXT"] = 36284] = "COMPRESSED_SIGNED_RED_RGTC1_EXT";
13169
- GLEnum3[GLEnum3["COMPRESSED_RED_GREEN_RGTC2_EXT"] = 36285] = "COMPRESSED_RED_GREEN_RGTC2_EXT";
13170
- GLEnum3[GLEnum3["COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"] = 36286] = "COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT";
13171
- GLEnum3[GLEnum3["COMPRESSED_RGBA_BPTC_UNORM_EXT"] = 36492] = "COMPRESSED_RGBA_BPTC_UNORM_EXT";
13172
- GLEnum3[GLEnum3["COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT"] = 36493] = "COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT";
13173
- GLEnum3[GLEnum3["COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT"] = 36494] = "COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT";
13174
- GLEnum3[GLEnum3["COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT"] = 36495] = "COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT";
13175
- GLEnum3[GLEnum3["COMPRESSED_R11_EAC"] = 37488] = "COMPRESSED_R11_EAC";
13176
- GLEnum3[GLEnum3["COMPRESSED_SIGNED_R11_EAC"] = 37489] = "COMPRESSED_SIGNED_R11_EAC";
13177
- GLEnum3[GLEnum3["COMPRESSED_RG11_EAC"] = 37490] = "COMPRESSED_RG11_EAC";
13178
- GLEnum3[GLEnum3["COMPRESSED_SIGNED_RG11_EAC"] = 37491] = "COMPRESSED_SIGNED_RG11_EAC";
13179
- GLEnum3[GLEnum3["COMPRESSED_RGB8_ETC2"] = 37492] = "COMPRESSED_RGB8_ETC2";
13180
- GLEnum3[GLEnum3["COMPRESSED_RGBA8_ETC2_EAC"] = 37493] = "COMPRESSED_RGBA8_ETC2_EAC";
13181
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ETC2"] = 37494] = "COMPRESSED_SRGB8_ETC2";
13182
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"] = 37495] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC";
13183
- GLEnum3[GLEnum3["COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37496] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2";
13184
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"] = 37497] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2";
13185
- GLEnum3[GLEnum3["COMPRESSED_RGB_PVRTC_4BPPV1_IMG"] = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG";
13186
- GLEnum3[GLEnum3["COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"] = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG";
13187
- GLEnum3[GLEnum3["COMPRESSED_RGB_PVRTC_2BPPV1_IMG"] = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG";
13188
- GLEnum3[GLEnum3["COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"] = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG";
13189
- GLEnum3[GLEnum3["COMPRESSED_RGB_ETC1_WEBGL"] = 36196] = "COMPRESSED_RGB_ETC1_WEBGL";
13190
- GLEnum3[GLEnum3["COMPRESSED_RGB_ATC_WEBGL"] = 35986] = "COMPRESSED_RGB_ATC_WEBGL";
13191
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL"] = 35986] = "COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL";
13192
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL"] = 34798] = "COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL";
13193
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_4x4_KHR"] = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR";
13194
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_5x4_KHR"] = 37809] = "COMPRESSED_RGBA_ASTC_5x4_KHR";
13195
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_5x5_KHR"] = 37810] = "COMPRESSED_RGBA_ASTC_5x5_KHR";
13196
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_6x5_KHR"] = 37811] = "COMPRESSED_RGBA_ASTC_6x5_KHR";
13197
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_6x6_KHR"] = 37812] = "COMPRESSED_RGBA_ASTC_6x6_KHR";
13198
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_8x5_KHR"] = 37813] = "COMPRESSED_RGBA_ASTC_8x5_KHR";
13199
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_8x6_KHR"] = 37814] = "COMPRESSED_RGBA_ASTC_8x6_KHR";
13200
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_8x8_KHR"] = 37815] = "COMPRESSED_RGBA_ASTC_8x8_KHR";
13201
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_10x5_KHR"] = 37816] = "COMPRESSED_RGBA_ASTC_10x5_KHR";
13202
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_10x6_KHR"] = 37817] = "COMPRESSED_RGBA_ASTC_10x6_KHR";
13203
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_10x8_KHR"] = 37818] = "COMPRESSED_RGBA_ASTC_10x8_KHR";
13204
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_10x10_KHR"] = 37819] = "COMPRESSED_RGBA_ASTC_10x10_KHR";
13205
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_12x10_KHR"] = 37820] = "COMPRESSED_RGBA_ASTC_12x10_KHR";
13206
- GLEnum3[GLEnum3["COMPRESSED_RGBA_ASTC_12x12_KHR"] = 37821] = "COMPRESSED_RGBA_ASTC_12x12_KHR";
13207
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"] = 37840] = "COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR";
13208
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"] = 37841] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR";
13209
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"] = 37842] = "COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR";
13210
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"] = 37843] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR";
13211
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"] = 37844] = "COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR";
13212
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"] = 37845] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR";
13213
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"] = 37846] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR";
13214
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"] = 37847] = "COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR";
13215
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"] = 37848] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR";
13216
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"] = 37849] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR";
13217
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"] = 37850] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR";
13218
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"] = 37851] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
13219
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"] = 37852] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
13220
- GLEnum3[GLEnum3["COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"] = 37853] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
13221
- GLEnum3[GLEnum3["UNSIGNED_INT_24_8_WEBGL"] = 34042] = "UNSIGNED_INT_24_8_WEBGL";
13222
- GLEnum3[GLEnum3["HALF_FLOAT_OES"] = 36193] = "HALF_FLOAT_OES";
13223
- GLEnum3[GLEnum3["RGBA32F_EXT"] = 34836] = "RGBA32F_EXT";
13224
- GLEnum3[GLEnum3["RGB32F_EXT"] = 34837] = "RGB32F_EXT";
13225
- GLEnum3[GLEnum3["FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"] = 33297] = "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT";
13226
- GLEnum3[GLEnum3["UNSIGNED_NORMALIZED_EXT"] = 35863] = "UNSIGNED_NORMALIZED_EXT";
13227
- GLEnum3[GLEnum3["MIN_EXT"] = 32775] = "MIN_EXT";
13228
- GLEnum3[GLEnum3["MAX_EXT"] = 32776] = "MAX_EXT";
13229
- GLEnum3[GLEnum3["FRAGMENT_SHADER_DERIVATIVE_HINT_OES"] = 35723] = "FRAGMENT_SHADER_DERIVATIVE_HINT_OES";
13230
- GLEnum3[GLEnum3["COLOR_ATTACHMENT0_WEBGL"] = 36064] = "COLOR_ATTACHMENT0_WEBGL";
13231
- GLEnum3[GLEnum3["COLOR_ATTACHMENT1_WEBGL"] = 36065] = "COLOR_ATTACHMENT1_WEBGL";
13232
- GLEnum3[GLEnum3["COLOR_ATTACHMENT2_WEBGL"] = 36066] = "COLOR_ATTACHMENT2_WEBGL";
13233
- GLEnum3[GLEnum3["COLOR_ATTACHMENT3_WEBGL"] = 36067] = "COLOR_ATTACHMENT3_WEBGL";
13234
- GLEnum3[GLEnum3["COLOR_ATTACHMENT4_WEBGL"] = 36068] = "COLOR_ATTACHMENT4_WEBGL";
13235
- GLEnum3[GLEnum3["COLOR_ATTACHMENT5_WEBGL"] = 36069] = "COLOR_ATTACHMENT5_WEBGL";
13236
- GLEnum3[GLEnum3["COLOR_ATTACHMENT6_WEBGL"] = 36070] = "COLOR_ATTACHMENT6_WEBGL";
13237
- GLEnum3[GLEnum3["COLOR_ATTACHMENT7_WEBGL"] = 36071] = "COLOR_ATTACHMENT7_WEBGL";
13238
- GLEnum3[GLEnum3["COLOR_ATTACHMENT8_WEBGL"] = 36072] = "COLOR_ATTACHMENT8_WEBGL";
13239
- GLEnum3[GLEnum3["COLOR_ATTACHMENT9_WEBGL"] = 36073] = "COLOR_ATTACHMENT9_WEBGL";
13240
- GLEnum3[GLEnum3["COLOR_ATTACHMENT10_WEBGL"] = 36074] = "COLOR_ATTACHMENT10_WEBGL";
13241
- GLEnum3[GLEnum3["COLOR_ATTACHMENT11_WEBGL"] = 36075] = "COLOR_ATTACHMENT11_WEBGL";
13242
- GLEnum3[GLEnum3["COLOR_ATTACHMENT12_WEBGL"] = 36076] = "COLOR_ATTACHMENT12_WEBGL";
13243
- GLEnum3[GLEnum3["COLOR_ATTACHMENT13_WEBGL"] = 36077] = "COLOR_ATTACHMENT13_WEBGL";
13244
- GLEnum3[GLEnum3["COLOR_ATTACHMENT14_WEBGL"] = 36078] = "COLOR_ATTACHMENT14_WEBGL";
13245
- GLEnum3[GLEnum3["COLOR_ATTACHMENT15_WEBGL"] = 36079] = "COLOR_ATTACHMENT15_WEBGL";
13246
- GLEnum3[GLEnum3["DRAW_BUFFER0_WEBGL"] = 34853] = "DRAW_BUFFER0_WEBGL";
13247
- GLEnum3[GLEnum3["DRAW_BUFFER1_WEBGL"] = 34854] = "DRAW_BUFFER1_WEBGL";
13248
- GLEnum3[GLEnum3["DRAW_BUFFER2_WEBGL"] = 34855] = "DRAW_BUFFER2_WEBGL";
13249
- GLEnum3[GLEnum3["DRAW_BUFFER3_WEBGL"] = 34856] = "DRAW_BUFFER3_WEBGL";
13250
- GLEnum3[GLEnum3["DRAW_BUFFER4_WEBGL"] = 34857] = "DRAW_BUFFER4_WEBGL";
13251
- GLEnum3[GLEnum3["DRAW_BUFFER5_WEBGL"] = 34858] = "DRAW_BUFFER5_WEBGL";
13252
- GLEnum3[GLEnum3["DRAW_BUFFER6_WEBGL"] = 34859] = "DRAW_BUFFER6_WEBGL";
13253
- GLEnum3[GLEnum3["DRAW_BUFFER7_WEBGL"] = 34860] = "DRAW_BUFFER7_WEBGL";
13254
- GLEnum3[GLEnum3["DRAW_BUFFER8_WEBGL"] = 34861] = "DRAW_BUFFER8_WEBGL";
13255
- GLEnum3[GLEnum3["DRAW_BUFFER9_WEBGL"] = 34862] = "DRAW_BUFFER9_WEBGL";
13256
- GLEnum3[GLEnum3["DRAW_BUFFER10_WEBGL"] = 34863] = "DRAW_BUFFER10_WEBGL";
13257
- GLEnum3[GLEnum3["DRAW_BUFFER11_WEBGL"] = 34864] = "DRAW_BUFFER11_WEBGL";
13258
- GLEnum3[GLEnum3["DRAW_BUFFER12_WEBGL"] = 34865] = "DRAW_BUFFER12_WEBGL";
13259
- GLEnum3[GLEnum3["DRAW_BUFFER13_WEBGL"] = 34866] = "DRAW_BUFFER13_WEBGL";
13260
- GLEnum3[GLEnum3["DRAW_BUFFER14_WEBGL"] = 34867] = "DRAW_BUFFER14_WEBGL";
13261
- GLEnum3[GLEnum3["DRAW_BUFFER15_WEBGL"] = 34868] = "DRAW_BUFFER15_WEBGL";
13262
- GLEnum3[GLEnum3["MAX_COLOR_ATTACHMENTS_WEBGL"] = 36063] = "MAX_COLOR_ATTACHMENTS_WEBGL";
13263
- GLEnum3[GLEnum3["MAX_DRAW_BUFFERS_WEBGL"] = 34852] = "MAX_DRAW_BUFFERS_WEBGL";
13264
- GLEnum3[GLEnum3["VERTEX_ARRAY_BINDING_OES"] = 34229] = "VERTEX_ARRAY_BINDING_OES";
13265
- GLEnum3[GLEnum3["QUERY_COUNTER_BITS_EXT"] = 34916] = "QUERY_COUNTER_BITS_EXT";
13266
- GLEnum3[GLEnum3["CURRENT_QUERY_EXT"] = 34917] = "CURRENT_QUERY_EXT";
13267
- GLEnum3[GLEnum3["QUERY_RESULT_EXT"] = 34918] = "QUERY_RESULT_EXT";
13268
- GLEnum3[GLEnum3["QUERY_RESULT_AVAILABLE_EXT"] = 34919] = "QUERY_RESULT_AVAILABLE_EXT";
13269
- GLEnum3[GLEnum3["TIME_ELAPSED_EXT"] = 35007] = "TIME_ELAPSED_EXT";
13270
- GLEnum3[GLEnum3["TIMESTAMP_EXT"] = 36392] = "TIMESTAMP_EXT";
13271
- GLEnum3[GLEnum3["GPU_DISJOINT_EXT"] = 36795] = "GPU_DISJOINT_EXT";
13272
- return GLEnum3;
13273
- }(GLEnum2 || {});
13274
-
13275
- // ../../node_modules/@luma.gl/shadertools/dist/lib/glsl-utils/highlight.js
13276
- var glsl = (x2) => `${x2}`;
13277
-
13278
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/lights/lights.glsl.js
13279
- var lightingShader = glsl`\
13280
- #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
13281
-
13282
- struct AmbientLight {
13283
- vec3 color;
13284
- };
13285
-
13286
- struct PointLight {
13287
- vec3 color;
13288
- vec3 position;
13289
-
13290
- // Constant-Linear-Exponential
13291
- vec3 attenuation;
13292
- };
13293
-
13294
- struct DirectionalLight {
13295
- vec3 color;
13296
- vec3 direction;
13297
- };
13298
-
13299
- uniform AmbientLight lighting_uAmbientLight;
13300
- uniform PointLight lighting_uPointLight[MAX_LIGHTS];
13301
- uniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];
13302
- uniform int lighting_uPointLightCount;
13303
- uniform int lighting_uDirectionalLightCount;
13304
-
13305
- uniform bool lighting_uEnabled;
13306
-
13307
- float getPointLightAttenuation(PointLight pointLight, float distance) {
13308
- return pointLight.attenuation.x
13309
- + pointLight.attenuation.y * distance
13310
- + pointLight.attenuation.z * distance * distance;
13311
- }
13312
-
13313
- #endif
13314
- `;
13315
-
13316
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/lights/lights.js
13317
- var INITIAL_MODULE_OPTIONS = {
13318
- lightSources: {}
13319
- };
13320
- function convertColor() {
13321
- let colorDef = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
13322
- const {
13323
- color = [0, 0, 0],
13324
- intensity = 1
13325
- } = colorDef;
13326
- return color.map((component) => component * intensity / 255);
13327
- }
13328
- function getLightSourceUniforms(_ref) {
13329
- let {
13330
- ambientLight,
13331
- pointLights = [],
13332
- directionalLights = []
13333
- } = _ref;
13334
- const lightSourceUniforms = {};
13335
- if (ambientLight) {
13336
- lightSourceUniforms["lighting_uAmbientLight.color"] = convertColor(ambientLight);
13337
- } else {
13338
- lightSourceUniforms["lighting_uAmbientLight.color"] = [0, 0, 0];
13339
- }
13340
- pointLights.forEach((pointLight, index) => {
13341
- lightSourceUniforms[`lighting_uPointLight[${index}].color`] = convertColor(pointLight);
13342
- lightSourceUniforms[`lighting_uPointLight[${index}].position`] = pointLight.position;
13343
- lightSourceUniforms[`lighting_uPointLight[${index}].attenuation`] = pointLight.attenuation || [1, 0, 0];
13344
- });
13345
- lightSourceUniforms.lighting_uPointLightCount = pointLights.length;
13346
- directionalLights.forEach((directionalLight, index) => {
13347
- lightSourceUniforms[`lighting_uDirectionalLight[${index}].color`] = convertColor(directionalLight);
13348
- lightSourceUniforms[`lighting_uDirectionalLight[${index}].direction`] = directionalLight.direction;
13349
- });
13350
- lightSourceUniforms.lighting_uDirectionalLightCount = directionalLights.length;
13351
- return lightSourceUniforms;
13352
- }
13353
- function getUniforms() {
13354
- var _lightSources$directi, _lightSources$pointLi;
13355
- let opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : INITIAL_MODULE_OPTIONS;
13356
- if ("lightSources" in opts) {
13357
- const {
13358
- ambientLight,
13359
- pointLights,
13360
- directionalLights
13361
- } = opts.lightSources || {};
13362
- const hasLights = ambientLight || pointLights && pointLights.length > 0 || directionalLights && directionalLights.length > 0;
13363
- if (!hasLights) {
13364
- return {
13365
- lighting_uEnabled: false
13366
- };
13367
- }
13368
- return Object.assign({}, getLightSourceUniforms({
13369
- ambientLight,
13370
- pointLights,
13371
- directionalLights
13372
- }), {
13373
- lighting_uEnabled: true
13374
- });
13375
- }
13376
- if ("lights" in opts) {
13377
- const lightSources = {
13378
- pointLights: [],
13379
- directionalLights: []
13380
- };
13381
- for (const light of opts.lights || []) {
13382
- switch (light.type) {
13383
- case "ambient":
13384
- lightSources.ambientLight = light;
13385
- break;
13386
- case "directional":
13387
- (_lightSources$directi = lightSources.directionalLights) === null || _lightSources$directi === void 0 ? void 0 : _lightSources$directi.push(light);
13388
- break;
13389
- case "point":
13390
- (_lightSources$pointLi = lightSources.pointLights) === null || _lightSources$pointLi === void 0 ? void 0 : _lightSources$pointLi.push(light);
13391
- break;
13392
- default:
13393
- }
13394
- }
13395
- return getUniforms({
13396
- lightSources
13397
- });
13398
- }
13399
- return {};
13400
- }
13401
- var lights = {
13402
- name: "lights",
13403
- vs: lightingShader,
13404
- fs: lightingShader,
13405
- getUniforms,
13406
- defines: {
13407
- MAX_LIGHTS: 3
13408
- }
13409
- };
13410
-
13411
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/pbr/pbr-vertex.glsl.js
13412
- var vs = glsl`\
13413
- uniform mat4 u_MVPMatrix;
12219
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/pbr/pbr-vertex-glsl.js
12220
+ var vs = `uniform mat4 u_MVPMatrix;
13414
12221
  uniform mat4 u_ModelMatrix;
13415
12222
  uniform mat4 u_NormalMatrix;
13416
-
13417
12223
  out vec3 pbr_vPosition;
13418
12224
  out vec2 pbr_vUV;
13419
-
13420
12225
  #ifdef HAS_NORMALS
13421
12226
  # ifdef HAS_TANGENTS
13422
12227
  out mat3 pbr_vTBN;
@@ -13424,61 +12229,43 @@ out mat3 pbr_vTBN;
13424
12229
  out vec3 pbr_vNormal;
13425
12230
  # endif
13426
12231
  #endif
13427
-
13428
12232
  void pbr_setPositionNormalTangentUV(vec4 position, vec4 normal, vec4 tangent, vec2 uv)
13429
12233
  {
13430
- vec4 pos = u_ModelMatrix * position;
13431
- pbr_vPosition = vec3(pos.xyz) / pos.w;
13432
-
12234
+ vec4 pos = u_ModelMatrix * position;
12235
+ pbr_vPosition = vec3(pos.xyz) / pos.w;
13433
12236
  #ifdef HAS_NORMALS
13434
12237
  #ifdef HAS_TANGENTS
13435
- vec3 normalW = normalize(vec3(u_NormalMatrix * vec4(normal.xyz, 0.0)));
13436
- vec3 tangentW = normalize(vec3(u_ModelMatrix * vec4(tangent.xyz, 0.0)));
13437
- vec3 bitangentW = cross(normalW, tangentW) * tangent.w;
13438
- pbr_vTBN = mat3(tangentW, bitangentW, normalW);
13439
- #else // HAS_TANGENTS != 1
13440
- pbr_vNormal = normalize(vec3(u_ModelMatrix * vec4(normal.xyz, 0.0)));
12238
+ vec3 normalW = normalize(vec3(u_NormalMatrix * vec4(normal.xyz, 0.0)));
12239
+ vec3 tangentW = normalize(vec3(u_ModelMatrix * vec4(tangent.xyz, 0.0)));
12240
+ vec3 bitangentW = cross(normalW, tangentW) * tangent.w;
12241
+ pbr_vTBN = mat3(tangentW, bitangentW, normalW);
12242
+ #else
12243
+ pbr_vNormal = normalize(vec3(u_ModelMatrix * vec4(normal.xyz, 0.0)));
13441
12244
  #endif
13442
12245
  #endif
13443
-
13444
12246
  #ifdef HAS_UV
13445
- pbr_vUV = uv;
12247
+ pbr_vUV = uv;
13446
12248
  #else
13447
- pbr_vUV = vec2(0.,0.);
12249
+ pbr_vUV = vec2(0.,0.);
13448
12250
  #endif
13449
12251
  }
13450
12252
  `;
13451
12253
 
13452
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/pbr/pbr-fragment.glsl.js
13453
- var fs = glsl`\
13454
- #if defined(USE_TEX_LOD) && !defined(FEATURE_GLSL_TEXTURE_LOD)
12254
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/lighting/pbr/pbr-fragment-glsl.js
12255
+ var fs = `#if defined(USE_TEX_LOD) && !defined(FEATURE_GLSL_TEXTURE_LOD)
13455
12256
  # error PBR fragment shader: Texture LOD is not available
13456
12257
  #endif
13457
-
13458
12258
  #if !defined(HAS_TANGENTS) && !defined(FEATURE_GLSL_DERIVATIVES)
13459
12259
  # error PBR fragment shader: Derivatives are not available
13460
12260
  #endif
13461
-
13462
- // WebGL 1.0 does not support non-constant in for loops
13463
- // This provides an easy way to handle these cases
13464
- // and still take advantage of WebGL 2.0
13465
- #if (__VERSION__ < 300)
13466
- #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL1COND; INCR)
13467
- #else
13468
- #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL2COND; INCR)
13469
- #endif
13470
-
13471
12261
  precision highp float;
13472
-
13473
12262
  uniform bool pbr_uUnlit;
13474
-
13475
12263
  #ifdef USE_IBL
13476
12264
  uniform samplerCube u_DiffuseEnvSampler;
13477
12265
  uniform samplerCube u_SpecularEnvSampler;
13478
12266
  uniform sampler2D u_brdfLUT;
13479
12267
  uniform vec2 u_ScaleIBLAmbient;
13480
12268
  #endif
13481
-
13482
12269
  #ifdef HAS_BASECOLORMAP
13483
12270
  uniform sampler2D u_BaseColorSampler;
13484
12271
  #endif
@@ -13497,26 +12284,18 @@ uniform sampler2D u_MetallicRoughnessSampler;
13497
12284
  uniform sampler2D u_OcclusionSampler;
13498
12285
  uniform float u_OcclusionStrength;
13499
12286
  #endif
13500
-
13501
12287
  #ifdef ALPHA_CUTOFF
13502
12288
  uniform float u_AlphaCutoff;
13503
12289
  #endif
13504
-
13505
12290
  uniform vec2 u_MetallicRoughnessValues;
13506
12291
  uniform vec4 u_BaseColorFactor;
13507
-
13508
12292
  uniform vec3 u_Camera;
13509
-
13510
- // debugging flags used for shader output of intermediate PBR variables
13511
12293
  #ifdef PBR_DEBUG
13512
12294
  uniform vec4 u_ScaleDiffBaseMR;
13513
12295
  uniform vec4 u_ScaleFGDSpec;
13514
12296
  #endif
13515
-
13516
12297
  in vec3 pbr_vPosition;
13517
-
13518
12298
  in vec2 pbr_vUV;
13519
-
13520
12299
  #ifdef HAS_NORMALS
13521
12300
  #ifdef HAS_TANGENTS
13522
12301
  in mat3 pbr_vTBN;
@@ -13524,330 +12303,229 @@ in mat3 pbr_vTBN;
13524
12303
  in vec3 pbr_vNormal;
13525
12304
  #endif
13526
12305
  #endif
13527
-
13528
- // Encapsulate the various inputs used by the various functions in the shading equation
13529
- // We store values in this struct to simplify the integration of alternative implementations
13530
- // of the shading terms, outlined in the Readme.MD Appendix.
13531
12306
  struct PBRInfo
13532
12307
  {
13533
- float NdotL; // cos angle between normal and light direction
13534
- float NdotV; // cos angle between normal and view direction
13535
- float NdotH; // cos angle between normal and half vector
13536
- float LdotH; // cos angle between light direction and half vector
13537
- float VdotH; // cos angle between view direction and half vector
13538
- float perceptualRoughness; // roughness value, as authored by the model creator (input to shader)
13539
- float metalness; // metallic value at the surface
13540
- vec3 reflectance0; // full reflectance color (normal incidence angle)
13541
- vec3 reflectance90; // reflectance color at grazing angle
13542
- float alphaRoughness; // roughness mapped to a more linear change in the roughness (proposed by [2])
13543
- vec3 diffuseColor; // color contribution from diffuse lighting
13544
- vec3 specularColor; // color contribution from specular lighting
13545
- vec3 n; // normal at surface point
13546
- vec3 v; // vector from surface point to camera
12308
+ float NdotL;
12309
+ float NdotV;
12310
+ float NdotH;
12311
+ float LdotH;
12312
+ float VdotH;
12313
+ float perceptualRoughness;
12314
+ float metalness;
12315
+ vec3 reflectance0;
12316
+ vec3 reflectance90;
12317
+ float alphaRoughness;
12318
+ vec3 diffuseColor;
12319
+ vec3 specularColor;
12320
+ vec3 n;
12321
+ vec3 v;
13547
12322
  };
13548
-
13549
12323
  const float M_PI = 3.141592653589793;
13550
12324
  const float c_MinRoughness = 0.04;
13551
-
13552
12325
  vec4 SRGBtoLINEAR(vec4 srgbIn)
13553
12326
  {
13554
12327
  #ifdef MANUAL_SRGB
13555
12328
  #ifdef SRGB_FAST_APPROXIMATION
13556
- vec3 linOut = pow(srgbIn.xyz,vec3(2.2));
13557
- #else //SRGB_FAST_APPROXIMATION
13558
- vec3 bLess = step(vec3(0.04045),srgbIn.xyz);
13559
- vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess );
13560
- #endif //SRGB_FAST_APPROXIMATION
13561
- return vec4(linOut,srgbIn.w);;
13562
- #else //MANUAL_SRGB
13563
- return srgbIn;
13564
- #endif //MANUAL_SRGB
12329
+ vec3 linOut = pow(srgbIn.xyz,vec3(2.2));
12330
+ #else
12331
+ vec3 bLess = step(vec3(0.04045),srgbIn.xyz);
12332
+ vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess );
12333
+ #endif
12334
+ return vec4(linOut,srgbIn.w);;
12335
+ #else
12336
+ return srgbIn;
12337
+ #endif
13565
12338
  }
13566
-
13567
- // Find the normal for this fragment, pulling either from a predefined normal map
13568
- // or from the interpolated mesh normal and tangent attributes.
13569
12339
  vec3 getNormal()
13570
12340
  {
13571
- // Retrieve the tangent space matrix
13572
12341
  #ifndef HAS_TANGENTS
13573
- vec3 pos_dx = dFdx(pbr_vPosition);
13574
- vec3 pos_dy = dFdy(pbr_vPosition);
13575
- vec3 tex_dx = dFdx(vec3(pbr_vUV, 0.0));
13576
- vec3 tex_dy = dFdy(vec3(pbr_vUV, 0.0));
13577
- vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);
13578
-
12342
+ vec3 pos_dx = dFdx(pbr_vPosition);
12343
+ vec3 pos_dy = dFdy(pbr_vPosition);
12344
+ vec3 tex_dx = dFdx(vec3(pbr_vUV, 0.0));
12345
+ vec3 tex_dy = dFdy(vec3(pbr_vUV, 0.0));
12346
+ vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);
13579
12347
  #ifdef HAS_NORMALS
13580
- vec3 ng = normalize(pbr_vNormal);
12348
+ vec3 ng = normalize(pbr_vNormal);
13581
12349
  #else
13582
- vec3 ng = cross(pos_dx, pos_dy);
12350
+ vec3 ng = cross(pos_dx, pos_dy);
13583
12351
  #endif
13584
-
13585
- t = normalize(t - ng * dot(ng, t));
13586
- vec3 b = normalize(cross(ng, t));
13587
- mat3 tbn = mat3(t, b, ng);
13588
- #else // HAS_TANGENTS
13589
- mat3 tbn = pbr_vTBN;
12352
+ t = normalize(t - ng * dot(ng, t));
12353
+ vec3 b = normalize(cross(ng, t));
12354
+ mat3 tbn = mat3(t, b, ng);
12355
+ #else
12356
+ mat3 tbn = pbr_vTBN;
13590
12357
  #endif
13591
-
13592
12358
  #ifdef HAS_NORMALMAP
13593
- vec3 n = texture(u_NormalSampler, pbr_vUV).rgb;
13594
- n = normalize(tbn * ((2.0 * n - 1.0) * vec3(u_NormalScale, u_NormalScale, 1.0)));
12359
+ vec3 n = texture(u_NormalSampler, pbr_vUV).rgb;
12360
+ n = normalize(tbn * ((2.0 * n - 1.0) * vec3(u_NormalScale, u_NormalScale, 1.0)));
13595
12361
  #else
13596
- // The tbn matrix is linearly interpolated, so we need to re-normalize
13597
- vec3 n = normalize(tbn[2].xyz);
12362
+ vec3 n = normalize(tbn[2].xyz);
13598
12363
  #endif
13599
-
13600
- return n;
12364
+ return n;
13601
12365
  }
13602
-
13603
- // Calculation of the lighting contribution from an optional Image Based Light source.
13604
- // Precomputed Environment Maps are required uniform inputs and are computed as outlined in [1].
13605
- // See our README.md on Environment Maps [3] for additional discussion.
13606
12366
  #ifdef USE_IBL
13607
12367
  vec3 getIBLContribution(PBRInfo pbrInputs, vec3 n, vec3 reflection)
13608
12368
  {
13609
- float mipCount = 9.0; // resolution of 512x512
13610
- float lod = (pbrInputs.perceptualRoughness * mipCount);
13611
- // retrieve a scale and bias to F0. See [1], Figure 3
13612
- vec3 brdf = SRGBtoLINEAR(texture(u_brdfLUT,
13613
- vec2(pbrInputs.NdotV, 1.0 - pbrInputs.perceptualRoughness))).rgb;
13614
- vec3 diffuseLight = SRGBtoLINEAR(textureCube(u_DiffuseEnvSampler, n)).rgb;
13615
-
12369
+ float mipCount = 9.0;
12370
+ float lod = (pbrInputs.perceptualRoughness * mipCount);
12371
+ vec3 brdf = SRGBtoLINEAR(texture(u_brdfLUT,
12372
+ vec2(pbrInputs.NdotV, 1.0 - pbrInputs.perceptualRoughness))).rgb;
12373
+ vec3 diffuseLight = SRGBtoLINEAR(textureCube(u_DiffuseEnvSampler, n)).rgb;
13616
12374
  #ifdef USE_TEX_LOD
13617
- vec3 specularLight = SRGBtoLINEAR(textureCubeLod(u_SpecularEnvSampler, reflection, lod)).rgb;
12375
+ vec3 specularLight = SRGBtoLINEAR(textureCubeLod(u_SpecularEnvSampler, reflection, lod)).rgb;
13618
12376
  #else
13619
- vec3 specularLight = SRGBtoLINEAR(textureCube(u_SpecularEnvSampler, reflection)).rgb;
12377
+ vec3 specularLight = SRGBtoLINEAR(textureCube(u_SpecularEnvSampler, reflection)).rgb;
13620
12378
  #endif
13621
-
13622
- vec3 diffuse = diffuseLight * pbrInputs.diffuseColor;
13623
- vec3 specular = specularLight * (pbrInputs.specularColor * brdf.x + brdf.y);
13624
-
13625
- // For presentation, this allows us to disable IBL terms
13626
- diffuse *= u_ScaleIBLAmbient.x;
13627
- specular *= u_ScaleIBLAmbient.y;
13628
-
13629
- return diffuse + specular;
12379
+ vec3 diffuse = diffuseLight * pbrInputs.diffuseColor;
12380
+ vec3 specular = specularLight * (pbrInputs.specularColor * brdf.x + brdf.y);
12381
+ diffuse *= u_ScaleIBLAmbient.x;
12382
+ specular *= u_ScaleIBLAmbient.y;
12383
+ return diffuse + specular;
13630
12384
  }
13631
12385
  #endif
13632
-
13633
- // Basic Lambertian diffuse
13634
- // Implementation from Lambert's Photometria https://archive.org/details/lambertsphotome00lambgoog
13635
- // See also [1], Equation 1
13636
12386
  vec3 diffuse(PBRInfo pbrInputs)
13637
12387
  {
13638
- return pbrInputs.diffuseColor / M_PI;
12388
+ return pbrInputs.diffuseColor / M_PI;
13639
12389
  }
13640
-
13641
- // The following equation models the Fresnel reflectance term of the spec equation (aka F())
13642
- // Implementation of fresnel from [4], Equation 15
13643
12390
  vec3 specularReflection(PBRInfo pbrInputs)
13644
12391
  {
13645
- return pbrInputs.reflectance0 +
13646
- (pbrInputs.reflectance90 - pbrInputs.reflectance0) *
13647
- pow(clamp(1.0 - pbrInputs.VdotH, 0.0, 1.0), 5.0);
12392
+ return pbrInputs.reflectance0 +
12393
+ (pbrInputs.reflectance90 - pbrInputs.reflectance0) *
12394
+ pow(clamp(1.0 - pbrInputs.VdotH, 0.0, 1.0), 5.0);
13648
12395
  }
13649
-
13650
- // This calculates the specular geometric attenuation (aka G()),
13651
- // where rougher material will reflect less light back to the viewer.
13652
- // This implementation is based on [1] Equation 4, and we adopt their modifications to
13653
- // alphaRoughness as input as originally proposed in [2].
13654
12396
  float geometricOcclusion(PBRInfo pbrInputs)
13655
12397
  {
13656
- float NdotL = pbrInputs.NdotL;
13657
- float NdotV = pbrInputs.NdotV;
13658
- float r = pbrInputs.alphaRoughness;
13659
-
13660
- float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL)));
13661
- float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV)));
13662
- return attenuationL * attenuationV;
12398
+ float NdotL = pbrInputs.NdotL;
12399
+ float NdotV = pbrInputs.NdotV;
12400
+ float r = pbrInputs.alphaRoughness;
12401
+ float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL)));
12402
+ float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV)));
12403
+ return attenuationL * attenuationV;
13663
12404
  }
13664
-
13665
- // The following equation(s) model the distribution of microfacet normals across
13666
- // the area being drawn (aka D())
13667
- // Implementation from "Average Irregularity Representation of a Roughened Surface
13668
- // for Ray Reflection" by T. S. Trowbridge, and K. P. Reitz
13669
- // Follows the distribution function recommended in the SIGGRAPH 2013 course notes
13670
- // from EPIC Games [1], Equation 3.
13671
12405
  float microfacetDistribution(PBRInfo pbrInputs)
13672
12406
  {
13673
- float roughnessSq = pbrInputs.alphaRoughness * pbrInputs.alphaRoughness;
13674
- float f = (pbrInputs.NdotH * roughnessSq - pbrInputs.NdotH) * pbrInputs.NdotH + 1.0;
13675
- return roughnessSq / (M_PI * f * f);
12407
+ float roughnessSq = pbrInputs.alphaRoughness * pbrInputs.alphaRoughness;
12408
+ float f = (pbrInputs.NdotH * roughnessSq - pbrInputs.NdotH) * pbrInputs.NdotH + 1.0;
12409
+ return roughnessSq / (M_PI * f * f);
13676
12410
  }
13677
-
13678
12411
  void PBRInfo_setAmbientLight(inout PBRInfo pbrInputs) {
13679
- pbrInputs.NdotL = 1.0;
13680
- pbrInputs.NdotH = 0.0;
13681
- pbrInputs.LdotH = 0.0;
13682
- pbrInputs.VdotH = 1.0;
12412
+ pbrInputs.NdotL = 1.0;
12413
+ pbrInputs.NdotH = 0.0;
12414
+ pbrInputs.LdotH = 0.0;
12415
+ pbrInputs.VdotH = 1.0;
13683
12416
  }
13684
-
13685
12417
  void PBRInfo_setDirectionalLight(inout PBRInfo pbrInputs, vec3 lightDirection) {
13686
- vec3 n = pbrInputs.n;
13687
- vec3 v = pbrInputs.v;
13688
- vec3 l = normalize(lightDirection); // Vector from surface point to light
13689
- vec3 h = normalize(l+v); // Half vector between both l and v
13690
-
13691
- pbrInputs.NdotL = clamp(dot(n, l), 0.001, 1.0);
13692
- pbrInputs.NdotH = clamp(dot(n, h), 0.0, 1.0);
13693
- pbrInputs.LdotH = clamp(dot(l, h), 0.0, 1.0);
13694
- pbrInputs.VdotH = clamp(dot(v, h), 0.0, 1.0);
12418
+ vec3 n = pbrInputs.n;
12419
+ vec3 v = pbrInputs.v;
12420
+ vec3 l = normalize(lightDirection);
12421
+ vec3 h = normalize(l+v);
12422
+ pbrInputs.NdotL = clamp(dot(n, l), 0.001, 1.0);
12423
+ pbrInputs.NdotH = clamp(dot(n, h), 0.0, 1.0);
12424
+ pbrInputs.LdotH = clamp(dot(l, h), 0.0, 1.0);
12425
+ pbrInputs.VdotH = clamp(dot(v, h), 0.0, 1.0);
13695
12426
  }
13696
-
13697
12427
  void PBRInfo_setPointLight(inout PBRInfo pbrInputs, PointLight pointLight) {
13698
- vec3 light_direction = normalize(pointLight.position - pbr_vPosition);
13699
- PBRInfo_setDirectionalLight(pbrInputs, light_direction);
12428
+ vec3 light_direction = normalize(pointLight.position - pbr_vPosition);
12429
+ PBRInfo_setDirectionalLight(pbrInputs, light_direction);
13700
12430
  }
13701
-
13702
12431
  vec3 calculateFinalColor(PBRInfo pbrInputs, vec3 lightColor) {
13703
- // Calculate the shading terms for the microfacet specular shading model
13704
- vec3 F = specularReflection(pbrInputs);
13705
- float G = geometricOcclusion(pbrInputs);
13706
- float D = microfacetDistribution(pbrInputs);
13707
-
13708
- // Calculation of analytical lighting contribution
13709
- vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInputs);
13710
- vec3 specContrib = F * G * D / (4.0 * pbrInputs.NdotL * pbrInputs.NdotV);
13711
- // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law)
13712
- return pbrInputs.NdotL * lightColor * (diffuseContrib + specContrib);
12432
+ vec3 F = specularReflection(pbrInputs);
12433
+ float G = geometricOcclusion(pbrInputs);
12434
+ float D = microfacetDistribution(pbrInputs);
12435
+ vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInputs);
12436
+ vec3 specContrib = F * G * D / (4.0 * pbrInputs.NdotL * pbrInputs.NdotV);
12437
+ return pbrInputs.NdotL * lightColor * (diffuseContrib + specContrib);
13713
12438
  }
13714
-
13715
12439
  vec4 pbr_filterColor(vec4 colorUnused)
13716
12440
  {
13717
- // The albedo may be defined from a base texture or a flat color
13718
12441
  #ifdef HAS_BASECOLORMAP
13719
- vec4 baseColor = SRGBtoLINEAR(texture(u_BaseColorSampler, pbr_vUV)) * u_BaseColorFactor;
12442
+ vec4 baseColor = SRGBtoLINEAR(texture(u_BaseColorSampler, pbr_vUV)) * u_BaseColorFactor;
13720
12443
  #else
13721
- vec4 baseColor = u_BaseColorFactor;
12444
+ vec4 baseColor = u_BaseColorFactor;
13722
12445
  #endif
13723
-
13724
12446
  #ifdef ALPHA_CUTOFF
13725
- if (baseColor.a < u_AlphaCutoff) {
13726
- discard;
13727
- }
12447
+ if (baseColor.a < u_AlphaCutoff) {
12448
+ discard;
12449
+ }
13728
12450
  #endif
13729
-
13730
- vec3 color = vec3(0, 0, 0);
13731
-
13732
- if(pbr_uUnlit){
13733
- color.rgb = baseColor.rgb;
13734
- }
13735
- else{
13736
- // Metallic and Roughness material properties are packed together
13737
- // In glTF, these factors can be specified by fixed scalar values
13738
- // or from a metallic-roughness map
13739
- float perceptualRoughness = u_MetallicRoughnessValues.y;
13740
- float metallic = u_MetallicRoughnessValues.x;
12451
+ vec3 color = vec3(0, 0, 0);
12452
+ if(pbr_uUnlit){
12453
+ color.rgb = baseColor.rgb;
12454
+ }
12455
+ else{
12456
+ float perceptualRoughness = u_MetallicRoughnessValues.y;
12457
+ float metallic = u_MetallicRoughnessValues.x;
13741
12458
  #ifdef HAS_METALROUGHNESSMAP
13742
- // Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel.
13743
- // This layout intentionally reserves the 'r' channel for (optional) occlusion map data
13744
- vec4 mrSample = texture(u_MetallicRoughnessSampler, pbr_vUV);
13745
- perceptualRoughness = mrSample.g * perceptualRoughness;
13746
- metallic = mrSample.b * metallic;
12459
+ vec4 mrSample = texture(u_MetallicRoughnessSampler, pbr_vUV);
12460
+ perceptualRoughness = mrSample.g * perceptualRoughness;
12461
+ metallic = mrSample.b * metallic;
13747
12462
  #endif
13748
- perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0);
13749
- metallic = clamp(metallic, 0.0, 1.0);
13750
- // Roughness is authored as perceptual roughness; as is convention,
13751
- // convert to material roughness by squaring the perceptual roughness [2].
13752
- float alphaRoughness = perceptualRoughness * perceptualRoughness;
13753
-
13754
- vec3 f0 = vec3(0.04);
13755
- vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);
13756
- diffuseColor *= 1.0 - metallic;
13757
- vec3 specularColor = mix(f0, baseColor.rgb, metallic);
13758
-
13759
- // Compute reflectance.
13760
- float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);
13761
-
13762
- // For typical incident reflectance range (between 4% to 100%) set the grazing
13763
- // reflectance to 100% for typical fresnel effect.
13764
- // For very low reflectance range on highly diffuse objects (below 4%),
13765
- // incrementally reduce grazing reflecance to 0%.
13766
- float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);
13767
- vec3 specularEnvironmentR0 = specularColor.rgb;
13768
- vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;
13769
-
13770
- vec3 n = getNormal(); // normal at surface point
13771
- vec3 v = normalize(u_Camera - pbr_vPosition); // Vector from surface point to camera
13772
-
13773
- float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);
13774
- vec3 reflection = -normalize(reflect(v, n));
13775
-
13776
- PBRInfo pbrInputs = PBRInfo(
13777
- 0.0, // NdotL
13778
- NdotV,
13779
- 0.0, // NdotH
13780
- 0.0, // LdotH
13781
- 0.0, // VdotH
13782
- perceptualRoughness,
13783
- metallic,
13784
- specularEnvironmentR0,
13785
- specularEnvironmentR90,
13786
- alphaRoughness,
13787
- diffuseColor,
13788
- specularColor,
13789
- n,
13790
- v
13791
- );
13792
-
12463
+ perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0);
12464
+ metallic = clamp(metallic, 0.0, 1.0);
12465
+ float alphaRoughness = perceptualRoughness * perceptualRoughness;
12466
+ vec3 f0 = vec3(0.04);
12467
+ vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);
12468
+ diffuseColor *= 1.0 - metallic;
12469
+ vec3 specularColor = mix(f0, baseColor.rgb, metallic);
12470
+ float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);
12471
+ float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);
12472
+ vec3 specularEnvironmentR0 = specularColor.rgb;
12473
+ vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;
12474
+ vec3 n = getNormal();
12475
+ vec3 v = normalize(u_Camera - pbr_vPosition);
12476
+ float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);
12477
+ vec3 reflection = -normalize(reflect(v, n));
12478
+ PBRInfo pbrInputs = PBRInfo(
12479
+ 0.0,
12480
+ NdotV,
12481
+ 0.0,
12482
+ 0.0,
12483
+ 0.0,
12484
+ perceptualRoughness,
12485
+ metallic,
12486
+ specularEnvironmentR0,
12487
+ specularEnvironmentR90,
12488
+ alphaRoughness,
12489
+ diffuseColor,
12490
+ specularColor,
12491
+ n,
12492
+ v
12493
+ );
13793
12494
  #ifdef USE_LIGHTS
13794
- // Apply ambient light
13795
- PBRInfo_setAmbientLight(pbrInputs);
13796
- color += calculateFinalColor(pbrInputs, lighting_uAmbientLight.color);
13797
-
13798
- // Apply directional light
13799
- SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uDirectionalLightCount, i++) {
13800
- if (i < lighting_uDirectionalLightCount) {
13801
- PBRInfo_setDirectionalLight(pbrInputs, lighting_uDirectionalLight[i].direction);
13802
- color += calculateFinalColor(pbrInputs, lighting_uDirectionalLight[i].color);
13803
- }
13804
- }
13805
-
13806
- // Apply point light
13807
- SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uPointLightCount, i++) {
13808
- if (i < lighting_uPointLightCount) {
13809
- PBRInfo_setPointLight(pbrInputs, lighting_uPointLight[i]);
13810
- float attenuation = getPointLightAttenuation(lighting_uPointLight[i], distance(lighting_uPointLight[i].position, pbr_vPosition));
13811
- color += calculateFinalColor(pbrInputs, lighting_uPointLight[i].color / attenuation);
13812
- }
13813
- }
12495
+ PBRInfo_setAmbientLight(pbrInputs);
12496
+ color += calculateFinalColor(pbrInputs, lighting_uAmbientLight.color);
12497
+ for(int i = 0, i < lighting_uDirectionalLightCount, i++) {
12498
+ if (i < lighting_uDirectionalLightCount) {
12499
+ PBRInfo_setDirectionalLight(pbrInputs, lighting_uDirectionalLight[i].direction);
12500
+ color += calculateFinalColor(pbrInputs, lighting_uDirectionalLight[i].color);
12501
+ }
12502
+ }
12503
+ for(int i = 0, i < lighting_uPointLightCount, i++) {
12504
+ if (i < lighting_uPointLightCount) {
12505
+ PBRInfo_setPointLight(pbrInputs, lighting_uPointLight[i]);
12506
+ float attenuation = getPointLightAttenuation(lighting_uPointLight[i], distance(lighting_uPointLight[i].position, pbr_vPosition));
12507
+ color += calculateFinalColor(pbrInputs, lighting_uPointLight[i].color / attenuation);
12508
+ }
12509
+ }
13814
12510
  #endif
13815
-
13816
- // Calculate lighting contribution from image based lighting source (IBL)
13817
12511
  #ifdef USE_IBL
13818
- color += getIBLContribution(pbrInputs, n, reflection);
12512
+ color += getIBLContribution(pbrInputs, n, reflection);
13819
12513
  #endif
13820
-
13821
- // Apply optional PBR terms for additional (optional) shading
13822
12514
  #ifdef HAS_OCCLUSIONMAP
13823
- float ao = texture(u_OcclusionSampler, pbr_vUV).r;
13824
- color = mix(color, color * ao, u_OcclusionStrength);
12515
+ float ao = texture(u_OcclusionSampler, pbr_vUV).r;
12516
+ color = mix(color, color * ao, u_OcclusionStrength);
13825
12517
  #endif
13826
-
13827
12518
  #ifdef HAS_EMISSIVEMAP
13828
- vec3 emissive = SRGBtoLINEAR(texture(u_EmissiveSampler, pbr_vUV)).rgb * u_EmissiveFactor;
13829
- color += emissive;
12519
+ vec3 emissive = SRGBtoLINEAR(texture(u_EmissiveSampler, pbr_vUV)).rgb * u_EmissiveFactor;
12520
+ color += emissive;
13830
12521
  #endif
13831
-
13832
- // This section uses mix to override final color for reference app visualization
13833
- // of various parameters in the lighting equation.
13834
12522
  #ifdef PBR_DEBUG
13835
- // TODO: Figure out how to debug multiple lights
13836
-
13837
- // color = mix(color, F, u_ScaleFGDSpec.x);
13838
- // color = mix(color, vec3(G), u_ScaleFGDSpec.y);
13839
- // color = mix(color, vec3(D), u_ScaleFGDSpec.z);
13840
- // color = mix(color, specContrib, u_ScaleFGDSpec.w);
13841
-
13842
- // color = mix(color, diffuseContrib, u_ScaleDiffBaseMR.x);
13843
- color = mix(color, baseColor.rgb, u_ScaleDiffBaseMR.y);
13844
- color = mix(color, vec3(metallic), u_ScaleDiffBaseMR.z);
13845
- color = mix(color, vec3(perceptualRoughness), u_ScaleDiffBaseMR.w);
12523
+ color = mix(color, baseColor.rgb, u_ScaleDiffBaseMR.y);
12524
+ color = mix(color, vec3(metallic), u_ScaleDiffBaseMR.z);
12525
+ color = mix(color, vec3(perceptualRoughness), u_ScaleDiffBaseMR.w);
13846
12526
  #endif
13847
-
13848
- }
13849
-
13850
- return vec4(pow(color,vec3(1.0/2.2)), baseColor.a);
12527
+ }
12528
+ return vec4(pow(color,vec3(1.0/2.2)), baseColor.a);
13851
12529
  }
13852
12530
  `;
13853
12531
 
@@ -13986,15 +12664,7 @@ void main(void) {
13986
12664
  vec3 normal;
13987
12665
  if (flatShading) {
13988
12666
 
13989
- // NOTE(Tarek): This is necessary because
13990
- // headless.gl reports the extension as
13991
- // available but does not support it in
13992
- // the shader.
13993
- #ifdef DERIVATIVES_AVAILABLE
13994
- normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
13995
- #else
13996
- normal = vec3(0.0, 0.0, 1.0);
13997
- #endif
12667
+ normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
13998
12668
  } else {
13999
12669
  normal = normals_commonspace;
14000
12670
  }
@@ -14040,7 +12710,7 @@ void main(void) {
14040
12710
  if (featureIds) {
14041
12711
  attributeManager.add({
14042
12712
  featureIdsPickingColors: {
14043
- type: GLEnum2.UNSIGNED_BYTE,
12713
+ type: "uint8",
14044
12714
  size: 3,
14045
12715
  noAlloc: true,
14046
12716
  update: this.calculateFeatureIdsPickingColors
@@ -16687,7 +15357,7 @@ void main(void) {
16687
15357
  };
16688
15358
 
16689
15359
  // ../../node_modules/@loaders.gl/3d-tiles/dist/lib/utils/version.js
16690
- var VERSION8 = true ? "4.1.0" : "latest";
15360
+ var VERSION6 = true ? "4.1.0" : "latest";
16691
15361
 
16692
15362
  // ../../node_modules/@loaders.gl/3d-tiles/dist/lib/constants.js
16693
15363
  var TILE3D_TYPE = {
@@ -16716,14 +15386,14 @@ void main(void) {
16716
15386
  }
16717
15387
 
16718
15388
  // ../../node_modules/@loaders.gl/draco/dist/lib/utils/version.js
16719
- var VERSION9 = true ? "4.1.0" : "latest";
15389
+ var VERSION7 = true ? "4.1.0" : "latest";
16720
15390
 
16721
15391
  // ../../node_modules/@loaders.gl/draco/dist/draco-loader.js
16722
15392
  var DracoLoader = {
16723
15393
  name: "Draco",
16724
15394
  id: "draco",
16725
15395
  module: "draco",
16726
- version: VERSION9,
15396
+ version: VERSION7,
16727
15397
  worker: true,
16728
15398
  extensions: ["drc"],
16729
15399
  mimeTypes: ["application/octet-stream"],
@@ -19680,82 +18350,525 @@ void main(void) {
19680
18350
  featureTextureProperty.data = data;
19681
18351
  }
19682
18352
  }
19683
- }
19684
- function getPropertyDataFromBinarySource2(scenegraph, schema, classProperty, numberOfFeatures, featureTableProperty) {
19685
- let data = [];
19686
- const bufferView = featureTableProperty.bufferView;
19687
- const dataArray = scenegraph.getTypedArrayForBufferView(bufferView);
19688
- const arrayOffsets = getArrayOffsetsForProperty2(scenegraph, classProperty, featureTableProperty, numberOfFeatures);
19689
- const stringOffsets = getStringOffsetsForProperty2(scenegraph, classProperty, featureTableProperty, numberOfFeatures);
19690
- if (classProperty.type === "STRING" || classProperty.componentType === "STRING") {
19691
- data = getPropertyDataString(numberOfFeatures, dataArray, arrayOffsets, stringOffsets);
19692
- } else if (isNumericProperty(classProperty)) {
19693
- data = getPropertyDataNumeric2(classProperty, numberOfFeatures, dataArray, arrayOffsets);
18353
+ }
18354
+ function getPropertyDataFromBinarySource2(scenegraph, schema, classProperty, numberOfFeatures, featureTableProperty) {
18355
+ let data = [];
18356
+ const bufferView = featureTableProperty.bufferView;
18357
+ const dataArray = scenegraph.getTypedArrayForBufferView(bufferView);
18358
+ const arrayOffsets = getArrayOffsetsForProperty2(scenegraph, classProperty, featureTableProperty, numberOfFeatures);
18359
+ const stringOffsets = getStringOffsetsForProperty2(scenegraph, classProperty, featureTableProperty, numberOfFeatures);
18360
+ if (classProperty.type === "STRING" || classProperty.componentType === "STRING") {
18361
+ data = getPropertyDataString(numberOfFeatures, dataArray, arrayOffsets, stringOffsets);
18362
+ } else if (isNumericProperty(classProperty)) {
18363
+ data = getPropertyDataNumeric2(classProperty, numberOfFeatures, dataArray, arrayOffsets);
18364
+ }
18365
+ return data;
18366
+ }
18367
+ function getArrayOffsetsForProperty2(scenegraph, classProperty, propertyTableProperty, numberOfElements) {
18368
+ if (classProperty.type === "ARRAY" && typeof classProperty.componentCount === "undefined" && typeof propertyTableProperty.arrayOffsetBufferView !== "undefined") {
18369
+ return getOffsetsForProperty(scenegraph, propertyTableProperty.arrayOffsetBufferView, propertyTableProperty.offsetType || "UINT32", numberOfElements);
18370
+ }
18371
+ return null;
18372
+ }
18373
+ function getStringOffsetsForProperty2(scenegraph, classProperty, propertyTableProperty, numberOfElements) {
18374
+ if (typeof propertyTableProperty.stringOffsetBufferView !== "undefined") {
18375
+ return getOffsetsForProperty(scenegraph, propertyTableProperty.stringOffsetBufferView, propertyTableProperty.offsetType || "UINT32", numberOfElements);
18376
+ }
18377
+ return null;
18378
+ }
18379
+ function isNumericProperty(schemaProperty) {
18380
+ const types = ["UINT8", "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "FLOAT32", "FLOAT64"];
18381
+ return types.includes(schemaProperty.type) || typeof schemaProperty.componentType !== "undefined" && types.includes(schemaProperty.componentType);
18382
+ }
18383
+ function getPropertyDataNumeric2(classProperty, numberOfElements, valuesDataBytes, arrayOffsets) {
18384
+ const isArray2 = classProperty.type === "ARRAY";
18385
+ const arrayCount = classProperty.componentCount;
18386
+ const attributeType = "SCALAR";
18387
+ const componentType = classProperty.componentType || classProperty.type;
18388
+ const elementSize = getArrayElementByteSize(attributeType, componentType);
18389
+ const elementCount = valuesDataBytes.byteLength / elementSize;
18390
+ const valuesData = convertRawBufferToMetadataArray(valuesDataBytes, attributeType, componentType, elementCount);
18391
+ if (isArray2) {
18392
+ if (arrayOffsets) {
18393
+ return parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, valuesDataBytes.length, elementSize);
18394
+ }
18395
+ if (arrayCount) {
18396
+ return parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount);
18397
+ }
18398
+ return [];
18399
+ }
18400
+ return valuesData;
18401
+ }
18402
+ function getPropertyDataFromTexture(scenegraph, featureTextureProperty, attributeName) {
18403
+ const json = scenegraph.gltf.json;
18404
+ if (!json.meshes) {
18405
+ return [];
18406
+ }
18407
+ const featureTextureTable = [];
18408
+ for (const mesh of json.meshes) {
18409
+ for (const primitive of mesh.primitives) {
18410
+ processPrimitiveTextures(scenegraph, attributeName, featureTextureProperty, featureTextureTable, primitive);
18411
+ }
18412
+ }
18413
+ return featureTextureTable;
18414
+ }
18415
+ function processPrimitiveTextures(scenegraph, attributeName, featureTextureProperty, featureTextureTable, primitive) {
18416
+ const textureInfoTopLevel = {
18417
+ channels: featureTextureProperty.channels,
18418
+ ...featureTextureProperty.texture
18419
+ };
18420
+ const propertyData = getPrimitiveTextureData(scenegraph, textureInfoTopLevel, primitive);
18421
+ if (!propertyData) {
18422
+ return;
18423
+ }
18424
+ primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTextureTable, primitive);
18425
+ }
18426
+
18427
+ // ../../node_modules/@loaders.gl/gltf/dist/lib/utils/version.js
18428
+ var VERSION8 = true ? "4.1.0" : "latest";
18429
+
18430
+ // ../../node_modules/@loaders.gl/textures/dist/lib/utils/version.js
18431
+ var VERSION9 = true ? "4.1.0" : "latest";
18432
+
18433
+ // ../../node_modules/@loaders.gl/textures/dist/lib/parsers/basis-module-loader.js
18434
+ var BASIS_EXTERNAL_LIBRARIES = {
18435
+ TRANSCODER: "basis_transcoder.js",
18436
+ TRANSCODER_WASM: "basis_transcoder.wasm",
18437
+ ENCODER: "basis_encoder.js",
18438
+ ENCODER_WASM: "basis_encoder.wasm"
18439
+ };
18440
+ var loadBasisTranscoderPromise;
18441
+ async function loadBasisTranscoderModule(options) {
18442
+ const modules = options.modules || {};
18443
+ if (modules.basis) {
18444
+ return modules.basis;
18445
+ }
18446
+ loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
18447
+ return await loadBasisTranscoderPromise;
18448
+ }
18449
+ async function loadBasisTranscoder(options) {
18450
+ let BASIS = null;
18451
+ let wasmBinary = null;
18452
+ [BASIS, wasmBinary] = await Promise.all([await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options), await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)]);
18453
+ BASIS = BASIS || globalThis.BASIS;
18454
+ return await initializeBasisTranscoderModule(BASIS, wasmBinary);
18455
+ }
18456
+ function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
18457
+ const options = {};
18458
+ if (wasmBinary) {
18459
+ options.wasmBinary = wasmBinary;
18460
+ }
18461
+ return new Promise((resolve2) => {
18462
+ BasisModule(options).then((module) => {
18463
+ const {
18464
+ BasisFile,
18465
+ initializeBasis
18466
+ } = module;
18467
+ initializeBasis();
18468
+ resolve2({
18469
+ BasisFile
18470
+ });
18471
+ });
18472
+ });
18473
+ }
18474
+ var loadBasisEncoderPromise;
18475
+ async function loadBasisEncoderModule(options) {
18476
+ const modules = options.modules || {};
18477
+ if (modules.basisEncoder) {
18478
+ return modules.basisEncoder;
18479
+ }
18480
+ loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);
18481
+ return await loadBasisEncoderPromise;
18482
+ }
18483
+ async function loadBasisEncoder(options) {
18484
+ let BASIS_ENCODER = null;
18485
+ let wasmBinary = null;
18486
+ [BASIS_ENCODER, wasmBinary] = await Promise.all([await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options), await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)]);
18487
+ BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
18488
+ return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
18489
+ }
18490
+ function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
18491
+ const options = {};
18492
+ if (wasmBinary) {
18493
+ options.wasmBinary = wasmBinary;
18494
+ }
18495
+ return new Promise((resolve2) => {
18496
+ BasisEncoderModule(options).then((module) => {
18497
+ const {
18498
+ BasisFile,
18499
+ KTX2File,
18500
+ initializeBasis,
18501
+ BasisEncoder
18502
+ } = module;
18503
+ initializeBasis();
18504
+ resolve2({
18505
+ BasisFile,
18506
+ KTX2File,
18507
+ BasisEncoder
18508
+ });
18509
+ });
18510
+ });
18511
+ }
18512
+
18513
+ // ../../node_modules/@loaders.gl/textures/dist/lib/gl-extensions.js
18514
+ var GL_EXTENSIONS_CONSTANTS = {
18515
+ COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
18516
+ COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
18517
+ COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
18518
+ COMPRESSED_RGBA_S3TC_DXT5_EXT: 33779,
18519
+ COMPRESSED_R11_EAC: 37488,
18520
+ COMPRESSED_SIGNED_R11_EAC: 37489,
18521
+ COMPRESSED_RG11_EAC: 37490,
18522
+ COMPRESSED_SIGNED_RG11_EAC: 37491,
18523
+ COMPRESSED_RGB8_ETC2: 37492,
18524
+ COMPRESSED_RGBA8_ETC2_EAC: 37493,
18525
+ COMPRESSED_SRGB8_ETC2: 37494,
18526
+ COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 37495,
18527
+ COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37496,
18528
+ COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 37497,
18529
+ COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 35840,
18530
+ COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 35842,
18531
+ COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 35841,
18532
+ COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 35843,
18533
+ COMPRESSED_RGB_ETC1_WEBGL: 36196,
18534
+ COMPRESSED_RGB_ATC_WEBGL: 35986,
18535
+ COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 35987,
18536
+ COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 34798,
18537
+ COMPRESSED_RGBA_ASTC_4X4_KHR: 37808,
18538
+ COMPRESSED_RGBA_ASTC_5X4_KHR: 37809,
18539
+ COMPRESSED_RGBA_ASTC_5X5_KHR: 37810,
18540
+ COMPRESSED_RGBA_ASTC_6X5_KHR: 37811,
18541
+ COMPRESSED_RGBA_ASTC_6X6_KHR: 37812,
18542
+ COMPRESSED_RGBA_ASTC_8X5_KHR: 37813,
18543
+ COMPRESSED_RGBA_ASTC_8X6_KHR: 37814,
18544
+ COMPRESSED_RGBA_ASTC_8X8_KHR: 37815,
18545
+ COMPRESSED_RGBA_ASTC_10X5_KHR: 37816,
18546
+ COMPRESSED_RGBA_ASTC_10X6_KHR: 37817,
18547
+ COMPRESSED_RGBA_ASTC_10X8_KHR: 37818,
18548
+ COMPRESSED_RGBA_ASTC_10X10_KHR: 37819,
18549
+ COMPRESSED_RGBA_ASTC_12X10_KHR: 37820,
18550
+ COMPRESSED_RGBA_ASTC_12X12_KHR: 37821,
18551
+ COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 37840,
18552
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 37841,
18553
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 37842,
18554
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 37843,
18555
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 37844,
18556
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 37845,
18557
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 37846,
18558
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 37847,
18559
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 37848,
18560
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 37849,
18561
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 37850,
18562
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 37851,
18563
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 37852,
18564
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 37853,
18565
+ COMPRESSED_RED_RGTC1_EXT: 36283,
18566
+ COMPRESSED_SIGNED_RED_RGTC1_EXT: 36284,
18567
+ COMPRESSED_RED_GREEN_RGTC2_EXT: 36285,
18568
+ COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 36286,
18569
+ COMPRESSED_SRGB_S3TC_DXT1_EXT: 35916,
18570
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 35917,
18571
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 35918,
18572
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
18573
+ };
18574
+
18575
+ // ../../node_modules/@loaders.gl/textures/dist/lib/utils/texture-formats.js
18576
+ var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
18577
+ var WEBGL_EXTENSIONS = {
18578
+ WEBGL_compressed_texture_s3tc: "dxt",
18579
+ WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
18580
+ WEBGL_compressed_texture_etc1: "etc1",
18581
+ WEBGL_compressed_texture_etc: "etc2",
18582
+ WEBGL_compressed_texture_pvrtc: "pvrtc",
18583
+ WEBGL_compressed_texture_atc: "atc",
18584
+ WEBGL_compressed_texture_astc: "astc",
18585
+ EXT_texture_compression_rgtc: "rgtc"
18586
+ };
18587
+ var formats = null;
18588
+ function getSupportedGPUTextureFormats(gl) {
18589
+ if (!formats) {
18590
+ gl = gl || getWebGLContext() || void 0;
18591
+ formats = /* @__PURE__ */ new Set();
18592
+ for (const prefix of BROWSER_PREFIXES) {
18593
+ for (const extension in WEBGL_EXTENSIONS) {
18594
+ if (gl && gl.getExtension(`${prefix}${extension}`)) {
18595
+ const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
18596
+ formats.add(gpuTextureFormat);
18597
+ }
18598
+ }
18599
+ }
18600
+ }
18601
+ return formats;
18602
+ }
18603
+ function getWebGLContext() {
18604
+ try {
18605
+ const canvas = document.createElement("canvas");
18606
+ return canvas.getContext("webgl");
18607
+ } catch (error) {
18608
+ return null;
18609
+ }
18610
+ }
18611
+
18612
+ // ../../node_modules/@loaders.gl/textures/dist/lib/parsers/parse-ktx.js
18613
+ var KTX2_ID = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
18614
+ function isKTX(data) {
18615
+ const id = new Uint8Array(data);
18616
+ const notKTX = id.byteLength < KTX2_ID.length || id[0] !== KTX2_ID[0] || id[1] !== KTX2_ID[1] || id[2] !== KTX2_ID[2] || id[3] !== KTX2_ID[3] || id[4] !== KTX2_ID[4] || id[5] !== KTX2_ID[5] || id[6] !== KTX2_ID[6] || id[7] !== KTX2_ID[7] || id[8] !== KTX2_ID[8] || id[9] !== KTX2_ID[9] || id[10] !== KTX2_ID[10] || id[11] !== KTX2_ID[11];
18617
+ return !notKTX;
18618
+ }
18619
+
18620
+ // ../../node_modules/@loaders.gl/textures/dist/lib/parsers/parse-basis.js
18621
+ var OutputFormat = {
18622
+ etc1: {
18623
+ basisFormat: 0,
18624
+ compressed: true,
18625
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
18626
+ },
18627
+ etc2: {
18628
+ basisFormat: 1,
18629
+ compressed: true
18630
+ },
18631
+ bc1: {
18632
+ basisFormat: 2,
18633
+ compressed: true,
18634
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
18635
+ },
18636
+ bc3: {
18637
+ basisFormat: 3,
18638
+ compressed: true,
18639
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
18640
+ },
18641
+ bc4: {
18642
+ basisFormat: 4,
18643
+ compressed: true
18644
+ },
18645
+ bc5: {
18646
+ basisFormat: 5,
18647
+ compressed: true
18648
+ },
18649
+ "bc7-m6-opaque-only": {
18650
+ basisFormat: 6,
18651
+ compressed: true
18652
+ },
18653
+ "bc7-m5": {
18654
+ basisFormat: 7,
18655
+ compressed: true
18656
+ },
18657
+ "pvrtc1-4-rgb": {
18658
+ basisFormat: 8,
18659
+ compressed: true,
18660
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
18661
+ },
18662
+ "pvrtc1-4-rgba": {
18663
+ basisFormat: 9,
18664
+ compressed: true,
18665
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
18666
+ },
18667
+ "astc-4x4": {
18668
+ basisFormat: 10,
18669
+ compressed: true,
18670
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
18671
+ },
18672
+ "atc-rgb": {
18673
+ basisFormat: 11,
18674
+ compressed: true
18675
+ },
18676
+ "atc-rgba-interpolated-alpha": {
18677
+ basisFormat: 12,
18678
+ compressed: true
18679
+ },
18680
+ rgba32: {
18681
+ basisFormat: 13,
18682
+ compressed: false
18683
+ },
18684
+ rgb565: {
18685
+ basisFormat: 14,
18686
+ compressed: false
18687
+ },
18688
+ bgr565: {
18689
+ basisFormat: 15,
18690
+ compressed: false
18691
+ },
18692
+ rgba4444: {
18693
+ basisFormat: 16,
18694
+ compressed: false
18695
+ }
18696
+ };
18697
+ async function parseBasis(data, options) {
18698
+ if (options.basis.containerFormat === "auto") {
18699
+ if (isKTX(data)) {
18700
+ const fileConstructors = await loadBasisEncoderModule(options);
18701
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
18702
+ }
18703
+ const {
18704
+ BasisFile
18705
+ } = await loadBasisTranscoderModule(options);
18706
+ return parseBasisFile(BasisFile, data, options);
18707
+ }
18708
+ switch (options.basis.module) {
18709
+ case "encoder":
18710
+ const fileConstructors = await loadBasisEncoderModule(options);
18711
+ switch (options.basis.containerFormat) {
18712
+ case "ktx2":
18713
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
18714
+ case "basis":
18715
+ default:
18716
+ return parseBasisFile(fileConstructors.BasisFile, data, options);
18717
+ }
18718
+ case "transcoder":
18719
+ default:
18720
+ const {
18721
+ BasisFile
18722
+ } = await loadBasisTranscoderModule(options);
18723
+ return parseBasisFile(BasisFile, data, options);
19694
18724
  }
19695
- return data;
19696
18725
  }
19697
- function getArrayOffsetsForProperty2(scenegraph, classProperty, propertyTableProperty, numberOfElements) {
19698
- if (classProperty.type === "ARRAY" && typeof classProperty.componentCount === "undefined" && typeof propertyTableProperty.arrayOffsetBufferView !== "undefined") {
19699
- return getOffsetsForProperty(scenegraph, propertyTableProperty.arrayOffsetBufferView, propertyTableProperty.offsetType || "UINT32", numberOfElements);
18726
+ function parseBasisFile(BasisFile, data, options) {
18727
+ const basisFile = new BasisFile(new Uint8Array(data));
18728
+ try {
18729
+ if (!basisFile.startTranscoding()) {
18730
+ throw new Error("Failed to start basis transcoding");
18731
+ }
18732
+ const imageCount = basisFile.getNumImages();
18733
+ const images = [];
18734
+ for (let imageIndex = 0; imageIndex < imageCount; imageIndex++) {
18735
+ const levelsCount = basisFile.getNumLevels(imageIndex);
18736
+ const levels = [];
18737
+ for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
18738
+ levels.push(transcodeImage(basisFile, imageIndex, levelIndex, options));
18739
+ }
18740
+ images.push(levels);
18741
+ }
18742
+ return images;
18743
+ } finally {
18744
+ basisFile.close();
18745
+ basisFile.delete();
19700
18746
  }
19701
- return null;
19702
18747
  }
19703
- function getStringOffsetsForProperty2(scenegraph, classProperty, propertyTableProperty, numberOfElements) {
19704
- if (typeof propertyTableProperty.stringOffsetBufferView !== "undefined") {
19705
- return getOffsetsForProperty(scenegraph, propertyTableProperty.stringOffsetBufferView, propertyTableProperty.offsetType || "UINT32", numberOfElements);
18748
+ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
18749
+ const width = basisFile.getImageWidth(imageIndex, levelIndex);
18750
+ const height = basisFile.getImageHeight(imageIndex, levelIndex);
18751
+ const hasAlpha = basisFile.getHasAlpha();
18752
+ const {
18753
+ compressed,
18754
+ format,
18755
+ basisFormat
18756
+ } = getBasisOptions(options, hasAlpha);
18757
+ const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
18758
+ const decodedData = new Uint8Array(decodedSize);
18759
+ if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
18760
+ throw new Error("failed to start Basis transcoding");
19706
18761
  }
19707
- return null;
19708
- }
19709
- function isNumericProperty(schemaProperty) {
19710
- const types = ["UINT8", "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "FLOAT32", "FLOAT64"];
19711
- return types.includes(schemaProperty.type) || typeof schemaProperty.componentType !== "undefined" && types.includes(schemaProperty.componentType);
18762
+ return {
18763
+ width,
18764
+ height,
18765
+ data: decodedData,
18766
+ compressed,
18767
+ format,
18768
+ hasAlpha
18769
+ };
19712
18770
  }
19713
- function getPropertyDataNumeric2(classProperty, numberOfElements, valuesDataBytes, arrayOffsets) {
19714
- const isArray2 = classProperty.type === "ARRAY";
19715
- const arrayCount = classProperty.componentCount;
19716
- const attributeType = "SCALAR";
19717
- const componentType = classProperty.componentType || classProperty.type;
19718
- const elementSize = getArrayElementByteSize(attributeType, componentType);
19719
- const elementCount = valuesDataBytes.byteLength / elementSize;
19720
- const valuesData = convertRawBufferToMetadataArray(valuesDataBytes, attributeType, componentType, elementCount);
19721
- if (isArray2) {
19722
- if (arrayOffsets) {
19723
- return parseVariableLengthArrayNumeric(valuesData, numberOfElements, arrayOffsets, valuesDataBytes.length, elementSize);
18771
+ function parseKTX2File(KTX2File, data, options) {
18772
+ const ktx2File = new KTX2File(new Uint8Array(data));
18773
+ try {
18774
+ if (!ktx2File.startTranscoding()) {
18775
+ throw new Error("failed to start KTX2 transcoding");
19724
18776
  }
19725
- if (arrayCount) {
19726
- return parseFixedLengthArrayNumeric(valuesData, numberOfElements, arrayCount);
18777
+ const levelsCount = ktx2File.getLevels();
18778
+ const levels = [];
18779
+ for (let levelIndex = 0; levelIndex < levelsCount; levelIndex++) {
18780
+ levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
18781
+ break;
19727
18782
  }
19728
- return [];
18783
+ return [levels];
18784
+ } finally {
18785
+ ktx2File.close();
18786
+ ktx2File.delete();
19729
18787
  }
19730
- return valuesData;
19731
18788
  }
19732
- function getPropertyDataFromTexture(scenegraph, featureTextureProperty, attributeName) {
19733
- const json = scenegraph.gltf.json;
19734
- if (!json.meshes) {
19735
- return [];
18789
+ function transcodeKTX2Image(ktx2File, levelIndex, options) {
18790
+ const {
18791
+ alphaFlag,
18792
+ height,
18793
+ width
18794
+ } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
18795
+ const {
18796
+ compressed,
18797
+ format,
18798
+ basisFormat
18799
+ } = getBasisOptions(options, alphaFlag);
18800
+ const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
18801
+ const decodedData = new Uint8Array(decodedSize);
18802
+ if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
18803
+ throw new Error("Failed to transcode KTX2 image");
19736
18804
  }
19737
- const featureTextureTable = [];
19738
- for (const mesh of json.meshes) {
19739
- for (const primitive of mesh.primitives) {
19740
- processPrimitiveTextures(scenegraph, attributeName, featureTextureProperty, featureTextureTable, primitive);
19741
- }
18805
+ return {
18806
+ width,
18807
+ height,
18808
+ data: decodedData,
18809
+ compressed,
18810
+ levelSize: decodedSize,
18811
+ hasAlpha: alphaFlag,
18812
+ format
18813
+ };
18814
+ }
18815
+ function getBasisOptions(options, hasAlpha) {
18816
+ let format = options && options.basis && options.basis.format;
18817
+ if (format === "auto") {
18818
+ format = selectSupportedBasisFormat();
19742
18819
  }
19743
- return featureTextureTable;
18820
+ if (typeof format === "object") {
18821
+ format = hasAlpha ? format.alpha : format.noAlpha;
18822
+ }
18823
+ format = format.toLowerCase();
18824
+ return OutputFormat[format];
19744
18825
  }
19745
- function processPrimitiveTextures(scenegraph, attributeName, featureTextureProperty, featureTextureTable, primitive) {
19746
- const textureInfoTopLevel = {
19747
- channels: featureTextureProperty.channels,
19748
- ...featureTextureProperty.texture
19749
- };
19750
- const propertyData = getPrimitiveTextureData(scenegraph, textureInfoTopLevel, primitive);
19751
- if (!propertyData) {
19752
- return;
18826
+ function selectSupportedBasisFormat() {
18827
+ const supportedFormats = getSupportedGPUTextureFormats();
18828
+ if (supportedFormats.has("astc")) {
18829
+ return "astc-4x4";
18830
+ } else if (supportedFormats.has("dxt")) {
18831
+ return {
18832
+ alpha: "bc3",
18833
+ noAlpha: "bc1"
18834
+ };
18835
+ } else if (supportedFormats.has("pvrtc")) {
18836
+ return {
18837
+ alpha: "pvrtc1-4-rgba",
18838
+ noAlpha: "pvrtc1-4-rgb"
18839
+ };
18840
+ } else if (supportedFormats.has("etc1")) {
18841
+ return "etc1";
18842
+ } else if (supportedFormats.has("etc2")) {
18843
+ return "etc2";
19753
18844
  }
19754
- primitivePropertyDataToAttributes(scenegraph, attributeName, propertyData, featureTextureTable, primitive);
18845
+ return "rgb565";
19755
18846
  }
19756
18847
 
19757
- // ../../node_modules/@loaders.gl/gltf/dist/lib/utils/version.js
19758
- var VERSION10 = true ? "4.1.0" : "latest";
18848
+ // ../../node_modules/@loaders.gl/textures/dist/basis-loader.js
18849
+ var BasisWorkerLoader = {
18850
+ name: "Basis",
18851
+ id: "basis",
18852
+ module: "textures",
18853
+ version: VERSION9,
18854
+ worker: true,
18855
+ extensions: ["basis", "ktx2"],
18856
+ mimeTypes: ["application/octet-stream", "image/ktx2"],
18857
+ tests: ["sB"],
18858
+ binary: true,
18859
+ options: {
18860
+ basis: {
18861
+ format: "auto",
18862
+ libraryPath: "libs/",
18863
+ containerFormat: "auto",
18864
+ module: "transcoder"
18865
+ }
18866
+ }
18867
+ };
18868
+ var BasisLoader = {
18869
+ ...BasisWorkerLoader,
18870
+ parse: parseBasis
18871
+ };
19759
18872
 
19760
18873
  // ../../node_modules/@loaders.gl/gltf/dist/lib/parsers/parse-glb.js
19761
18874
  var LITTLE_ENDIAN2 = true;
@@ -20963,7 +20076,7 @@ void main(void) {
20963
20076
  name: "glTF",
20964
20077
  id: "gltf",
20965
20078
  module: "gltf",
20966
- version: VERSION10,
20079
+ version: VERSION8,
20967
20080
  extensions: ["gltf", "glb"],
20968
20081
  mimeTypes: ["model/gltf+json", "model/gltf-binary"],
20969
20082
  text: true,
@@ -21741,7 +20854,7 @@ void main(void) {
21741
20854
  id: "3d-tiles-subtree",
21742
20855
  name: "3D Tiles Subtree",
21743
20856
  module: "3d-tiles",
21744
- version: VERSION8,
20857
+ version: VERSION6,
21745
20858
  extensions: ["subtree"],
21746
20859
  mimeTypes: ["application/octet-stream"],
21747
20860
  tests: ["subtree"],
@@ -21755,6 +20868,40 @@ void main(void) {
21755
20868
  // ../../node_modules/@loaders.gl/3d-tiles/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js
21756
20869
  var import_core41 = __toESM(require_core3(), 1);
21757
20870
 
20871
+ // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
20872
+ function isElectron(mockUserAgent) {
20873
+ if (typeof window !== "undefined" && typeof window.process === "object" && window.process.type === "renderer") {
20874
+ return true;
20875
+ }
20876
+ if (typeof process !== "undefined" && typeof process.versions === "object" && Boolean(process.versions["electron"])) {
20877
+ return true;
20878
+ }
20879
+ const realUserAgent = typeof navigator === "object" && typeof navigator.userAgent === "string" && navigator.userAgent;
20880
+ const userAgent = mockUserAgent || realUserAgent;
20881
+ if (userAgent && userAgent.indexOf("Electron") >= 0) {
20882
+ return true;
20883
+ }
20884
+ return false;
20885
+ }
20886
+
20887
+ // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
20888
+ function isBrowser3() {
20889
+ const isNode = typeof process === "object" && String(process) === "[object process]" && !process.browser;
20890
+ return !isNode || isElectron();
20891
+ }
20892
+
20893
+ // ../../node_modules/@probe.gl/env/dist/lib/globals.js
20894
+ var self_3 = globalThis.self || globalThis.window || globalThis.global;
20895
+ var window_3 = globalThis.window || globalThis.self || globalThis.global;
20896
+ var document_3 = globalThis.document || {};
20897
+ var process_ = globalThis.process || {};
20898
+ var console_ = globalThis.console;
20899
+ var navigator_ = globalThis.navigator || {};
20900
+
20901
+ // ../../node_modules/@probe.gl/env/dist/utils/globals.js
20902
+ var VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
20903
+ var isBrowser4 = isBrowser3();
20904
+
21758
20905
  // ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
21759
20906
  function getStorage(type) {
21760
20907
  try {
@@ -21937,7 +21084,7 @@ void main(void) {
21937
21084
  id: ""
21938
21085
  };
21939
21086
  this.id = void 0;
21940
- this.VERSION = VERSION7;
21087
+ this.VERSION = VERSION10;
21941
21088
  this._startTs = getHiResTimestamp2();
21942
21089
  this._deltaTs = getHiResTimestamp2();
21943
21090
  this._storage = void 0;
@@ -22140,7 +21287,7 @@ void main(void) {
22140
21287
  return noop;
22141
21288
  }
22142
21289
  };
22143
- Log.VERSION = VERSION7;
21290
+ Log.VERSION = VERSION10;
22144
21291
  function normalizeLogLevel(logLevel) {
22145
21292
  if (!logLevel) {
22146
21293
  return 0;
@@ -23880,7 +23027,7 @@ void main(void) {
23880
23027
  id: "3d-tiles",
23881
23028
  name: "3D Tiles",
23882
23029
  module: "3d-tiles",
23883
- version: VERSION8,
23030
+ version: VERSION6,
23884
23031
  extensions: ["cmpt", "pnts", "b3dm", "i3dm"],
23885
23032
  mimeTypes: ["application/octet-stream"],
23886
23033
  tests: ["cmpt", "pnts", "b3dm", "i3dm"],