{"ast":null,"code":"import { WebGLHardwareTexture } from \"../Engines/WebGL/webGLHardwareTexture.js\";\nimport { InternalTexture } from \"../Materials/Textures/internalTexture.js\";\nimport { MultiviewRenderTarget } from \"../Materials/Textures/MultiviewRenderTarget.js\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.js\";\n/**\n * Provides render target textures and other important rendering information for a given XRLayer.\n * @internal\n */\nexport class WebXRLayerRenderTargetTextureProvider {\n constructor(_scene, layerWrapper) {\n this._scene = _scene;\n this.layerWrapper = layerWrapper;\n this._renderTargetTextures = new Array();\n this._engine = _scene.getEngine();\n }\n _createInternalTexture(textureSize, texture) {\n const internalTexture = new InternalTexture(this._engine, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture.width = textureSize.width;\n internalTexture.height = textureSize.height;\n internalTexture._hardwareTexture = new WebGLHardwareTexture(texture, this._engine._gl);\n internalTexture.isReady = true;\n return internalTexture;\n }\n _createRenderTargetTexture(width, height, framebuffer, colorTexture, depthStencilTexture, multiview) {\n if (!this._engine) {\n throw new Error(\"Engine is disposed\");\n }\n const textureSize = {\n width,\n height\n };\n // Create render target texture from the internal texture\n const renderTargetTexture = multiview ? new MultiviewRenderTarget(this._scene, textureSize) : new RenderTargetTexture(\"XR renderTargetTexture\", textureSize, this._scene);\n const renderTargetWrapper = renderTargetTexture.renderTarget;\n renderTargetWrapper._samples = renderTargetTexture.samples;\n // Set the framebuffer, make sure it works in all scenarios - emulator, no layers and layers\n if (framebuffer || !colorTexture) {\n renderTargetWrapper._framebuffer = framebuffer;\n }\n // Create internal texture\n if (colorTexture) {\n if (multiview) {\n renderTargetWrapper._colorTextureArray = colorTexture;\n } else {\n const internalTexture = this._createInternalTexture(textureSize, colorTexture);\n renderTargetWrapper.setTexture(internalTexture, 0);\n renderTargetTexture._texture = internalTexture;\n }\n }\n if (depthStencilTexture) {\n if (multiview) {\n renderTargetWrapper._depthStencilTextureArray = depthStencilTexture;\n } else {\n renderTargetWrapper._depthStencilTexture = this._createInternalTexture(textureSize, depthStencilTexture);\n }\n }\n renderTargetTexture.disableRescaling();\n this._renderTargetTextures.push(renderTargetTexture);\n return renderTargetTexture;\n }\n _destroyRenderTargetTexture(renderTargetTexture) {\n this._renderTargetTextures.splice(this._renderTargetTextures.indexOf(renderTargetTexture), 1);\n renderTargetTexture.dispose();\n }\n getFramebufferDimensions() {\n return this._framebufferDimensions;\n }\n dispose() {\n this._renderTargetTextures.forEach(rtt => rtt.dispose());\n this._renderTargetTextures.length = 0;\n }\n}","map":{"version":3,"names":["WebGLHardwareTexture","InternalTexture","MultiviewRenderTarget","RenderTargetTexture","WebXRLayerRenderTargetTextureProvider","constructor","_scene","layerWrapper","_renderTargetTextures","Array","_engine","getEngine","_createInternalTexture","textureSize","texture","internalTexture","width","height","_hardwareTexture","_gl","isReady","_createRenderTargetTexture","framebuffer","colorTexture","depthStencilTexture","multiview","Error","renderTargetTexture","renderTargetWrapper","renderTarget","_samples","samples","_framebuffer","_colorTextureArray","setTexture","_texture","_depthStencilTextureArray","_depthStencilTexture","disableRescaling","push","_destroyRenderTargetTexture","splice","indexOf","dispose","getFramebufferDimensions","_framebufferDimensions","forEach","rtt","length"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/XR/webXRRenderTargetTextureProvider.js"],"sourcesContent":["import { WebGLHardwareTexture } from \"../Engines/WebGL/webGLHardwareTexture.js\";\nimport { InternalTexture } from \"../Materials/Textures/internalTexture.js\";\nimport { MultiviewRenderTarget } from \"../Materials/Textures/MultiviewRenderTarget.js\";\nimport { RenderTargetTexture } from \"../Materials/Textures/renderTargetTexture.js\";\n/**\n * Provides render target textures and other important rendering information for a given XRLayer.\n * @internal\n */\nexport class WebXRLayerRenderTargetTextureProvider {\n constructor(_scene, layerWrapper) {\n this._scene = _scene;\n this.layerWrapper = layerWrapper;\n this._renderTargetTextures = new Array();\n this._engine = _scene.getEngine();\n }\n _createInternalTexture(textureSize, texture) {\n const internalTexture = new InternalTexture(this._engine, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture.width = textureSize.width;\n internalTexture.height = textureSize.height;\n internalTexture._hardwareTexture = new WebGLHardwareTexture(texture, this._engine._gl);\n internalTexture.isReady = true;\n return internalTexture;\n }\n _createRenderTargetTexture(width, height, framebuffer, colorTexture, depthStencilTexture, multiview) {\n if (!this._engine) {\n throw new Error(\"Engine is disposed\");\n }\n const textureSize = { width, height };\n // Create render target texture from the internal texture\n const renderTargetTexture = multiview ? new MultiviewRenderTarget(this._scene, textureSize) : new RenderTargetTexture(\"XR renderTargetTexture\", textureSize, this._scene);\n const renderTargetWrapper = renderTargetTexture.renderTarget;\n renderTargetWrapper._samples = renderTargetTexture.samples;\n // Set the framebuffer, make sure it works in all scenarios - emulator, no layers and layers\n if (framebuffer || !colorTexture) {\n renderTargetWrapper._framebuffer = framebuffer;\n }\n // Create internal texture\n if (colorTexture) {\n if (multiview) {\n renderTargetWrapper._colorTextureArray = colorTexture;\n }\n else {\n const internalTexture = this._createInternalTexture(textureSize, colorTexture);\n renderTargetWrapper.setTexture(internalTexture, 0);\n renderTargetTexture._texture = internalTexture;\n }\n }\n if (depthStencilTexture) {\n if (multiview) {\n renderTargetWrapper._depthStencilTextureArray = depthStencilTexture;\n }\n else {\n renderTargetWrapper._depthStencilTexture = this._createInternalTexture(textureSize, depthStencilTexture);\n }\n }\n renderTargetTexture.disableRescaling();\n this._renderTargetTextures.push(renderTargetTexture);\n return renderTargetTexture;\n }\n _destroyRenderTargetTexture(renderTargetTexture) {\n this._renderTargetTextures.splice(this._renderTargetTextures.indexOf(renderTargetTexture), 1);\n renderTargetTexture.dispose();\n }\n getFramebufferDimensions() {\n return this._framebufferDimensions;\n }\n dispose() {\n this._renderTargetTextures.forEach((rtt) => rtt.dispose());\n this._renderTargetTextures.length = 0;\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}