1c27c836fc6fd8ced07c56063340a5b46c48d7925e72eb543e7930e65c6e047e.json 16 KB

1
  1. {"ast":null,"code":"import { Tools } from \"../../Misc/tools.js\";\n/**\n * This represents a set of one or more post processes in Babylon.\n * A post process can be used to apply a shader to a texture after it is rendered.\n * @example https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/postProcessRenderPipeline\n */\nexport class PostProcessRenderEffect {\n /**\n * Instantiates a post process render effect.\n * A post process can be used to apply a shader to a texture after it is rendered.\n * @param engine The engine the effect is tied to\n * @param name The name of the effect\n * @param getPostProcesses A function that returns a set of post processes which the effect will run in order to be run.\n * @param singleInstance False if this post process can be run on multiple cameras. (default: true)\n */\n constructor(engine, name, getPostProcesses, singleInstance) {\n this._name = name;\n this._singleInstance = singleInstance || true;\n this._getPostProcesses = getPostProcesses;\n this._cameras = {};\n this._indicesForCamera = {};\n this._postProcesses = {};\n }\n /**\n * Checks if all the post processes in the effect are supported.\n */\n get isSupported() {\n for (const index in this._postProcesses) {\n if (Object.prototype.hasOwnProperty.call(this._postProcesses, index)) {\n const pps = this._postProcesses[index];\n for (let ppIndex = 0; ppIndex < pps.length; ppIndex++) {\n if (!pps[ppIndex].isSupported) {\n return false;\n }\n }\n }\n }\n return true;\n }\n /**\n * Updates the current state of the effect\n * @internal\n */\n _update() {}\n /**\n * Attaches the effect on cameras\n * @param cameras The camera to attach to.\n * @internal\n */\n _attachCameras(cameras) {\n let cameraKey;\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n if (!camera) {\n continue;\n }\n const cameraName = camera.name;\n if (this._singleInstance) {\n cameraKey = 0;\n } else {\n cameraKey = cameraName;\n }\n if (!this._postProcesses[cameraKey]) {\n const postProcess = this._getPostProcesses();\n if (postProcess) {\n this._postProcesses[cameraKey] = Array.isArray(postProcess) ? postProcess : [postProcess];\n }\n }\n if (!this._indicesForCamera[cameraName]) {\n this._indicesForCamera[cameraName] = [];\n }\n this._postProcesses[cameraKey].forEach(postProcess => {\n const index = camera.attachPostProcess(postProcess);\n this._indicesForCamera[cameraName].push(index);\n });\n if (!this._cameras[cameraName]) {\n this._cameras[cameraName] = camera;\n }\n }\n }\n /**\n * Detaches the effect on cameras\n * @param cameras The camera to detach from.\n * @internal\n */\n _detachCameras(cameras) {\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n const cameraName = camera.name;\n const postProcesses = this._postProcesses[this._singleInstance ? 0 : cameraName];\n if (postProcesses) {\n postProcesses.forEach(postProcess => {\n camera.detachPostProcess(postProcess);\n });\n }\n if (this._cameras[cameraName]) {\n this._cameras[cameraName] = null;\n }\n delete this._indicesForCamera[cameraName];\n }\n }\n /**\n * Enables the effect on given cameras\n * @param cameras The camera to enable.\n * @internal\n */\n _enable(cameras) {\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n const cameraName = camera.name;\n const cameraKey = this._singleInstance ? 0 : cameraName;\n for (let j = 0; j < this._indicesForCamera[cameraName].length; j++) {\n const index = this._indicesForCamera[cameraName][j];\n const postProcess = camera._postProcesses[index];\n if (postProcess === undefined || postProcess === null) {\n cams[i].attachPostProcess(this._postProcesses[cameraKey][j], index);\n }\n }\n }\n }\n /**\n * Disables the effect on the given cameras\n * @param cameras The camera to disable.\n * @internal\n */\n _disable(cameras) {\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n const cameraName = camera.name;\n this._postProcesses[this._singleInstance ? 0 : cameraName].forEach(postProcess => {\n camera.detachPostProcess(postProcess);\n });\n }\n }\n /**\n * Gets a list of the post processes contained in the effect.\n * @param camera The camera to get the post processes on.\n * @returns The list of the post processes in the effect.\n */\n getPostProcesses(camera) {\n if (this._singleInstance) {\n return this._postProcesses[0];\n } else {\n if (!camera) {\n return null;\n }\n return this._postProcesses[camera.name];\n }\n }\n}","map":{"version":3,"names":["Tools","PostProcessRenderEffect","constructor","engine","name","getPostProcesses","singleInstance","_name","_singleInstance","_getPostProcesses","_cameras","_indicesForCamera","_postProcesses","isSupported","index","Object","prototype","hasOwnProperty","call","pps","ppIndex","length","_update","_attachCameras","cameras","cameraKey","cams","MakeArray","i","camera","cameraName","postProcess","Array","isArray","forEach","attachPostProcess","push","_detachCameras","postProcesses","detachPostProcess","_enable","j","undefined","_disable"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderEffect.js"],"sourcesContent":["import { Tools } from \"../../Misc/tools.js\";\n/**\n * This represents a set of one or more post processes in Babylon.\n * A post process can be used to apply a shader to a texture after it is rendered.\n * @example https://doc.babylonjs.com/features/featuresDeepDive/postProcesses/postProcessRenderPipeline\n */\nexport class PostProcessRenderEffect {\n /**\n * Instantiates a post process render effect.\n * A post process can be used to apply a shader to a texture after it is rendered.\n * @param engine The engine the effect is tied to\n * @param name The name of the effect\n * @param getPostProcesses A function that returns a set of post processes which the effect will run in order to be run.\n * @param singleInstance False if this post process can be run on multiple cameras. (default: true)\n */\n constructor(engine, name, getPostProcesses, singleInstance) {\n this._name = name;\n this._singleInstance = singleInstance || true;\n this._getPostProcesses = getPostProcesses;\n this._cameras = {};\n this._indicesForCamera = {};\n this._postProcesses = {};\n }\n /**\n * Checks if all the post processes in the effect are supported.\n */\n get isSupported() {\n for (const index in this._postProcesses) {\n if (Object.prototype.hasOwnProperty.call(this._postProcesses, index)) {\n const pps = this._postProcesses[index];\n for (let ppIndex = 0; ppIndex < pps.length; ppIndex++) {\n if (!pps[ppIndex].isSupported) {\n return false;\n }\n }\n }\n }\n return true;\n }\n /**\n * Updates the current state of the effect\n * @internal\n */\n _update() { }\n /**\n * Attaches the effect on cameras\n * @param cameras The camera to attach to.\n * @internal\n */\n _attachCameras(cameras) {\n let cameraKey;\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n if (!camera) {\n continue;\n }\n const cameraName = camera.name;\n if (this._singleInstance) {\n cameraKey = 0;\n }\n else {\n cameraKey = cameraName;\n }\n if (!this._postProcesses[cameraKey]) {\n const postProcess = this._getPostProcesses();\n if (postProcess) {\n this._postProcesses[cameraKey] = Array.isArray(postProcess) ? postProcess : [postProcess];\n }\n }\n if (!this._indicesForCamera[cameraName]) {\n this._indicesForCamera[cameraName] = [];\n }\n this._postProcesses[cameraKey].forEach((postProcess) => {\n const index = camera.attachPostProcess(postProcess);\n this._indicesForCamera[cameraName].push(index);\n });\n if (!this._cameras[cameraName]) {\n this._cameras[cameraName] = camera;\n }\n }\n }\n /**\n * Detaches the effect on cameras\n * @param cameras The camera to detach from.\n * @internal\n */\n _detachCameras(cameras) {\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n const cameraName = camera.name;\n const postProcesses = this._postProcesses[this._singleInstance ? 0 : cameraName];\n if (postProcesses) {\n postProcesses.forEach((postProcess) => {\n camera.detachPostProcess(postProcess);\n });\n }\n if (this._cameras[cameraName]) {\n this._cameras[cameraName] = null;\n }\n delete this._indicesForCamera[cameraName];\n }\n }\n /**\n * Enables the effect on given cameras\n * @param cameras The camera to enable.\n * @internal\n */\n _enable(cameras) {\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n const cameraName = camera.name;\n const cameraKey = this._singleInstance ? 0 : cameraName;\n for (let j = 0; j < this._indicesForCamera[cameraName].length; j++) {\n const index = this._indicesForCamera[cameraName][j];\n const postProcess = camera._postProcesses[index];\n if (postProcess === undefined || postProcess === null) {\n cams[i].attachPostProcess(this._postProcesses[cameraKey][j], index);\n }\n }\n }\n }\n /**\n * Disables the effect on the given cameras\n * @param cameras The camera to disable.\n * @internal\n */\n _disable(cameras) {\n const cams = Tools.MakeArray(cameras || this._cameras);\n if (!cams) {\n return;\n }\n for (let i = 0; i < cams.length; i++) {\n const camera = cams[i];\n const cameraName = camera.name;\n this._postProcesses[this._singleInstance ? 0 : cameraName].forEach((postProcess) => {\n camera.detachPostProcess(postProcess);\n });\n }\n }\n /**\n * Gets a list of the post processes contained in the effect.\n * @param camera The camera to get the post processes on.\n * @returns The list of the post processes in the effect.\n */\n getPostProcesses(camera) {\n if (this._singleInstance) {\n return this._postProcesses[0];\n }\n else {\n if (!camera) {\n return null;\n }\n return this._postProcesses[camera.name];\n }\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}