850654126fe38d9e2bf1c8fac45a37650a59a2e83f4f7ff1dc1f90fa451337ed.json 34 KB

1
  1. {"ast":null,"code":"import { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nimport { ThinEngine } from \"../thinEngine.js\";\nimport { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper.js\";\nimport \"../AbstractEngine/abstractEngine.texture.js\";\nThinEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti, isCube, size) {\n const rtWrapper = new WebGLRenderTargetWrapper(isMulti, isCube, size, this, this._gl);\n this._renderTargetWrapperCache.push(rtWrapper);\n return rtWrapper;\n};\nThinEngine.prototype.createRenderTargetTexture = function (size, options) {\n var _label;\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size);\n let generateDepthBuffer = true;\n let generateStencilBuffer = false;\n let noColorAttachment = false;\n let colorAttachment = undefined;\n let samples = 1;\n let label = undefined;\n if (options !== undefined && typeof options === \"object\") {\n var _options$generateDept, _options$samples;\n generateDepthBuffer = (_options$generateDept = options.generateDepthBuffer) !== null && _options$generateDept !== void 0 ? _options$generateDept : true;\n generateStencilBuffer = !!options.generateStencilBuffer;\n noColorAttachment = !!options.noColorAttachment;\n colorAttachment = options.colorAttachment;\n samples = (_options$samples = options.samples) !== null && _options$samples !== void 0 ? _options$samples : 1;\n label = options.label;\n }\n const texture = colorAttachment || (noColorAttachment ? null : this._createInternalTexture(size, options, true, 5 /* InternalTextureSource.RenderTarget */));\n const width = size.width || size;\n const height = size.height || size;\n const currentFrameBuffer = this._currentFramebuffer;\n const gl = this._gl;\n // Create the framebuffer\n const framebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(framebuffer);\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(generateStencilBuffer, generateDepthBuffer, width, height);\n // No need to rebind on every frame\n if (texture && !texture.is2DArray && !texture.is3D) {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture.underlyingResource, 0);\n }\n this._bindUnboundFramebuffer(currentFrameBuffer);\n rtWrapper.label = (_label = label) !== null && _label !== void 0 ? _label : \"RenderTargetWrapper\";\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = generateDepthBuffer;\n rtWrapper._generateStencilBuffer = generateStencilBuffer;\n rtWrapper.setTextures(texture);\n if (!colorAttachment) {\n this.updateRenderTargetTextureSampleCount(rtWrapper, samples);\n } else {\n rtWrapper._samples = colorAttachment.samples;\n if (colorAttachment.samples > 1) {\n const msaaRenderBuffer = colorAttachment._hardwareTexture.getMSAARenderBuffer(0);\n rtWrapper._MSAAFramebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, msaaRenderBuffer);\n this._bindUnboundFramebuffer(null);\n }\n }\n return rtWrapper;\n};\nThinEngine.prototype._createDepthStencilTexture = function (size, options, rtWrapper) {\n var _rtWrapper$_MSAAFrame;\n const gl = this._gl;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n let target = gl.TEXTURE_2D;\n if (layers !== 0) {\n target = gl.TEXTURE_2D_ARRAY;\n } else if (depth !== 0) {\n target = gl.TEXTURE_3D;\n }\n const internalTexture = new InternalTexture(this, 12 /* InternalTextureSource.DepthStencil */);\n internalTexture.label = options.label;\n if (!this._caps.depthTextureExtension) {\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\n return internalTexture;\n }\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n ...options\n };\n this._bindTextureDirectly(target, internalTexture, true);\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.comparisonFunction === 0 ? false : internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\n if (internalOptions.depthTextureFormat !== undefined) {\n if (internalOptions.depthTextureFormat !== 15 && internalOptions.depthTextureFormat !== 16 && internalOptions.depthTextureFormat !== 17 && internalOptions.depthTextureFormat !== 13 && internalOptions.depthTextureFormat !== 14 && internalOptions.depthTextureFormat !== 18) {\n Logger.Error(`Depth texture ${internalOptions.depthTextureFormat} format is not supported.`);\n return internalTexture;\n }\n internalTexture.format = internalOptions.depthTextureFormat;\n } else {\n internalTexture.format = internalOptions.generateStencil ? 13 : 16;\n }\n const hasStencil = internalTexture.format === 17 || internalTexture.format === 13 || internalTexture.format === 18;\n const type = this._getWebGLTextureTypeFromDepthTextureFormat(internalTexture.format);\n const format = hasStencil ? gl.DEPTH_STENCIL : gl.DEPTH_COMPONENT;\n const internalFormat = this._getInternalFormatFromDepthTextureFormat(internalTexture.format, true, hasStencil);\n if (internalTexture.is2DArray) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, layers, 0, format, type, null);\n } else if (internalTexture.is3D) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, depth, 0, format, type, null);\n } else {\n gl.texImage2D(target, 0, internalFormat, internalTexture.width, internalTexture.height, 0, format, type, null);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(internalTexture);\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n this._bindUnboundFramebuffer((_rtWrapper$_MSAAFrame = rtWrapper._MSAAFramebuffer) !== null && _rtWrapper$_MSAAFrame !== void 0 ? _rtWrapper$_MSAAFrame : rtWrapper._framebuffer);\n rtWrapper._generateStencilBuffer = hasStencil;\n rtWrapper._depthStencilTextureWithStencil = hasStencil;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, rtWrapper.samples, internalTexture.format);\n this._bindUnboundFramebuffer(null);\n return internalTexture;\n};\nThinEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper, samples) {\n var _rtWrapper$texture, _rtWrapper$_MSAAFrame2;\n if (this.webGLVersion < 2 || !rtWrapper) {\n return 1;\n }\n if (rtWrapper.samples === samples) {\n return samples;\n }\n const gl = this._gl;\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\n // Dispose previous render buffers\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n if (rtWrapper._MSAAFramebuffer) {\n gl.deleteFramebuffer(rtWrapper._MSAAFramebuffer);\n rtWrapper._MSAAFramebuffer = null;\n }\n const hardwareTexture = (_rtWrapper$texture = rtWrapper.texture) === null || _rtWrapper$texture === void 0 ? void 0 : _rtWrapper$texture._hardwareTexture;\n hardwareTexture === null || hardwareTexture === void 0 || hardwareTexture.releaseMSAARenderBuffers();\n if (rtWrapper.texture && samples > 1 && typeof gl.renderbufferStorageMultisample === \"function\") {\n const framebuffer = gl.createFramebuffer();\n if (!framebuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n rtWrapper._MSAAFramebuffer = framebuffer;\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n const colorRenderbuffer = this._createRenderBuffer(rtWrapper.texture.width, rtWrapper.texture.height, samples, -1 /* not used */, this._getRGBABufferInternalSizedFormat(rtWrapper.texture.type, rtWrapper.texture.format, rtWrapper.texture._useSRGBBuffer), gl.COLOR_ATTACHMENT0, false);\n if (!colorRenderbuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n hardwareTexture === null || hardwareTexture === void 0 || hardwareTexture.addMSAARenderBuffer(colorRenderbuffer);\n }\n this._bindUnboundFramebuffer((_rtWrapper$_MSAAFrame2 = rtWrapper._MSAAFramebuffer) !== null && _rtWrapper$_MSAAFrame2 !== void 0 ? _rtWrapper$_MSAAFrame2 : rtWrapper._framebuffer);\n if (rtWrapper.texture) {\n rtWrapper.texture.samples = samples;\n }\n rtWrapper._samples = samples;\n const depthFormat = rtWrapper._depthStencilTexture ? rtWrapper._depthStencilTexture.format : undefined;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, samples, depthFormat);\n this._bindUnboundFramebuffer(null);\n return samples;\n};\nThinEngine.prototype._setupDepthStencilTexture = function (internalTexture, size, bilinearFiltering, comparisonFunction, samples = 1) {\n var _size$width, _size$height;\n const width = (_size$width = size.width) !== null && _size$width !== void 0 ? _size$width : size;\n const height = (_size$height = size.height) !== null && _size$height !== void 0 ? _size$height : size;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.is2DArray = layers > 0;\n internalTexture.depth = layers || depth;\n internalTexture.isReady = true;\n internalTexture.samples = samples;\n internalTexture.generateMipMaps = false;\n internalTexture.samplingMode = bilinearFiltering ? 2 : 1;\n internalTexture.type = 0;\n internalTexture._comparisonFunction = comparisonFunction;\n const gl = this._gl;\n const target = this._getTextureTarget(internalTexture);\n const samplingParameters = this._getSamplingParameters(internalTexture.samplingMode, false);\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, samplingParameters.mag);\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, samplingParameters.min);\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n // TEXTURE_COMPARE_FUNC/MODE are only availble in WebGL2.\n if (this.webGLVersion > 1) {\n if (comparisonFunction === 0) {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, 515);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n } else {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n }\n};","map":{"version":3,"names":["InternalTexture","Logger","ThinEngine","WebGLRenderTargetWrapper","prototype","_createHardwareRenderTargetWrapper","isMulti","isCube","size","rtWrapper","_gl","_renderTargetWrapperCache","push","createRenderTargetTexture","options","_label","generateDepthBuffer","generateStencilBuffer","noColorAttachment","colorAttachment","undefined","samples","label","_options$generateDept","_options$samples","texture","_createInternalTexture","width","height","currentFrameBuffer","_currentFramebuffer","gl","framebuffer","createFramebuffer","_bindUnboundFramebuffer","_depthStencilBuffer","_setupFramebufferDepthAttachments","is2DArray","is3D","framebufferTexture2D","FRAMEBUFFER","COLOR_ATTACHMENT0","TEXTURE_2D","_hardwareTexture","underlyingResource","_framebuffer","_generateDepthBuffer","_generateStencilBuffer","setTextures","updateRenderTargetTextureSampleCount","_samples","msaaRenderBuffer","getMSAARenderBuffer","_MSAAFramebuffer","framebufferRenderbuffer","RENDERBUFFER","_createDepthStencilTexture","_rtWrapper$_MSAAFrame","layers","depth","target","TEXTURE_2D_ARRAY","TEXTURE_3D","internalTexture","_caps","depthTextureExtension","Error","internalOptions","bilinearFiltering","comparisonFunction","generateStencil","_bindTextureDirectly","_setupDepthStencilTexture","depthTextureFormat","format","hasStencil","type","_getWebGLTextureTypeFromDepthTextureFormat","DEPTH_STENCIL","DEPTH_COMPONENT","internalFormat","_getInternalFormatFromDepthTextureFormat","texImage3D","texImage2D","_internalTexturesCache","deleteRenderbuffer","_depthStencilTextureWithStencil","_rtWrapper$texture","_rtWrapper$_MSAAFrame2","webGLVersion","Math","min","getCaps","maxMSAASamples","deleteFramebuffer","hardwareTexture","releaseMSAARenderBuffers","renderbufferStorageMultisample","colorRenderbuffer","_createRenderBuffer","_getRGBABufferInternalSizedFormat","_useSRGBBuffer","addMSAARenderBuffer","depthFormat","_depthStencilTexture","_size$width","_size$height","baseWidth","baseHeight","isReady","generateMipMaps","samplingMode","_comparisonFunction","_getTextureTarget","samplingParameters","_getSamplingParameters","texParameteri","TEXTURE_MAG_FILTER","mag","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_COMPARE_FUNC","TEXTURE_COMPARE_MODE","NONE","COMPARE_REF_TO_TEXTURE"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Engines/Extensions/engine.renderTarget.js"],"sourcesContent":["import { InternalTexture } from \"../../Materials/Textures/internalTexture.js\";\nimport { Logger } from \"../../Misc/logger.js\";\nimport { ThinEngine } from \"../thinEngine.js\";\nimport { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper.js\";\n\nimport \"../AbstractEngine/abstractEngine.texture.js\";\nThinEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti, isCube, size) {\n const rtWrapper = new WebGLRenderTargetWrapper(isMulti, isCube, size, this, this._gl);\n this._renderTargetWrapperCache.push(rtWrapper);\n return rtWrapper;\n};\nThinEngine.prototype.createRenderTargetTexture = function (size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size);\n let generateDepthBuffer = true;\n let generateStencilBuffer = false;\n let noColorAttachment = false;\n let colorAttachment = undefined;\n let samples = 1;\n let label = undefined;\n if (options !== undefined && typeof options === \"object\") {\n generateDepthBuffer = options.generateDepthBuffer ?? true;\n generateStencilBuffer = !!options.generateStencilBuffer;\n noColorAttachment = !!options.noColorAttachment;\n colorAttachment = options.colorAttachment;\n samples = options.samples ?? 1;\n label = options.label;\n }\n const texture = colorAttachment || (noColorAttachment ? null : this._createInternalTexture(size, options, true, 5 /* InternalTextureSource.RenderTarget */));\n const width = size.width || size;\n const height = size.height || size;\n const currentFrameBuffer = this._currentFramebuffer;\n const gl = this._gl;\n // Create the framebuffer\n const framebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(framebuffer);\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(generateStencilBuffer, generateDepthBuffer, width, height);\n // No need to rebind on every frame\n if (texture && !texture.is2DArray && !texture.is3D) {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture.underlyingResource, 0);\n }\n this._bindUnboundFramebuffer(currentFrameBuffer);\n rtWrapper.label = label ?? \"RenderTargetWrapper\";\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = generateDepthBuffer;\n rtWrapper._generateStencilBuffer = generateStencilBuffer;\n rtWrapper.setTextures(texture);\n if (!colorAttachment) {\n this.updateRenderTargetTextureSampleCount(rtWrapper, samples);\n }\n else {\n rtWrapper._samples = colorAttachment.samples;\n if (colorAttachment.samples > 1) {\n const msaaRenderBuffer = colorAttachment._hardwareTexture.getMSAARenderBuffer(0);\n rtWrapper._MSAAFramebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, msaaRenderBuffer);\n this._bindUnboundFramebuffer(null);\n }\n }\n return rtWrapper;\n};\nThinEngine.prototype._createDepthStencilTexture = function (size, options, rtWrapper) {\n const gl = this._gl;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n let target = gl.TEXTURE_2D;\n if (layers !== 0) {\n target = gl.TEXTURE_2D_ARRAY;\n }\n else if (depth !== 0) {\n target = gl.TEXTURE_3D;\n }\n const internalTexture = new InternalTexture(this, 12 /* InternalTextureSource.DepthStencil */);\n internalTexture.label = options.label;\n if (!this._caps.depthTextureExtension) {\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\n return internalTexture;\n }\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n ...options,\n };\n this._bindTextureDirectly(target, internalTexture, true);\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.comparisonFunction === 0 ? false : internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\n if (internalOptions.depthTextureFormat !== undefined) {\n if (internalOptions.depthTextureFormat !== 15 &&\n internalOptions.depthTextureFormat !== 16 &&\n internalOptions.depthTextureFormat !== 17 &&\n internalOptions.depthTextureFormat !== 13 &&\n internalOptions.depthTextureFormat !== 14 &&\n internalOptions.depthTextureFormat !== 18) {\n Logger.Error(`Depth texture ${internalOptions.depthTextureFormat} format is not supported.`);\n return internalTexture;\n }\n internalTexture.format = internalOptions.depthTextureFormat;\n }\n else {\n internalTexture.format = internalOptions.generateStencil ? 13 : 16;\n }\n const hasStencil = internalTexture.format === 17 ||\n internalTexture.format === 13 ||\n internalTexture.format === 18;\n const type = this._getWebGLTextureTypeFromDepthTextureFormat(internalTexture.format);\n const format = hasStencil ? gl.DEPTH_STENCIL : gl.DEPTH_COMPONENT;\n const internalFormat = this._getInternalFormatFromDepthTextureFormat(internalTexture.format, true, hasStencil);\n if (internalTexture.is2DArray) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, layers, 0, format, type, null);\n }\n else if (internalTexture.is3D) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, depth, 0, format, type, null);\n }\n else {\n gl.texImage2D(target, 0, internalFormat, internalTexture.width, internalTexture.height, 0, format, type, null);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(internalTexture);\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer ?? rtWrapper._framebuffer);\n rtWrapper._generateStencilBuffer = hasStencil;\n rtWrapper._depthStencilTextureWithStencil = hasStencil;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, rtWrapper.samples, internalTexture.format);\n this._bindUnboundFramebuffer(null);\n return internalTexture;\n};\nThinEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper, samples) {\n if (this.webGLVersion < 2 || !rtWrapper) {\n return 1;\n }\n if (rtWrapper.samples === samples) {\n return samples;\n }\n const gl = this._gl;\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\n // Dispose previous render buffers\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n if (rtWrapper._MSAAFramebuffer) {\n gl.deleteFramebuffer(rtWrapper._MSAAFramebuffer);\n rtWrapper._MSAAFramebuffer = null;\n }\n const hardwareTexture = rtWrapper.texture?._hardwareTexture;\n hardwareTexture?.releaseMSAARenderBuffers();\n if (rtWrapper.texture && samples > 1 && typeof gl.renderbufferStorageMultisample === \"function\") {\n const framebuffer = gl.createFramebuffer();\n if (!framebuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n rtWrapper._MSAAFramebuffer = framebuffer;\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n const colorRenderbuffer = this._createRenderBuffer(rtWrapper.texture.width, rtWrapper.texture.height, samples, -1 /* not used */, this._getRGBABufferInternalSizedFormat(rtWrapper.texture.type, rtWrapper.texture.format, rtWrapper.texture._useSRGBBuffer), gl.COLOR_ATTACHMENT0, false);\n if (!colorRenderbuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n hardwareTexture?.addMSAARenderBuffer(colorRenderbuffer);\n }\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer ?? rtWrapper._framebuffer);\n if (rtWrapper.texture) {\n rtWrapper.texture.samples = samples;\n }\n rtWrapper._samples = samples;\n const depthFormat = rtWrapper._depthStencilTexture ? rtWrapper._depthStencilTexture.format : undefined;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, samples, depthFormat);\n this._bindUnboundFramebuffer(null);\n return samples;\n};\nThinEngine.prototype._setupDepthStencilTexture = function (internalTexture, size, bilinearFiltering, comparisonFunction, samples = 1) {\n const width = size.width ?? size;\n const height = size.height ?? size;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.is2DArray = layers > 0;\n internalTexture.depth = layers || depth;\n internalTexture.isReady = true;\n internalTexture.samples = samples;\n internalTexture.generateMipMaps = false;\n internalTexture.samplingMode = bilinearFiltering ? 2 : 1;\n internalTexture.type = 0;\n internalTexture._comparisonFunction = comparisonFunction;\n const gl = this._gl;\n const target = this._getTextureTarget(internalTexture);\n const samplingParameters = this._getSamplingParameters(internalTexture.samplingMode, false);\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, samplingParameters.mag);\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, samplingParameters.min);\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n // TEXTURE_COMPARE_FUNC/MODE are only availble in WebGL2.\n if (this.webGLVersion > 1) {\n if (comparisonFunction === 0) {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, 515);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n }\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}