@babylonjs/core 7.52.2 → 7.52.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AudioV2/abstractAudio/abstractAudioBus.d.ts +11 -0
- package/AudioV2/abstractAudio/abstractAudioBus.js +10 -0
- package/AudioV2/abstractAudio/abstractAudioBus.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSound.d.ts +10 -3
- package/AudioV2/abstractAudio/abstractSound.js +10 -0
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/audioBus.d.ts +4 -4
- package/AudioV2/abstractAudio/audioBus.js.map +1 -1
- package/AudioV2/abstractAudio/mainAudioBus.d.ts +2 -2
- package/AudioV2/abstractAudio/mainAudioBus.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.d.ts +5 -5
- package/AudioV2/abstractAudio/staticSound.js +3 -3
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/streamingSound.d.ts +1 -1
- package/AudioV2/abstractAudio/streamingSound.js +1 -1
- package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
- package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.d.ts +30 -6
- package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.js +44 -21
- package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.js.map +1 -1
- package/AudioV2/abstractAudio/subNodes/audioAnalyzerSubNode.d.ts +24 -0
- package/AudioV2/abstractAudio/subNodes/audioAnalyzerSubNode.js +30 -0
- package/AudioV2/abstractAudio/subNodes/audioAnalyzerSubNode.js.map +1 -0
- package/AudioV2/abstractAudio/subNodes/audioSubNode.d.ts +1 -0
- package/AudioV2/abstractAudio/subNodes/audioSubNode.js +1 -0
- package/AudioV2/abstractAudio/subNodes/audioSubNode.js.map +1 -1
- package/AudioV2/abstractAudio/subNodes/stereoAudioSubNode.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.d.ts +86 -0
- package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.js +29 -0
- package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.js.map +1 -0
- package/AudioV2/abstractAudio/subProperties/audioAnalyzer.d.ts +35 -0
- package/AudioV2/abstractAudio/subProperties/audioAnalyzer.js +96 -0
- package/AudioV2/abstractAudio/subProperties/audioAnalyzer.js.map +1 -0
- package/AudioV2/abstractAudio/subProperties/index.d.ts +1 -0
- package/AudioV2/abstractAudio/subProperties/index.js +1 -0
- package/AudioV2/abstractAudio/subProperties/index.js.map +1 -1
- package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.d.ts +37 -0
- package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js +85 -0
- package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js.map +1 -0
- package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.d.ts +5 -3
- package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.js +25 -2
- package/AudioV2/webAudio/subNodes/webAudioBaseSubGraph.js.map +1 -1
- package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.d.ts +2 -1
- package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js +32 -17
- package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.d.ts +0 -1
- package/Engines/WebGPU/webgpuTextureManager.js +2 -57
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/abstractEngine.d.ts +6 -0
- package/Engines/abstractEngine.js +3 -3
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/engine.common.js +4 -0
- package/Engines/engine.common.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -0
- package/Engines/nativeEngine.js +3 -0
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.d.ts +1 -0
- package/Engines/nullEngine.js +1 -0
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +1 -0
- package/Engines/thinEngine.js +7 -4
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +2 -1
- package/Engines/webgpuEngine.js +12 -9
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphDataSwitchBlock.d.ts +48 -0
- package/FlowGraph/Blocks/Data/flowGraphDataSwitchBlock.js +54 -0
- package/FlowGraph/Blocks/Data/flowGraphDataSwitchBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/index.d.ts +1 -0
- package/FlowGraph/Blocks/Data/index.js +1 -0
- package/FlowGraph/Blocks/Data/index.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +1 -0
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +19 -13
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +3 -5
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js +2 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +1 -2
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockFactory.js +2 -0
- package/FlowGraph/Blocks/flowGraphBlockFactory.js.map +1 -1
- package/FlowGraph/Blocks/flowGraphBlockNames.d.ts +2 -1
- package/FlowGraph/Blocks/flowGraphBlockNames.js +1 -0
- package/FlowGraph/Blocks/flowGraphBlockNames.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphInteger.d.ts +1 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.js +3 -0
- package/FlowGraph/CustomTypes/flowGraphInteger.js.map +1 -1
- package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +2 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js +6 -0
- package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
- package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -0
- package/FlowGraph/flowGraphExecutionBlock.js +4 -0
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
- package/FlowGraph/utils.d.ts +2 -1
- package/FlowGraph/utils.js +7 -2
- package/FlowGraph/utils.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js +2 -2
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.d.ts +126 -0
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js +497 -0
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +6 -0
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +30 -4
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/index.d.ts +1 -0
- package/FrameGraph/Node/Blocks/index.js +1 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/bloomTask.d.ts +2 -3
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js +3 -4
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/blurTask.js +2 -2
- package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.d.ts +2 -3
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js +4 -5
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.d.ts +6 -0
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +14 -0
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.d.ts +11 -0
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +18 -0
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.d.ts +76 -0
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js +170 -0
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssrTask.d.ts +16 -0
- package/FrameGraph/Tasks/PostProcesses/ssrTask.js +45 -0
- package/FrameGraph/Tasks/PostProcesses/ssrTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +10 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +29 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/frameGraph.d.ts +7 -3
- package/FrameGraph/frameGraph.js +10 -4
- package/FrameGraph/frameGraph.js.map +1 -1
- package/FrameGraph/frameGraphTextureManager.d.ts +2 -1
- package/FrameGraph/frameGraphTextureManager.js +4 -3
- package/FrameGraph/frameGraphTextureManager.js.map +1 -1
- package/FrameGraph/index.d.ts +1 -0
- package/FrameGraph/index.js +1 -0
- package/FrameGraph/index.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +1 -1
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/effectRenderer.js +1 -1
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/material.js +5 -3
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.geometryrendering.d.ts +7 -5
- package/Materials/materialHelper.geometryrendering.js +8 -3
- package/Materials/materialHelper.geometryrendering.js.map +1 -1
- package/Materials/standardMaterial.js +1 -1
- package/Materials/standardMaterial.js.map +1 -1
- package/Meshes/geometry.js +4 -0
- package/Meshes/geometry.js.map +1 -1
- package/Particles/particleSystemComponent.d.ts +2 -1
- package/Particles/particleSystemComponent.js +2 -2
- package/Particles/particleSystemComponent.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.d.ts +23 -30
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +226 -411
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.d.ts +222 -0
- package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +373 -0
- package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -0
- package/PostProcesses/thinDepthOfFieldEffect.d.ts +4 -4
- package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
- package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +41 -0
- package/PostProcesses/thinSSRBlurCombinerPostProcess.js +185 -0
- package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -0
- package/PostProcesses/thinSSRBlurPostProcess.d.ts +18 -0
- package/PostProcesses/thinSSRBlurPostProcess.js +47 -0
- package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -0
- package/PostProcesses/thinSSRPostProcess.d.ts +94 -0
- package/PostProcesses/thinSSRPostProcess.js +416 -0
- package/PostProcesses/thinSSRPostProcess.js.map +1 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +2 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +2 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/iblCdfGenerator.js +1 -1
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js +13 -2
- package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
- package/ShadersWGSL/geometry.fragment.js +1 -1
- package/ShadersWGSL/geometry.fragment.js.map +1 -1
- package/ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js +13 -2
- package/ShadersWGSL/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
- package/package.json +1 -1
package/Engines/engine.common.js
CHANGED
|
@@ -54,6 +54,10 @@ export function _CommonInit(commonEngine, canvas, creationOptions) {
|
|
|
54
54
|
if (!creationOptions.doNotHandleTouchAction) {
|
|
55
55
|
_DisableTouchAction(canvas);
|
|
56
56
|
}
|
|
57
|
+
// Create Audio Engine if needed.
|
|
58
|
+
if (!AbstractEngine.audioEngine && creationOptions.audioEngine && AbstractEngine.AudioEngineFactory) {
|
|
59
|
+
AbstractEngine.audioEngine = AbstractEngine.AudioEngineFactory(commonEngine.getRenderingCanvas(), commonEngine.getAudioContext(), commonEngine.getAudioDestination());
|
|
60
|
+
}
|
|
57
61
|
if (IsDocumentAvailable()) {
|
|
58
62
|
// Fullscreen
|
|
59
63
|
commonEngine._onFullscreenChange = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.common.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/engine.common.ts"],"names":[],"mappings":"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","sourcesContent":["import { IsDocumentAvailable } from \"../Misc/domManagement\";\r\nimport type { Nullable } from \"../types\";\r\nimport { AbstractEngine } from \"./abstractEngine\";\r\nimport type { AbstractEngineOptions } from \"./abstractEngine\";\r\nimport { EngineStore } from \"./engineStore\";\r\n\r\n/** @internal */\r\nfunction _DisableTouchAction(canvas: Nullable<HTMLCanvasElement>): void {\r\n if (!canvas || !canvas.setAttribute) {\r\n return;\r\n }\r\n\r\n canvas.setAttribute(\"touch-action\", \"none\");\r\n canvas.style.touchAction = \"none\";\r\n (canvas.style as any).webkitTapHighlightColor = \"transparent\";\r\n}\r\n\r\n/** @internal */\r\nexport function _CommonInit(commonEngine: AbstractEngine, canvas: HTMLCanvasElement, creationOptions: AbstractEngineOptions) {\r\n commonEngine._onCanvasFocus = () => {\r\n commonEngine.onCanvasFocusObservable.notifyObservers(commonEngine);\r\n };\r\n\r\n commonEngine._onCanvasBlur = () => {\r\n commonEngine.onCanvasBlurObservable.notifyObservers(commonEngine);\r\n };\r\n\r\n commonEngine._onCanvasContextMenu = (evt: Event) => {\r\n if (commonEngine.disableContextMenu) {\r\n evt.preventDefault();\r\n }\r\n };\r\n\r\n canvas.addEventListener(\"focus\", commonEngine._onCanvasFocus);\r\n canvas.addEventListener(\"blur\", commonEngine._onCanvasBlur);\r\n canvas.addEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\r\n\r\n commonEngine._onBlur = () => {\r\n if (commonEngine.disablePerformanceMonitorInBackground) {\r\n commonEngine.performanceMonitor.disable();\r\n }\r\n commonEngine._windowIsBackground = true;\r\n };\r\n\r\n commonEngine._onFocus = () => {\r\n if (commonEngine.disablePerformanceMonitorInBackground) {\r\n commonEngine.performanceMonitor.enable();\r\n }\r\n commonEngine._windowIsBackground = false;\r\n };\r\n\r\n commonEngine._onCanvasPointerOut = (ev) => {\r\n // Check that the element at the point of the pointer out isn't the canvas and if it isn't, notify observers\r\n // Note: This is a workaround for a bug with Safari\r\n if (document.elementFromPoint(ev.clientX, ev.clientY) !== canvas) {\r\n commonEngine.onCanvasPointerOutObservable.notifyObservers(ev);\r\n }\r\n };\r\n\r\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\r\n if (hostWindow && typeof hostWindow.addEventListener === \"function\") {\r\n hostWindow.addEventListener(\"blur\", commonEngine._onBlur);\r\n hostWindow.addEventListener(\"focus\", commonEngine._onFocus);\r\n }\r\n\r\n canvas.addEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\r\n\r\n if (!creationOptions.doNotHandleTouchAction) {\r\n _DisableTouchAction(canvas);\r\n }\r\n\r\n if (IsDocumentAvailable()) {\r\n // Fullscreen\r\n commonEngine._onFullscreenChange = () => {\r\n commonEngine.isFullscreen = !!document.fullscreenElement;\r\n\r\n // Pointer lock\r\n if (commonEngine.isFullscreen && commonEngine._pointerLockRequested && canvas) {\r\n RequestPointerlock(canvas);\r\n }\r\n };\r\n\r\n document.addEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange, false);\r\n document.addEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange, false);\r\n\r\n // Pointer lock\r\n commonEngine._onPointerLockChange = () => {\r\n commonEngine.isPointerLock = document.pointerLockElement === canvas;\r\n };\r\n\r\n document.addEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange, false);\r\n document.addEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange, false);\r\n }\r\n\r\n commonEngine.enableOfflineSupport = AbstractEngine.OfflineProviderFactory !== undefined;\r\n\r\n commonEngine._deterministicLockstep = !!creationOptions.deterministicLockstep;\r\n commonEngine._lockstepMaxSteps = creationOptions.lockstepMaxSteps || 0;\r\n commonEngine._timeStep = creationOptions.timeStep || 1 / 60;\r\n}\r\n\r\n/** @internal */\r\nexport function _CommonDispose(commonEngine: AbstractEngine, canvas: Nullable<HTMLCanvasElement>) {\r\n // Release audio engine\r\n if (EngineStore.Instances.length === 1 && AbstractEngine.audioEngine) {\r\n AbstractEngine.audioEngine.dispose();\r\n AbstractEngine.audioEngine = null;\r\n }\r\n\r\n // Events\r\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\r\n if (hostWindow && typeof hostWindow.removeEventListener === \"function\") {\r\n hostWindow.removeEventListener(\"blur\", commonEngine._onBlur);\r\n hostWindow.removeEventListener(\"focus\", commonEngine._onFocus);\r\n }\r\n\r\n if (canvas) {\r\n canvas.removeEventListener(\"focus\", commonEngine._onCanvasFocus);\r\n canvas.removeEventListener(\"blur\", commonEngine._onCanvasBlur);\r\n canvas.removeEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\r\n canvas.removeEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\r\n }\r\n\r\n if (IsDocumentAvailable()) {\r\n document.removeEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"mozfullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"msfullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange);\r\n document.removeEventListener(\"mspointerlockchange\", commonEngine._onPointerLockChange);\r\n document.removeEventListener(\"mozpointerlockchange\", commonEngine._onPointerLockChange);\r\n document.removeEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange);\r\n }\r\n}\r\n\r\n/**\r\n * Get Font size information\r\n * @param font font name\r\n * @returns an object containing ascent, height and descent\r\n */\r\nexport function GetFontOffset(font: string): { ascent: number; height: number; descent: number } {\r\n const text = document.createElement(\"span\");\r\n text.textContent = \"Hg\";\r\n text.style.font = font;\r\n\r\n const block = document.createElement(\"div\");\r\n block.style.display = \"inline-block\";\r\n block.style.width = \"1px\";\r\n block.style.height = \"0px\";\r\n block.style.verticalAlign = \"bottom\";\r\n\r\n const div = document.createElement(\"div\");\r\n div.style.whiteSpace = \"nowrap\";\r\n div.appendChild(text);\r\n div.appendChild(block);\r\n\r\n document.body.appendChild(div);\r\n\r\n let fontAscent = 0;\r\n let fontHeight = 0;\r\n try {\r\n fontHeight = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\r\n block.style.verticalAlign = \"baseline\";\r\n fontAscent = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\r\n } finally {\r\n document.body.removeChild(div);\r\n }\r\n return { ascent: fontAscent, height: fontHeight, descent: fontHeight - fontAscent };\r\n}\r\n\r\n/** @internal */\r\nexport function CreateImageBitmapFromSource(engine: AbstractEngine, imageSource: string, options?: ImageBitmapOptions): Promise<ImageBitmap> {\r\n const promise = new Promise<ImageBitmap>((resolve, reject) => {\r\n const image = new Image();\r\n image.onload = () => {\r\n image.decode().then(() => {\r\n engine.createImageBitmap(image, options).then((imageBitmap) => {\r\n resolve(imageBitmap);\r\n });\r\n });\r\n };\r\n image.onerror = () => {\r\n reject(`Error loading image ${image.src}`);\r\n };\r\n\r\n image.src = imageSource;\r\n });\r\n\r\n return promise;\r\n}\r\n\r\n/** @internal */\r\nexport function ResizeImageBitmap(engine: AbstractEngine, image: HTMLImageElement | ImageBitmap, bufferWidth: number, bufferHeight: number): Uint8Array {\r\n const canvas = engine.createCanvas(bufferWidth, bufferHeight);\r\n const context = canvas.getContext(\"2d\");\r\n\r\n if (!context) {\r\n throw new Error(\"Unable to get 2d context for resizeImageBitmap\");\r\n }\r\n\r\n context.drawImage(image, 0, 0);\r\n\r\n // Create VertexData from map data\r\n // Cast is due to wrong definition in lib.d.ts from ts 1.3 - https://github.com/Microsoft/TypeScript/issues/949\r\n const buffer = <Uint8Array>(<any>context.getImageData(0, 0, bufferWidth, bufferHeight).data);\r\n return buffer;\r\n}\r\n\r\n/**\r\n * Ask the browser to promote the current element to fullscreen rendering mode\r\n * @param element defines the DOM element to promote\r\n */\r\nexport function RequestFullscreen(element: HTMLElement): void {\r\n const requestFunction = element.requestFullscreen || (<any>element).webkitRequestFullscreen;\r\n if (!requestFunction) {\r\n return;\r\n }\r\n requestFunction.call(element);\r\n}\r\n\r\n/**\r\n * Asks the browser to exit fullscreen mode\r\n */\r\nexport function ExitFullscreen(): void {\r\n const anyDoc = document as any;\r\n\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (anyDoc.webkitCancelFullScreen) {\r\n anyDoc.webkitCancelFullScreen();\r\n }\r\n}\r\n\r\n/**\r\n * Ask the browser to promote the current element to pointerlock mode\r\n * @param element defines the DOM element to promote\r\n */\r\nexport function RequestPointerlock(element: HTMLElement): void {\r\n if (element.requestPointerLock) {\r\n // In some browsers, requestPointerLock returns a promise.\r\n // Handle possible rejections to avoid an unhandled top-level exception.\r\n const promise: unknown = element.requestPointerLock();\r\n if (promise instanceof Promise)\r\n promise\r\n .then(() => {\r\n element.focus();\r\n })\r\n .catch(() => {});\r\n else element.focus();\r\n }\r\n}\r\n\r\n/**\r\n * Asks the browser to exit pointerlock mode\r\n */\r\nexport function ExitPointerlock(): void {\r\n if (document.exitPointerLock) {\r\n document.exitPointerLock();\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"engine.common.js","sourceRoot":"","sources":["../../../../dev/core/src/Engines/engine.common.ts"],"names":[],"mappings":"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","sourcesContent":["import { IsDocumentAvailable } from \"../Misc/domManagement\";\r\nimport type { Nullable } from \"../types\";\r\nimport { AbstractEngine } from \"./abstractEngine\";\r\nimport type { AbstractEngineOptions } from \"./abstractEngine\";\r\nimport { EngineStore } from \"./engineStore\";\r\n\r\n/** @internal */\r\nfunction _DisableTouchAction(canvas: Nullable<HTMLCanvasElement>): void {\r\n if (!canvas || !canvas.setAttribute) {\r\n return;\r\n }\r\n\r\n canvas.setAttribute(\"touch-action\", \"none\");\r\n canvas.style.touchAction = \"none\";\r\n (canvas.style as any).webkitTapHighlightColor = \"transparent\";\r\n}\r\n\r\n/** @internal */\r\nexport function _CommonInit(commonEngine: AbstractEngine, canvas: HTMLCanvasElement, creationOptions: AbstractEngineOptions) {\r\n commonEngine._onCanvasFocus = () => {\r\n commonEngine.onCanvasFocusObservable.notifyObservers(commonEngine);\r\n };\r\n\r\n commonEngine._onCanvasBlur = () => {\r\n commonEngine.onCanvasBlurObservable.notifyObservers(commonEngine);\r\n };\r\n\r\n commonEngine._onCanvasContextMenu = (evt: Event) => {\r\n if (commonEngine.disableContextMenu) {\r\n evt.preventDefault();\r\n }\r\n };\r\n\r\n canvas.addEventListener(\"focus\", commonEngine._onCanvasFocus);\r\n canvas.addEventListener(\"blur\", commonEngine._onCanvasBlur);\r\n canvas.addEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\r\n\r\n commonEngine._onBlur = () => {\r\n if (commonEngine.disablePerformanceMonitorInBackground) {\r\n commonEngine.performanceMonitor.disable();\r\n }\r\n commonEngine._windowIsBackground = true;\r\n };\r\n\r\n commonEngine._onFocus = () => {\r\n if (commonEngine.disablePerformanceMonitorInBackground) {\r\n commonEngine.performanceMonitor.enable();\r\n }\r\n commonEngine._windowIsBackground = false;\r\n };\r\n\r\n commonEngine._onCanvasPointerOut = (ev) => {\r\n // Check that the element at the point of the pointer out isn't the canvas and if it isn't, notify observers\r\n // Note: This is a workaround for a bug with Safari\r\n if (document.elementFromPoint(ev.clientX, ev.clientY) !== canvas) {\r\n commonEngine.onCanvasPointerOutObservable.notifyObservers(ev);\r\n }\r\n };\r\n\r\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\r\n if (hostWindow && typeof hostWindow.addEventListener === \"function\") {\r\n hostWindow.addEventListener(\"blur\", commonEngine._onBlur);\r\n hostWindow.addEventListener(\"focus\", commonEngine._onFocus);\r\n }\r\n\r\n canvas.addEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\r\n\r\n if (!creationOptions.doNotHandleTouchAction) {\r\n _DisableTouchAction(canvas);\r\n }\r\n\r\n // Create Audio Engine if needed.\r\n if (!AbstractEngine.audioEngine && creationOptions.audioEngine && AbstractEngine.AudioEngineFactory) {\r\n AbstractEngine.audioEngine = AbstractEngine.AudioEngineFactory(commonEngine.getRenderingCanvas(), commonEngine.getAudioContext(), commonEngine.getAudioDestination());\r\n }\r\n\r\n if (IsDocumentAvailable()) {\r\n // Fullscreen\r\n commonEngine._onFullscreenChange = () => {\r\n commonEngine.isFullscreen = !!document.fullscreenElement;\r\n\r\n // Pointer lock\r\n if (commonEngine.isFullscreen && commonEngine._pointerLockRequested && canvas) {\r\n RequestPointerlock(canvas);\r\n }\r\n };\r\n\r\n document.addEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange, false);\r\n document.addEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange, false);\r\n\r\n // Pointer lock\r\n commonEngine._onPointerLockChange = () => {\r\n commonEngine.isPointerLock = document.pointerLockElement === canvas;\r\n };\r\n\r\n document.addEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange, false);\r\n document.addEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange, false);\r\n }\r\n\r\n commonEngine.enableOfflineSupport = AbstractEngine.OfflineProviderFactory !== undefined;\r\n\r\n commonEngine._deterministicLockstep = !!creationOptions.deterministicLockstep;\r\n commonEngine._lockstepMaxSteps = creationOptions.lockstepMaxSteps || 0;\r\n commonEngine._timeStep = creationOptions.timeStep || 1 / 60;\r\n}\r\n\r\n/** @internal */\r\nexport function _CommonDispose(commonEngine: AbstractEngine, canvas: Nullable<HTMLCanvasElement>) {\r\n // Release audio engine\r\n if (EngineStore.Instances.length === 1 && AbstractEngine.audioEngine) {\r\n AbstractEngine.audioEngine.dispose();\r\n AbstractEngine.audioEngine = null;\r\n }\r\n\r\n // Events\r\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\r\n if (hostWindow && typeof hostWindow.removeEventListener === \"function\") {\r\n hostWindow.removeEventListener(\"blur\", commonEngine._onBlur);\r\n hostWindow.removeEventListener(\"focus\", commonEngine._onFocus);\r\n }\r\n\r\n if (canvas) {\r\n canvas.removeEventListener(\"focus\", commonEngine._onCanvasFocus);\r\n canvas.removeEventListener(\"blur\", commonEngine._onCanvasBlur);\r\n canvas.removeEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\r\n canvas.removeEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\r\n }\r\n\r\n if (IsDocumentAvailable()) {\r\n document.removeEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"mozfullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"msfullscreenchange\", commonEngine._onFullscreenChange);\r\n document.removeEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange);\r\n document.removeEventListener(\"mspointerlockchange\", commonEngine._onPointerLockChange);\r\n document.removeEventListener(\"mozpointerlockchange\", commonEngine._onPointerLockChange);\r\n document.removeEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange);\r\n }\r\n}\r\n\r\n/**\r\n * Get Font size information\r\n * @param font font name\r\n * @returns an object containing ascent, height and descent\r\n */\r\nexport function GetFontOffset(font: string): { ascent: number; height: number; descent: number } {\r\n const text = document.createElement(\"span\");\r\n text.textContent = \"Hg\";\r\n text.style.font = font;\r\n\r\n const block = document.createElement(\"div\");\r\n block.style.display = \"inline-block\";\r\n block.style.width = \"1px\";\r\n block.style.height = \"0px\";\r\n block.style.verticalAlign = \"bottom\";\r\n\r\n const div = document.createElement(\"div\");\r\n div.style.whiteSpace = \"nowrap\";\r\n div.appendChild(text);\r\n div.appendChild(block);\r\n\r\n document.body.appendChild(div);\r\n\r\n let fontAscent = 0;\r\n let fontHeight = 0;\r\n try {\r\n fontHeight = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\r\n block.style.verticalAlign = \"baseline\";\r\n fontAscent = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\r\n } finally {\r\n document.body.removeChild(div);\r\n }\r\n return { ascent: fontAscent, height: fontHeight, descent: fontHeight - fontAscent };\r\n}\r\n\r\n/** @internal */\r\nexport function CreateImageBitmapFromSource(engine: AbstractEngine, imageSource: string, options?: ImageBitmapOptions): Promise<ImageBitmap> {\r\n const promise = new Promise<ImageBitmap>((resolve, reject) => {\r\n const image = new Image();\r\n image.onload = () => {\r\n image.decode().then(() => {\r\n engine.createImageBitmap(image, options).then((imageBitmap) => {\r\n resolve(imageBitmap);\r\n });\r\n });\r\n };\r\n image.onerror = () => {\r\n reject(`Error loading image ${image.src}`);\r\n };\r\n\r\n image.src = imageSource;\r\n });\r\n\r\n return promise;\r\n}\r\n\r\n/** @internal */\r\nexport function ResizeImageBitmap(engine: AbstractEngine, image: HTMLImageElement | ImageBitmap, bufferWidth: number, bufferHeight: number): Uint8Array {\r\n const canvas = engine.createCanvas(bufferWidth, bufferHeight);\r\n const context = canvas.getContext(\"2d\");\r\n\r\n if (!context) {\r\n throw new Error(\"Unable to get 2d context for resizeImageBitmap\");\r\n }\r\n\r\n context.drawImage(image, 0, 0);\r\n\r\n // Create VertexData from map data\r\n // Cast is due to wrong definition in lib.d.ts from ts 1.3 - https://github.com/Microsoft/TypeScript/issues/949\r\n const buffer = <Uint8Array>(<any>context.getImageData(0, 0, bufferWidth, bufferHeight).data);\r\n return buffer;\r\n}\r\n\r\n/**\r\n * Ask the browser to promote the current element to fullscreen rendering mode\r\n * @param element defines the DOM element to promote\r\n */\r\nexport function RequestFullscreen(element: HTMLElement): void {\r\n const requestFunction = element.requestFullscreen || (<any>element).webkitRequestFullscreen;\r\n if (!requestFunction) {\r\n return;\r\n }\r\n requestFunction.call(element);\r\n}\r\n\r\n/**\r\n * Asks the browser to exit fullscreen mode\r\n */\r\nexport function ExitFullscreen(): void {\r\n const anyDoc = document as any;\r\n\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (anyDoc.webkitCancelFullScreen) {\r\n anyDoc.webkitCancelFullScreen();\r\n }\r\n}\r\n\r\n/**\r\n * Ask the browser to promote the current element to pointerlock mode\r\n * @param element defines the DOM element to promote\r\n */\r\nexport function RequestPointerlock(element: HTMLElement): void {\r\n if (element.requestPointerLock) {\r\n // In some browsers, requestPointerLock returns a promise.\r\n // Handle possible rejections to avoid an unhandled top-level exception.\r\n const promise: unknown = element.requestPointerLock();\r\n if (promise instanceof Promise)\r\n promise\r\n .then(() => {\r\n element.focus();\r\n })\r\n .catch(() => {});\r\n else element.focus();\r\n }\r\n}\r\n\r\n/**\r\n * Asks the browser to exit pointerlock mode\r\n */\r\nexport function ExitPointerlock(): void {\r\n if (document.exitPointerLock) {\r\n document.exitPointerLock();\r\n }\r\n}\r\n"]}
|
|
@@ -180,6 +180,7 @@ export declare class NativeEngine extends Engine {
|
|
|
180
180
|
setViewport(viewport: IViewportLike, requiredWidth?: number, requiredHeight?: number): void;
|
|
181
181
|
enableScissor(x: number, y: number, width: number, height: number): void;
|
|
182
182
|
disableScissor(): void;
|
|
183
|
+
setStateCullFaceType(_cullBackFaces?: boolean, _force?: boolean): void;
|
|
183
184
|
setState(culling: boolean, zOffset?: number, force?: boolean, reverseSide?: boolean, cullBackFaces?: boolean, stencil?: IStencilState, zOffsetUnits?: number): void;
|
|
184
185
|
/**
|
|
185
186
|
* Gets the client rect of native canvas. Needed for InputManager.
|
package/Engines/nativeEngine.js
CHANGED
|
@@ -720,6 +720,9 @@ export class NativeEngine extends Engine {
|
|
|
720
720
|
this._commandBufferEncoder.encodeCommandArgAsFloat32(0);
|
|
721
721
|
this._commandBufferEncoder.finishEncodingCommand();
|
|
722
722
|
}
|
|
723
|
+
setStateCullFaceType(_cullBackFaces, _force) {
|
|
724
|
+
throw new Error("setStateCullFaceType: Not Implemented");
|
|
725
|
+
}
|
|
723
726
|
setState(culling, zOffset = 0, force, reverseSide = false, cullBackFaces, stencil, zOffsetUnits = 0) {
|
|
724
727
|
this._zOffset = zOffset;
|
|
725
728
|
this._zOffsetUnits = zOffsetUnits;
|