0c6b06518249c5fe877d200006578a3e3de827bfc91275d39e2bdf0056ffe96a.json 16 KB

1
  1. {"ast":null,"code":"import { Observable } from \"../../Misc/observable.js\";\nimport { AbstractEngine } from \"../abstractEngine.js\";\n/**\n * Class used to define an additional view for the engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/multiCanvas\n */\nexport class EngineView {}\nconst _onBeforeViewRenderObservable = new Observable();\nconst _onAfterViewRenderObservable = new Observable();\nObject.defineProperty(AbstractEngine.prototype, \"onBeforeViewRenderObservable\", {\n get: function () {\n return _onBeforeViewRenderObservable;\n }\n});\nObject.defineProperty(AbstractEngine.prototype, \"onAfterViewRenderObservable\", {\n get: function () {\n return _onAfterViewRenderObservable;\n }\n});\nObject.defineProperty(AbstractEngine.prototype, \"inputElement\", {\n get: function () {\n return this._inputElement;\n },\n set: function (value) {\n if (this._inputElement !== value) {\n var _this$_onEngineViewCh;\n this._inputElement = value;\n (_this$_onEngineViewCh = this._onEngineViewChanged) === null || _this$_onEngineViewCh === void 0 || _this$_onEngineViewCh.call(this);\n }\n }\n});\nAbstractEngine.prototype.getInputElement = function () {\n return this.inputElement || this.getRenderingCanvas();\n};\nAbstractEngine.prototype.registerView = function (canvas, camera, clearBeforeCopy) {\n if (!this.views) {\n this.views = [];\n }\n for (const view of this.views) {\n if (view.target === canvas) {\n return view;\n }\n }\n const masterCanvas = this.getRenderingCanvas();\n if (masterCanvas) {\n canvas.width = masterCanvas.width;\n canvas.height = masterCanvas.height;\n }\n const newView = {\n target: canvas,\n camera,\n clearBeforeCopy,\n enabled: true,\n id: (Math.random() * 100000).toFixed()\n };\n this.views.push(newView);\n if (camera && !Array.isArray(camera)) {\n camera.onDisposeObservable.add(() => {\n this.unRegisterView(canvas);\n });\n }\n return newView;\n};\nAbstractEngine.prototype.unRegisterView = function (canvas) {\n if (!this.views || this.views.length === 0) {\n return this;\n }\n for (const view of this.views) {\n if (view.target === canvas) {\n const index = this.views.indexOf(view);\n if (index !== -1) {\n this.views.splice(index, 1);\n }\n break;\n }\n }\n return this;\n};\nAbstractEngine.prototype._renderViewStep = function (view) {\n const canvas = view.target;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return true;\n }\n const parent = this.getRenderingCanvas();\n _onBeforeViewRenderObservable.notifyObservers(view);\n const camera = view.camera;\n let previewCamera = null;\n let previewCameras = null;\n let scene = null;\n if (camera) {\n scene = Array.isArray(camera) ? camera[0].getScene() : camera.getScene();\n previewCamera = scene.activeCamera;\n previewCameras = scene.activeCameras;\n if (Array.isArray(camera)) {\n scene.activeCameras = camera;\n } else {\n scene.activeCamera = camera;\n scene.activeCameras = null;\n }\n }\n this.activeView = view;\n if (view.customResize) {\n view.customResize(canvas);\n } else {\n // Set sizes\n const width = Math.floor(canvas.clientWidth / this._hardwareScalingLevel);\n const height = Math.floor(canvas.clientHeight / this._hardwareScalingLevel);\n const dimsChanged = width !== canvas.width || parent.width !== canvas.width || height !== canvas.height || parent.height !== canvas.height;\n if (canvas.clientWidth && canvas.clientHeight && dimsChanged) {\n canvas.width = width;\n canvas.height = height;\n this.setSize(width, height);\n }\n }\n if (!parent.width || !parent.height) {\n return false;\n }\n // Render the frame\n this._renderFrame();\n this.flushFramebuffer();\n // Copy to target\n if (view.clearBeforeCopy) {\n context.clearRect(0, 0, parent.width, parent.height);\n }\n context.drawImage(parent, 0, 0);\n // Restore\n if (scene) {\n scene.activeCameras = previewCameras;\n scene.activeCamera = previewCamera;\n }\n _onAfterViewRenderObservable.notifyObservers(view);\n return true;\n};\nAbstractEngine.prototype._renderViews = function () {\n if (!this.views || this.views.length === 0) {\n return false;\n }\n const parent = this.getRenderingCanvas();\n if (!parent) {\n return false;\n }\n let inputElementView;\n for (const view of this.views) {\n if (!view.enabled) {\n continue;\n }\n const canvas = view.target;\n // Always render the view correspondent to the inputElement for last\n if (canvas === this.inputElement) {\n inputElementView = view;\n continue;\n }\n if (!this._renderViewStep(view)) {\n return false;\n }\n }\n if (inputElementView) {\n if (!this._renderViewStep(inputElementView)) {\n return false;\n }\n }\n this.activeView = null;\n return true;\n};","map":{"version":3,"names":["Observable","AbstractEngine","EngineView","_onBeforeViewRenderObservable","_onAfterViewRenderObservable","Object","defineProperty","prototype","get","_inputElement","set","value","_this$_onEngineViewCh","_onEngineViewChanged","call","getInputElement","inputElement","getRenderingCanvas","registerView","canvas","camera","clearBeforeCopy","views","view","target","masterCanvas","width","height","newView","enabled","id","Math","random","toFixed","push","Array","isArray","onDisposeObservable","add","unRegisterView","length","index","indexOf","splice","_renderViewStep","context","getContext","parent","notifyObservers","previewCamera","previewCameras","scene","getScene","activeCamera","activeCameras","activeView","customResize","floor","clientWidth","_hardwareScalingLevel","clientHeight","dimsChanged","setSize","_renderFrame","flushFramebuffer","clearRect","drawImage","_renderViews","inputElementView"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Engines/AbstractEngine/abstractEngine.views.js"],"sourcesContent":["import { Observable } from \"../../Misc/observable.js\";\nimport { AbstractEngine } from \"../abstractEngine.js\";\n/**\n * Class used to define an additional view for the engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/multiCanvas\n */\nexport class EngineView {\n}\nconst _onBeforeViewRenderObservable = new Observable();\nconst _onAfterViewRenderObservable = new Observable();\nObject.defineProperty(AbstractEngine.prototype, \"onBeforeViewRenderObservable\", {\n get: function () {\n return _onBeforeViewRenderObservable;\n },\n});\nObject.defineProperty(AbstractEngine.prototype, \"onAfterViewRenderObservable\", {\n get: function () {\n return _onAfterViewRenderObservable;\n },\n});\nObject.defineProperty(AbstractEngine.prototype, \"inputElement\", {\n get: function () {\n return this._inputElement;\n },\n set: function (value) {\n if (this._inputElement !== value) {\n this._inputElement = value;\n this._onEngineViewChanged?.();\n }\n },\n});\nAbstractEngine.prototype.getInputElement = function () {\n return this.inputElement || this.getRenderingCanvas();\n};\nAbstractEngine.prototype.registerView = function (canvas, camera, clearBeforeCopy) {\n if (!this.views) {\n this.views = [];\n }\n for (const view of this.views) {\n if (view.target === canvas) {\n return view;\n }\n }\n const masterCanvas = this.getRenderingCanvas();\n if (masterCanvas) {\n canvas.width = masterCanvas.width;\n canvas.height = masterCanvas.height;\n }\n const newView = { target: canvas, camera, clearBeforeCopy, enabled: true, id: (Math.random() * 100000).toFixed() };\n this.views.push(newView);\n if (camera && !Array.isArray(camera)) {\n camera.onDisposeObservable.add(() => {\n this.unRegisterView(canvas);\n });\n }\n return newView;\n};\nAbstractEngine.prototype.unRegisterView = function (canvas) {\n if (!this.views || this.views.length === 0) {\n return this;\n }\n for (const view of this.views) {\n if (view.target === canvas) {\n const index = this.views.indexOf(view);\n if (index !== -1) {\n this.views.splice(index, 1);\n }\n break;\n }\n }\n return this;\n};\nAbstractEngine.prototype._renderViewStep = function (view) {\n const canvas = view.target;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return true;\n }\n const parent = this.getRenderingCanvas();\n _onBeforeViewRenderObservable.notifyObservers(view);\n const camera = view.camera;\n let previewCamera = null;\n let previewCameras = null;\n let scene = null;\n if (camera) {\n scene = Array.isArray(camera) ? camera[0].getScene() : camera.getScene();\n previewCamera = scene.activeCamera;\n previewCameras = scene.activeCameras;\n if (Array.isArray(camera)) {\n scene.activeCameras = camera;\n }\n else {\n scene.activeCamera = camera;\n scene.activeCameras = null;\n }\n }\n this.activeView = view;\n if (view.customResize) {\n view.customResize(canvas);\n }\n else {\n // Set sizes\n const width = Math.floor(canvas.clientWidth / this._hardwareScalingLevel);\n const height = Math.floor(canvas.clientHeight / this._hardwareScalingLevel);\n const dimsChanged = width !== canvas.width || parent.width !== canvas.width || height !== canvas.height || parent.height !== canvas.height;\n if (canvas.clientWidth && canvas.clientHeight && dimsChanged) {\n canvas.width = width;\n canvas.height = height;\n this.setSize(width, height);\n }\n }\n if (!parent.width || !parent.height) {\n return false;\n }\n // Render the frame\n this._renderFrame();\n this.flushFramebuffer();\n // Copy to target\n if (view.clearBeforeCopy) {\n context.clearRect(0, 0, parent.width, parent.height);\n }\n context.drawImage(parent, 0, 0);\n // Restore\n if (scene) {\n scene.activeCameras = previewCameras;\n scene.activeCamera = previewCamera;\n }\n _onAfterViewRenderObservable.notifyObservers(view);\n return true;\n};\nAbstractEngine.prototype._renderViews = function () {\n if (!this.views || this.views.length === 0) {\n return false;\n }\n const parent = this.getRenderingCanvas();\n if (!parent) {\n return false;\n }\n let inputElementView;\n for (const view of this.views) {\n if (!view.enabled) {\n continue;\n }\n const canvas = view.target;\n // Always render the view correspondent to the inputElement for last\n if (canvas === this.inputElement) {\n inputElementView = view;\n continue;\n }\n if (!this._renderViewStep(view)) {\n return false;\n }\n }\n if (inputElementView) {\n if (!this._renderViewStep(inputElementView)) {\n return false;\n }\n }\n this.activeView = null;\n return true;\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}