react-native-windows 0.74.0-preview.3 → 0.74.0-preview.4
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/Microsoft.ReactNative/CompositionComponentView.idl +18 -3
- package/Microsoft.ReactNative/CompositionContext.idl +5 -5
- package/Microsoft.ReactNative/CompositionRootView.idl +22 -8
- package/Microsoft.ReactNative/CompositionSwitcher.idl +2 -2
- package/Microsoft.ReactNative/CompositionUIService.idl +8 -6
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +8 -1
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +7 -2
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +4 -3
- package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +5 -5
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.h +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +173 -152
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +8 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +13 -13
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +14 -11
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +24 -11
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -10
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +15 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +20 -9
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.h +6 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +5 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +104 -54
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +25 -19
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.h +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +9 -8
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -5
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +7 -5
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +5 -5
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +5 -5
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +5 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +34 -27
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +6 -6
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +9 -9
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +6 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +5 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +6 -6
- package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +13 -3
- package/Microsoft.ReactNative/Fabric/Composition/Theme.h +16 -8
- package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -3
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -1
- package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +1 -1
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +2 -1
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +7 -5
- package/Microsoft.ReactNative/Theme.idl +12 -1
- package/Microsoft.ReactNative/ViewProps.idl +11 -1
- package/Microsoft.ReactNative/packages.lock.json +70 -42
- package/Microsoft.ReactNative.Cxx/AutoDraw.h +3 -3
- package/Microsoft.ReactNative.Cxx/{CompositionSwitcher.interop.h → CompositionSwitcher.Experimental.interop.h} +2 -2
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +2 -0
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +2 -11
- package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.props +1 -1
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +5 -3
- package/PropertySheets/Generated/PackageVersion.g.props +2 -2
- package/package.json +1 -1
- package/templates/cpp-app/windows/MyApp/MyApp.cpp +2 -7
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
#pragma once
|
|
4
4
|
|
|
5
5
|
#ifdef USE_WINUI3
|
|
6
|
-
#include "Composition.MicrosoftCompositionContextHelper.g.h"
|
|
6
|
+
#include "Composition.Experimental.MicrosoftCompositionContextHelper.g.h"
|
|
7
7
|
#endif
|
|
8
|
-
#include "Composition.SystemCompositionContextHelper.g.h"
|
|
8
|
+
#include "Composition.Experimental.SystemCompositionContextHelper.g.h"
|
|
9
9
|
|
|
10
10
|
#include <d2d1_1.h>
|
|
11
11
|
#include <windows.ui.composition.interop.h>
|
|
12
12
|
#include <winrt/Windows.UI.Composition.h>
|
|
13
13
|
#include "CompositionHelpers.h"
|
|
14
14
|
|
|
15
|
-
namespace winrt::Microsoft::ReactNative::Composition {
|
|
15
|
+
namespace winrt::Microsoft::ReactNative::Composition::Experimental {
|
|
16
16
|
#ifdef USE_WINUI3
|
|
17
17
|
using CompositionContextHelper = MicrosoftCompositionContextHelper;
|
|
18
18
|
#else
|
|
19
19
|
using CompositionContextHelper = SystemCompositionContextHelper;
|
|
20
20
|
#endif
|
|
21
|
-
} // namespace winrt::Microsoft::ReactNative::Composition
|
|
21
|
+
} // namespace winrt::Microsoft::ReactNative::Composition::Experimental
|
|
22
22
|
|
|
23
|
-
namespace winrt::Microsoft::ReactNative::Composition::implementation {
|
|
23
|
+
namespace winrt::Microsoft::ReactNative::Composition::Experimental::implementation {
|
|
24
24
|
|
|
25
25
|
struct SystemCompositionContextHelper : SystemCompositionContextHelperT<SystemCompositionContextHelper> {
|
|
26
26
|
SystemCompositionContextHelper() = default;
|
|
@@ -48,9 +48,9 @@ struct MicrosoftCompositionContextHelper : MicrosoftCompositionContextHelperT<Mi
|
|
|
48
48
|
};
|
|
49
49
|
#endif
|
|
50
50
|
|
|
51
|
-
} // namespace winrt::Microsoft::ReactNative::Composition::implementation
|
|
51
|
+
} // namespace winrt::Microsoft::ReactNative::Composition::Experimental::implementation
|
|
52
52
|
|
|
53
|
-
namespace winrt::Microsoft::ReactNative::Composition::factory_implementation {
|
|
53
|
+
namespace winrt::Microsoft::ReactNative::Composition::Experimental::factory_implementation {
|
|
54
54
|
|
|
55
55
|
struct SystemCompositionContextHelper
|
|
56
56
|
: SystemCompositionContextHelperT<SystemCompositionContextHelper, implementation::SystemCompositionContextHelper> {
|
|
@@ -62,4 +62,4 @@ struct MicrosoftCompositionContextHelper : MicrosoftCompositionContextHelperT<
|
|
|
62
62
|
implementation::MicrosoftCompositionContextHelper> {};
|
|
63
63
|
#endif
|
|
64
64
|
|
|
65
|
-
} // namespace winrt::Microsoft::ReactNative::Composition::factory_implementation
|
|
65
|
+
} // namespace winrt::Microsoft::ReactNative::Composition::Experimental::factory_implementation
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
|
|
2
2
|
#include "pch.h"
|
|
3
3
|
#include "CompositionContextHelper.h"
|
|
4
|
-
#if __has_include("Composition.SystemCompositionContextHelper.g.cpp")
|
|
5
|
-
#include "Composition.SystemCompositionContextHelper.g.cpp"
|
|
4
|
+
#if __has_include("Composition.Experimental.SystemCompositionContextHelper.g.cpp")
|
|
5
|
+
#include "Composition.Experimental.SystemCompositionContextHelper.g.cpp"
|
|
6
6
|
#endif
|
|
7
7
|
#ifdef USE_WINUI3
|
|
8
|
-
#if __has_include("Composition.MicrosoftCompositionContextHelper.g.cpp")
|
|
9
|
-
#include "Composition.MicrosoftCompositionContextHelper.g.cpp"
|
|
8
|
+
#if __has_include("Composition.Experimental.MicrosoftCompositionContextHelper.g.cpp")
|
|
9
|
+
#include "Composition.Experimental.MicrosoftCompositionContextHelper.g.cpp"
|
|
10
10
|
#endif
|
|
11
11
|
#endif
|
|
12
12
|
|
|
13
|
-
namespace winrt::Microsoft::ReactNative::Composition::implementation {
|
|
13
|
+
namespace winrt::Microsoft::ReactNative::Composition::Experimental::implementation {
|
|
14
14
|
|
|
15
15
|
ICompositionContext SystemCompositionContextHelper::CreateContext(
|
|
16
16
|
winrt::Windows::UI::Composition::Compositor const &) noexcept {
|
|
@@ -45,35 +45,35 @@ winrt::Windows::UI::Composition::ICompositionSurface SystemCompositionContextHel
|
|
|
45
45
|
|
|
46
46
|
#ifdef USE_WINUI3
|
|
47
47
|
ICompositionContext MicrosoftCompositionContextHelper::CreateContext(
|
|
48
|
-
winrt::
|
|
48
|
+
winrt::Microsoft::UI::Composition::Compositor const &) noexcept {
|
|
49
49
|
return nullptr;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
IVisual MicrosoftCompositionContextHelper::CreateVisual(winrt::
|
|
52
|
+
IVisual MicrosoftCompositionContextHelper::CreateVisual(winrt::Microsoft::UI::Composition::Visual const &) noexcept {
|
|
53
53
|
return nullptr;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
winrt::
|
|
56
|
+
winrt::Microsoft::UI::Composition::Compositor MicrosoftCompositionContextHelper::InnerCompositor(
|
|
57
57
|
ICompositionContext) noexcept {
|
|
58
58
|
return nullptr;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
winrt::
|
|
61
|
+
winrt::Microsoft::UI::Composition::Visual MicrosoftCompositionContextHelper::InnerVisual(IVisual) noexcept {
|
|
62
62
|
return nullptr;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
winrt::
|
|
65
|
+
winrt::Microsoft::UI::Composition::DropShadow MicrosoftCompositionContextHelper::InnerDropShadow(IDropShadow) noexcept {
|
|
66
66
|
return nullptr;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
winrt::
|
|
69
|
+
winrt::Microsoft::UI::Composition::CompositionBrush MicrosoftCompositionContextHelper::InnerBrush(IBrush) noexcept {
|
|
70
70
|
return nullptr;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
winrt::
|
|
73
|
+
winrt::Microsoft::UI::Composition::ICompositionSurface MicrosoftCompositionContextHelper::InnerSurface(
|
|
74
74
|
IDrawingSurfaceBrush) noexcept {
|
|
75
75
|
return nullptr;
|
|
76
76
|
}
|
|
77
77
|
#endif
|
|
78
78
|
|
|
79
|
-
} // namespace winrt::Microsoft::ReactNative::Composition::implementation
|
|
79
|
+
} // namespace winrt::Microsoft::ReactNative::Composition::Experimental::implementation
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include "CompositionContextHelper.h"
|
|
15
15
|
#include "ReactNativeHost.h"
|
|
16
16
|
|
|
17
|
+
#include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
|
|
17
18
|
#include "CompositionRootAutomationProvider.h"
|
|
18
19
|
#include "CompositionRootView.h"
|
|
19
20
|
|
|
@@ -35,19 +36,16 @@ void CompositionHwndHost::Initialize(uint64_t hwnd) noexcept {
|
|
|
35
36
|
winrt::Microsoft::ReactNative::Composition::implementation::CompositionUIService::GetCompositionContext(
|
|
36
37
|
ReactViewHost().ReactNativeHost().InstanceSettings().Properties());
|
|
37
38
|
#if USE_WINUI3
|
|
38
|
-
if (auto liftedCompositor =
|
|
39
|
-
MicrosoftCompositionContextHelper::InnerCompositor(
|
|
39
|
+
if (auto liftedCompositor =
|
|
40
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::MicrosoftCompositionContextHelper::InnerCompositor(
|
|
41
|
+
compositionContext)) {
|
|
40
42
|
m_compRootView = winrt::Microsoft::ReactNative::CompositionRootView(liftedCompositor);
|
|
41
|
-
m_compRootView.SetWindow(reinterpret_cast<uint64_t>(m_hwnd));
|
|
42
43
|
|
|
43
44
|
auto bridge = winrt::Microsoft::UI::Content::DesktopChildSiteBridge::Create(
|
|
44
45
|
liftedCompositor, winrt::Microsoft::UI::GetWindowIdFromWindow(m_hwnd));
|
|
45
46
|
|
|
46
47
|
auto island = m_compRootView.Island();
|
|
47
48
|
|
|
48
|
-
auto invScale = 1.0f / ScaleFactor();
|
|
49
|
-
m_compRootView.RootVisual().Scale({invScale, invScale, invScale});
|
|
50
|
-
|
|
51
49
|
bridge.Connect(island);
|
|
52
50
|
bridge.Show();
|
|
53
51
|
|
|
@@ -55,11 +53,12 @@ void CompositionHwndHost::Initialize(uint64_t hwnd) noexcept {
|
|
|
55
53
|
bridge.ResizePolicy(winrt::Microsoft::UI::Content::ContentSizePolicy::ResizeContentToParentWindow);
|
|
56
54
|
} else {
|
|
57
55
|
m_compRootView = winrt::Microsoft::ReactNative::CompositionRootView();
|
|
58
|
-
m_compRootView.
|
|
56
|
+
m_compRootView.as<winrt::Microsoft::ReactNative::Composition::Experimental::IInternalCompositionRootView>()
|
|
57
|
+
.SetWindow(reinterpret_cast<uint64_t>(m_hwnd));
|
|
59
58
|
|
|
60
59
|
#endif
|
|
61
60
|
auto compositor =
|
|
62
|
-
winrt::Microsoft::ReactNative::Composition::
|
|
61
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::SystemCompositionContextHelper::InnerCompositor(
|
|
63
62
|
compositionContext);
|
|
64
63
|
auto interop = compositor.as<ABI::Windows::UI::Composition::Desktop::ICompositorDesktopInterop>();
|
|
65
64
|
winrt::Windows::UI::Composition::Desktop::DesktopWindowTarget target{nullptr};
|
|
@@ -74,8 +73,10 @@ void CompositionHwndHost::Initialize(uint64_t hwnd) noexcept {
|
|
|
74
73
|
root.Comment(L"Root Visual");
|
|
75
74
|
target.Root(root);
|
|
76
75
|
|
|
77
|
-
m_compRootView.
|
|
78
|
-
|
|
76
|
+
m_compRootView.as<winrt::Microsoft::ReactNative::Composition::Experimental::IInternalCompositionRootView>()
|
|
77
|
+
.InternalRootVisual(
|
|
78
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::SystemCompositionContextHelper::CreateVisual(
|
|
79
|
+
target.Root()));
|
|
79
80
|
|
|
80
81
|
#if USE_WINUI3
|
|
81
82
|
}
|
|
@@ -122,7 +123,9 @@ LRESULT CompositionHwndHost::TranslateMessage(int msg, uint64_t wParam, int64_t
|
|
|
122
123
|
#if USE_WINUI3
|
|
123
124
|
if (!m_compRootView.Island()) // When using Island hosting we dont need to forward window messages
|
|
124
125
|
#endif
|
|
125
|
-
return static_cast<LRESULT>(
|
|
126
|
+
return static_cast<LRESULT>(
|
|
127
|
+
m_compRootView.as<winrt::Microsoft::ReactNative::Composition::Experimental::IInternalCompositionRootView>()
|
|
128
|
+
.SendMessage(msg, wParam, lParam));
|
|
126
129
|
}
|
|
127
130
|
return 0;
|
|
128
131
|
}
|
|
@@ -126,7 +126,7 @@ inline Mso::Future<void> CompositionReactViewInstance::PostInUIQueue(TAction &&a
|
|
|
126
126
|
CompositionRootView::CompositionRootView() noexcept {}
|
|
127
127
|
|
|
128
128
|
#ifdef USE_WINUI3
|
|
129
|
-
CompositionRootView::CompositionRootView(winrt::Microsoft::UI::Composition::Compositor compositor) noexcept
|
|
129
|
+
CompositionRootView::CompositionRootView(const winrt::Microsoft::UI::Composition::Compositor &compositor) noexcept
|
|
130
130
|
: m_compositor(compositor) {}
|
|
131
131
|
#endif
|
|
132
132
|
|
|
@@ -151,11 +151,17 @@ void CompositionRootView::ReactViewHost(winrt::Microsoft::ReactNative::IReactVie
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
winrt::Microsoft::
|
|
154
|
+
winrt::Microsoft::UI::Composition::Visual CompositionRootView::RootVisual() noexcept {
|
|
155
|
+
return winrt::Microsoft::ReactNative::Composition::Experimental::MicrosoftCompositionContextHelper::InnerVisual(
|
|
156
|
+
m_rootVisual);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual CompositionRootView::InternalRootVisual() noexcept {
|
|
155
160
|
return m_rootVisual;
|
|
156
161
|
}
|
|
157
162
|
|
|
158
|
-
void CompositionRootView::
|
|
163
|
+
void CompositionRootView::InternalRootVisual(
|
|
164
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual const &value) noexcept {
|
|
159
165
|
if (m_rootVisual != value) {
|
|
160
166
|
assert(!m_rootVisual);
|
|
161
167
|
m_rootVisual = value;
|
|
@@ -164,16 +170,16 @@ void CompositionRootView::RootVisual(winrt::Microsoft::ReactNative::Composition:
|
|
|
164
170
|
}
|
|
165
171
|
|
|
166
172
|
void CompositionRootView::AddRenderedVisual(
|
|
167
|
-
const winrt::Microsoft::ReactNative::Composition::IVisual &visual) noexcept {
|
|
173
|
+
const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual) noexcept {
|
|
168
174
|
assert(!m_hasRenderedVisual);
|
|
169
|
-
|
|
175
|
+
InternalRootVisual().InsertAt(visual, 0);
|
|
170
176
|
m_hasRenderedVisual = true;
|
|
171
177
|
}
|
|
172
178
|
|
|
173
179
|
void CompositionRootView::RemoveRenderedVisual(
|
|
174
|
-
const winrt::Microsoft::ReactNative::Composition::IVisual &visual) noexcept {
|
|
180
|
+
const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual) noexcept {
|
|
175
181
|
assert(m_hasRenderedVisual);
|
|
176
|
-
|
|
182
|
+
InternalRootVisual().Remove(visual);
|
|
177
183
|
m_hasRenderedVisual = false;
|
|
178
184
|
}
|
|
179
185
|
|
|
@@ -214,6 +220,11 @@ float CompositionRootView::ScaleFactor() noexcept {
|
|
|
214
220
|
void CompositionRootView::ScaleFactor(float value) noexcept {
|
|
215
221
|
if (m_scaleFactor != value) {
|
|
216
222
|
m_scaleFactor = value;
|
|
223
|
+
// Lifted ContentIslands apply a scale that we need to reverse
|
|
224
|
+
if (auto rootView = RootVisual()) {
|
|
225
|
+
auto invScale = 1.0f / value;
|
|
226
|
+
rootView.Scale({invScale, invScale, invScale});
|
|
227
|
+
}
|
|
217
228
|
UpdateRootVisualSize();
|
|
218
229
|
}
|
|
219
230
|
}
|
|
@@ -430,7 +441,7 @@ void CompositionRootView::ClearLoadingUI() noexcept {
|
|
|
430
441
|
if (!m_loadingVisual)
|
|
431
442
|
return;
|
|
432
443
|
|
|
433
|
-
|
|
444
|
+
InternalRootVisual().Remove(m_loadingVisual);
|
|
434
445
|
|
|
435
446
|
m_loadingVisual = nullptr;
|
|
436
447
|
m_loadingActivityVisual = nullptr;
|
|
@@ -462,7 +473,7 @@ void CompositionRootView::ShowInstanceError() noexcept {
|
|
|
462
473
|
ClearLoadingUI();
|
|
463
474
|
}
|
|
464
475
|
|
|
465
|
-
Composition::IDrawingSurfaceBrush CompositionRootView::CreateLoadingVisualBrush() noexcept {
|
|
476
|
+
Composition::Experimental::IDrawingSurfaceBrush CompositionRootView::CreateLoadingVisualBrush() noexcept {
|
|
466
477
|
auto compContext =
|
|
467
478
|
winrt::Microsoft::ReactNative::Composition::implementation::CompositionUIService::GetCompositionContext(
|
|
468
479
|
m_context.Properties().Handle());
|
|
@@ -543,7 +554,7 @@ void CompositionRootView::ShowInstanceLoading() noexcept {
|
|
|
543
554
|
|
|
544
555
|
UpdateLoadingVisualSize();
|
|
545
556
|
|
|
546
|
-
|
|
557
|
+
InternalRootVisual().InsertAt(m_loadingVisual, m_hasRenderedVisual ? 1 : 0);
|
|
547
558
|
}
|
|
548
559
|
|
|
549
560
|
winrt::Windows::Foundation::Size CompositionRootView::Measure(
|
|
@@ -617,7 +628,9 @@ winrt::Microsoft::UI::Content::ContentIsland CompositionRootView::Island() noexc
|
|
|
617
628
|
if (!m_island) {
|
|
618
629
|
auto rootVisual = m_compositor.CreateSpriteVisual();
|
|
619
630
|
|
|
620
|
-
|
|
631
|
+
InternalRootVisual(
|
|
632
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::MicrosoftCompositionContextHelper::CreateVisual(
|
|
633
|
+
rootVisual));
|
|
621
634
|
m_island = winrt::Microsoft::UI::Content::ContentIsland::Create(rootVisual);
|
|
622
635
|
|
|
623
636
|
m_island.AutomationProviderRequested(
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
#include <FocusNavigationResult.g.h>
|
|
8
8
|
|
|
9
9
|
#include <ReactContext.h>
|
|
10
|
+
#include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
|
|
10
11
|
#include <winrt/Microsoft.ReactNative.h>
|
|
11
12
|
#include "CompositionEventHandler.h"
|
|
12
13
|
#include "ReactHost/React.h"
|
|
@@ -40,11 +41,13 @@ struct FocusNavigationResult : FocusNavigationResultT<FocusNavigationResult> {
|
|
|
40
41
|
const bool m_wasFocusMoved;
|
|
41
42
|
};
|
|
42
43
|
|
|
43
|
-
struct CompositionRootView
|
|
44
|
+
struct CompositionRootView
|
|
45
|
+
: CompositionRootViewT<CompositionRootView, Composition::Experimental::IInternalCompositionRootView>,
|
|
46
|
+
::Microsoft::ReactNative::ICompositionRootView {
|
|
44
47
|
CompositionRootView() noexcept;
|
|
45
48
|
|
|
46
49
|
#ifdef USE_WINUI3
|
|
47
|
-
CompositionRootView(winrt::Microsoft::UI::Composition::Compositor compositor) noexcept;
|
|
50
|
+
CompositionRootView(const winrt::Microsoft::UI::Composition::Compositor &compositor) noexcept;
|
|
48
51
|
winrt::Microsoft::UI::Content::ContentIsland Island() noexcept;
|
|
49
52
|
#endif
|
|
50
53
|
|
|
@@ -52,9 +55,11 @@ struct CompositionRootView : CompositionRootViewT<CompositionRootView>, ::Micros
|
|
|
52
55
|
ReactNative::IReactViewHost ReactViewHost() noexcept;
|
|
53
56
|
void ReactViewHost(ReactNative::IReactViewHost const &value) noexcept;
|
|
54
57
|
|
|
58
|
+
winrt::Microsoft::UI::Composition::Visual RootVisual() noexcept;
|
|
59
|
+
|
|
55
60
|
// property RootVisual
|
|
56
|
-
winrt::Microsoft::ReactNative::Composition::IVisual
|
|
57
|
-
void
|
|
61
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual InternalRootVisual() noexcept;
|
|
62
|
+
void InternalRootVisual(winrt::Microsoft::ReactNative::Composition::Experimental::IVisual const &value) noexcept;
|
|
58
63
|
|
|
59
64
|
// property Size
|
|
60
65
|
winrt::Windows::Foundation::Size Size() noexcept;
|
|
@@ -64,8 +69,8 @@ struct CompositionRootView : CompositionRootViewT<CompositionRootView>, ::Micros
|
|
|
64
69
|
float ScaleFactor() noexcept;
|
|
65
70
|
void ScaleFactor(float value) noexcept;
|
|
66
71
|
|
|
67
|
-
void AddRenderedVisual(const winrt::Microsoft::ReactNative::Composition::IVisual &visual) noexcept;
|
|
68
|
-
void RemoveRenderedVisual(const winrt::Microsoft::ReactNative::Composition::IVisual &visual) noexcept;
|
|
72
|
+
void AddRenderedVisual(const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual) noexcept;
|
|
73
|
+
void RemoveRenderedVisual(const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &visual) noexcept;
|
|
69
74
|
|
|
70
75
|
winrt::Microsoft::ReactNative::Composition::Theme Theme() noexcept;
|
|
71
76
|
void Theme(const winrt::Microsoft::ReactNative::Composition::Theme &value) noexcept;
|
|
@@ -125,9 +130,9 @@ struct CompositionRootView : CompositionRootViewT<CompositionRootView>, ::Micros
|
|
|
125
130
|
winrt::Microsoft::ReactNative::IReactViewHost m_reactViewHost;
|
|
126
131
|
winrt::Microsoft::ReactNative::ReactViewOptions m_reactViewOptions;
|
|
127
132
|
std::shared_ptr<::Microsoft::ReactNative::CompositionEventHandler> m_CompositionEventHandler;
|
|
128
|
-
winrt::Microsoft::ReactNative::Composition::IVisual m_rootVisual{nullptr};
|
|
129
|
-
winrt::Microsoft::ReactNative::Composition::ISpriteVisual m_loadingVisual{nullptr};
|
|
130
|
-
winrt::Microsoft::ReactNative::Composition::IActivityVisual m_loadingActivityVisual{nullptr};
|
|
133
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual m_rootVisual{nullptr};
|
|
134
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::ISpriteVisual m_loadingVisual{nullptr};
|
|
135
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IActivityVisual m_loadingActivityVisual{nullptr};
|
|
131
136
|
winrt::Microsoft::ReactNative::Composition::Theme m_theme{nullptr};
|
|
132
137
|
winrt::Microsoft::ReactNative::ReactNotificationSubscription m_themeChangedSubscription{nullptr};
|
|
133
138
|
winrt::Microsoft::ReactNative::Composition::Theme::ThemeChanged_revoker m_themeChangedRevoker;
|
|
@@ -140,7 +145,7 @@ struct CompositionRootView : CompositionRootViewT<CompositionRootView>, ::Micros
|
|
|
140
145
|
void ShowInstanceLoading() noexcept;
|
|
141
146
|
void UpdateRootVisualSize() noexcept;
|
|
142
147
|
void UpdateLoadingVisualSize() noexcept;
|
|
143
|
-
Composition::IDrawingSurfaceBrush CreateLoadingVisualBrush() noexcept;
|
|
148
|
+
Composition::Experimental::IDrawingSurfaceBrush CreateLoadingVisualBrush() noexcept;
|
|
144
149
|
};
|
|
145
150
|
|
|
146
151
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -29,17 +29,28 @@ struct CompositionReactViewInstance
|
|
|
29
29
|
|
|
30
30
|
CompositionRootView::CompositionRootView() noexcept {}
|
|
31
31
|
|
|
32
|
+
CompositionRootView::CompositionRootView(const winrt::Microsoft::UI::Composition::Compositor &compositor) noexcept {}
|
|
33
|
+
|
|
32
34
|
ReactNative::IReactViewHost CompositionRootView::ReactViewHost() noexcept {
|
|
33
35
|
return nullptr;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
void CompositionRootView::ReactViewHost(winrt::Microsoft::ReactNative::IReactViewHost const &) noexcept {}
|
|
37
39
|
|
|
38
|
-
winrt::Microsoft::
|
|
40
|
+
winrt::Microsoft::UI::Composition::Visual CompositionRootView::RootVisual() noexcept {
|
|
41
|
+
return nullptr;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual CompositionRootView::InternalRootVisual() noexcept {
|
|
39
45
|
return nullptr;
|
|
40
46
|
}
|
|
41
47
|
|
|
42
|
-
void CompositionRootView::
|
|
48
|
+
void CompositionRootView::InternalRootVisual(
|
|
49
|
+
const winrt::Microsoft::ReactNative::Composition::Experimental::IVisual &) noexcept {}
|
|
50
|
+
|
|
51
|
+
winrt::Microsoft::UI::Content::ContentIsland CompositionRootView::Island() noexcept {
|
|
52
|
+
return nullptr;
|
|
53
|
+
}
|
|
43
54
|
|
|
44
55
|
winrt::Windows::Foundation::Size CompositionRootView::Size() noexcept {
|
|
45
56
|
return {};
|
|
@@ -106,11 +117,11 @@ void CompositionRootView::ShowInstanceError() noexcept {}
|
|
|
106
117
|
|
|
107
118
|
void CompositionRootView::ShowInstanceLoading() noexcept {}
|
|
108
119
|
|
|
109
|
-
Windows::Foundation::Size CompositionRootView::Measure(Windows::Foundation::Size const &) const {
|
|
120
|
+
winrt::Windows::Foundation::Size CompositionRootView::Measure(winrt::Windows::Foundation::Size const &) const {
|
|
110
121
|
return {};
|
|
111
122
|
}
|
|
112
123
|
|
|
113
|
-
Windows::Foundation::Size CompositionRootView::Arrange(Windows::Foundation::Size) const {
|
|
124
|
+
winrt::Windows::Foundation::Size CompositionRootView::Arrange(winrt::Windows::Foundation::Size) const {
|
|
114
125
|
return {};
|
|
115
126
|
}
|
|
116
127
|
|
|
@@ -10,21 +10,32 @@
|
|
|
10
10
|
|
|
11
11
|
namespace winrt::Microsoft::ReactNative::Composition::implementation {
|
|
12
12
|
|
|
13
|
-
static const ReactPropertyId<ICompositionContext> &CompositionContextPropertyId() noexcept {
|
|
14
|
-
static const ReactPropertyId<ICompositionContext> prop{
|
|
13
|
+
static const ReactPropertyId<Experimental::ICompositionContext> &CompositionContextPropertyId() noexcept {
|
|
14
|
+
static const ReactPropertyId<Experimental::ICompositionContext> prop{
|
|
15
|
+
L"ReactNative.Composition", L"CompositionContext"};
|
|
15
16
|
return prop;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
void CompositionUIService::
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
ReactPropertyBag(
|
|
19
|
+
void CompositionUIService::SetCompositor(
|
|
20
|
+
const winrt::Microsoft::ReactNative::ReactInstanceSettings &settings,
|
|
21
|
+
const winrt::Microsoft::UI::Composition::Compositor &compositor) noexcept {
|
|
22
|
+
ReactPropertyBag properties(settings.Properties());
|
|
23
|
+
properties.Set(
|
|
24
|
+
CompositionContextPropertyId(),
|
|
25
|
+
winrt::Microsoft::ReactNative::Composition::Experimental::MicrosoftCompositionContextHelper::CreateContext(
|
|
26
|
+
compositor));
|
|
22
27
|
// Default to using Bridgeless mode when using fabric
|
|
23
|
-
winrt::Microsoft::ReactNative::implementation::QuirkSettings::SetIsBridgeless(
|
|
24
|
-
ReactPropertyBag(properties), !!compositionContext);
|
|
28
|
+
winrt::Microsoft::ReactNative::implementation::QuirkSettings::SetIsBridgeless(properties, !!compositor);
|
|
25
29
|
}
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
winrt::Microsoft::UI::Composition::Compositor CompositionUIService::GetCompositor(
|
|
32
|
+
const IReactPropertyBag &properties) noexcept {
|
|
33
|
+
return winrt::Microsoft::ReactNative::Composition::Experimental::MicrosoftCompositionContextHelper::InnerCompositor(
|
|
34
|
+
GetCompositionContext(properties));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
Experimental::ICompositionContext CompositionUIService::GetCompositionContext(
|
|
38
|
+
const IReactPropertyBag &properties) noexcept {
|
|
28
39
|
return ReactPropertyBag(properties).Get(CompositionContextPropertyId());
|
|
29
40
|
}
|
|
30
41
|
|
|
@@ -3,17 +3,19 @@
|
|
|
3
3
|
|
|
4
4
|
#pragma once
|
|
5
5
|
#include "Composition.CompositionUIService.g.h"
|
|
6
|
+
#include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
|
|
6
7
|
|
|
7
8
|
namespace winrt::Microsoft::ReactNative::Composition::implementation {
|
|
8
9
|
|
|
9
10
|
struct CompositionUIService : CompositionUIServiceT<CompositionUIService> {
|
|
10
11
|
CompositionUIService() = default;
|
|
11
12
|
|
|
12
|
-
static void
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
static void SetCompositor(
|
|
14
|
+
const winrt::Microsoft::ReactNative::ReactInstanceSettings &settings,
|
|
15
|
+
const winrt::Microsoft::UI::Composition::Compositor &compositor) noexcept;
|
|
16
|
+
static winrt::Microsoft::UI::Composition::Compositor GetCompositor(const IReactPropertyBag &properties) noexcept;
|
|
15
17
|
|
|
16
|
-
static ICompositionContext GetCompositionContext(const IReactPropertyBag &properties) noexcept;
|
|
18
|
+
static Experimental::ICompositionContext GetCompositionContext(const IReactPropertyBag &properties) noexcept;
|
|
17
19
|
};
|
|
18
20
|
|
|
19
21
|
} // namespace winrt::Microsoft::ReactNative::Composition::implementation
|
|
@@ -6,12 +6,15 @@
|
|
|
6
6
|
#include "CompositionUIService.h"
|
|
7
7
|
|
|
8
8
|
#include "Composition.CompositionUIService.g.cpp"
|
|
9
|
+
#include <winrt/Microsoft.UI.Composition.h>
|
|
9
10
|
|
|
10
11
|
namespace winrt::Microsoft::ReactNative::Composition::implementation {
|
|
11
12
|
|
|
12
|
-
void CompositionUIService::
|
|
13
|
+
void CompositionUIService::SetCompositor(
|
|
14
|
+
ReactInstanceSettings const &,
|
|
15
|
+
winrt::Microsoft::UI::Composition::Compositor const &) noexcept {}
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
winrt::Microsoft::UI::Composition::Compositor CompositionUIService::GetCompositor(const IReactPropertyBag &) noexcept {
|
|
15
18
|
return nullptr;
|
|
16
19
|
}
|
|
17
20
|
|