UNPKG

@babylonjs/viewer

Version:

The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.

1 lines 211 kB
import{aO as e,C as t,cJ as r,A as s,y as n,cK as i,cL as a,cM as o,cN as u,cO as c,aS as l,cD as h,a7 as d,cP as p,cQ as _,cR as g,w as m,aY as f,cS as b,cj as x,ck as T,cT as y,cU as E,b1 as S,cV as R,cW as C,cX as A,cY as v,cZ as I,c_ as w,c$ as B,d0 as P,d1 as F,d2 as D,d3 as L}from"./index-BPURObVq.esm.min.js";import{a as M}from"./sphericalPolynomial.pure-CsRKkAN3.esm.min.js";class G{static ComputeNumMipmapLevels(t,r){return e(Math.max(t,r))+1}static GetTextureTypeFromFormat(e){switch(e){case"r8unorm":case"r8uint":case"rg8unorm":case"rg8uint":case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8uint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgb10a2uint":case"rgb10a2unorm":case"rgb9e5ufloat":case"rg11b10ufloat":case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc6h-rgb-ufloat":case"bc5-rg-unorm":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc4-r-unorm":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"eac-r11unorm":case"eac-rg11unorm":case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":case"stencil8":return t.TEXTURETYPE_UNSIGNED_BYTE;case"r8snorm":case"r8sint":case"rg8snorm":case"rg8sint":case"rgba8snorm":case"rgba8sint":case"bc6h-rgb-float":case"bc5-rg-snorm":case"bc4-r-snorm":case"eac-r11snorm":case"eac-rg11snorm":return t.TEXTURETYPE_BYTE;case"r16uint":case"r16unorm":case"rg16unorm":case"rgba16unorm":case"rg16uint":case"rgba16uint":case"depth16unorm":return t.TEXTURETYPE_UNSIGNED_SHORT;case"r16sint":case"r16snorm":case"rg16snorm":case"rgba16snorm":case"rg16sint":case"rgba16sint":return t.TEXTURETYPE_SHORT;case"r16float":case"rg16float":case"rgba16float":return t.TEXTURETYPE_HALF_FLOAT;case"r32uint":case"rg32uint":case"rgba32uint":case"r32sint":case"rg32sint":case"rgba32sint":return t.TEXTURETYPE_UNSIGNED_INTEGER;case"r32float":case"rg32float":case"rgba32float":case"depth32float":case"depth32float-stencil8":case"depth24plus":case"depth24plus-stencil8":return t.TEXTURETYPE_FLOAT}return t.TEXTURETYPE_UNSIGNED_BYTE}static GetBlockInformationFromFormat(e){switch(e){case"r8unorm":case"r8snorm":case"r8uint":case"r8sint":return{width:1,height:1,length:1};case"r16uint":case"r16sint":case"r16unorm":case"r16snorm":case"r16float":case"rg8unorm":case"rg8snorm":case"rg8uint":case"rg8sint":case"depth16unorm":return{width:1,height:1,length:2};case"r32uint":case"r32sint":case"r32float":case"rg16uint":case"rg16sint":case"rg16float":case"rg16unorm":case"rg16snorm":case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8snorm":case"rgba8uint":case"rgba8sint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgb9e5ufloat":case"rgb10a2uint":case"rgb10a2unorm":case"rg11b10ufloat":case"depth32float":return{width:1,height:1,length:4};case"rg32uint":case"rg32sint":case"rg32float":case"rgba16uint":case"rgba16sint":case"rgba16float":case"rgba16unorm":case"rgba16snorm":return{width:1,height:1,length:8};case"rgba32uint":case"rgba32sint":case"rgba32float":return{width:1,height:1,length:16};case"stencil8":throw"No fixed size for Stencil8 format!";case"depth24plus":throw"No fixed size for Depth24Plus format!";case"depth24plus-stencil8":throw"No fixed size for Depth24PlusStencil8 format!";case"depth32float-stencil8":return{width:1,height:1,length:5};case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc6h-rgb-ufloat":case"bc6h-rgb-float":case"bc5-rg-unorm":case"bc5-rg-snorm":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"eac-rg11unorm":case"eac-rg11snorm":case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":return{width:4,height:4,length:16};case"bc4-r-unorm":case"bc4-r-snorm":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"eac-r11unorm":case"eac-r11snorm":return{width:4,height:4,length:8};case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":return{width:5,height:4,length:16};case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":return{width:5,height:5,length:16};case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":return{width:6,height:5,length:16};case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":return{width:6,height:6,length:16};case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":return{width:8,height:5,length:16};case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":return{width:8,height:6,length:16};case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":return{width:8,height:8,length:16};case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":return{width:10,height:5,length:16};case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":return{width:10,height:6,length:16};case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":return{width:10,height:8,length:16};case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":return{width:10,height:10,length:16};case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":return{width:12,height:10,length:16};case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":return{width:12,height:12,length:16}}return{width:1,height:1,length:4}}static IsHardwareTexture(e){return!!e.release}static IsInternalTexture(e){return!!e.dispose}static IsImageBitmap(e){return void 0!==e.close}static IsImageBitmapArray(e){return Array.isArray(e)&&void 0!==e[0].close}static IsCompressedFormat(e){switch(e){case"bc7-rgba-unorm-srgb":case"bc7-rgba-unorm":case"bc6h-rgb-float":case"bc6h-rgb-ufloat":case"bc5-rg-snorm":case"bc5-rg-unorm":case"bc4-r-snorm":case"bc4-r-unorm":case"bc3-rgba-unorm-srgb":case"bc3-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc1-rgba-unorm-srgb":case"bc1-rgba-unorm":case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"eac-r11unorm":case"eac-r11snorm":case"eac-rg11unorm":case"eac-rg11snorm":case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":return!0}return!1}static GetWebGPUTextureFormat(e,r,s=!1){switch(r){case t.TEXTUREFORMAT_DEPTH16:return"depth16unorm";case t.TEXTUREFORMAT_DEPTH24:return"depth24plus";case t.TEXTUREFORMAT_DEPTH24_STENCIL8:return"depth24plus-stencil8";case t.TEXTUREFORMAT_DEPTH32_FLOAT:return"depth32float";case t.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8:return"depth32float-stencil8";case t.TEXTUREFORMAT_STENCIL8:return"stencil8";case t.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM:return s?"bc7-rgba-unorm-srgb":"bc7-rgba-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT:return"bc6h-rgb-ufloat";case t.TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT:return"bc6h-rgb-float";case t.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5:return s?"bc3-rgba-unorm-srgb":"bc3-rgba-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3:return s?"bc2-rgba-unorm-srgb":"bc2-rgba-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1:case t.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1:return s?"bc1-rgba-unorm-srgb":"bc1-rgba-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4:return s?"astc-4x4-unorm-srgb":"astc-4x4-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x4:return s?"astc-5x4-unorm-srgb":"astc-5x4-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x5:return s?"astc-5x5-unorm-srgb":"astc-5x5-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x5:return s?"astc-6x5-unorm-srgb":"astc-6x5-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x6:return s?"astc-6x6-unorm-srgb":"astc-6x6-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x5:return s?"astc-8x5-unorm-srgb":"astc-8x5-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x6:return s?"astc-8x6-unorm-srgb":"astc-8x6-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x8:return s?"astc-8x8-unorm-srgb":"astc-8x8-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x5:return s?"astc-10x5-unorm-srgb":"astc-10x5-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x6:return s?"astc-10x6-unorm-srgb":"astc-10x6-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x8:return s?"astc-10x8-unorm-srgb":"astc-10x8-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x10:return s?"astc-10x10-unorm-srgb":"astc-10x10-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x10:return s?"astc-12x10-unorm-srgb":"astc-12x10-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x12:return s?"astc-12x12-unorm-srgb":"astc-12x12-unorm";case t.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL:case t.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2:return s?"etc2-rgb8unorm-srgb":"etc2-rgb8unorm";case t.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC:return s?"etc2-rgba8unorm-srgb":"etc2-rgba8unorm"}switch(e){case t.TEXTURETYPE_BYTE:switch(r){case t.TEXTUREFORMAT_RED:return"r8snorm";case t.TEXTUREFORMAT_RG:return"rg8snorm";case t.TEXTUREFORMAT_RGB:throw"RGB format not supported in WebGPU";case t.TEXTUREFORMAT_RED_INTEGER:return"r8sint";case t.TEXTUREFORMAT_RG_INTEGER:return"rg8sint";case t.TEXTUREFORMAT_RGB_INTEGER:throw"RGB_INTEGER format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA_INTEGER:return"rgba8sint";default:return"rgba8snorm"}case t.TEXTURETYPE_UNSIGNED_BYTE:switch(r){case t.TEXTUREFORMAT_RED:return"r8unorm";case t.TEXTUREFORMAT_RG:return"rg8unorm";case t.TEXTUREFORMAT_RGB:throw"TEXTUREFORMAT_RGB format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA:return s?"rgba8unorm-srgb":"rgba8unorm";case t.TEXTUREFORMAT_BGRA:return s?"bgra8unorm-srgb":"bgra8unorm";case t.TEXTUREFORMAT_RED_INTEGER:return"r8uint";case t.TEXTUREFORMAT_RG_INTEGER:return"rg8uint";case t.TEXTUREFORMAT_RGB_INTEGER:throw"RGB_INTEGER format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA_INTEGER:return"rgba8uint";case t.TEXTUREFORMAT_ALPHA:throw"TEXTUREFORMAT_ALPHA format not supported in WebGPU";case t.TEXTUREFORMAT_LUMINANCE:throw"TEXTUREFORMAT_LUMINANCE format not supported in WebGPU";case t.TEXTUREFORMAT_LUMINANCE_ALPHA:throw"TEXTUREFORMAT_LUMINANCE_ALPHA format not supported in WebGPU";default:return"rgba8unorm"}case t.TEXTURETYPE_SHORT:switch(r){case t.TEXTUREFORMAT_RED_INTEGER:return"r16sint";case t.TEXTUREFORMAT_RG_INTEGER:return"rg16sint";case t.TEXTUREFORMAT_RGB_INTEGER:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA_INTEGER:default:return"rgba16sint"}case t.TEXTURETYPE_UNSIGNED_SHORT:switch(r){case t.TEXTUREFORMAT_RED_INTEGER:return"r16uint";case t.TEXTUREFORMAT_RG_INTEGER:return"rg16uint";case t.TEXTUREFORMAT_RGB_INTEGER:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA_INTEGER:default:return"rgba16uint"}case t.TEXTURETYPE_INT:switch(r){case t.TEXTUREFORMAT_RED_INTEGER:return"r32sint";case t.TEXTUREFORMAT_RG_INTEGER:return"rg32sint";case t.TEXTUREFORMAT_RGB_INTEGER:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA_INTEGER:default:return"rgba32sint"}case t.TEXTURETYPE_UNSIGNED_INTEGER:switch(r){case t.TEXTUREFORMAT_RED_INTEGER:return"r32uint";case t.TEXTUREFORMAT_RG_INTEGER:return"rg32uint";case t.TEXTUREFORMAT_RGB_INTEGER:throw"TEXTUREFORMAT_RGB_INTEGER format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA_INTEGER:default:return"rgba32uint"}case t.TEXTURETYPE_FLOAT:switch(r){case t.TEXTUREFORMAT_RED:return"r32float";case t.TEXTUREFORMAT_RG:return"rg32float";case t.TEXTUREFORMAT_RGB:throw"TEXTUREFORMAT_RGB format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA:default:return"rgba32float"}case t.TEXTURETYPE_HALF_FLOAT:switch(r){case t.TEXTUREFORMAT_RED:return"r16float";case t.TEXTUREFORMAT_RG:return"rg16float";case t.TEXTUREFORMAT_RGB:throw"TEXTUREFORMAT_RGB format not supported in WebGPU";case t.TEXTUREFORMAT_RGBA:default:return"rgba16float"}case t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:throw"TEXTURETYPE_UNSIGNED_SHORT_5_6_5 format not supported in WebGPU";case t.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:switch(r){case t.TEXTUREFORMAT_RGBA:return"rg11b10ufloat";case t.TEXTUREFORMAT_RGBA_INTEGER:throw"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV";default:return"rg11b10ufloat"}case t.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:switch(r){case t.TEXTUREFORMAT_RGBA:return"rgb9e5ufloat";case t.TEXTUREFORMAT_RGBA_INTEGER:throw"TEXTUREFORMAT_RGBA_INTEGER format not supported in WebGPU when type is TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV";default:return"rgb9e5ufloat"}case t.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:throw"TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 format not supported in WebGPU";case t.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:throw"TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 format not supported in WebGPU";case t.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:switch(r){case t.TEXTUREFORMAT_RGBA:return"rgb10a2unorm";case t.TEXTUREFORMAT_RGBA_INTEGER:return"rgb10a2uint";default:return"rgb10a2unorm"}}return s?"rgba8unorm-srgb":"rgba8unorm"}static GetNumChannelsFromWebGPUTextureFormat(e){switch(e){case"r8unorm":case"r8snorm":case"r8uint":case"r8sint":case"bc4-r-unorm":case"bc4-r-snorm":case"r16uint":case"r16sint":case"depth16unorm":case"r16float":case"r16unorm":case"r16snorm":case"r32uint":case"r32sint":case"r32float":case"depth32float":case"stencil8":case"depth24plus":case"eac-r11unorm":case"eac-r11snorm":return 1;case"rg8unorm":case"rg8snorm":case"rg8uint":case"rg8sint":case"depth32float-stencil8":case"bc5-rg-unorm":case"bc5-rg-snorm":case"rg16uint":case"rg16sint":case"rg16float":case"rg16unorm":case"rg16snorm":case"rg32uint":case"rg32sint":case"rg32float":case"depth24plus-stencil8":case"eac-rg11unorm":case"eac-rg11snorm":return 2;case"rgb9e5ufloat":case"rg11b10ufloat":case"bc6h-rgb-ufloat":case"bc6h-rgb-float":case"etc2-rgb8unorm":case"etc2-rgb8unorm-srgb":return 3;case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8snorm":case"rgba8uint":case"rgba8sint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgba16unorm":case"rgba16snorm":case"rgb10a2uint":case"rgb10a2unorm":case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":case"rgba16uint":case"rgba16sint":case"rgba16float":case"rgba32uint":case"rgba32sint":case"rgba32float":case"etc2-rgb8a1unorm":case"etc2-rgb8a1unorm-srgb":case"etc2-rgba8unorm":case"etc2-rgba8unorm-srgb":case"astc-4x4-unorm":case"astc-4x4-unorm-srgb":case"astc-5x4-unorm":case"astc-5x4-unorm-srgb":case"astc-5x5-unorm":case"astc-5x5-unorm-srgb":case"astc-6x5-unorm":case"astc-6x5-unorm-srgb":case"astc-6x6-unorm":case"astc-6x6-unorm-srgb":case"astc-8x5-unorm":case"astc-8x5-unorm-srgb":case"astc-8x6-unorm":case"astc-8x6-unorm-srgb":case"astc-8x8-unorm":case"astc-8x8-unorm-srgb":case"astc-10x5-unorm":case"astc-10x5-unorm-srgb":case"astc-10x6-unorm":case"astc-10x6-unorm-srgb":case"astc-10x8-unorm":case"astc-10x8-unorm-srgb":case"astc-10x10-unorm":case"astc-10x10-unorm-srgb":case"astc-12x10-unorm":case"astc-12x10-unorm-srgb":case"astc-12x12-unorm":case"astc-12x12-unorm-srgb":return 4}throw`Unknown format ${e}!`}static HasStencilAspect(e){switch(e){case"stencil8":case"depth32float-stencil8":case"depth24plus-stencil8":return!0}return!1}static HasDepthAspect(e){switch(e){case"depth16unorm":case"depth24plus":case"depth24plus-stencil8":case"depth32float":case"depth32float-stencil8":return!0}return!1}static HasDepthAndStencilAspects(e){switch(e){case"depth32float-stencil8":case"depth24plus-stencil8":return!0}return!1}static GetDepthFormatOnly(e){switch(e){case"depth16unorm":return"depth16unorm";case"depth24plus":case"depth24plus-stencil8":return"depth24plus";case"depth32float":case"depth32float-stencil8":return"depth32float"}return e}static GetSample(e){return e>1?4:1}}class U{constructor(){this._gpuTimeInFrameId=-1,this.counter=new r}_addDuration(e,t){e<this._gpuTimeInFrameId||(this._gpuTimeInFrameId!==e?(this.counter._fetchResult(),this.counter.fetchNewFrame(),this.counter.addCount(t,!1),this._gpuTimeInFrameId=e):this.counter.addCount(t,!1))}}class O extends s{constructor(){super(...arguments),this.dbgShowShaderCode=!1,this.dbgSanityChecks=!0,this.dbgLogIfNotDrawWrapper=!0,this.dbgShowEmptyEnableEffectCalls=!0,this._currentRenderPass=null,this._snapshotRenderingMode=t.SNAPSHOTRENDERING_STANDARD,this._timestampIndex=0,this._showGPUDebugMarkersLog=!1,this._debugMarkersEncoderGroups=[],this._debugMarkersPassGroups=[],this._debugMarkersPendingEncoderPops=0}get enableGPUTimingMeasurements(){return this._timestampQuery.enable}set enableGPUTimingMeasurements(e){this._timestampQuery.enable!==e&&(this.gpuTimeInFrameForMainPass=e?new U:void 0,this._timestampQuery.enable=e)}_currentPassIsMainPass(){return null===this._currentRenderTarget}_endCurrentRenderPass(){if(!this._currentRenderPass)return 0;this._debugPopBeforeEndOfEncoder();const e=this._currentPassIsMainPass()?2:1;return this._snapshotRendering.endRenderPass(this._currentRenderPass)||this.compatibilityMode||(this._bundleList.run(this._currentRenderPass),this._bundleList.reset()),this._currentRenderPass.end(),this._timestampQuery.endPass(this._timestampIndex,this._currentRenderTarget&&this._currentRenderTarget.gpuTimeInFrame?this._currentRenderTarget.gpuTimeInFrame:this.gpuTimeInFrameForMainPass),this._timestampIndex+=2,this._debugPendingPop(this._currentRenderPass),this._currentRenderPass=null,e}_generateMipmaps(e,t){t=t??this._renderEncoder;const r=e._hardwareTexture;if(!r)return;t===this._renderEncoder&&this._endCurrentRenderPass();const s=G.ComputeNumMipmapLevels(e.width,e.height);e.isCube?this._textureHelper.generateCubeMipmaps(r,s,t):3===e._source||11===e._source?this._textureHelper.generateMipmaps(r,e.mipLevelCount,0,t):this._textureHelper.generateMipmaps(r,s,0,t)}_debugPopBeforeEndOfEncoder(){if(!this._enableGPUDebugMarkers)return;const e=this._currentRenderPass?this._debugMarkersPassGroups:this._debugMarkersEncoderGroups,t=this._currentRenderPass??this._renderEncoder;for(let r=e.length-1;r>=0;--r)this._showGPUDebugMarkersLog&&n.Log(`[${this.frameId}] [E${this._debugMarkersEncoderGroups.length}|P${this._debugMarkersPassGroups.length}] [automatic] Popping debug group '${e[r]}' on '${t.label}'.`),t.popDebugGroup()}_debugPushAfterStartOfEncoder(){if(!this._enableGPUDebugMarkers)return;const e=this._currentRenderPass?this._debugMarkersPassGroups:this._debugMarkersEncoderGroups,t=this._currentRenderPass??this._renderEncoder;for(const r of e)this._showGPUDebugMarkersLog&&n.Log(`[${this.frameId}] [E${this._debugMarkersEncoderGroups.length}|P${this._debugMarkersPassGroups.length}] [automatic] Pushing debug group '${r}' on '${t.label}'.`),t.pushDebugGroup(r)}_debugPendingPop(e){if(this._enableGPUDebugMarkers){for(;this._debugMarkersPendingEncoderPops-- >0;){const t=this._debugMarkersEncoderGroups.pop();this._showGPUDebugMarkersLog&&n.Log(`[${this.frameId}] [E${this._debugMarkersEncoderGroups.length}|P${this._debugMarkersPassGroups.length}] [automatic] Popping debug group '${t}' on render encoder '${this._renderEncoder.label}' after the end of render pass '${e.label}'.`),this._renderEncoder.popDebugGroup()}this._debugMarkersPendingEncoderPops=0}}}var N,$,W,k,V,X,H,q,Y,z,Q,K,j,J,Z,ee,te,re,se,ne,ie,ae,oe,ue,ce,le,he,de,pe,_e,ge,me,fe,be,xe,Te,ye,Ee,Se,Re,Ce;!function(e){e.LowPower="low-power",e.HighPerformance="high-performance"}(N||(N={})),function(e){e.CoreFeaturesAndLimits="core-features-and-limits",e.DepthClipControl="depth-clip-control",e.Depth32FloatStencil8="depth32float-stencil8",e.TextureCompressionBC="texture-compression-bc",e.TextureCompressionBCSliced3D="texture-compression-bc-sliced-3d",e.TextureCompressionETC2="texture-compression-etc2",e.TextureCompressionASTC="texture-compression-astc",e.TextureCompressionASTCSliced3D="texture-compression-astc-sliced-3d",e.TimestampQuery="timestamp-query",e.IndirectFirstInstance="indirect-first-instance",e.ShaderF16="shader-f16",e.RG11B10UFloatRenderable="rg11b10ufloat-renderable",e.BGRA8UnormStorage="bgra8unorm-storage",e.Float32Filterable="float32-filterable",e.Float32Blendable="float32-blendable",e.ClipDistances="clip-distances",e.DualSourceBlending="dual-source-blending",e.Subgroups="subgroups",e.TextureFormatsTier1="texture-formats-tier1",e.TextureFormatsTier2="texture-formats-tier2",e.PrimitiveIndex="primitive-index",e.TextureComponentSwizzle="texture-component-swizzle"}($||($={})),function(e){e.Unmapped="unmapped",e.Pending="pending",e.Mapped="mapped"}(W||(W={})),function(e){e[e.MapRead=1]="MapRead",e[e.MapWrite=2]="MapWrite",e[e.CopySrc=4]="CopySrc",e[e.CopyDst=8]="CopyDst",e[e.Index=16]="Index",e[e.Vertex=32]="Vertex",e[e.Uniform=64]="Uniform",e[e.Storage=128]="Storage",e[e.Indirect=256]="Indirect",e[e.QueryResolve=512]="QueryResolve"}(k||(k={})),function(e){e[e.Read=1]="Read",e[e.Write=2]="Write"}(V||(V={})),function(e){e.E1d="1d",e.E2d="2d",e.E3d="3d"}(X||(X={})),function(e){e[e.CopySrc=1]="CopySrc",e[e.CopyDst=2]="CopyDst",e[e.TextureBinding=4]="TextureBinding",e[e.StorageBinding=8]="StorageBinding",e[e.RenderAttachment=16]="RenderAttachment",e[e.TransientAttachment=32]="TransientAttachment"}(H||(H={})),function(e){e.E1d="1d",e.E2d="2d",e.E2dArray="2d-array",e.Cube="cube",e.CubeArray="cube-array",e.E3d="3d"}(q||(q={})),function(e){e.All="all",e.StencilOnly="stencil-only",e.DepthOnly="depth-only"}(Y||(Y={})),function(e){e.R8Unorm="r8unorm",e.R8Snorm="r8snorm",e.R8Uint="r8uint",e.R8Sint="r8sint",e.R16Uint="r16uint",e.R16Sint="r16sint",e.R16Float="r16float",e.RG8Unorm="rg8unorm",e.RG8Snorm="rg8snorm",e.RG8Uint="rg8uint",e.RG8Sint="rg8sint",e.R16Unorm="r16unorm",e.R16Snorm="r16snorm",e.R32Uint="r32uint",e.R32Sint="r32sint",e.R32Float="r32float",e.RG16Uint="rg16uint",e.RG16Sint="rg16sint",e.RG16Float="rg16float",e.RGBA8Unorm="rgba8unorm",e.RGBA8UnormSRGB="rgba8unorm-srgb",e.RGBA8Snorm="rgba8snorm",e.RGBA8Uint="rgba8uint",e.RGBA8Sint="rgba8sint",e.BGRA8Unorm="bgra8unorm",e.BGRA8UnormSRGB="bgra8unorm-srgb",e.RG16Unorm="rg16unorm",e.RG16Snorm="rg16snorm",e.RGB9E5UFloat="rgb9e5ufloat",e.RGB10A2UINT="rgb10a2uint",e.RGB10A2Unorm="rgb10a2unorm",e.RG11B10UFloat="rg11b10ufloat",e.RG32Uint="rg32uint",e.RG32Sint="rg32sint",e.RG32Float="rg32float",e.RGBA16Uint="rgba16uint",e.RGBA16Sint="rgba16sint",e.RGBA16Float="rgba16float",e.RGBA16Unorm="rgba16unorm",e.RGBA16Snorm="rgba16snorm",e.RGBA32Uint="rgba32uint",e.RGBA32Sint="rgba32sint",e.RGBA32Float="rgba32float",e.Stencil8="stencil8",e.Depth16Unorm="depth16unorm",e.Depth24Plus="depth24plus",e.Depth24PlusStencil8="depth24plus-stencil8",e.Depth32Float="depth32float",e.BC1RGBAUnorm="bc1-rgba-unorm",e.BC1RGBAUnormSRGB="bc1-rgba-unorm-srgb",e.BC2RGBAUnorm="bc2-rgba-unorm",e.BC2RGBAUnormSRGB="bc2-rgba-unorm-srgb",e.BC3RGBAUnorm="bc3-rgba-unorm",e.BC3RGBAUnormSRGB="bc3-rgba-unorm-srgb",e.BC4RUnorm="bc4-r-unorm",e.BC4RSnorm="bc4-r-snorm",e.BC5RGUnorm="bc5-rg-unorm",e.BC5RGSnorm="bc5-rg-snorm",e.BC6HRGBUFloat="bc6h-rgb-ufloat",e.BC6HRGBFloat="bc6h-rgb-float",e.BC7RGBAUnorm="bc7-rgba-unorm",e.BC7RGBAUnormSRGB="bc7-rgba-unorm-srgb",e.ETC2RGB8Unorm="etc2-rgb8unorm",e.ETC2RGB8UnormSRGB="etc2-rgb8unorm-srgb",e.ETC2RGB8A1Unorm="etc2-rgb8a1unorm",e.ETC2RGB8A1UnormSRGB="etc2-rgb8a1unorm-srgb",e.ETC2RGBA8Unorm="etc2-rgba8unorm",e.ETC2RGBA8UnormSRGB="etc2-rgba8unorm-srgb",e.EACR11Unorm="eac-r11unorm",e.EACR11Snorm="eac-r11snorm",e.EACRG11Unorm="eac-rg11unorm",e.EACRG11Snorm="eac-rg11snorm",e.ASTC4x4Unorm="astc-4x4-unorm",e.ASTC4x4UnormSRGB="astc-4x4-unorm-srgb",e.ASTC5x4Unorm="astc-5x4-unorm",e.ASTC5x4UnormSRGB="astc-5x4-unorm-srgb",e.ASTC5x5Unorm="astc-5x5-unorm",e.ASTC5x5UnormSRGB="astc-5x5-unorm-srgb",e.ASTC6x5Unorm="astc-6x5-unorm",e.ASTC6x5UnormSRGB="astc-6x5-unorm-srgb",e.ASTC6x6Unorm="astc-6x6-unorm",e.ASTC6x6UnormSRGB="astc-6x6-unorm-srgb",e.ASTC8x5Unorm="astc-8x5-unorm",e.ASTC8x5UnormSRGB="astc-8x5-unorm-srgb",e.ASTC8x6Unorm="astc-8x6-unorm",e.ASTC8x6UnormSRGB="astc-8x6-unorm-srgb",e.ASTC8x8Unorm="astc-8x8-unorm",e.ASTC8x8UnormSRGB="astc-8x8-unorm-srgb",e.ASTC10x5Unorm="astc-10x5-unorm",e.ASTC10x5UnormSRGB="astc-10x5-unorm-srgb",e.ASTC10x6Unorm="astc-10x6-unorm",e.ASTC10x6UnormSRGB="astc-10x6-unorm-srgb",e.ASTC10x8Unorm="astc-10x8-unorm",e.ASTC10x8UnormSRGB="astc-10x8-unorm-srgb",e.ASTC10x10Unorm="astc-10x10-unorm",e.ASTC10x10UnormSRGB="astc-10x10-unorm-srgb",e.ASTC12x10Unorm="astc-12x10-unorm",e.ASTC12x10UnormSRGB="astc-12x10-unorm-srgb",e.ASTC12x12Unorm="astc-12x12-unorm",e.ASTC12x12UnormSRGB="astc-12x12-unorm-srgb",e.Depth32FloatStencil8="depth32float-stencil8"}(z||(z={})),function(e){e.ClampToEdge="clamp-to-edge",e.Repeat="repeat",e.MirrorRepeat="mirror-repeat"}(Q||(Q={})),function(e){e.Nearest="nearest",e.Linear="linear"}(K||(K={})),function(e){e.Nearest="nearest",e.Linear="linear"}(j||(j={})),function(e){e.Never="never",e.Less="less",e.Equal="equal",e.LessEqual="less-equal",e.Greater="greater",e.NotEqual="not-equal",e.GreaterEqual="greater-equal",e.Always="always"}(J||(J={})),function(e){e[e.Vertex=1]="Vertex",e[e.Fragment=2]="Fragment",e[e.Compute=4]="Compute"}(Z||(Z={})),function(e){e.Uniform="uniform",e.Storage="storage",e.ReadOnlyStorage="read-only-storage"}(ee||(ee={})),function(e){e.Filtering="filtering",e.NonFiltering="non-filtering",e.Comparison="comparison"}(te||(te={})),function(e){e.Float="float",e.UnfilterableFloat="unfilterable-float",e.Depth="depth",e.Sint="sint",e.Uint="uint"}(re||(re={})),function(e){e.WriteOnly="write-only",e.ReadOnly="read-only",e.ReadWrite="read-write"}(se||(se={})),function(e){e.Error="error",e.Warning="warning",e.Info="info"}(ne||(ne={})),function(e){e.Validation="validation",e.Internal="internal"}(ie||(ie={})),function(e){e.Auto="auto"}(ae||(ae={})),function(e){e.PointList="point-list",e.LineList="line-list",e.LineStrip="line-strip",e.TriangleList="triangle-list",e.TriangleStrip="triangle-strip"}(oe||(oe={})),function(e){e.CCW="ccw",e.CW="cw"}(ue||(ue={})),function(e){e.None="none",e.Front="front",e.Back="back"}(ce||(ce={})),function(e){e[e.Red=1]="Red",e[e.Green=2]="Green",e[e.Blue=4]="Blue",e[e.Alpha=8]="Alpha",e[e.All=15]="All"}(le||(le={})),function(e){e.Zero="zero",e.One="one",e.Src="src",e.OneMinusSrc="one-minus-src",e.SrcAlpha="src-alpha",e.OneMinusSrcAlpha="one-minus-src-alpha",e.Dst="dst",e.OneMinusDst="one-minus-dst",e.DstAlpha="dst-alpha",e.OneMinusDstAlpha="one-minus-dst-alpha",e.SrcAlphaSaturated="src-alpha-saturated",e.Constant="constant",e.OneMinusConstant="one-minus-constant",e.Src1="src1",e.OneMinusSrc1="one-minus-src1",e.Src1Alpha="src1-alpha",e.OneMinusSrc1Alpha="one-minus-src1-alpha"}(he||(he={})),function(e){e.Add="add",e.Subtract="subtract",e.ReverseSubtract="reverse-subtract",e.Min="min",e.Max="max"}(de||(de={})),function(e){e.Keep="keep",e.Zero="zero",e.Replace="replace",e.Invert="invert",e.IncrementClamp="increment-clamp",e.DecrementClamp="decrement-clamp",e.IncrementWrap="increment-wrap",e.DecrementWrap="decrement-wrap"}(pe||(pe={})),function(e){e.Uint16="uint16",e.Uint32="uint32"}(_e||(_e={})),function(e){e.Uint8="uint8",e.Uint8x2="uint8x2",e.Uint8x4="uint8x4",e.Sint8="sint8",e.Sint8x2="sint8x2",e.Sint8x4="sint8x4",e.Unorm8="unorm8",e.Unorm8x2="unorm8x2",e.Unorm8x4="unorm8x4",e.Snorm8="snorm8",e.Snorm8x2="snorm8x2",e.Snorm8x4="snorm8x4",e.Uint16="uint16",e.Uint16x2="uint16x2",e.Uint16x4="uint16x4",e.Sint16="sint16",e.Sint16x2="sint16x2",e.Sint16x4="sint16x4",e.Unorm16="unorm16",e.Unorm16x2="unorm16x2",e.Unorm16x4="unorm16x4",e.Snorm16="snorm16",e.Snorm16x2="snorm16x2",e.Snorm16x4="snorm16x4",e.Float16="float16",e.Float16x2="float16x2",e.Float16x4="float16x4",e.Float32="float32",e.Float32x2="float32x2",e.Float32x3="float32x3",e.Float32x4="float32x4",e.Uint32="uint32",e.Uint32x2="uint32x2",e.Uint32x3="uint32x3",e.Uint32x4="uint32x4",e.Sint32="sint32",e.Sint32x2="sint32x2",e.Sint32x3="sint32x3",e.Sint32x4="sint32x4",e.UNORM10x10x10x2="unorm10-10-10-2",e.UNORM8x4BGRA="unorm8x4-bgra"}(ge||(ge={})),function(e){e.Vertex="vertex",e.Instance="instance"}(me||(me={})),function(e){e.Beginning="beginning",e.End="end"}(fe||(fe={})),function(e){e.Beginning="beginning",e.End="end"}(be||(be={})),function(e){e.Load="load",e.Clear="clear"}(xe||(xe={})),function(e){e.Store="store",e.Discard="discard"}(Te||(Te={})),function(e){e.Occlusion="occlusion",e.Timestamp="timestamp"}(ye||(ye={})),function(e){e.Opaque="opaque",e.Premultiplied="premultiplied"}(Ee||(Ee={})),function(e){e.Standard="standard",e.Extended="extended"}(Se||(Se={})),function(e){e.Unknown="unknown",e.Destroyed="destroyed"}(Re||(Re={})),function(e){e.Validation="validation",e.OutOfMemory="out-of-memory",e.Internal="internal"}(Ce||(Ce={}));class Ae{constructor(){this.shaderLanguage=0}_addUniformToLeftOverUBO(e,t,r){let s;[e,t,s]=this._getArraySize(e,t,r);for(let t=0;t<this._webgpuProcessingContext.leftOverUniforms.length;t++)if(this._webgpuProcessingContext.leftOverUniforms[t].name===e)return;this._webgpuProcessingContext.leftOverUniforms.push({name:e,type:t,length:s})}_buildLeftOverUBO(){if(!this._webgpuProcessingContext.leftOverUniforms.length)return"";const e=Ae.LeftOvertUBOName;let t=this._webgpuProcessingContext.availableBuffers[e];return t||(t={binding:this._webgpuProcessingContext.getNextFreeUBOBinding()},this._webgpuProcessingContext.availableBuffers[e]=t,this._addBufferBindingDescription(e,t,"uniform",!0),this._addBufferBindingDescription(e,t,"uniform",!1)),this._generateLeftOverUBOCode(e,t)}_collectBindingNames(){for(let e=0;e<this._webgpuProcessingContext.bindGroupLayoutEntries.length;e++){const t=this._webgpuProcessingContext.bindGroupLayoutEntries[e];if(void 0!==t)for(let r=0;r<t.length;r++){const t=this._webgpuProcessingContext.bindGroupLayoutEntries[e][r],s=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[e][t.binding].name,n=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[e][t.binding].nameInArrayOfTexture;t&&(t.texture||t.externalTexture||t.storageTexture?this._webgpuProcessingContext.textureNames.push(n):t.sampler?this._webgpuProcessingContext.samplerNames.push(s):t.buffer&&this._webgpuProcessingContext.bufferNames.push(s))}else this._webgpuProcessingContext.bindGroupLayoutEntries[e]=[]}}_preCreateBindGroupEntries(){const e=this._webgpuProcessingContext.bindGroupEntries;for(let t=0;t<this._webgpuProcessingContext.bindGroupLayoutEntries.length;t++){const r=this._webgpuProcessingContext.bindGroupLayoutEntries[t],s=[];for(let e=0;e<r.length;e++){const r=this._webgpuProcessingContext.bindGroupLayoutEntries[t][e];r.sampler||r.texture||r.storageTexture||r.externalTexture?s.push({binding:r.binding,resource:void 0}):r.buffer&&s.push({binding:r.binding,resource:{buffer:void 0,offset:0,size:0}})}e[t]=s}}_addTextureBindingDescription(e,t,r,s,n,i,a="write-only"){let{groupIndex:o,bindingIndex:u}=t.textures[r];if(this._webgpuProcessingContext.bindGroupLayoutEntries[o]||(this._webgpuProcessingContext.bindGroupLayoutEntries[o]=[],this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o]=[]),!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][u]){let i;i=null===s?this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({binding:u,visibility:0,externalTexture:{}}):n?this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({binding:u,visibility:0,storageTexture:{access:a,format:n,viewDimension:s}}):this._webgpuProcessingContext.bindGroupLayoutEntries[o].push({binding:u,visibility:0,texture:{sampleType:t.sampleType,viewDimension:s,multisampled:!1}});const c=t.isTextureArray?e+r:e;this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][u]={name:e,index:i-1,nameInArrayOfTexture:c}}u=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[o][u].index,this._webgpuProcessingContext.bindGroupLayoutEntries[o][u].visibility|=i?1:2}_addSamplerBindingDescription(e,t,r){let{groupIndex:s,bindingIndex:n}=t.binding;if(this._webgpuProcessingContext.bindGroupLayoutEntries[s]||(this._webgpuProcessingContext.bindGroupLayoutEntries[s]=[],this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s]=[]),!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][n]){const r=this._webgpuProcessingContext.bindGroupLayoutEntries[s].push({binding:n,visibility:0,sampler:{type:t.type}});this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][n]={name:e,index:r-1}}n=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[s][n].index,this._webgpuProcessingContext.bindGroupLayoutEntries[s][n].visibility|=r?1:2}_addBufferBindingDescription(e,t,r,s){let{groupIndex:n,bindingIndex:i}=t.binding;if(this._webgpuProcessingContext.bindGroupLayoutEntries[n]||(this._webgpuProcessingContext.bindGroupLayoutEntries[n]=[],this._webgpuProcessingContext.bindGroupLayoutEntryInfo[n]=[]),!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[n][i]){const t=this._webgpuProcessingContext.bindGroupLayoutEntries[n].push({binding:i,visibility:0,buffer:{type:r}});this._webgpuProcessingContext.bindGroupLayoutEntryInfo[n][i]={name:e,index:t-1}}i=this._webgpuProcessingContext.bindGroupLayoutEntryInfo[n][i].index,this._webgpuProcessingContext.bindGroupLayoutEntries[n][i].visibility|=s?1:2}}Ae.LeftOvertUBOName="LeftOver",Ae.InternalsUBOName="Internals",Ae.UniformSizes={bool:1,int:1,float:1,vec2:2,ivec2:2,uvec2:2,vec3:3,ivec3:3,uvec3:3,vec4:4,ivec4:4,uvec4:4,mat2:4,mat3:12,mat4:16,i32:1,u32:1,f32:1,mat2x2:4,mat3x3:12,mat4x4:16,mat2x2f:4,mat3x3f:12,mat4x4f:16,vec2i:2,vec3i:3,vec4i:4,vec2u:2,vec3u:3,vec4u:4,vec2f:2,vec3f:3,vec4f:4,vec2h:1,vec3h:2,vec4h:2},Ae._SamplerFunctionByWebGLSamplerType={sampler2D:"sampler2D",sampler2DArray:"sampler2DArray",sampler2DShadow:"sampler2DShadow",sampler2DArrayShadow:"sampler2DArrayShadow",samplerCube:"samplerCube",sampler3D:"sampler3D"},Ae._TextureTypeByWebGLSamplerType={sampler2D:"texture2D",sampler2DArray:"texture2DArray",sampler2DShadow:"texture2D",sampler2DArrayShadow:"texture2DArray",samplerCube:"textureCube",samplerCubeArray:"textureCubeArray",sampler3D:"texture3D"},Ae._GpuTextureViewDimensionByWebGPUTextureType={textureCube:"cube",textureCubeArray:"cube-array",texture2D:"2d",texture2DArray:"2d-array",texture3D:"3d"},Ae._SamplerTypeByWebGLSamplerType={sampler2DShadow:"samplerShadow",sampler2DArrayShadow:"samplerShadow"},Ae._IsComparisonSamplerByWebGPUSamplerType={samplerShadow:!0,samplerArrayShadow:!0,sampler:!1};class ve{get isAsync(){return!1}get isReady(){return!!this.stages}constructor(e,t){this.bindGroupLayouts={},this._name="unnamed",this.shaderProcessingContext=e,this._leftOverUniformsByName={},this.engine=t,this.vertexBufferKindToType={}}_handlesSpectorRebuildCallback(){}_fillEffectInformation(e,t,r,s,n,i,a,o){const u=this.engine;u._doNotHandleContextLost&&(e._fragmentSourceCode="",e._vertexSourceCode="");const c=this.shaderProcessingContext.availableTextures;let l;for(l=0;l<n.length;l++){const e=n[l],t=c[n[l]];null==t||null==t?(n.splice(l,1),l--):i[e]=l}for(const e of u.getAttributes(this,a))o.push(e);this.buildUniformLayout();const h=[],d=[];for(l=0;l<a.length;l++){const e=o[l];e>=0&&(h.push(a[l]),d.push(e))}this.shaderProcessingContext.attributeNamesFromEffect=h,this.shaderProcessingContext.attributeLocationsFromEffect=d}buildUniformLayout(){if(this.shaderProcessingContext.leftOverUniforms.length){this.uniformBuffer?.dispose(),this.uniformBuffer=new i(this.engine,void 0,void 0,"leftOver-"+this._name);for(const e of this.shaderProcessingContext.leftOverUniforms){const t=e.type.replace(/^(.*?)(<.*>)?$/,"$1"),r=Ae.UniformSizes[t];this.uniformBuffer.addUniform(e.name,r,e.length),this._leftOverUniformsByName[e.name]=e.type}this.uniformBuffer.create()}}setEngine(e){this.engine=e}dispose(){this.uniformBuffer&&this.uniformBuffer.dispose()}setInt(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateInt(e,t)}setInt2(e,t,r){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateInt2(e,t,r)}setInt3(e,t,r,s){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateInt3(e,t,r,s)}setInt4(e,t,r,s,n){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateInt4(e,t,r,s,n)}setIntArray(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateIntArray(e,t)}setIntArray2(e,t){this.setIntArray(e,t)}setIntArray3(e,t){this.setIntArray(e,t)}setIntArray4(e,t){this.setIntArray(e,t)}setUInt(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateUInt(e,t)}setUInt2(e,t,r){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateUInt2(e,t,r)}setUInt3(e,t,r,s){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateUInt3(e,t,r,s)}setUInt4(e,t,r,s,n){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateUInt4(e,t,r,s,n)}setUIntArray(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateUIntArray(e,t)}setUIntArray2(e,t){this.setUIntArray(e,t)}setUIntArray3(e,t){this.setUIntArray(e,t)}setUIntArray4(e,t){this.setUIntArray(e,t)}setArray(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateArray(e,t)}setArray2(e,t){this.setArray(e,t)}setArray3(e,t){this.setArray(e,t)}setArray4(e,t){this.setArray(e,t)}setMatrices(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateMatrices(e,t)}setMatrix(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateMatrix(e,t)}setMatrix3x3(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateMatrix3x3(e,t)}setMatrix2x2(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateMatrix2x2(e,t)}setFloat(e,t){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateFloat(e,t)}setVector2(e,t){this.setFloat2(e,t.x,t.y)}setFloat2(e,t,r){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateFloat2(e,t,r)}setVector3(e,t){this.setFloat3(e,t.x,t.y,t.z)}setFloat3(e,t,r,s){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateFloat3(e,t,r,s)}setVector4(e,t){this.setFloat4(e,t.x,t.y,t.z,t.w)}setQuaternion(e,t){this.setFloat4(e,t.x,t.y,t.z,t.w)}setFloat4(e,t,r,s,n){this.uniformBuffer&&this._leftOverUniformsByName[e]&&this.uniformBuffer.updateFloat4(e,t,r,s,n)}setColor3(e,t){this.setFloat3(e,t.r,t.g,t.b)}setColor4(e,t,r){this.setFloat4(e,t.r,t.g,t.b,r)}setDirectColor4(e,t){this.setFloat4(e,t.r,t.g,t.b,t.a)}_getVertexShaderCode(){return this.sources?.vertex}_getFragmentShaderCode(){return this.sources?.fragment}}const Ie={mat2:2,mat3:3,mat4:4,mat2x2:2,mat3x3:3,mat4x4:4};class we{static get KnownUBOs(){return we._SimplifiedKnownBindings?we._SimplifiedKnownUBOs:we._KnownUBOs}constructor(e,t=!1){this.vertexBufferKindToNumberOfComponents={},this.shaderLanguage=e,this._attributeNextLocation=0,this._varyingNextLocation=0,this.freeGroupIndex=0,this.freeBindingIndex=0,this.availableVaryings={},this.availableAttributes={},this.availableBuffers={},this.availableTextures={},this.availableSamplers={},this.orderedAttributes=[],this.bindGroupLayoutEntries=[],this.bindGroupLayoutEntryInfo=[],this.bindGroupEntries=[],this.bufferNames=[],this.textureNames=[],this.samplerNames=[],this.leftOverUniforms=[],t||this._findStartingGroupBinding()}_findStartingGroupBinding(){const e=we.KnownUBOs,t=[];for(const r in e){const s=e[r].binding;-1!==s.groupIndex&&(void 0===t[s.groupIndex]?t[s.groupIndex]=s.bindingIndex:t[s.groupIndex]=Math.max(t[s.groupIndex],s.bindingIndex))}this.freeGroupIndex=t.length-1,0===this.freeGroupIndex?(this.freeGroupIndex++,this.freeBindingIndex=0):this.freeBindingIndex=t[t.length-1]+1}getAttributeNextLocation(e,t=0){const r=this._attributeNextLocation;return this._attributeNextLocation+=(Ie[e]??1)*(t||1),r}getVaryingNextLocation(e,t=0){const r=this._varyingNextLocation;return this._varyingNextLocation+=(Ie[e]??1)*(t||1),r}getNextFreeUBOBinding(){return this._getNextFreeBinding(1)}_getNextFreeBinding(e){if(this.freeBindingIndex>65536-e&&(this.freeGroupIndex++,this.freeBindingIndex=0),4===this.freeGroupIndex)throw"Too many textures or UBOs have been declared and it is not supported in WebGPU.";const t={groupIndex:this.freeGroupIndex,bindingIndex:this.freeBindingIndex};return this.freeBindingIndex+=e,t}}function Be(e,t,r,s){let n=s,i=0,a="";for(;n<r.length;){const s=r.charAt(n);if(a)s===a?'"'===a||"'"===a?"\\"!==r.charAt(n-1)&&(a=""):a="":"*/"===a&&"*"===s&&n+1<r.length&&("/"===r.charAt(n+1)&&(a=""),""===a&&n++);else switch(s){case e:i++;break;case t:i--;break;case'"':case"'":case"`":a=s;break;case"/":if(n+1<r.length){const e=r.charAt(n+1);"/"===e?a="\n":"*"===e&&(a="*/")}}if(n++,0===i)break}return 0===i?n-1:-1}function Pe(e,t){for(;t<e.length;){const r=e[t];if(" "!==r&&"\n"!==r&&"\r"!==r&&"\t"!==r&&"\n"!==r&&" "!==r)break;t++}return t}function Fe(e){const t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||95==t}function De(e){let t=0,r="",s=!1;const n=[];for(;t<e.length;){const i=e.charAt(t);if(r)i===r?'"'===r||"'"===r?("\\"!==e.charAt(t-1)&&(r=""),n.push(i)):(r="",s=!1):"*/"===r&&"*"===i&&t+1<e.length?("/"===e.charAt(t+1)&&(r=""),""===r&&(s=!1,t++)):s||n.push(i);else{switch(i){case'"':case"'":case"`":r=i;break;case"/":if(t+1<e.length){const n=e.charAt(t+1);"/"===n?(r="\n",s=!0):"*"===n&&(r="*/",s=!0)}}s||n.push(i)}t++}return n.join("")}function Le(e,t,r,s){for(;t>=0&&e.charAt(t)!==r&&e.charAt(t)!==s;)t--;return t}function Me(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ge(e,t,r,s){let n=e.indexOf(t);if(n<0)return e;if(r){for(;n++<e.length&&"{"!=e.charAt(n););if(n<e.length){const t=e.substring(0,n+1),s=e.substring(n+1);e=t+r+s}}if(s){const t=e.lastIndexOf("}");e=e.substring(0,t),e+=s+"\n}"}return e}we._SimplifiedKnownBindings=!0,we._SimplifiedKnownUBOs={Scene:{binding:{groupIndex:0,bindingIndex:0}},Light0:{binding:{groupIndex:-1,bindingIndex:-1}},Light1:{binding:{groupIndex:-1,bindingIndex:-1}},Light2:{binding:{groupIndex:-1,bindingIndex:-1}},Light3:{binding:{groupIndex:-1,bindingIndex:-1}},Light4:{binding:{groupIndex:-1,bindingIndex:-1}},Light5:{binding:{groupIndex:-1,bindingIndex:-1}},Light6:{binding:{groupIndex:-1,bindingIndex:-1}},Light7:{binding:{groupIndex:-1,bindingIndex:-1}},Light8:{binding:{groupIndex:-1,bindingIndex:-1}},Light9:{binding:{groupIndex:-1,bindingIndex:-1}},Light10:{binding:{groupIndex:-1,bindingIndex:-1}},Light11:{binding:{groupIndex:-1,bindingIndex:-1}},Light12:{binding:{groupIndex:-1,bindingIndex:-1}},Light13:{binding:{groupIndex:-1,bindingIndex:-1}},Light14:{binding:{groupIndex:-1,bindingIndex:-1}},Light15:{binding:{groupIndex:-1,bindingIndex:-1}},Light16:{binding:{groupIndex:-1,bindingIndex:-1}},Light17:{binding:{groupIndex:-1,bindingIndex:-1}},Light18:{binding:{groupIndex:-1,bindingIndex:-1}},Light19:{binding:{groupIndex:-1,bindingIndex:-1}},Light20:{binding:{groupIndex:-1,bindingIndex:-1}},Light21:{binding:{groupIndex:-1,bindingIndex:-1}},Light22:{binding:{groupIndex:-1,bindingIndex:-1}},Light23:{binding:{groupIndex:-1,bindingIndex:-1}},Light24:{binding:{groupIndex:-1,bindingIndex:-1}},Light25:{binding:{groupIndex:-1,bindingIndex:-1}},Light26:{binding:{groupIndex:-1,bindingIndex:-1}},Light27:{binding:{groupIndex:-1,bindingIndex:-1}},Light28:{binding:{groupIndex:-1,bindingIndex:-1}},Light29:{binding:{groupIndex:-1,bindingIndex:-1}},Light30:{binding:{groupIndex:-1,bindingIndex:-1}},Light31:{binding:{groupIndex:-1,bindingIndex:-1}},Material:{binding:{groupIndex:-1,bindingIndex:-1}},Mesh:{binding:{groupIndex:-1,bindingIndex:-1}},Internals:{binding:{groupIndex:-1,bindingIndex:-1}}},we._KnownUBOs={Scene:{binding:{groupIndex:0,bindingIndex:0}},Light0:{binding:{groupIndex:1,bindingIndex:0}},Light1:{binding:{groupIndex:1,bindingIndex:1}},Light2:{binding:{groupIndex:1,bindingIndex:2}},Light3:{binding:{groupIndex:1,bindingIndex:3}},Light4:{binding:{groupIndex:1,bindingIndex:4}},Light5:{binding:{groupIndex:1,bindingIndex:5}},Light6:{binding:{groupIndex:1,bindingIndex:6}},Light7:{binding:{groupIndex:1,bindingIndex:7}},Light8:{binding:{groupIndex:1,bindingIndex:8}},Light9:{binding:{groupIndex:1,bindingIndex:9}},Light10:{binding:{groupIndex:1,bindingIndex:10}},Light11:{binding:{groupIndex:1,bindingIndex:11}},Light12:{binding:{groupIndex:1,bindingIndex:12}},Light13:{binding:{groupIndex:1,bindingIndex:13}},Light14:{binding:{groupIndex:1,bindingIndex:14}},Light15:{binding:{groupIndex:1,bindingIndex:15}},Light16:{binding:{groupIndex:1,bindingIndex:16}},Light17:{binding:{groupIndex:1,bindingIndex:17}},Light18:{binding:{groupIndex:1,bindingIndex:18}},Light19:{binding:{groupIndex:1,bindingIndex:19}},Light20:{binding:{groupIndex:1,bindingIndex:20}},Light21:{binding:{groupIndex:1,bindingIndex:21}},Light22:{binding:{groupIndex:1,bindingIndex:22}},Light23:{binding:{groupIndex:1,bindingIndex:23}},Light24:{binding:{groupIndex:1,bindingIndex:24}},Light25:{binding:{groupIndex:1,bindingIndex:25}},Light26:{binding:{groupIndex:1,bindingIndex:26}},Light27:{binding:{groupIndex:1,bindingIndex:27}},Light28:{binding:{groupIndex:1,bindingIndex:28}},Light29:{binding:{groupIndex:1,bindingIndex:29}},Light30:{binding:{groupIndex:1,bindingIndex:30}},Light31:{binding:{groupIndex:1,bindingIndex:31}},Material:{binding:{groupIndex:2,bindingIndex:0}},Mesh:{binding:{groupIndex:2,bindingIndex:1}},Internals:{binding:{groupIndex:2,bindingIndex:2}}};class Ue extends Ae{constructor(){super(...arguments),this._missingVaryings=[],this._textureArrayProcessing=[],this._vertexIsGLES3=!1,this._fragmentIsGLES3=!1,this.shaderLanguage=0,this.parseGLES3=!0}_getArraySize(e,t,r){let s=0;const n=e.indexOf("["),i=e.indexOf("]");if(n>0&&i>0){const t=e.substring(n+1,i);s=+t,isNaN(s)&&(s=+r[t.trim()]),e=e.substring(0,n)}return[e,t,s]}initializeShaders(e){this._webgpuProcessingContext=e,this._missingVaryings.length=0,this._textureArrayProcessing.length=0,this.attributeKeywordName=void 0,this.varyingVertexKeywordName=void 0,this.varyingFragmentKeywordName=void 0}preProcessShaderCode(e,t){const r=`// Internals UBO\nuniform ${Ae.InternalsUBOName} {\nfloat yFactor_;\nfloat textureOutputHeight_;\n};\n`,s=-1!==e.indexOf("// Internals UBO");return t?(this._fragmentIsGLES3=-1!==e.indexOf("#version 3"),this._fragmentIsGLES3&&(this.varyingFragmentKeywordName="in"),s?e:r+"##INJECTCODE##\n"+e):(this._vertexIsGLES3=-1!==e.indexOf("#version 3"),this._vertexIsGLES3&&(this.attributeKeywordName="in",this.varyingVertexKeywordName="out"),s?e:r+e)}varyingCheck(e,t){return(t&&this._fragmentIsGLES3?/(flat\s)?\s*\bin\b/:!t&&this._vertexIsGLES3?/(flat\s)?\s*\bout\b/:/(flat\s)?\s*\bvarying\b/).test(e)}varyingProcessor(e,t,r){this._preProcessors=r;const s=(t&&this._fragmentIsGLES3?/\s*(flat)?\s*in\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm:!t&&this._vertexIsGLES3?/\s*(flat)?\s*out\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm:/\s*(flat)?\s*varying\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm).exec(e);if(null!==s){const i=s[1]??"",a=s[2],o=s[3];let u;t?(u=this._webgpuProcessingContext.availableVaryings[o],this._missingVaryings[u]="",void 0===u&&n.Warn(`Invalid fragment shader: The varying named "${o}" is not declared in the vertex shader! This declaration will be ignored.`)):(u=this._webgpuProcessingContext.getVaryingNextLocation(a,this._getArraySize(o,a,r)[2]),this._webgpuProcessingContext.availableVaryings[o]=u,this._missingVaryings[u]=`layout(location = ${u}) ${i} in ${a} ${o};`),e=e.replace(s[0],void 0===u?"":`layout(location = ${u}) ${i} ${t?"in":"out"} ${a} ${o};`)}return e}attributeProcessor(e,t){this._preProcessors=t;const r=(this._vertexIsGLES3?/\s*in\s+(\S+)\s+(\S+)\s*;/gm:/\s*attribute\s+(\S+)\s+(\S+)\s*;/gm).exec(e);if(null!==r){const s=r[1],n=r[2],i=this._webgpuProcessingContext.getAttributeNextLocation(s,this._getArraySize(n,s,t)[2]);this._webgpuProcessingContext.availableAttributes[n]=i,this._webgpuProcessingContext.orderedAttributes[i]=n;const a=this._webgpuProcessingContext.vertexBufferKindToNumberOfComponents[n];if(void 0!==a){const t=a<0?-1===a?"int":"ivec"+-a:1===a?"uint":"uvec"+a,o=`_int_${n}_`;e=e.replace(r[0],`layout(location = ${i}) in ${t} ${o}; ${s} ${n} = ${s}(${o});`)}else e=e.replace(r[0],`layout(location = ${i}) in ${s} ${n};`)}return e}uniformProcessor(e,r,s){this._preProcessors=s;const n=/\s*uniform\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm.exec(e);if(null!==n){let i=n[1],a=n[2];if(0===i.indexOf("sampler")||1===i.indexOf("sampler")){let n;[a,i,n]=this._getArraySize(a,i,s);let o=this._webgpuProcessingContext.availableTextures[a];if(!o){o={autoBindSampler:!0,isTextureArray:n>0,isStorageTexture:!1,textures:[],sampleType:"float"};for(let e=0;e<(n||1);++e)o.textures.push(this._webgpuProcessingContext.getNextFreeUBOBinding())}const u=Ae._SamplerTypeByWebGLSamplerType[i]??"sampler",c=!!Ae._IsComparisonSamplerByWebGPUSamplerType[u],l=c?"comparison":"filtering",h=a+t.AUTOSAMPLERSUFFIX;let d=this._webgpuProcessingContext.availableSamplers[h];d||(d={binding:this._webgpuProcessingContext.getNextFreeUBOBinding(),type:l});const p="u"===i.charAt(0)?"u":"i"===i.charAt(0)?"i":"";p&&(i=i.substring(1));const _=c?"depth":"u"===p?"uint":"i"===p?"sint":"float";o.sampleType=_;const g=n>0,m=d.binding.groupIndex,f=d.binding.bindingIndex,b=Ae._SamplerFunctionByWebGLSamplerType[i],x=Ae.