From f9a76ebead86c05be0338b2cc78367ead8dab72d Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Tue, 4 Nov 2025 16:29:31 -0500 Subject: [PATCH 01/12] Setup Playground app to use NativeEncoding / Blob --- Apps/Playground/CMakeLists.txt | 6 +++++- Apps/Playground/Win32/App.cpp | 7 +++++++ Apps/package-lock.json | 23 +++++++++++++++++------ Apps/package.json | 1 + 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/Apps/Playground/CMakeLists.txt b/Apps/Playground/CMakeLists.txt index 2e4003db9..ff2e50ae4 100644 --- a/Apps/Playground/CMakeLists.txt +++ b/Apps/Playground/CMakeLists.txt @@ -4,7 +4,9 @@ set(BABYLON_SCRIPTS "../node_modules/babylonjs-loaders/babylonjs.loaders.js" "../node_modules/babylonjs/babylon.max.js" "../node_modules/babylonjs-materials/babylonjs.materials.js" - "../node_modules/babylonjs-gui/babylon.gui.js") + "../node_modules/babylonjs-gui/babylon.gui.js" + "../node_modules/babylonjs-serializers/babylonjs.serializers.js") + # TODO: Update babylonjs-serializers package version after https://github.com/BabylonJS/Babylon.js/pull/17365 is in set(DEPENDENCIES "../Dependencies/ammo.js" @@ -138,6 +140,8 @@ target_link_libraries(Playground PRIVATE Window PRIVATE XMLHttpRequest PRIVATE TestUtils + PRIVATE NativeEncoding + PRIVATE Blob ${ADDITIONAL_LIBRARIES} ${BABYLON_NATIVE_PLAYGROUND_EXTENSION_LIBRARIES}) diff --git a/Apps/Playground/Win32/App.cpp b/Apps/Playground/Win32/App.cpp index 9f4f8a767..c8654a3d6 100644 --- a/Apps/Playground/Win32/App.cpp +++ b/Apps/Playground/Win32/App.cpp @@ -19,11 +19,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include @@ -182,6 +184,8 @@ namespace nativeCanvas.emplace(Babylon::Polyfills::Canvas::Initialize(env)); + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -192,6 +196,8 @@ namespace nativeInput = &Babylon::Plugins::NativeInput::CreateForJavaScript(env); + Babylon::Plugins::NativeEncoding::Initialize(env); + Babylon::Plugins::TestUtils::Initialize(env, hWnd); }); @@ -204,6 +210,7 @@ namespace loader.LoadScript("app:///Scripts/babylonjs.materials.js"); loader.LoadScript("app:///Scripts/babylon.gui.js"); loader.LoadScript("app:///Scripts/meshwriter.min.js"); + loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); std::vector scripts = GetCommandLineArguments(); if (scripts.empty()) diff --git a/Apps/package-lock.json b/Apps/package-lock.json index aca8e20fd..9a93a5d61 100644 --- a/Apps/package-lock.json +++ b/Apps/package-lock.json @@ -16,6 +16,7 @@ "babylonjs-gui": "^8.28.2", "babylonjs-loaders": "^8.28.2", "babylonjs-materials": "^8.28.2", + "babylonjs-serializers": "^8.28.2", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" } @@ -2600,16 +2601,16 @@ } }, "node_modules/babylonjs": { - "version": "8.28.2", - "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-8.28.2.tgz", - "integrity": "sha512-mid1cYg2VGXKj4neNy+78MHwSV8tMCHbvSEaIXQuEj1JxKmEb+UQ6/XwqiSGMrw1IoFxRZ693kelfe1tuSdKJg==", + "version": "8.31.4", + "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-8.31.4.tgz", + "integrity": "sha512-dGKD4QBXBw9wlvypfxrKcSj1c7xxHFQbUVWglope+2fZ8r8dMEbg+U+ZRVpCwYAS+Hu88ZF9M6fnjaFks5DzdA==", "hasInstallScript": true, "license": "Apache-2.0" }, "node_modules/babylonjs-gltf2interface": { - "version": "8.28.2", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.28.2.tgz", - "integrity": "sha512-TGusApjAPNkPhyyU/05FNoiEc9l85Kd4ZGHO/5hsRkLLYVXvmsqAEa9yGIVLhYM3Yezf/b1DFwMPvY1D/NEiVA==", + "version": "8.31.4", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.31.4.tgz", + "integrity": "sha512-aKZlYqf+kg0pwh73KnS/HKYgc9bHHL0+gPt/J4m87pbA0HEUaNnfrUTYtrJ4VTYnHAKd8QjCKP1o+cZm+UJPNg==", "license": "Apache-2.0" }, "node_modules/babylonjs-gui": { @@ -2640,6 +2641,16 @@ "babylonjs": "^8.28.2" } }, + "node_modules/babylonjs-serializers": { + "version": "8.31.3", + "resolved": "https://registry.npmjs.org/babylonjs-serializers/-/babylonjs-serializers-8.31.3.tgz", + "integrity": "sha512-euv5FBM+nctQsUzsT8o508hcbcEH1xrQ4x1c7oVedqlN2tBRAlgMB6mVLaXCPiIeMbKKb3E8y1B3kNsIOzmEfw==", + "license": "Apache-2.0", + "dependencies": { + "babylonjs": "^8.31.3", + "babylonjs-gltf2interface": "^8.31.3" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/Apps/package.json b/Apps/package.json index 10eb897c7..1b9ad11a1 100644 --- a/Apps/package.json +++ b/Apps/package.json @@ -14,6 +14,7 @@ "babylonjs-gui": "^8.28.2", "babylonjs-loaders": "^8.28.2", "babylonjs-materials": "^8.28.2", + "babylonjs-serializers": "^8.28.2", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" } From 711a4d49e6de249468f9861b401c75aa0a731759 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Tue, 4 Nov 2025 16:30:01 -0500 Subject: [PATCH 02/12] Add a test --- .../glTFSerializerMultimaterial.png | Bin 0 -> 9567 bytes Apps/Playground/Scripts/config.json | 5 +++++ 2 files changed, 5 insertions(+) create mode 100644 Apps/Playground/ReferenceImages/glTFSerializerMultimaterial.png diff --git a/Apps/Playground/ReferenceImages/glTFSerializerMultimaterial.png b/Apps/Playground/ReferenceImages/glTFSerializerMultimaterial.png new file mode 100644 index 0000000000000000000000000000000000000000..81860d73532b3b6f9c27a40ee78d5b0e61d8eaf3 GIT binary patch literal 9567 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 Date: Tue, 4 Nov 2025 20:22:01 -0500 Subject: [PATCH 03/12] Move down test --- Apps/Playground/Scripts/config.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Apps/Playground/Scripts/config.json b/Apps/Playground/Scripts/config.json index 7025007d1..80cb01d19 100644 --- a/Apps/Playground/Scripts/config.json +++ b/Apps/Playground/Scripts/config.json @@ -1,11 +1,6 @@ { "root": "https://cdn.babylonjs.com", "tests": [ - { - "title": "GLTF Serializer multimaterial with raw texture", - "playgroundId": "#KU72PX", - "referenceImage": "glTFSerializerMultimaterial.png" - }, { "title": "Native Canvas", "playgroundId": "#TKVFSA#2", @@ -93,6 +88,11 @@ "playgroundId": "#YG3BBF#2", "referenceImage": "glTFSheen.png" }, + { + "title": "GLTF Serializer multimaterial with raw texture", + "playgroundId": "#KU72PX", + "referenceImage": "glTFSerializerMultimaterial.png" + }, { "title": "GLTF Extension KHR_materials_specular", "playgroundId": "#RNT7K4#9", From 73ed1d3d81c89b43bdf3eee083e64a796b631953 Mon Sep 17 00:00:00 2001 From: Demi <213505693+Debugmi@users.noreply.github.com> Date: Thu, 6 Nov 2025 04:46:53 -0500 Subject: [PATCH 04/12] Upgrade to latest BJS --- Apps/Playground/CMakeLists.txt | 1 - Apps/package-lock.json | 60 +++++++++++++++++----------------- Apps/package.json | 12 +++---- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/Apps/Playground/CMakeLists.txt b/Apps/Playground/CMakeLists.txt index ff2e50ae4..508dbf09d 100644 --- a/Apps/Playground/CMakeLists.txt +++ b/Apps/Playground/CMakeLists.txt @@ -6,7 +6,6 @@ set(BABYLON_SCRIPTS "../node_modules/babylonjs-materials/babylonjs.materials.js" "../node_modules/babylonjs-gui/babylon.gui.js" "../node_modules/babylonjs-serializers/babylonjs.serializers.js") - # TODO: Update babylonjs-serializers package version after https://github.com/BabylonJS/Babylon.js/pull/17365 is in set(DEPENDENCIES "../Dependencies/ammo.js" diff --git a/Apps/package-lock.json b/Apps/package-lock.json index 9a93a5d61..a055db8e7 100644 --- a/Apps/package-lock.json +++ b/Apps/package-lock.json @@ -11,12 +11,12 @@ "UnitTests" ], "dependencies": { - "babylonjs": "^8.28.2", - "babylonjs-gltf2interface": "^8.28.2", - "babylonjs-gui": "^8.28.2", - "babylonjs-loaders": "^8.28.2", - "babylonjs-materials": "^8.28.2", - "babylonjs-serializers": "^8.28.2", + "babylonjs": "^8.35.0", + "babylonjs-gltf2interface": "^8.35.0", + "babylonjs-gui": "^8.35.0", + "babylonjs-loaders": "^8.35.0", + "babylonjs-materials": "^8.35.0", + "babylonjs-serializers": "^8.35.0", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" } @@ -2601,54 +2601,54 @@ } }, "node_modules/babylonjs": { - "version": "8.31.4", - "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-8.31.4.tgz", - "integrity": "sha512-dGKD4QBXBw9wlvypfxrKcSj1c7xxHFQbUVWglope+2fZ8r8dMEbg+U+ZRVpCwYAS+Hu88ZF9M6fnjaFks5DzdA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-8.35.0.tgz", + "integrity": "sha512-XpElVkwbH9Np1W5AlFqIk2j8ebO14kw+BW4g/+fT5O5nv4A7JfIIfat73M82IktQlpmNgCKij6AGjBoBQSl1SA==", "hasInstallScript": true, "license": "Apache-2.0" }, "node_modules/babylonjs-gltf2interface": { - "version": "8.31.4", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.31.4.tgz", - "integrity": "sha512-aKZlYqf+kg0pwh73KnS/HKYgc9bHHL0+gPt/J4m87pbA0HEUaNnfrUTYtrJ4VTYnHAKd8QjCKP1o+cZm+UJPNg==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.35.0.tgz", + "integrity": "sha512-h/ro/7mF+gfbURr0u+7GR+3KTYJLjkRQwemJTfiHlpUI5+nvpq3/ejsb+BbB9ouKHKSB1pgzx6xqU6FmfXX6cQ==", "license": "Apache-2.0" }, "node_modules/babylonjs-gui": { - "version": "8.28.2", - "resolved": "https://registry.npmjs.org/babylonjs-gui/-/babylonjs-gui-8.28.2.tgz", - "integrity": "sha512-sFURHbGEfPiRPGQM4jKsPbG4ZxWj9cejNbaxbjNMCB8izc33rzXB67+yHxDdSfjkiEeB1VM30OdhdEW6/JAq+g==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/babylonjs-gui/-/babylonjs-gui-8.35.0.tgz", + "integrity": "sha512-8h8ciGcxbO+eVEqofjTysDykrrAa2Yhh1baQxw0McOmE9s4H8A0i5/9BqAafIgAbedx4Yolq0nOMy/GKs8ogKw==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.28.2" + "babylonjs": "^8.35.0" } }, "node_modules/babylonjs-loaders": { - "version": "8.28.2", - "resolved": "https://registry.npmjs.org/babylonjs-loaders/-/babylonjs-loaders-8.28.2.tgz", - "integrity": "sha512-WIbR3gaHhxSvRzs7Yuz578YlhPXqlB36tEEqIo0E+s5FqgzFy+o2TBN0O8nWnGuyk7s4wAZpA8CBQ58KsGfw5Q==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/babylonjs-loaders/-/babylonjs-loaders-8.35.0.tgz", + "integrity": "sha512-6AbwSux6F1YNQiF4MOsH7FJJh/POso/Yts9iWdsO5R+La9xqXiE+1amdXRzsRWJWyPMEJ6qmPnYaSCqa/RvP/Q==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.28.2", - "babylonjs-gltf2interface": "^8.28.2" + "babylonjs": "^8.35.0", + "babylonjs-gltf2interface": "^8.35.0" } }, "node_modules/babylonjs-materials": { - "version": "8.28.2", - "resolved": "https://registry.npmjs.org/babylonjs-materials/-/babylonjs-materials-8.28.2.tgz", - "integrity": "sha512-5/pURv40ugE7tIeiuW/6C4Eo6VXOcHZJhtjrwdLDlpfMFpAU7d2JTNyaa9NqnHkRVRqXtad3/cu6FoVw6+AsZw==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/babylonjs-materials/-/babylonjs-materials-8.35.0.tgz", + "integrity": "sha512-Uq/t2zXQlmcnoZFMDwguYESCQAlB+m0k2kRL2xlQDaxSPJ1qdhG6fzCazPddGRiFqAkFLXzYnmM3y27Hq6Mz7A==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.28.2" + "babylonjs": "^8.35.0" } }, "node_modules/babylonjs-serializers": { - "version": "8.31.3", - "resolved": "https://registry.npmjs.org/babylonjs-serializers/-/babylonjs-serializers-8.31.3.tgz", - "integrity": "sha512-euv5FBM+nctQsUzsT8o508hcbcEH1xrQ4x1c7oVedqlN2tBRAlgMB6mVLaXCPiIeMbKKb3E8y1B3kNsIOzmEfw==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/babylonjs-serializers/-/babylonjs-serializers-8.35.0.tgz", + "integrity": "sha512-4V+/Xws45+C9admwKdH0cSEN/05eTdcpr9wBKNvMxlwFW7Oigtn3OZnhCblUus4/JnlZNVvzx1B2fL8Syafo5Q==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.31.3", - "babylonjs-gltf2interface": "^8.31.3" + "babylonjs": "^8.35.0", + "babylonjs-gltf2interface": "^8.35.0" } }, "node_modules/balanced-match": { diff --git a/Apps/package.json b/Apps/package.json index 1b9ad11a1..bca6f6b03 100644 --- a/Apps/package.json +++ b/Apps/package.json @@ -9,12 +9,12 @@ "getNightly": "node scripts/getNightly.js" }, "dependencies": { - "babylonjs": "^8.28.2", - "babylonjs-gltf2interface": "^8.28.2", - "babylonjs-gui": "^8.28.2", - "babylonjs-loaders": "^8.28.2", - "babylonjs-materials": "^8.28.2", - "babylonjs-serializers": "^8.28.2", + "babylonjs": "^8.35.0", + "babylonjs-gltf2interface": "^8.35.0", + "babylonjs-gui": "^8.35.0", + "babylonjs-loaders": "^8.35.0", + "babylonjs-materials": "^8.35.0", + "babylonjs-serializers": "^8.35.0", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" } From c83ca49bc0923f77b254851cecb7cb6ec8b2f923 Mon Sep 17 00:00:00 2001 From: Demi <213505693+Debugmi@users.noreply.github.com> Date: Thu, 6 Nov 2025 05:09:07 -0500 Subject: [PATCH 05/12] Possible cause for Win32 install test failure (oops) --- Install/Test/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Install/Test/CMakeLists.txt b/Install/Test/CMakeLists.txt index ca24bb2a0..38f3ae139 100644 --- a/Install/Test/CMakeLists.txt +++ b/Install/Test/CMakeLists.txt @@ -136,6 +136,7 @@ target_link_libraries(TestInstall arcana bimg_encode bimg_decode + Blob minz bgfx bimg From f3204a725738fe02fbf07e9098e7037a8fd65848 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Thu, 6 Nov 2025 12:57:03 -0500 Subject: [PATCH 06/12] Add NativeEncoding, Blob, and babylonjs-serializers everywhere else in the Playground app --- Apps/Playground/Android/BabylonNative/CMakeLists.txt | 2 ++ .../BabylonNative/src/main/cpp/BabylonNativeJNI.cpp | 6 ++++++ Apps/Playground/Android/app/build.gradle | 6 ++++++ Apps/Playground/UWP/App.cpp | 9 ++++++++- Apps/Playground/Win32/App.cpp | 12 ++++++------ Apps/Playground/X11/App.cpp | 10 +++++++++- Apps/Playground/iOS/LibNativeBridge.mm | 7 +++++++ Apps/Playground/macOS/ViewController.mm | 7 +++++++ Apps/Playground/visionOS/LibNativeBridge.mm | 7 +++++++ Apps/scripts/getNightly.js | 2 ++ 10 files changed, 60 insertions(+), 8 deletions(-) diff --git a/Apps/Playground/Android/BabylonNative/CMakeLists.txt b/Apps/Playground/Android/BabylonNative/CMakeLists.txt index 6764be52c..4d6e6e2d8 100644 --- a/Apps/Playground/Android/BabylonNative/CMakeLists.txt +++ b/Apps/Playground/Android/BabylonNative/CMakeLists.txt @@ -25,10 +25,12 @@ target_link_libraries(BabylonNativeJNI -lz AndroidExtensions AppRuntime + Blob Canvas Console GraphicsDevice NativeCamera + NativeEncoding NativeEngine NativeInput NativeOptimizations diff --git a/Apps/Playground/Android/BabylonNative/src/main/cpp/BabylonNativeJNI.cpp b/Apps/Playground/Android/BabylonNative/src/main/cpp/BabylonNativeJNI.cpp index c7a2b6be9..b8e5ef7bb 100644 --- a/Apps/Playground/Android/BabylonNative/src/main/cpp/BabylonNativeJNI.cpp +++ b/Apps/Playground/Android/BabylonNative/src/main/cpp/BabylonNativeJNI.cpp @@ -13,11 +13,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -98,6 +100,8 @@ extern "C" { device->AddToJavaScript(env); + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Polyfills::Console::Initialize(env, [](const char* message, Babylon::Polyfills::Console::LogLevel level) { switch (level) @@ -114,6 +118,7 @@ extern "C" } }); + Babylon::Plugins::NativeEncoding::Initialize(env); Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -136,6 +141,7 @@ extern "C" scriptLoader->LoadScript("app:///Scripts/babylonjs.loaders.js"); scriptLoader->LoadScript("app:///Scripts/babylonjs.materials.js"); scriptLoader->LoadScript("app:///Scripts/babylon.gui.js"); + scriptLoader->LoadScript("app:///Scripts/babylonjs.serializers.js"); } } diff --git a/Apps/Playground/Android/app/build.gradle b/Apps/Playground/Android/app/build.gradle index c2a4dd72e..02d7de1e4 100644 --- a/Apps/Playground/Android/app/build.gradle +++ b/Apps/Playground/Android/app/build.gradle @@ -116,6 +116,12 @@ task copyFiles { into 'src/main/assets/Scripts' } copy + { + from '../../../node_modules/babylonjs-serializers' + include "babylonjs.serializers.js" + into 'src/main/assets/Scripts' + } + copy { from '../../../Dependencies' include "*.js" diff --git a/Apps/Playground/UWP/App.cpp b/Apps/Playground/UWP/App.cpp index 17d1dd21b..0e7fffe76 100644 --- a/Apps/Playground/UWP/App.cpp +++ b/Apps/Playground/UWP/App.cpp @@ -2,8 +2,10 @@ #include #include +#include #include #include +#include #include #include #include @@ -386,6 +388,8 @@ void App::RestartRuntime(Windows::Foundation::Rect bounds) m_runtime->Dispatch([this](Napi::Env env) { m_device->AddToJavaScript(env); + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Polyfills::Console::Initialize(env, [](const char* message, auto) { OutputDebugStringA(message); }); @@ -393,9 +397,11 @@ void App::RestartRuntime(Windows::Foundation::Rect bounds) m_nativeCanvas.emplace(Babylon::Polyfills::Canvas::Initialize(env)); Babylon::Polyfills::Window::Initialize(env); - + Babylon::Polyfills::XMLHttpRequest::Initialize(env); + Babylon::Plugins::NativeEncoding::Initialize(env); + Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -411,6 +417,7 @@ void App::RestartRuntime(Windows::Foundation::Rect bounds) loader.LoadScript("app:///Scripts/babylonjs.loaders.js"); loader.LoadScript("app:///Scripts/babylonjs.materials.js"); loader.LoadScript("app:///Scripts/babylon.gui.js"); + loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); if (m_files == nullptr) { diff --git a/Apps/Playground/Win32/App.cpp b/Apps/Playground/Win32/App.cpp index c8654a3d6..c6241b220 100644 --- a/Apps/Playground/Win32/App.cpp +++ b/Apps/Playground/Win32/App.cpp @@ -15,17 +15,17 @@ #include #include #include +#include #include #include #include #include -#include #include +#include #include #include #include #include -#include #include #include @@ -169,6 +169,8 @@ namespace runtime->Dispatch([hWnd](Napi::Env env) { device->AddToJavaScript(env); + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Polyfills::Console::Initialize(env, [](const char* message, Babylon::Polyfills::Console::LogLevel logLevel) { std::ostringstream ss{}; ss << "[" << GetLogLevelString(logLevel) << "] " << message << std::endl; @@ -184,8 +186,8 @@ namespace nativeCanvas.emplace(Babylon::Polyfills::Canvas::Initialize(env)); - Babylon::Polyfills::Blob::Initialize(env); - + Babylon::Plugins::NativeEncoding::Initialize(env); + Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -196,8 +198,6 @@ namespace nativeInput = &Babylon::Plugins::NativeInput::CreateForJavaScript(env); - Babylon::Plugins::NativeEncoding::Initialize(env); - Babylon::Plugins::TestUtils::Initialize(env, hWnd); }); diff --git a/Apps/Playground/X11/App.cpp b/Apps/Playground/X11/App.cpp index 992bf2548..b5395b8a4 100644 --- a/Apps/Playground/X11/App.cpp +++ b/Apps/Playground/X11/App.cpp @@ -11,10 +11,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -70,6 +72,8 @@ namespace runtime.emplace(); runtime->Dispatch([window](Napi::Env env) { + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Polyfills::Console::Initialize(env, [](const char* message, auto) { printf("%s\n", message); fflush(stdout); @@ -79,8 +83,11 @@ namespace Babylon::Polyfills::XMLHttpRequest::Initialize(env); nativeCanvas.emplace(Babylon::Polyfills::Canvas::Initialize(env)); - // Initialize NativeEngine plugin. device->AddToJavaScript(env); + + Babylon::Plugins::NativeEncoding::Initialize(env); + + // Initialize NativeEngine plugin. Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -98,6 +105,7 @@ namespace loader.LoadScript("app:///Scripts/babylonjs.loaders.js"); loader.LoadScript("app:///Scripts/babylonjs.materials.js"); loader.LoadScript("app:///Scripts/babylon.gui.js"); + loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); if (scripts.empty()) { diff --git a/Apps/Playground/iOS/LibNativeBridge.mm b/Apps/Playground/iOS/LibNativeBridge.mm index aacfecb74..35472363b 100644 --- a/Apps/Playground/iOS/LibNativeBridge.mm +++ b/Apps/Playground/iOS/LibNativeBridge.mm @@ -4,10 +4,12 @@ #import #import #import +#import #import #import #import #import +#import #import #import #import @@ -74,6 +76,8 @@ - (void)init:(MTKView*)view screenScale:(float)inScreenScale width:(int)inWidth { device->AddToJavaScript(env); + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Polyfills::Console::Initialize(env, [](const char* message, auto) { NSLog(@"%s", message); }); @@ -86,6 +90,8 @@ - (void)init:(MTKView*)view screenScale:(float)inScreenScale width:(int)inWidth Babylon::Plugins::NativeCamera::Initialize(env); + Babylon::Plugins::NativeEncoding::Initialize(env); + Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -104,6 +110,7 @@ - (void)init:(MTKView*)view screenScale:(float)inScreenScale width:(int)inWidth loader.LoadScript("app:///Scripts/babylonjs.loaders.js"); loader.LoadScript("app:///Scripts/babylonjs.materials.js"); loader.LoadScript("app:///Scripts/babylon.gui.js"); + loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); loader.LoadScript("app:///Scripts/experience.js"); } diff --git a/Apps/Playground/macOS/ViewController.mm b/Apps/Playground/macOS/ViewController.mm index 81190ccdf..7d15cf2dc 100644 --- a/Apps/Playground/macOS/ViewController.mm +++ b/Apps/Playground/macOS/ViewController.mm @@ -2,8 +2,10 @@ #import #import +#import #import #import +#import #import #import #import @@ -118,6 +120,8 @@ - (void)refreshBabylon { { device->AddToJavaScript(env); + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Polyfills::Console::Initialize(env, [](const char* message, auto) { NSLog(@"%s", message); }); @@ -130,6 +134,8 @@ - (void)refreshBabylon { Babylon::Plugins::NativeCamera::Initialize(env); + Babylon::Plugins::NativeEncoding::Initialize(env); + Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -145,6 +151,7 @@ - (void)refreshBabylon { loader.LoadScript("app:///Scripts/babylonjs.loaders.js"); loader.LoadScript("app:///Scripts/babylonjs.materials.js"); loader.LoadScript("app:///Scripts/babylon.gui.js"); + loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); if (scripts.empty()) { diff --git a/Apps/Playground/visionOS/LibNativeBridge.mm b/Apps/Playground/visionOS/LibNativeBridge.mm index bd3043881..34797843d 100644 --- a/Apps/Playground/visionOS/LibNativeBridge.mm +++ b/Apps/Playground/visionOS/LibNativeBridge.mm @@ -2,9 +2,11 @@ #import #import #import +#import #import #import #import +#import #import #import #import @@ -53,6 +55,8 @@ - (bool)initializeWithWidth:(NSInteger)width height:(NSInteger)height { _runtime->Dispatch([self](Napi::Env env) { self->_device->AddToJavaScript(env); + Babylon::Polyfills::Blob::Initialize(env); + Babylon::Polyfills::Console::Initialize(env, [](const char* message, auto) { NSLog(@"%s", message); }); @@ -63,6 +67,8 @@ - (bool)initializeWithWidth:(NSInteger)width height:(NSInteger)height { Babylon::Polyfills::XMLHttpRequest::Initialize(env); + Babylon::Plugins::NativeEncoding::Initialize(env); + Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -77,6 +83,7 @@ - (bool)initializeWithWidth:(NSInteger)width height:(NSInteger)height { loader.LoadScript("app:///Scripts/babylonjs.loaders.js"); loader.LoadScript("app:///Scripts/babylonjs.materials.js"); loader.LoadScript("app:///Scripts/babylon.gui.js"); + loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); loader.LoadScript("app:///Scripts/experience.js"); self.initialized = YES; diff --git a/Apps/scripts/getNightly.js b/Apps/scripts/getNightly.js index 89666dafd..52d13cb03 100644 --- a/Apps/scripts/getNightly.js +++ b/Apps/scripts/getNightly.js @@ -17,3 +17,5 @@ download('node_modules/babylonjs-loaders/babylonjs.loaders.js', 'https://preview download('node_modules/babylonjs-loaders/babylonjs.loaders.js.map', 'https://preview.babylonjs.com/loaders/babylonjs.loaders.js.map'); download('node_modules/babylonjs-gui/babylon.gui.js', 'https://preview.babylonjs.com/gui/babylon.gui.js'); download('node_modules/babylonjs-gui/babylon.gui.js.map', 'https://preview.babylonjs.com/gui/babylon.gui.js.map'); +download('node_modules/babylonjs-serializers/babylonjs.serializers.js', 'https://preview.babylonjs.com/serializers/babylonjs.serializers.js'); +download('node_modules/babylonjs-serializers/babylonjs.serializers.js.map', 'https://preview.babylonjs.com/serializers/babylonjs.serializers.js.map'); From aec2b99ca4726687fbae278534ba9808457f8fb6 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Thu, 6 Nov 2025 20:31:30 -0500 Subject: [PATCH 07/12] whitespace --- Apps/Playground/Win32/App.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Apps/Playground/Win32/App.cpp b/Apps/Playground/Win32/App.cpp index c6241b220..ecbdf24fc 100644 --- a/Apps/Playground/Win32/App.cpp +++ b/Apps/Playground/Win32/App.cpp @@ -187,7 +187,7 @@ namespace nativeCanvas.emplace(Babylon::Polyfills::Canvas::Initialize(env)); Babylon::Plugins::NativeEncoding::Initialize(env); - + Babylon::Plugins::NativeEngine::Initialize(env); Babylon::Plugins::NativeOptimizations::Initialize(env); @@ -210,7 +210,7 @@ namespace loader.LoadScript("app:///Scripts/babylonjs.materials.js"); loader.LoadScript("app:///Scripts/babylon.gui.js"); loader.LoadScript("app:///Scripts/meshwriter.min.js"); - loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); + loader.LoadScript("app:///Scripts/babylonjs.serializers.js"); std::vector scripts = GetCommandLineArguments(); if (scripts.empty()) From 22b14155b685f9dafc197802690224eca0787fe8 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Fri, 7 Nov 2025 17:41:09 -0500 Subject: [PATCH 08/12] Upgrade to latest BJS (has fix for failing vis test) --- Apps/package-lock.json | 60 +++++++++++++++++++++--------------------- Apps/package.json | 12 ++++----- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Apps/package-lock.json b/Apps/package-lock.json index a055db8e7..5fe9e4168 100644 --- a/Apps/package-lock.json +++ b/Apps/package-lock.json @@ -11,12 +11,12 @@ "UnitTests" ], "dependencies": { - "babylonjs": "^8.35.0", - "babylonjs-gltf2interface": "^8.35.0", - "babylonjs-gui": "^8.35.0", - "babylonjs-loaders": "^8.35.0", - "babylonjs-materials": "^8.35.0", - "babylonjs-serializers": "^8.35.0", + "babylonjs": "^8.36.1", + "babylonjs-gltf2interface": "^8.36.1", + "babylonjs-gui": "^8.36.1", + "babylonjs-loaders": "^8.36.1", + "babylonjs-materials": "^8.36.1", + "babylonjs-serializers": "^8.36.1", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" } @@ -2601,54 +2601,54 @@ } }, "node_modules/babylonjs": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-8.35.0.tgz", - "integrity": "sha512-XpElVkwbH9Np1W5AlFqIk2j8ebO14kw+BW4g/+fT5O5nv4A7JfIIfat73M82IktQlpmNgCKij6AGjBoBQSl1SA==", + "version": "8.36.1", + "resolved": "https://registry.npmjs.org/babylonjs/-/babylonjs-8.36.1.tgz", + "integrity": "sha512-8O3gTTeo4wqFbtg+uSrYj22gk9thYCHjjS/QPisKJZxMgC7bpOVACqHjd2R/Ksb7L18Vcu4Ta0BSN3qnHMnAxg==", "hasInstallScript": true, "license": "Apache-2.0" }, "node_modules/babylonjs-gltf2interface": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.35.0.tgz", - "integrity": "sha512-h/ro/7mF+gfbURr0u+7GR+3KTYJLjkRQwemJTfiHlpUI5+nvpq3/ejsb+BbB9ouKHKSB1pgzx6xqU6FmfXX6cQ==", + "version": "8.36.1", + "resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.36.1.tgz", + "integrity": "sha512-YzucievP+37reZoFjFnmf5Rn4fLkDR6CgANlu1flolawgiNovqratCzZBD45VTLNBHDHN7uZoLdXie2A+2PEow==", "license": "Apache-2.0" }, "node_modules/babylonjs-gui": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/babylonjs-gui/-/babylonjs-gui-8.35.0.tgz", - "integrity": "sha512-8h8ciGcxbO+eVEqofjTysDykrrAa2Yhh1baQxw0McOmE9s4H8A0i5/9BqAafIgAbedx4Yolq0nOMy/GKs8ogKw==", + "version": "8.36.1", + "resolved": "https://registry.npmjs.org/babylonjs-gui/-/babylonjs-gui-8.36.1.tgz", + "integrity": "sha512-PpMnd4RFZVQbyJnhS8vcQJzepeYBQxUjo6/GWnb3kkjZ/A4fTA5DSgdNTGca50+UkeQqI+LceP8CJ7BJlbRSMg==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.35.0" + "babylonjs": "^8.36.1" } }, "node_modules/babylonjs-loaders": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/babylonjs-loaders/-/babylonjs-loaders-8.35.0.tgz", - "integrity": "sha512-6AbwSux6F1YNQiF4MOsH7FJJh/POso/Yts9iWdsO5R+La9xqXiE+1amdXRzsRWJWyPMEJ6qmPnYaSCqa/RvP/Q==", + "version": "8.36.1", + "resolved": "https://registry.npmjs.org/babylonjs-loaders/-/babylonjs-loaders-8.36.1.tgz", + "integrity": "sha512-b6MkjeYVtykzsBm8A9DGKKNSmcQu7jPvec1lHnhfYCQwpCcBcShKHkscTlaezKwPG1DUnLu5boxnAyN4sFOWBw==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.35.0", - "babylonjs-gltf2interface": "^8.35.0" + "babylonjs": "^8.36.1", + "babylonjs-gltf2interface": "^8.36.1" } }, "node_modules/babylonjs-materials": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/babylonjs-materials/-/babylonjs-materials-8.35.0.tgz", - "integrity": "sha512-Uq/t2zXQlmcnoZFMDwguYESCQAlB+m0k2kRL2xlQDaxSPJ1qdhG6fzCazPddGRiFqAkFLXzYnmM3y27Hq6Mz7A==", + "version": "8.36.1", + "resolved": "https://registry.npmjs.org/babylonjs-materials/-/babylonjs-materials-8.36.1.tgz", + "integrity": "sha512-bDt2CJtXjSJqJq83aobEiLB6UiAX+e2ldyxDjW25Cn5KhpgCJ9YzZ/MKNdUwbAKIW3kAVUH3n4k/6XfRcRpvHQ==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.35.0" + "babylonjs": "^8.36.1" } }, "node_modules/babylonjs-serializers": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/babylonjs-serializers/-/babylonjs-serializers-8.35.0.tgz", - "integrity": "sha512-4V+/Xws45+C9admwKdH0cSEN/05eTdcpr9wBKNvMxlwFW7Oigtn3OZnhCblUus4/JnlZNVvzx1B2fL8Syafo5Q==", + "version": "8.36.1", + "resolved": "https://registry.npmjs.org/babylonjs-serializers/-/babylonjs-serializers-8.36.1.tgz", + "integrity": "sha512-4tbrfhUY/ZeY8cYup4YZ6lCb6xC4mzEiK0X7lVlDfylBobH/6WHXLH/SpWSCJyXIKo4rp5w5GoU8KZJaRb3l0A==", "license": "Apache-2.0", "dependencies": { - "babylonjs": "^8.35.0", - "babylonjs-gltf2interface": "^8.35.0" + "babylonjs": "^8.36.1", + "babylonjs-gltf2interface": "^8.36.1" } }, "node_modules/balanced-match": { diff --git a/Apps/package.json b/Apps/package.json index bca6f6b03..89c481a4b 100644 --- a/Apps/package.json +++ b/Apps/package.json @@ -9,12 +9,12 @@ "getNightly": "node scripts/getNightly.js" }, "dependencies": { - "babylonjs": "^8.35.0", - "babylonjs-gltf2interface": "^8.35.0", - "babylonjs-gui": "^8.35.0", - "babylonjs-loaders": "^8.35.0", - "babylonjs-materials": "^8.35.0", - "babylonjs-serializers": "^8.35.0", + "babylonjs": "^8.36.1", + "babylonjs-gltf2interface": "^8.36.1", + "babylonjs-gui": "^8.36.1", + "babylonjs-loaders": "^8.36.1", + "babylonjs-materials": "^8.36.1", + "babylonjs-serializers": "^8.36.1", "jsc-android": "^241213.1.0", "v8-android": "^7.8.2" } From a7dea85828b5fea024ebbd8e5a94599af82a4783 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Fri, 7 Nov 2025 19:12:48 -0500 Subject: [PATCH 09/12] Whitespace and sorting nits --- Apps/Playground/CMakeLists.txt | 4 ++-- Apps/Playground/UWP/App.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Apps/Playground/CMakeLists.txt b/Apps/Playground/CMakeLists.txt index 508dbf09d..f0e0ff173 100644 --- a/Apps/Playground/CMakeLists.txt +++ b/Apps/Playground/CMakeLists.txt @@ -127,11 +127,13 @@ target_include_directories(Playground PRIVATE "Source" ".") target_link_libraries(Playground PRIVATE AppRuntime + PRIVATE Blob PRIVATE Canvas PRIVATE Console PRIVATE ExternalTexture PRIVATE GraphicsDevice PRIVATE NativeCapture + PRIVATE NativeEncoding PRIVATE NativeEngine PRIVATE NativeInput PRIVATE NativeOptimizations @@ -139,8 +141,6 @@ target_link_libraries(Playground PRIVATE Window PRIVATE XMLHttpRequest PRIVATE TestUtils - PRIVATE NativeEncoding - PRIVATE Blob ${ADDITIONAL_LIBRARIES} ${BABYLON_NATIVE_PLAYGROUND_EXTENSION_LIBRARIES}) diff --git a/Apps/Playground/UWP/App.cpp b/Apps/Playground/UWP/App.cpp index 0e7fffe76..566bf4a91 100644 --- a/Apps/Playground/UWP/App.cpp +++ b/Apps/Playground/UWP/App.cpp @@ -397,7 +397,7 @@ void App::RestartRuntime(Windows::Foundation::Rect bounds) m_nativeCanvas.emplace(Babylon::Polyfills::Canvas::Initialize(env)); Babylon::Polyfills::Window::Initialize(env); - + Babylon::Polyfills::XMLHttpRequest::Initialize(env); Babylon::Plugins::NativeEncoding::Initialize(env); From e56716a43c19ffab0ef8139b0ab3d994fe549e38 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Fri, 7 Nov 2025 19:14:51 -0500 Subject: [PATCH 10/12] Sort install test deps --- Install/Test/CMakeLists.txt | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Install/Test/CMakeLists.txt b/Install/Test/CMakeLists.txt index 38f3ae139..db7b308d8 100644 --- a/Install/Test/CMakeLists.txt +++ b/Install/Test/CMakeLists.txt @@ -134,15 +134,18 @@ endif() target_link_libraries(TestInstall AppRuntime arcana - bimg_encode - bimg_decode - Blob - minz bgfx bimg + bimg_decode + bimg_encode + Blob bx Canvas + chakrart Console + d3d11 + d3d12 + d3dcompiler ExternalTexture Foundation GenericCodeGen @@ -156,30 +159,27 @@ target_link_libraries(TestInstall libwebpdecoder.lib libwebpdemux.lib MachineIndependent + minz napi NativeCamera NativeCapture + NativeEncoding NativeEngine NativeInput NativeOptimizations NativeTracing - NativeEncoding OGLCompiler OSDependent - ScriptLoader + Pathcch + runtimeobject.lib # for WINRT_IMPL_RoXXX functions Scheduling + ScriptLoader + SPIRV spirv-cross-core spirv-cross-hlsl - SPIRV UrlLib Window XMLHttpRequest - chakrart - d3d11 - d3d12 - d3dcompiler - Pathcch - runtimeobject.lib # for WINRT_IMPL_RoXXX functions ${ADDITIONAL_LIBRARIES} ) From 6a1def2d3494ee7a7f9b99c190119271be11a4c3 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Fri, 7 Nov 2025 19:54:34 -0500 Subject: [PATCH 11/12] Force run install tests (sanity check) --- .github/jobs/test_install_ios.yml | 1 - .github/jobs/test_install_linux.yml | 1 - .github/jobs/test_install_macos.yml | 1 - .github/jobs/test_install_win32.yml | 1 - azure-pipelines.yml | 222 ++++++++++++++-------------- 5 files changed, 111 insertions(+), 115 deletions(-) diff --git a/.github/jobs/test_install_ios.yml b/.github/jobs/test_install_ios.yml index 427e185d8..ce1ab83a3 100644 --- a/.github/jobs/test_install_ios.yml +++ b/.github/jobs/test_install_ios.yml @@ -5,7 +5,6 @@ parameters: jobs: - job: ${{ parameters.name }} - condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 60 pool: vmImage: ${{ parameters.vmImage }} diff --git a/.github/jobs/test_install_linux.yml b/.github/jobs/test_install_linux.yml index 54c591647..c0605e64e 100644 --- a/.github/jobs/test_install_linux.yml +++ b/.github/jobs/test_install_linux.yml @@ -7,7 +7,6 @@ parameters: jobs: - job: ${{ parameters.name }} - condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 30 pool: vmImage: ${{ parameters.vmImage }} diff --git a/.github/jobs/test_install_macos.yml b/.github/jobs/test_install_macos.yml index 7ef6e5989..8a76c4209 100644 --- a/.github/jobs/test_install_macos.yml +++ b/.github/jobs/test_install_macos.yml @@ -4,7 +4,6 @@ parameters: jobs: - job: ${{ parameters.name }} - condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 30 pool: vmImage: ${{ parameters.vmImage }} diff --git a/.github/jobs/test_install_win32.yml b/.github/jobs/test_install_win32.yml index add2cc14d..166bc674b 100644 --- a/.github/jobs/test_install_win32.yml +++ b/.github/jobs/test_install_win32.yml @@ -18,7 +18,6 @@ parameters: jobs: - job: ${{ parameters.name }} - condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 20 pool: vmImage: ${{ parameters.vmImage }} diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 14bab2c4e..28ba1568f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -15,117 +15,117 @@ variables: value: 16.4 jobs: -# Apple - - template: .github/jobs/macos.yml - parameters: - name: MacOS - vmImage: 'macOS-latest' - - - template: .github/jobs/ios.yml - parameters: - name: iOS_iOS180 - vmImage: 'macOS-latest' - deploymentTarget: 18.0 - - - template: .github/jobs/ios.yml - parameters: - name: iOS_iOS175 - vmImage: 'macOS-latest' - deploymentTarget: 17.5 - -# WIN32 - - template: .github/jobs/win32.yml - parameters: - name: Win32_x64_D3D11 - vmImage: 'windows-latest' - platform: x64 - - - template: .github/jobs/win32.yml - parameters: - name: Win32_x64_JSI_D3D11 - vmImage: 'windows-latest' - platform: x64 - napiType: jsi - - - template: .github/jobs/win32.yml - parameters: - name: Win32_x64_V8_D3D11 - vmImage: 'windows-latest' - platform: x64 - napiType: V8 - - - template: .github/jobs/win32.yml - parameters: - name: Win32_x64_D3D12 - vmImage: 'windows-latest' - platform: x64 - graphics_api: D3D12 - -# UWP - - template: .github/jobs/uwp.yml - parameters: - name: UWP_x64 - vmImage: 'windows-latest' - platform: x64 - - - template: .github/jobs/uwp.yml - parameters: - name: UWP_arm64 - vmImage: 'windows-latest' - platform: arm64 - - - template: .github/jobs/uwp.yml - parameters: - name: UWP_arm64_JSI - vmImage: 'windows-latest' - platform: arm64 - napiType: jsi - -# Ubuntu/Linux - - # TODO: v8 is incompatible with curl for some reason - # See https://github.com/BabylonJS/BabylonNative/issues/1190 - - - template: .github/jobs/linux.yml - parameters: - name: Ubuntu_Clang_JavaScriptCore - vmImage: 'ubuntu-latest' - CC: clang - CXX: clang++ - JSEngine: JavaScriptCore - - - template: .github/jobs/linux.yml - parameters: - name: Ubuntu_GCC_JavaScriptCore - vmImage: 'ubuntu-latest' - CC: gcc - CXX: g++ - JSEngine: JavaScriptCore - -# Android - - template: .github/jobs/android.yml - parameters: - name: Android_Ubuntu_JSC - vmImage: 'ubuntu-latest' - JSEngine: JavaScriptCore - - - template: .github/jobs/android.yml - parameters: - name: Android_Ubuntu_V8 - vmImage: 'ubuntu-latest' - JSEngine: V8 - - - template: .github/jobs/android.yml - parameters: - name: Android_MacOS_JSC - vmImage: 'macOS-latest' - JSEngine: JavaScriptCore - - - template: .github/jobs/android.yml - parameters: - name: Android_MacOS_V8 - vmImage: 'macOS-latest' - JSEngine: V8 +# # Apple +# - template: .github/jobs/macos.yml +# parameters: +# name: MacOS +# vmImage: 'macOS-latest' + +# - template: .github/jobs/ios.yml +# parameters: +# name: iOS_iOS180 +# vmImage: 'macOS-latest' +# deploymentTarget: 18.0 + +# - template: .github/jobs/ios.yml +# parameters: +# name: iOS_iOS175 +# vmImage: 'macOS-latest' +# deploymentTarget: 17.5 + +# # WIN32 +# - template: .github/jobs/win32.yml +# parameters: +# name: Win32_x64_D3D11 +# vmImage: 'windows-latest' +# platform: x64 + +# - template: .github/jobs/win32.yml +# parameters: +# name: Win32_x64_JSI_D3D11 +# vmImage: 'windows-latest' +# platform: x64 +# napiType: jsi + +# - template: .github/jobs/win32.yml +# parameters: +# name: Win32_x64_V8_D3D11 +# vmImage: 'windows-latest' +# platform: x64 +# napiType: V8 + +# - template: .github/jobs/win32.yml +# parameters: +# name: Win32_x64_D3D12 +# vmImage: 'windows-latest' +# platform: x64 +# graphics_api: D3D12 + +# # UWP +# - template: .github/jobs/uwp.yml +# parameters: +# name: UWP_x64 +# vmImage: 'windows-latest' +# platform: x64 + +# - template: .github/jobs/uwp.yml +# parameters: +# name: UWP_arm64 +# vmImage: 'windows-latest' +# platform: arm64 + +# - template: .github/jobs/uwp.yml +# parameters: +# name: UWP_arm64_JSI +# vmImage: 'windows-latest' +# platform: arm64 +# napiType: jsi + +# # Ubuntu/Linux + +# # TODO: v8 is incompatible with curl for some reason +# # See https://github.com/BabylonJS/BabylonNative/issues/1190 + +# - template: .github/jobs/linux.yml +# parameters: +# name: Ubuntu_Clang_JavaScriptCore +# vmImage: 'ubuntu-latest' +# CC: clang +# CXX: clang++ +# JSEngine: JavaScriptCore + +# - template: .github/jobs/linux.yml +# parameters: +# name: Ubuntu_GCC_JavaScriptCore +# vmImage: 'ubuntu-latest' +# CC: gcc +# CXX: g++ +# JSEngine: JavaScriptCore + +# # Android +# - template: .github/jobs/android.yml +# parameters: +# name: Android_Ubuntu_JSC +# vmImage: 'ubuntu-latest' +# JSEngine: JavaScriptCore + +# - template: .github/jobs/android.yml +# parameters: +# name: Android_Ubuntu_V8 +# vmImage: 'ubuntu-latest' +# JSEngine: V8 + +# - template: .github/jobs/android.yml +# parameters: +# name: Android_MacOS_JSC +# vmImage: 'macOS-latest' +# JSEngine: JavaScriptCore + +# - template: .github/jobs/android.yml +# parameters: +# name: Android_MacOS_V8 +# vmImage: 'macOS-latest' +# JSEngine: V8 # Installation tests. - template: .github/jobs/test_install_win32.yml From 6b66ddfd6538f24c9f483db3b976c793558b4d61 Mon Sep 17 00:00:00 2001 From: "Alex C. Huber" <91097647+alexchuber@users.noreply.github.com> Date: Fri, 7 Nov 2025 20:34:11 -0500 Subject: [PATCH 12/12] Revert "Force run install tests (sanity check)" This reverts commit 6a1def2d3494ee7a7f9b99c190119271be11a4c3. --- .github/jobs/test_install_ios.yml | 1 + .github/jobs/test_install_linux.yml | 1 + .github/jobs/test_install_macos.yml | 1 + .github/jobs/test_install_win32.yml | 1 + azure-pipelines.yml | 222 ++++++++++++++-------------- 5 files changed, 115 insertions(+), 111 deletions(-) diff --git a/.github/jobs/test_install_ios.yml b/.github/jobs/test_install_ios.yml index ce1ab83a3..427e185d8 100644 --- a/.github/jobs/test_install_ios.yml +++ b/.github/jobs/test_install_ios.yml @@ -5,6 +5,7 @@ parameters: jobs: - job: ${{ parameters.name }} + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 60 pool: vmImage: ${{ parameters.vmImage }} diff --git a/.github/jobs/test_install_linux.yml b/.github/jobs/test_install_linux.yml index c0605e64e..54c591647 100644 --- a/.github/jobs/test_install_linux.yml +++ b/.github/jobs/test_install_linux.yml @@ -7,6 +7,7 @@ parameters: jobs: - job: ${{ parameters.name }} + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 30 pool: vmImage: ${{ parameters.vmImage }} diff --git a/.github/jobs/test_install_macos.yml b/.github/jobs/test_install_macos.yml index 8a76c4209..7ef6e5989 100644 --- a/.github/jobs/test_install_macos.yml +++ b/.github/jobs/test_install_macos.yml @@ -4,6 +4,7 @@ parameters: jobs: - job: ${{ parameters.name }} + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 30 pool: vmImage: ${{ parameters.vmImage }} diff --git a/.github/jobs/test_install_win32.yml b/.github/jobs/test_install_win32.yml index 166bc674b..add2cc14d 100644 --- a/.github/jobs/test_install_win32.yml +++ b/.github/jobs/test_install_win32.yml @@ -18,6 +18,7 @@ parameters: jobs: - job: ${{ parameters.name }} + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) timeoutInMinutes: 20 pool: vmImage: ${{ parameters.vmImage }} diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 28ba1568f..14bab2c4e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -15,117 +15,117 @@ variables: value: 16.4 jobs: -# # Apple -# - template: .github/jobs/macos.yml -# parameters: -# name: MacOS -# vmImage: 'macOS-latest' - -# - template: .github/jobs/ios.yml -# parameters: -# name: iOS_iOS180 -# vmImage: 'macOS-latest' -# deploymentTarget: 18.0 - -# - template: .github/jobs/ios.yml -# parameters: -# name: iOS_iOS175 -# vmImage: 'macOS-latest' -# deploymentTarget: 17.5 - -# # WIN32 -# - template: .github/jobs/win32.yml -# parameters: -# name: Win32_x64_D3D11 -# vmImage: 'windows-latest' -# platform: x64 - -# - template: .github/jobs/win32.yml -# parameters: -# name: Win32_x64_JSI_D3D11 -# vmImage: 'windows-latest' -# platform: x64 -# napiType: jsi - -# - template: .github/jobs/win32.yml -# parameters: -# name: Win32_x64_V8_D3D11 -# vmImage: 'windows-latest' -# platform: x64 -# napiType: V8 - -# - template: .github/jobs/win32.yml -# parameters: -# name: Win32_x64_D3D12 -# vmImage: 'windows-latest' -# platform: x64 -# graphics_api: D3D12 - -# # UWP -# - template: .github/jobs/uwp.yml -# parameters: -# name: UWP_x64 -# vmImage: 'windows-latest' -# platform: x64 - -# - template: .github/jobs/uwp.yml -# parameters: -# name: UWP_arm64 -# vmImage: 'windows-latest' -# platform: arm64 - -# - template: .github/jobs/uwp.yml -# parameters: -# name: UWP_arm64_JSI -# vmImage: 'windows-latest' -# platform: arm64 -# napiType: jsi - -# # Ubuntu/Linux - -# # TODO: v8 is incompatible with curl for some reason -# # See https://github.com/BabylonJS/BabylonNative/issues/1190 - -# - template: .github/jobs/linux.yml -# parameters: -# name: Ubuntu_Clang_JavaScriptCore -# vmImage: 'ubuntu-latest' -# CC: clang -# CXX: clang++ -# JSEngine: JavaScriptCore - -# - template: .github/jobs/linux.yml -# parameters: -# name: Ubuntu_GCC_JavaScriptCore -# vmImage: 'ubuntu-latest' -# CC: gcc -# CXX: g++ -# JSEngine: JavaScriptCore - -# # Android -# - template: .github/jobs/android.yml -# parameters: -# name: Android_Ubuntu_JSC -# vmImage: 'ubuntu-latest' -# JSEngine: JavaScriptCore - -# - template: .github/jobs/android.yml -# parameters: -# name: Android_Ubuntu_V8 -# vmImage: 'ubuntu-latest' -# JSEngine: V8 - -# - template: .github/jobs/android.yml -# parameters: -# name: Android_MacOS_JSC -# vmImage: 'macOS-latest' -# JSEngine: JavaScriptCore - -# - template: .github/jobs/android.yml -# parameters: -# name: Android_MacOS_V8 -# vmImage: 'macOS-latest' -# JSEngine: V8 +# Apple + - template: .github/jobs/macos.yml + parameters: + name: MacOS + vmImage: 'macOS-latest' + + - template: .github/jobs/ios.yml + parameters: + name: iOS_iOS180 + vmImage: 'macOS-latest' + deploymentTarget: 18.0 + + - template: .github/jobs/ios.yml + parameters: + name: iOS_iOS175 + vmImage: 'macOS-latest' + deploymentTarget: 17.5 + +# WIN32 + - template: .github/jobs/win32.yml + parameters: + name: Win32_x64_D3D11 + vmImage: 'windows-latest' + platform: x64 + + - template: .github/jobs/win32.yml + parameters: + name: Win32_x64_JSI_D3D11 + vmImage: 'windows-latest' + platform: x64 + napiType: jsi + + - template: .github/jobs/win32.yml + parameters: + name: Win32_x64_V8_D3D11 + vmImage: 'windows-latest' + platform: x64 + napiType: V8 + + - template: .github/jobs/win32.yml + parameters: + name: Win32_x64_D3D12 + vmImage: 'windows-latest' + platform: x64 + graphics_api: D3D12 + +# UWP + - template: .github/jobs/uwp.yml + parameters: + name: UWP_x64 + vmImage: 'windows-latest' + platform: x64 + + - template: .github/jobs/uwp.yml + parameters: + name: UWP_arm64 + vmImage: 'windows-latest' + platform: arm64 + + - template: .github/jobs/uwp.yml + parameters: + name: UWP_arm64_JSI + vmImage: 'windows-latest' + platform: arm64 + napiType: jsi + +# Ubuntu/Linux + + # TODO: v8 is incompatible with curl for some reason + # See https://github.com/BabylonJS/BabylonNative/issues/1190 + + - template: .github/jobs/linux.yml + parameters: + name: Ubuntu_Clang_JavaScriptCore + vmImage: 'ubuntu-latest' + CC: clang + CXX: clang++ + JSEngine: JavaScriptCore + + - template: .github/jobs/linux.yml + parameters: + name: Ubuntu_GCC_JavaScriptCore + vmImage: 'ubuntu-latest' + CC: gcc + CXX: g++ + JSEngine: JavaScriptCore + +# Android + - template: .github/jobs/android.yml + parameters: + name: Android_Ubuntu_JSC + vmImage: 'ubuntu-latest' + JSEngine: JavaScriptCore + + - template: .github/jobs/android.yml + parameters: + name: Android_Ubuntu_V8 + vmImage: 'ubuntu-latest' + JSEngine: V8 + + - template: .github/jobs/android.yml + parameters: + name: Android_MacOS_JSC + vmImage: 'macOS-latest' + JSEngine: JavaScriptCore + + - template: .github/jobs/android.yml + parameters: + name: Android_MacOS_V8 + vmImage: 'macOS-latest' + JSEngine: V8 # Installation tests. - template: .github/jobs/test_install_win32.yml