Skip to content

Commit 6f7f393

Browse files
authored
Update to latest Babylon Native with render threading (#107)
Update BabylonNative to master and fix up usage of graphics, plus remove NativeWindow.
1 parent 19e9cdf commit 6f7f393

File tree

9 files changed

+16
-19
lines changed

9 files changed

+16
-19
lines changed

Modules/@babylonjs/react-native/EngineHook.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ class DOMException {
6262
declare const global: any;
6363
global.atob = base64.decode;
6464

65+
// This global object is part of Babylon Native.
66+
declare const _native: {
67+
graphicsInitializationPromise: Promise<void>;
68+
}
69+
6570
export function useEngine(): Engine | undefined {
6671
const [engine, setEngine] = useState<Engine>();
6772

@@ -72,6 +77,7 @@ export function useEngine(): Engine | undefined {
7277
(async () => {
7378
if (await BabylonModule.initialize() && !disposed)
7479
{
80+
await _native.graphicsInitializationPromise;
7581
engine = new NativeEngine();
7682
setEngine(engine);
7783
}

Modules/@babylonjs/react-native/android/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ target_link_libraries(BabylonNative
7171
AndroidExtensions
7272
Graphics
7373
JsRuntime
74-
NativeWindow
7574
NativeEngine
7675
NativeInput
7776
NativeXr

Modules/@babylonjs/react-native/android/src/main/cpp/BabylonNativeInterop.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
#include <Babylon/Graphics.h>
44
#include <Babylon/JsRuntime.h>
5-
#include <Babylon/Plugins/NativeWindow.h>
65
#include <Babylon/Plugins/NativeEngine.h>
76
#include <Babylon/Plugins/NativeInput.h>
87
#include <Babylon/Plugins/NativeXr.h>
@@ -48,11 +47,10 @@ namespace Babylon
4847
auto width = static_cast<size_t>(ANativeWindow_getWidth(windowPtr));
4948
auto height = static_cast<size_t>(ANativeWindow_getHeight(windowPtr));
5049

51-
m_graphics = Graphics::InitializeFromWindow<void*>(windowPtr, width, height);
50+
m_graphics = Graphics::CreateGraphics(reinterpret_cast<void*>(windowPtr), width, height);
5251
m_graphics->AddToJavaScript(m_env);
5352

54-
Plugins::NativeEngine::Initialize(m_env);
55-
Plugins::NativeWindow::Initialize(m_env, windowPtr, width, height);
53+
Plugins::NativeEngine::Initialize(m_env, true);
5654
Plugins::NativeXr::Initialize(m_env);
5755

5856
Polyfills::Window::Initialize(m_env);
@@ -73,8 +71,8 @@ namespace Babylon
7371
{
7472
auto width = static_cast<size_t>(ANativeWindow_getWidth(windowPtr));
7573
auto height = static_cast<size_t>(ANativeWindow_getHeight(windowPtr));
76-
m_graphics->ReinitializeFromWindow<void*>(windowPtr, width, height);
77-
Plugins::NativeWindow::Reinitialize(m_env, windowPtr, width, height);
74+
m_graphics->UpdateWindow<void*>(windowPtr);
75+
m_graphics->UpdateSize(width, height);
7876
}
7977

8078
void SetPointerButtonState(uint32_t pointerId, uint32_t buttonId, bool isDown, uint32_t x, uint32_t y)

Modules/@babylonjs/react-native/ios/BabylonNative.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
#include <Babylon/Graphics.h>
44
#include <Babylon/JsRuntime.h>
5-
#include <Babylon/Plugins/NativeWindow.h>
65
#include <Babylon/Plugins/NativeEngine.h>
76
#include <Babylon/Plugins/NativeInput.h>
87
#include <Babylon/Plugins/NativeXr.h>
@@ -45,7 +44,7 @@ namespace Babylon
4544
: m_impl{ std::make_unique<Native::Impl>(jsiRuntime, callInvoker) }
4645
{
4746
dispatch_sync(dispatch_get_main_queue(), ^{
48-
m_impl->m_graphics = Graphics::InitializeFromWindow<void*>(windowPtr, width, height);
47+
m_impl->m_graphics = Graphics::CreateGraphics(reinterpret_cast<void*>(windowPtr), width, height);
4948
});
5049

5150
m_impl->runtime = &JsRuntime::CreateForJavaScript(m_impl->env, CreateJsRuntimeDispatcher(m_impl->env, jsiRuntime, callInvoker));
@@ -57,8 +56,7 @@ namespace Babylon
5756
// React Native's implementation, but rather adds a second one scoped to Babylon and used by WebRequest.ts.
5857
Polyfills::XMLHttpRequest::Initialize(m_impl->env);
5958

60-
Plugins::NativeWindow::Initialize(m_impl->env, windowPtr, width, height);
61-
Plugins::NativeEngine::Initialize(m_impl->env);
59+
Plugins::NativeEngine::Initialize(m_impl->env, true);
6260
Plugins::NativeXr::Initialize(m_impl->env);
6361

6462
m_impl->nativeInput = &Babylon::Plugins::NativeInput::CreateForJavaScript(m_impl->env);
@@ -70,13 +68,13 @@ namespace Babylon
7068

7169
void Native::Refresh(void* windowPtr, size_t width, size_t height)
7270
{
73-
m_impl->m_graphics->ReinitializeFromWindow<void*>(windowPtr, width, height);
74-
Plugins::NativeWindow::Reinitialize(m_impl->env, windowPtr, width, height);
71+
m_impl->m_graphics->UpdateWindow<void*>(windowPtr);
72+
m_impl->m_graphics->UpdateSize(width, height);
7573
}
7674

7775
void Native::Resize(size_t width, size_t height)
7876
{
79-
Plugins::NativeWindow::UpdateSize(m_impl->env, width, height);
77+
m_impl->m_graphics->UpdateSize(width, height);
8078
}
8179

8280
void Native::SetPointerButtonState(uint32_t pointerId, uint32_t buttonId, bool isDown, uint32_t x, uint32_t y)

Modules/@babylonjs/react-native/ios/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ target_link_libraries(BabylonNative
4343
reactnative
4444
BabylonReactNativeShared
4545
JsRuntime
46-
NativeWindow
4746
NativeEngine
4847
NativeInput
4948
NativeXr

Modules/@babylonjs/react-native/react-native-babylon.podspec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ Pod::Spec.new do |s|
3333
'napi',
3434
'NativeEngine',
3535
'NativeInput',
36-
'NativeWindow',
3736
'NativeXR',
3837
'SPIRV',
3938
'spirv-cross-core',
Submodule BabylonNative updated 35 files

Package/gulpfile.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ Assembled/ios/libs/libWindow.a
9494
Assembled/ios/libs/libbimg.a
9595
Assembled/ios/libs/libOGLCompiler.a
9696
Assembled/ios/libs/libastc.a
97-
Assembled/ios/libs/libNativeWindow.a
9897
Assembled/ios/libs/libNativeEngine.a
9998
Assembled/ios/libs/libNativeXr.a
10099
Assembled/ios/libs/libspirv-cross-glsl.a

Package/iOS/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ set(PACKAGED_LIBS
1818
napi
1919
NativeEngine
2020
NativeInput
21-
NativeWindow
2221
NativeXr
2322
SPIRV
2423
spirv-cross-core

0 commit comments

Comments
 (0)