@babylonjs/core 5.49.0 → 5.49.2
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/Engines/Native/nativeInterfaces.d.ts +1 -0
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativePipelineContext.d.ts +6 -2
- package/Engines/Native/nativePipelineContext.js +12 -3
- package/Engines/Native/nativePipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +2 -2
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/engine.d.ts +53 -0
- package/Engines/nativeEngine.d.ts +2 -5
- package/Engines/nativeEngine.js +44 -12
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +1 -0
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.decalMap.d.ts +12 -0
- package/Materials/PBR/pbrMaterial.decalMap.js +18 -0
- package/Materials/PBR/pbrMaterial.decalMap.js.map +1 -0
- package/Materials/Textures/renderTargetTexture.js +2 -4
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/index.d.ts +2 -0
- package/Materials/index.js +2 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.decalMap.d.ts +3 -0
- package/Materials/material.decalMap.js +4 -0
- package/Materials/material.decalMap.js.map +1 -0
- package/Materials/material.decalMapConfiguration.d.ts +63 -0
- package/Materials/material.decalMapConfiguration.js +119 -0
- package/Materials/material.decalMapConfiguration.js.map +1 -0
- package/Materials/materialFlags.d.ts +6 -0
- package/Materials/materialFlags.js +14 -0
- package/Materials/materialFlags.js.map +1 -1
- package/Materials/standardMaterial.decalMap.d.ts +12 -0
- package/Materials/standardMaterial.decalMap.js +18 -0
- package/Materials/standardMaterial.decalMap.js.map +1 -0
- package/Materials/standardMaterial.js +1 -0
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.vector.d.ts +10 -0
- package/Maths/math.vector.js +14 -0
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/abstractMesh.decalMap.d.ts +12 -0
- package/Meshes/abstractMesh.decalMap.js +12 -0
- package/Meshes/abstractMesh.decalMap.js.map +1 -0
- package/Meshes/index.d.ts +2 -0
- package/Meshes/index.js +2 -0
- package/Meshes/index.js.map +1 -1
- package/Meshes/meshUVSpaceRenderer.d.ts +94 -0
- package/Meshes/meshUVSpaceRenderer.js +141 -0
- package/Meshes/meshUVSpaceRenderer.js.map +1 -0
- package/Particles/gpuParticleSystem.js +1 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Physics/v2/physicsAggregate.d.ts +4 -0
- package/Physics/v2/physicsAggregate.js +4 -4
- package/Physics/v2/physicsAggregate.js.map +1 -1
- package/Physics/v2/physicsBody.d.ts +18 -2
- package/Physics/v2/physicsBody.js +66 -1
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderer.js +2 -1
- package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
- package/Rendering/renderingManager.js +4 -2
- package/Rendering/renderingManager.js.map +1 -1
- package/Shaders/ShadersInclude/decalFragment.d.ts +5 -0
- package/Shaders/ShadersInclude/decalFragment.js +15 -0
- package/Shaders/ShadersInclude/decalFragment.js.map +1 -0
- package/Shaders/ShadersInclude/decalFragmentDeclaration.d.ts +5 -0
- package/Shaders/ShadersInclude/decalFragmentDeclaration.js +11 -0
- package/Shaders/ShadersInclude/decalFragmentDeclaration.js.map +1 -0
- package/Shaders/ShadersInclude/decalVertexDeclaration.d.ts +5 -0
- package/Shaders/ShadersInclude/decalVertexDeclaration.js +11 -0
- package/Shaders/ShadersInclude/decalVertexDeclaration.js.map +1 -0
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.d.ts +1 -0
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +2 -0
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.d.ts +1 -0
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +2 -0
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -0
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +4 -0
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.d.ts +1 -0
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +2 -0
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -0
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.d.ts +1 -0
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +2 -0
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/default.fragment.d.ts +1 -0
- package/Shaders/default.fragment.js +5 -0
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.js +2 -0
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.js +1 -1
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/meshUVSpaceRenderer.fragment.d.ts +5 -0
- package/Shaders/meshUVSpaceRenderer.fragment.js +9 -0
- package/Shaders/meshUVSpaceRenderer.fragment.js.map +1 -0
- package/Shaders/meshUVSpaceRenderer.vertex.d.ts +15 -0
- package/Shaders/meshUVSpaceRenderer.vertex.js +34 -0
- package/Shaders/meshUVSpaceRenderer.vertex.js.map +1 -0
- package/Shaders/pbr.fragment.js +4 -0
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +2 -0
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/screenSpaceReflection2.fragment.js +1 -1
- package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/Sprites/spriteManager.js +5 -3
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteSceneComponent.d.ts +1 -1
- package/Sprites/spriteSceneComponent.js +7 -4
- package/Sprites/spriteSceneComponent.js.map +1 -1
- package/XR/features/WebXRDepthSensing.d.ts +118 -0
- package/XR/features/WebXRDepthSensing.js +268 -0
- package/XR/features/WebXRDepthSensing.js.map +1 -0
- package/XR/features/index.d.ts +1 -0
- package/XR/features/index.js +1 -0
- package/XR/features/index.js.map +1 -1
- package/XR/native/nativeXRFrame.d.ts +1 -0
- package/XR/native/nativeXRFrame.js +4 -0
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/XR/webXRCamera.d.ts +1 -0
- package/XR/webXRCamera.js +4 -0
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRFeaturesManager.d.ts +4 -0
- package/XR/webXRFeaturesManager.js +4 -0
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/assetContainer.js +13 -5
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuTintWASM.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Engines/WebGPU/webgpuTintWASM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAsBzC,gBAAgB;AAChB,MAAM,OAAO,cAAc;IAA3B;QASY,WAAM,GAAQ,IAAI,CAAC;IAsC/B,CAAC;IApCU,KAAK,CAAC,SAAS,CAAC,YAA2B;QAC9C,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG;YACX,GAAG,cAAc,CAAC,oBAAoB;YACtC,GAAG,YAAY;SAClB,CAAC;QAEF,IAAI,YAAY,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;YACjC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,EAAE;YAC9C,IAAI,mBAAmB,EAAE,EAAE;gBACvB,MAAM,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACpD;iBAAM;gBACH,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACtC;SACJ;QAED,IAAK,IAAY,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,MAAO,IAAY,CAAC,KAAK,CAAC,YAAa,CAAC,QAAQ,CAAC,CAAC;YAChE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC;IAEM,iBAAiB,CAAC,IAAiB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,cAAc,CAAC,kBAAkB,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;SAClE;QACD,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"webgpuTintWASM.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Engines/WebGPU/webgpuTintWASM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAsBzC,gBAAgB;AAChB,MAAM,OAAO,cAAc;IAA3B;QASY,WAAM,GAAQ,IAAI,CAAC;IAsC/B,CAAC;IApCU,KAAK,CAAC,SAAS,CAAC,YAA2B;QAC9C,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG;YACX,GAAG,cAAc,CAAC,oBAAoB;YACtC,GAAG,YAAY;SAClB,CAAC;QAEF,IAAI,YAAY,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;YACjC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,EAAE;YAC9C,IAAI,mBAAmB,EAAE,EAAE;gBACvB,MAAM,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACpD;iBAAM;gBACH,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACtC;SACJ;QAED,IAAK,IAAY,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,MAAO,IAAY,CAAC,KAAK,CAAC,YAAa,CAAC,QAAQ,CAAC,CAAC;YAChE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC;IAEM,iBAAiB,CAAC,IAAiB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,cAAc,CAAC,kBAAkB,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;SAClE;QACD,OAAO,2CAA2C,GAAG,KAAK,CAAC;IAC/D,CAAC;;AA7CD,yBAAyB;AACD,mCAAoB,GAAiB;IACzD,MAAM,EAAE,8CAA8C;IACtD,QAAQ,EAAE,gDAAgD;CAC7D,CAAC;AAEY,iCAAkB,GAAG,KAAK,CAAC","sourcesContent":["import { IsWindowObjectExist } from \"../../Misc/domManagement\";\r\nimport { Tools } from \"../../Misc/tools\";\r\n\r\ndeclare function importScripts(...urls: string[]): void;\r\n\r\n/**\r\n * Options to load the associated Twgsl library\r\n */\r\nexport interface TwgslOptions {\r\n /**\r\n * Defines an existing instance of Twgsl (useful in modules who do not access the global instance).\r\n */\r\n twgsl?: any;\r\n /**\r\n * Defines the URL of the twgsl JS File.\r\n */\r\n jsPath?: string;\r\n /**\r\n * Defines the URL of the twgsl WASM File.\r\n */\r\n wasmPath?: string;\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPUTintWASM {\r\n // Default twgsl options.\r\n private static readonly _TWgslDefaultOptions: TwgslOptions = {\r\n jsPath: \"https://preview.babylonjs.com/twgsl/twgsl.js\",\r\n wasmPath: \"https://preview.babylonjs.com/twgsl/twgsl.wasm\",\r\n };\r\n\r\n public static ShowWGSLShaderCode = false;\r\n\r\n private _twgsl: any = null;\r\n\r\n public async initTwgsl(twgslOptions?: TwgslOptions): Promise<void> {\r\n twgslOptions = twgslOptions || {};\r\n twgslOptions = {\r\n ...WebGPUTintWASM._TWgslDefaultOptions,\r\n ...twgslOptions,\r\n };\r\n\r\n if (twgslOptions.twgsl) {\r\n this._twgsl = twgslOptions.twgsl;\r\n return Promise.resolve();\r\n }\r\n\r\n if (twgslOptions.jsPath && twgslOptions.wasmPath) {\r\n if (IsWindowObjectExist()) {\r\n await Tools.LoadScriptAsync(twgslOptions.jsPath);\r\n } else {\r\n importScripts(twgslOptions.jsPath);\r\n }\r\n }\r\n\r\n if ((self as any).twgsl) {\r\n this._twgsl = await (self as any).twgsl(twgslOptions!.wasmPath);\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\"twgsl is not available.\");\r\n }\r\n\r\n public convertSpirV2WGSL(code: Uint32Array): string {\r\n const ccode = this._twgsl.convertSpirV2WGSL(code);\r\n if (WebGPUTintWASM.ShowWGSLShaderCode) {\r\n console.log(ccode);\r\n console.log(\"***********************************************\");\r\n }\r\n return \"diagnostic(off, derivative_uniformity);\\n\" + ccode;\r\n }\r\n}\r\n"]}
|
package/Engines/engine.d.ts
CHANGED
|
@@ -3481,6 +3481,59 @@ interface XRLightProbe extends EventTarget {
|
|
|
3481
3481
|
* END: WebXR DOM Overlays Module
|
|
3482
3482
|
* https://immersive-web.github.io/dom-overlays/
|
|
3483
3483
|
*/
|
|
3484
|
+
|
|
3485
|
+
/**
|
|
3486
|
+
* BEGIN: WebXR Depth Sensing Moudle
|
|
3487
|
+
* https://www.w3.org/TR/webxr-depth-sensing-1/
|
|
3488
|
+
*/
|
|
3489
|
+
|
|
3490
|
+
type XRDepthUsage = "cpu-optimized" | "gpu-optimized";
|
|
3491
|
+
type XRDepthDataFormat = "luminance-alpha" | "float32";
|
|
3492
|
+
|
|
3493
|
+
type XRDepthStateInit = {
|
|
3494
|
+
readonly usagePreference: XRDepthUsage[];
|
|
3495
|
+
readonly dataFormatPreference: XRDepthDataFormat[];
|
|
3496
|
+
};
|
|
3497
|
+
|
|
3498
|
+
interface XRSessionInit {
|
|
3499
|
+
depthSensing?: XRDepthStateInit;
|
|
3500
|
+
}
|
|
3501
|
+
|
|
3502
|
+
interface XRSession {
|
|
3503
|
+
readonly depthUsage: XRDepthUsage;
|
|
3504
|
+
readonly depthDataFormat: XRDepthDataFormat;
|
|
3505
|
+
}
|
|
3506
|
+
|
|
3507
|
+
interface XRDepthInformation {
|
|
3508
|
+
readonly width: number;
|
|
3509
|
+
readonly height: number;
|
|
3510
|
+
|
|
3511
|
+
readonly normDepthBufferFromNormView: XRRigidTransform;
|
|
3512
|
+
readonly rawValueToMeters: number;
|
|
3513
|
+
}
|
|
3514
|
+
|
|
3515
|
+
interface XRCPUDepthInformation extends XRDepthInformation {
|
|
3516
|
+
readonly data: ArrayBuffer;
|
|
3517
|
+
|
|
3518
|
+
getDepthInMeters(x: number, y: number): number;
|
|
3519
|
+
}
|
|
3520
|
+
|
|
3521
|
+
interface XRFrame {
|
|
3522
|
+
getDepthInformation(view: XRView): ?XRCPUDepthInformation;
|
|
3523
|
+
}
|
|
3524
|
+
|
|
3525
|
+
interface XRWebGLDepthInformation extends XRDepthInformation {
|
|
3526
|
+
readonly texture: WebGLTexture;
|
|
3527
|
+
}
|
|
3528
|
+
|
|
3529
|
+
interface XRWebGLBinding {
|
|
3530
|
+
getDepthInformation(view: XRView): ?XRWebGLDepthInformation;
|
|
3531
|
+
}
|
|
3532
|
+
|
|
3533
|
+
/**
|
|
3534
|
+
* END: WebXR Depth Sensing Moudle
|
|
3535
|
+
* https://www.w3.org/TR/webxr-depth-sensing-1/
|
|
3536
|
+
*/
|
|
3484
3537
|
|
|
3485
3538
|
// This file contains native only extensions for WebXR. These APIs are not supported in the browser yet.
|
|
3486
3539
|
// They are intended for use with either Babylon Native https://github.com/BabylonJS/BabylonNative or
|
|
@@ -130,16 +130,13 @@ export declare class NativeEngine extends Engine {
|
|
|
130
130
|
createMaterialContext(): IMaterialContext | undefined;
|
|
131
131
|
createDrawContext(): IDrawContext | undefined;
|
|
132
132
|
_preparePipelineContext(pipelineContext: IPipelineContext, vertexSourceCode: string, fragmentSourceCode: string, createAsRaw: boolean, _rawVertexSourceCode: string, _rawFragmentSourceCode: string, _rebuildRebind: any, defines: Nullable<string>): void;
|
|
133
|
-
|
|
134
|
-
* @internal
|
|
135
|
-
*/
|
|
136
|
-
_isRenderingStateCompiled(pipelineContext: IPipelineContext): boolean;
|
|
133
|
+
isAsync(pipelineContext: IPipelineContext): boolean;
|
|
137
134
|
/**
|
|
138
135
|
* @internal
|
|
139
136
|
*/
|
|
140
137
|
_executeWhenRenderingStateIsCompiled(pipelineContext: IPipelineContext, action: () => void): void;
|
|
141
138
|
createRawShaderProgram(): WebGLProgram;
|
|
142
|
-
createShaderProgram(
|
|
139
|
+
createShaderProgram(pipelineContext: IPipelineContext, vertexCode: string, fragmentCode: string, defines: Nullable<string>): WebGLProgram;
|
|
143
140
|
/**
|
|
144
141
|
* Inline functions in shader code that are marked to be inlined
|
|
145
142
|
* @param code code to inline
|
package/Engines/nativeEngine.js
CHANGED
|
@@ -488,24 +488,37 @@ export class NativeEngine extends Engine {
|
|
|
488
488
|
nativePipelineContext.nativeProgram = this.createShaderProgram(pipelineContext, vertexSourceCode, fragmentSourceCode, defines);
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
*/
|
|
494
|
-
_isRenderingStateCompiled(pipelineContext) {
|
|
495
|
-
// TODO: support async shader compilcation
|
|
496
|
-
return true;
|
|
491
|
+
isAsync(pipelineContext) {
|
|
492
|
+
return !!(pipelineContext.isAsync && this._engine.createProgramAsync);
|
|
497
493
|
}
|
|
498
494
|
/**
|
|
499
495
|
* @internal
|
|
500
496
|
*/
|
|
501
497
|
_executeWhenRenderingStateIsCompiled(pipelineContext, action) {
|
|
502
|
-
|
|
503
|
-
|
|
498
|
+
const nativePipelineContext = pipelineContext;
|
|
499
|
+
if (!this.isAsync(pipelineContext)) {
|
|
500
|
+
action();
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
const oldHandler = nativePipelineContext.onCompiled;
|
|
504
|
+
if (oldHandler) {
|
|
505
|
+
nativePipelineContext.onCompiled = () => {
|
|
506
|
+
oldHandler();
|
|
507
|
+
action();
|
|
508
|
+
};
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
nativePipelineContext.onCompiled = action;
|
|
512
|
+
}
|
|
504
513
|
}
|
|
505
514
|
createRawShaderProgram() {
|
|
506
515
|
throw new Error("Not Supported");
|
|
507
516
|
}
|
|
508
|
-
createShaderProgram(
|
|
517
|
+
createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines) {
|
|
518
|
+
const nativePipelineContext = pipelineContext;
|
|
519
|
+
if (nativePipelineContext.nativeProgram) {
|
|
520
|
+
throw new Error("Tried to create a second program in the same NativePipelineContext");
|
|
521
|
+
}
|
|
509
522
|
this.onBeforeShaderCompilationObservable.notifyObservers(this);
|
|
510
523
|
const vertexInliner = new ShaderCodeInliner(vertexCode);
|
|
511
524
|
vertexInliner.processCode();
|
|
@@ -515,9 +528,28 @@ export class NativeEngine extends Engine {
|
|
|
515
528
|
fragmentCode = fragmentInliner.code;
|
|
516
529
|
vertexCode = ThinEngine._ConcatenateShader(vertexCode, defines);
|
|
517
530
|
fragmentCode = ThinEngine._ConcatenateShader(fragmentCode, defines);
|
|
518
|
-
const
|
|
519
|
-
|
|
520
|
-
|
|
531
|
+
const onSuccess = () => {
|
|
532
|
+
var _a;
|
|
533
|
+
nativePipelineContext.isCompiled = true;
|
|
534
|
+
(_a = nativePipelineContext.onCompiled) === null || _a === void 0 ? void 0 : _a.call(nativePipelineContext);
|
|
535
|
+
this.onAfterShaderCompilationObservable.notifyObservers(this);
|
|
536
|
+
};
|
|
537
|
+
if (this.isAsync(pipelineContext)) {
|
|
538
|
+
return this._engine.createProgramAsync(vertexCode, fragmentCode, onSuccess, (error) => {
|
|
539
|
+
nativePipelineContext.compilationError = error;
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
try {
|
|
544
|
+
const program = (nativePipelineContext.nativeProgram = this._engine.createProgram(vertexCode, fragmentCode));
|
|
545
|
+
onSuccess();
|
|
546
|
+
return program;
|
|
547
|
+
}
|
|
548
|
+
catch (e) {
|
|
549
|
+
const message = e === null || e === void 0 ? void 0 : e.message;
|
|
550
|
+
throw new Error("SHADER ERROR" + (typeof message === "string" ? "\n" + message : ""));
|
|
551
|
+
}
|
|
552
|
+
}
|
|
521
553
|
}
|
|
522
554
|
/**
|
|
523
555
|
* Inline functions in shader code that are marked to be inlined
|