1 |
- {"ast":null,"code":"import { Engine } from \"../../Engines/engine.js\";\nimport { AbstractMesh } from \"../../Meshes/abstractMesh.js\";\nimport { _TimeToken } from \"../../Instrumentation/timeToken.js\";\nimport { PerfCounter } from \"../../Misc/perfCounter.js\";\nimport \"../AbstractEngine/abstractEngine.query.js\";\nEngine.prototype.createQuery = function () {\n const query = this._gl.createQuery();\n if (!query) {\n throw new Error(\"Unable to create Occlusion Query\");\n }\n return query;\n};\nEngine.prototype.deleteQuery = function (query) {\n this._gl.deleteQuery(query);\n return this;\n};\nEngine.prototype.isQueryResultAvailable = function (query) {\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT_AVAILABLE);\n};\nEngine.prototype.getQueryResult = function (query) {\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT);\n};\nEngine.prototype.beginOcclusionQuery = function (algorithmType, query) {\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\n this._gl.beginQuery(glAlgorithm, query);\n return true;\n};\nEngine.prototype.endOcclusionQuery = function (algorithmType) {\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\n this._gl.endQuery(glAlgorithm);\n return this;\n};\nEngine.prototype._createTimeQuery = function () {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.createQueryEXT) {\n return timerQuery.createQueryEXT();\n }\n return this.createQuery();\n};\nEngine.prototype._deleteTimeQuery = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.deleteQueryEXT) {\n timerQuery.deleteQueryEXT(query);\n return;\n }\n this.deleteQuery(query);\n};\nEngine.prototype._getTimeQueryResult = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.getQueryObjectEXT) {\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_EXT);\n }\n return this.getQueryResult(query);\n};\nEngine.prototype._getTimeQueryAvailability = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.getQueryObjectEXT) {\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_AVAILABLE_EXT);\n }\n return this.isQueryResultAvailable(query);\n};\nEngine.prototype.startTimeQuery = function () {\n const caps = this.getCaps();\n const timerQuery = caps.timerQuery;\n if (!timerQuery) {\n return null;\n }\n const token = new _TimeToken();\n this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\n if (caps.canUseTimestampForTimerQuery) {\n token._startTimeQuery = this._createTimeQuery();\n if (token._startTimeQuery) {\n timerQuery.queryCounterEXT(token._startTimeQuery, timerQuery.TIMESTAMP_EXT);\n }\n } else {\n if (this._currentNonTimestampToken) {\n return this._currentNonTimestampToken;\n }\n token._timeElapsedQuery = this._createTimeQuery();\n if (token._timeElapsedQuery) {\n if (timerQuery.beginQueryEXT) {\n timerQuery.beginQueryEXT(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\n } else {\n this._gl.beginQuery(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\n }\n }\n this._currentNonTimestampToken = token;\n }\n return token;\n};\nEngine.prototype.endTimeQuery = function (token) {\n const caps = this.getCaps();\n const timerQuery = caps.timerQuery;\n if (!timerQuery || !token) {\n return -1;\n }\n if (caps.canUseTimestampForTimerQuery) {\n if (!token._startTimeQuery) {\n return -1;\n }\n if (!token._endTimeQuery) {\n token._endTimeQuery = this._createTimeQuery();\n if (token._endTimeQuery) {\n timerQuery.queryCounterEXT(token._endTimeQuery, timerQuery.TIMESTAMP_EXT);\n }\n }\n } else if (!token._timeElapsedQueryEnded) {\n if (!token._timeElapsedQuery) {\n return -1;\n }\n if (timerQuery.endQueryEXT) {\n timerQuery.endQueryEXT(timerQuery.TIME_ELAPSED_EXT);\n } else {\n this._gl.endQuery(timerQuery.TIME_ELAPSED_EXT);\n this._currentNonTimestampToken = null;\n }\n token._timeElapsedQueryEnded = true;\n }\n const disjoint = this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\n let available = false;\n if (token._endTimeQuery) {\n available = this._getTimeQueryAvailability(token._endTimeQuery);\n } else if (token._timeElapsedQuery) {\n available = this._getTimeQueryAvailability(token._timeElapsedQuery);\n }\n if (available && !disjoint) {\n let result = 0;\n if (caps.canUseTimestampForTimerQuery) {\n if (!token._startTimeQuery || !token._endTimeQuery) {\n return -1;\n }\n const timeStart = this._getTimeQueryResult(token._startTimeQuery);\n const timeEnd = this._getTimeQueryResult(token._endTimeQuery);\n result = timeEnd - timeStart;\n this._deleteTimeQuery(token._startTimeQuery);\n this._deleteTimeQuery(token._endTimeQuery);\n token._startTimeQuery = null;\n token._endTimeQuery = null;\n } else {\n if (!token._timeElapsedQuery) {\n return -1;\n }\n result = this._getTimeQueryResult(token._timeElapsedQuery);\n this._deleteTimeQuery(token._timeElapsedQuery);\n token._timeElapsedQuery = null;\n token._timeElapsedQueryEnded = false;\n }\n return result;\n }\n return -1;\n};\nEngine.prototype._captureGPUFrameTime = false;\nEngine.prototype._gpuFrameTime = new PerfCounter();\nEngine.prototype.getGPUFrameTimeCounter = function () {\n return this._gpuFrameTime;\n};\nEngine.prototype.captureGPUFrameTime = function (value) {\n if (value === this._captureGPUFrameTime) {\n return;\n }\n this._captureGPUFrameTime = value;\n if (value) {\n this._onBeginFrameObserver = this.onBeginFrameObservable.add(() => {\n if (!this._gpuFrameTimeToken) {\n this._gpuFrameTimeToken = this.startTimeQuery();\n }\n });\n this._onEndFrameObserver = this.onEndFrameObservable.add(() => {\n if (!this._gpuFrameTimeToken) {\n return;\n }\n const time = this.endTimeQuery(this._gpuFrameTimeToken);\n if (time > -1) {\n this._gpuFrameTimeToken = null;\n this._gpuFrameTime.fetchNewFrame();\n this._gpuFrameTime.addCount(time, true);\n }\n });\n } else {\n this.onBeginFrameObservable.remove(this._onBeginFrameObserver);\n this._onBeginFrameObserver = null;\n this.onEndFrameObservable.remove(this._onEndFrameObserver);\n this._onEndFrameObserver = null;\n }\n};\nEngine.prototype._getGlAlgorithmType = function (algorithmType) {\n return algorithmType === AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED;\n};","map":{"version":3,"names":["Engine","AbstractMesh","_TimeToken","PerfCounter","prototype","createQuery","query","_gl","Error","deleteQuery","isQueryResultAvailable","getQueryParameter","QUERY_RESULT_AVAILABLE","getQueryResult","QUERY_RESULT","beginOcclusionQuery","algorithmType","glAlgorithm","_getGlAlgorithmType","beginQuery","endOcclusionQuery","endQuery","_createTimeQuery","timerQuery","getCaps","createQueryEXT","_deleteTimeQuery","deleteQueryEXT","_getTimeQueryResult","getQueryObjectEXT","QUERY_RESULT_EXT","_getTimeQueryAvailability","QUERY_RESULT_AVAILABLE_EXT","startTimeQuery","caps","token","getParameter","GPU_DISJOINT_EXT","canUseTimestampForTimerQuery","_startTimeQuery","queryCounterEXT","TIMESTAMP_EXT","_currentNonTimestampToken","_timeElapsedQuery","beginQueryEXT","TIME_ELAPSED_EXT","endTimeQuery","_endTimeQuery","_timeElapsedQueryEnded","endQueryEXT","disjoint","available","result","timeStart","timeEnd","_captureGPUFrameTime","_gpuFrameTime","getGPUFrameTimeCounter","captureGPUFrameTime","value","_onBeginFrameObserver","onBeginFrameObservable","add","_gpuFrameTimeToken","_onEndFrameObserver","onEndFrameObservable","time","fetchNewFrame","addCount","remove","OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE","ANY_SAMPLES_PASSED_CONSERVATIVE","ANY_SAMPLES_PASSED"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Engines/Extensions/engine.query.js"],"sourcesContent":["import { Engine } from \"../../Engines/engine.js\";\nimport { AbstractMesh } from \"../../Meshes/abstractMesh.js\";\nimport { _TimeToken } from \"../../Instrumentation/timeToken.js\";\nimport { PerfCounter } from \"../../Misc/perfCounter.js\";\nimport \"../AbstractEngine/abstractEngine.query.js\";\nEngine.prototype.createQuery = function () {\n const query = this._gl.createQuery();\n if (!query) {\n throw new Error(\"Unable to create Occlusion Query\");\n }\n return query;\n};\nEngine.prototype.deleteQuery = function (query) {\n this._gl.deleteQuery(query);\n return this;\n};\nEngine.prototype.isQueryResultAvailable = function (query) {\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT_AVAILABLE);\n};\nEngine.prototype.getQueryResult = function (query) {\n return this._gl.getQueryParameter(query, this._gl.QUERY_RESULT);\n};\nEngine.prototype.beginOcclusionQuery = function (algorithmType, query) {\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\n this._gl.beginQuery(glAlgorithm, query);\n return true;\n};\nEngine.prototype.endOcclusionQuery = function (algorithmType) {\n const glAlgorithm = this._getGlAlgorithmType(algorithmType);\n this._gl.endQuery(glAlgorithm);\n return this;\n};\nEngine.prototype._createTimeQuery = function () {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.createQueryEXT) {\n return timerQuery.createQueryEXT();\n }\n return this.createQuery();\n};\nEngine.prototype._deleteTimeQuery = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.deleteQueryEXT) {\n timerQuery.deleteQueryEXT(query);\n return;\n }\n this.deleteQuery(query);\n};\nEngine.prototype._getTimeQueryResult = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.getQueryObjectEXT) {\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_EXT);\n }\n return this.getQueryResult(query);\n};\nEngine.prototype._getTimeQueryAvailability = function (query) {\n const timerQuery = this.getCaps().timerQuery;\n if (timerQuery.getQueryObjectEXT) {\n return timerQuery.getQueryObjectEXT(query, timerQuery.QUERY_RESULT_AVAILABLE_EXT);\n }\n return this.isQueryResultAvailable(query);\n};\nEngine.prototype.startTimeQuery = function () {\n const caps = this.getCaps();\n const timerQuery = caps.timerQuery;\n if (!timerQuery) {\n return null;\n }\n const token = new _TimeToken();\n this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\n if (caps.canUseTimestampForTimerQuery) {\n token._startTimeQuery = this._createTimeQuery();\n if (token._startTimeQuery) {\n timerQuery.queryCounterEXT(token._startTimeQuery, timerQuery.TIMESTAMP_EXT);\n }\n }\n else {\n if (this._currentNonTimestampToken) {\n return this._currentNonTimestampToken;\n }\n token._timeElapsedQuery = this._createTimeQuery();\n if (token._timeElapsedQuery) {\n if (timerQuery.beginQueryEXT) {\n timerQuery.beginQueryEXT(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\n }\n else {\n this._gl.beginQuery(timerQuery.TIME_ELAPSED_EXT, token._timeElapsedQuery);\n }\n }\n this._currentNonTimestampToken = token;\n }\n return token;\n};\nEngine.prototype.endTimeQuery = function (token) {\n const caps = this.getCaps();\n const timerQuery = caps.timerQuery;\n if (!timerQuery || !token) {\n return -1;\n }\n if (caps.canUseTimestampForTimerQuery) {\n if (!token._startTimeQuery) {\n return -1;\n }\n if (!token._endTimeQuery) {\n token._endTimeQuery = this._createTimeQuery();\n if (token._endTimeQuery) {\n timerQuery.queryCounterEXT(token._endTimeQuery, timerQuery.TIMESTAMP_EXT);\n }\n }\n }\n else if (!token._timeElapsedQueryEnded) {\n if (!token._timeElapsedQuery) {\n return -1;\n }\n if (timerQuery.endQueryEXT) {\n timerQuery.endQueryEXT(timerQuery.TIME_ELAPSED_EXT);\n }\n else {\n this._gl.endQuery(timerQuery.TIME_ELAPSED_EXT);\n this._currentNonTimestampToken = null;\n }\n token._timeElapsedQueryEnded = true;\n }\n const disjoint = this._gl.getParameter(timerQuery.GPU_DISJOINT_EXT);\n let available = false;\n if (token._endTimeQuery) {\n available = this._getTimeQueryAvailability(token._endTimeQuery);\n }\n else if (token._timeElapsedQuery) {\n available = this._getTimeQueryAvailability(token._timeElapsedQuery);\n }\n if (available && !disjoint) {\n let result = 0;\n if (caps.canUseTimestampForTimerQuery) {\n if (!token._startTimeQuery || !token._endTimeQuery) {\n return -1;\n }\n const timeStart = this._getTimeQueryResult(token._startTimeQuery);\n const timeEnd = this._getTimeQueryResult(token._endTimeQuery);\n result = timeEnd - timeStart;\n this._deleteTimeQuery(token._startTimeQuery);\n this._deleteTimeQuery(token._endTimeQuery);\n token._startTimeQuery = null;\n token._endTimeQuery = null;\n }\n else {\n if (!token._timeElapsedQuery) {\n return -1;\n }\n result = this._getTimeQueryResult(token._timeElapsedQuery);\n this._deleteTimeQuery(token._timeElapsedQuery);\n token._timeElapsedQuery = null;\n token._timeElapsedQueryEnded = false;\n }\n return result;\n }\n return -1;\n};\nEngine.prototype._captureGPUFrameTime = false;\nEngine.prototype._gpuFrameTime = new PerfCounter();\nEngine.prototype.getGPUFrameTimeCounter = function () {\n return this._gpuFrameTime;\n};\nEngine.prototype.captureGPUFrameTime = function (value) {\n if (value === this._captureGPUFrameTime) {\n return;\n }\n this._captureGPUFrameTime = value;\n if (value) {\n this._onBeginFrameObserver = this.onBeginFrameObservable.add(() => {\n if (!this._gpuFrameTimeToken) {\n this._gpuFrameTimeToken = this.startTimeQuery();\n }\n });\n this._onEndFrameObserver = this.onEndFrameObservable.add(() => {\n if (!this._gpuFrameTimeToken) {\n return;\n }\n const time = this.endTimeQuery(this._gpuFrameTimeToken);\n if (time > -1) {\n this._gpuFrameTimeToken = null;\n this._gpuFrameTime.fetchNewFrame();\n this._gpuFrameTime.addCount(time, true);\n }\n });\n }\n else {\n this.onBeginFrameObservable.remove(this._onBeginFrameObserver);\n this._onBeginFrameObserver = null;\n this.onEndFrameObservable.remove(this._onEndFrameObserver);\n this._onEndFrameObserver = null;\n }\n};\nEngine.prototype._getGlAlgorithmType = function (algorithmType) {\n return algorithmType === AbstractMesh.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE ? this._gl.ANY_SAMPLES_PASSED_CONSERVATIVE : this._gl.ANY_SAMPLES_PASSED;\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|