react-native-reanimated 2.3.0-alpha.1 → 2.3.0-beta.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/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +15 -8
- package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +170 -166
- package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +36 -34
- package/Common/cpp/Registries/EventHandlerRegistry.cpp +13 -6
- package/Common/cpp/Registries/MapperRegistry.cpp +19 -15
- package/Common/cpp/Registries/WorkletsCache.cpp +19 -9
- package/Common/cpp/SharedItems/FrozenObject.cpp +19 -8
- package/Common/cpp/SharedItems/MutableValue.cpp +38 -25
- package/Common/cpp/SharedItems/MutableValueSetterProxy.cpp +11 -7
- package/Common/cpp/SharedItems/RemoteObject.cpp +9 -5
- package/Common/cpp/SharedItems/ShareableValue.cpp +216 -143
- package/Common/cpp/Tools/JSIStoreValueUser.cpp +36 -24
- package/Common/cpp/Tools/Mapper.cpp +41 -29
- package/Common/cpp/Tools/RuntimeDecorator.cpp +103 -84
- package/Common/cpp/Tools/Scheduler.cpp +14 -6
- package/Common/cpp/Tools/WorkletEventHandler.cpp +1 -1
- package/Common/cpp/headers/LayoutAnimations/LayoutAnimationsProxy.h +12 -11
- package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +45 -34
- package/Common/cpp/headers/NativeModules/NativeReanimatedModuleSpec.h +28 -16
- package/Common/cpp/headers/Registries/EventHandlerRegistry.h +14 -8
- package/Common/cpp/headers/Registries/MapperRegistry.h +4 -4
- package/Common/cpp/headers/Registries/WorkletsCache.h +9 -7
- package/Common/cpp/headers/SharedItems/FrozenObject.h +15 -11
- package/Common/cpp/headers/SharedItems/HostFunctionHandler.h +6 -4
- package/Common/cpp/headers/SharedItems/MutableValue.h +21 -12
- package/Common/cpp/headers/SharedItems/MutableValueSetterProxy.h +10 -7
- package/Common/cpp/headers/SharedItems/RemoteObject.h +16 -8
- package/Common/cpp/headers/SharedItems/RuntimeManager.h +39 -21
- package/Common/cpp/headers/SharedItems/ShareableValue.h +31 -27
- package/Common/cpp/headers/SharedItems/SharedParent.h +7 -4
- package/Common/cpp/headers/SharedItems/ValueWrapper.h +80 -61
- package/Common/cpp/headers/SpecTools/ErrorHandler.h +17 -19
- package/Common/cpp/headers/Tools/JSIStoreValueUser.h +18 -13
- package/Common/cpp/headers/Tools/Mapper.h +24 -18
- package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +12 -7
- package/Common/cpp/headers/Tools/ReanimatedHiddenHeaders.h +7 -7
- package/Common/cpp/headers/Tools/RuntimeDecorator.h +29 -23
- package/Common/cpp/headers/Tools/Scheduler.h +28 -33
- package/Common/cpp/headers/Tools/WorkletEventHandler.h +9 -7
- package/Common/cpp/hidden_headers/Logger.h +14 -14
- package/Common/cpp/hidden_headers/LoggerInterface.h +8 -9
- package/Common/cpp/hidden_headers/SpeedChecker.h +7 -8
- package/README.md +1 -1
- package/RNReanimated.podspec +4 -4
- package/android/build.gradle +80 -3
- package/android/react-native-reanimated-63-hermes.aar +0 -0
- package/android/react-native-reanimated-63-jsc.aar +0 -0
- package/android/react-native-reanimated-64-hermes.aar +0 -0
- package/android/react-native-reanimated-64-jsc.aar +0 -0
- package/android/react-native-reanimated-65-hermes.aar +0 -0
- package/android/react-native-reanimated-65-jsc.aar +0 -0
- package/android/react-native-reanimated-66-hermes.aar +0 -0
- package/android/react-native-reanimated-66-jsc.aar +0 -0
- package/ios/LayoutReanimation/REAAnimationsManager.h +19 -10
- package/ios/LayoutReanimation/REAAnimationsManager.m +195 -200
- package/ios/LayoutReanimation/REASnapshot.h +13 -0
- package/ios/LayoutReanimation/REASnapshot.m +29 -0
- package/ios/LayoutReanimation/REAUIManager.h +16 -0
- package/ios/LayoutReanimation/REAUIManager.mm +348 -0
- package/ios/Nodes/REAAlwaysNode.m +14 -15
- package/ios/Nodes/REABezierNode.m +8 -7
- package/ios/Nodes/REABlockNode.m +1 -1
- package/ios/Nodes/REACallFuncNode.h +0 -1
- package/ios/Nodes/REACallFuncNode.m +10 -8
- package/ios/Nodes/REAClockNodes.m +22 -20
- package/ios/Nodes/REAConcatNode.h +0 -1
- package/ios/Nodes/REAConcatNode.m +2 -2
- package/ios/Nodes/REACondNode.m +7 -5
- package/ios/Nodes/READebugNode.m +5 -4
- package/ios/Nodes/REAEventNode.m +1 -1
- package/ios/Nodes/REAFunctionNode.h +0 -1
- package/ios/Nodes/REAFunctionNode.m +2 -2
- package/ios/Nodes/REAJSCallNode.m +4 -5
- package/ios/Nodes/REANode.h +3 -4
- package/ios/Nodes/REANode.m +9 -11
- package/ios/Nodes/REAOperatorNode.m +68 -67
- package/ios/Nodes/REAParamNode.h +1 -3
- package/ios/Nodes/REAParamNode.m +15 -17
- package/ios/Nodes/REAPropsNode.h +1 -3
- package/ios/Nodes/REAPropsNode.m +19 -22
- package/ios/Nodes/REASetNode.h +0 -1
- package/ios/Nodes/REASetNode.m +7 -5
- package/ios/Nodes/REAStyleNode.h +0 -1
- package/ios/Nodes/REAStyleNode.m +2 -4
- package/ios/Nodes/REATransformNode.h +0 -1
- package/ios/Nodes/REATransformNode.m +3 -5
- package/ios/Nodes/REAValueNode.m +5 -7
- package/ios/REAEventDispatcher.m +3 -3
- package/ios/REAModule.h +0 -2
- package/ios/REAModule.m +29 -40
- package/ios/REANodesManager.h +11 -19
- package/ios/REANodesManager.m +105 -130
- package/ios/REAUtils.h +5 -3
- package/ios/Transitioning/RCTConvert+REATransition.m +45 -29
- package/ios/Transitioning/REAAllTransitions.h +2 -2
- package/ios/Transitioning/REAAllTransitions.m +14 -25
- package/ios/Transitioning/REATransition.h +8 -7
- package/ios/Transitioning/REATransition.m +19 -16
- package/ios/Transitioning/REATransitionAnimation.h +1 -1
- package/ios/Transitioning/REATransitionAnimation.m +2 -3
- package/ios/Transitioning/REATransitionManager.m +3 -3
- package/ios/native/NativeMethods.h +15 -5
- package/ios/native/NativeProxy.h +4 -3
- package/ios/native/NativeProxy.mm +19 -5
- package/ios/native/REAIOSErrorHandler.h +13 -10
- package/ios/native/REAIOSLogger.h +8 -8
- package/ios/native/REAIOSScheduler.h +5 -5
- package/ios/native/REAIOSScheduler.mm +7 -5
- package/ios/native/REAInitializer.h +37 -0
- package/ios/native/REAInitializer.mm +63 -0
- package/ios/native/UIResponder+Reanimated.mm +9 -48
- package/lib/ConfigHelper.js +1 -0
- package/lib/ReanimatedModule.native.js +10 -2
- package/lib/createAnimatedComponent.js +64 -30
- package/lib/reanimated1/core/AnimatedAlways.js +1 -1
- package/lib/reanimated1/core/AnimatedBezier.js +1 -1
- package/lib/reanimated1/core/AnimatedBlock.js +1 -1
- package/lib/reanimated1/core/AnimatedCall.js +1 -1
- package/lib/reanimated1/core/AnimatedCallFunc.js +1 -1
- package/lib/reanimated1/core/AnimatedConcat.js +1 -1
- package/lib/reanimated1/core/AnimatedCond.js +1 -1
- package/lib/reanimated1/core/AnimatedDebug.js +1 -1
- package/lib/reanimated1/core/AnimatedEvent.js +1 -1
- package/lib/reanimated1/core/AnimatedFunction.js +1 -1
- package/lib/reanimated1/core/AnimatedOperator.js +1 -1
- package/lib/reanimated1/core/AnimatedParam.js +1 -1
- package/lib/reanimated1/core/AnimatedProps.js +2 -2
- package/lib/reanimated1/core/AnimatedSet.js +1 -1
- package/lib/reanimated1/core/AnimatedStartClock.js +1 -1
- package/lib/reanimated1/core/AnimatedStopClock.js +1 -1
- package/lib/reanimated1/core/AnimatedStyle.js +1 -1
- package/lib/reanimated1/core/AnimatedTransform.js +1 -1
- package/lib/reanimated1/core/Core.test.js +30 -0
- package/lib/reanimated1/core/InternalAnimatedValue.js +1 -1
- package/lib/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
- package/lib/reanimated1/derived/interpolate.js +1 -1
- package/lib/reanimated2/Colors.js +16 -12
- package/lib/reanimated2/NativeMethods.js +3 -14
- package/lib/reanimated2/{NativeReanimated.native.js → NativeReanimated/NativeReanimated.js} +19 -24
- package/lib/reanimated2/NativeReanimated/index.js +15 -0
- package/lib/reanimated2/PlatformChecker.js +16 -0
- package/lib/reanimated2/PropAdapters.js +14 -4
- package/lib/reanimated2/UpdateProps.js +14 -11
- package/lib/reanimated2/ViewDescriptorsSet.js +73 -0
- package/lib/reanimated2/WorkletEventHandler.js +15 -13
- package/lib/reanimated2/animation/commonTypes.js +1 -0
- package/lib/reanimated2/animation/decay.js +71 -0
- package/lib/reanimated2/animation/delay.js +64 -0
- package/lib/reanimated2/animation/index.js +8 -0
- package/lib/reanimated2/animation/repeat.js +69 -0
- package/lib/reanimated2/animation/sequence.js +72 -0
- package/lib/reanimated2/animation/spring.js +101 -0
- package/lib/reanimated2/animation/styleAnimation.js +166 -0
- package/lib/reanimated2/animation/timing.js +64 -0
- package/lib/reanimated2/animation/util.js +157 -0
- package/lib/reanimated2/commonTypes.js +1 -0
- package/lib/reanimated2/core.js +35 -39
- package/lib/reanimated2/globals.d.ts +47 -1
- package/lib/reanimated2/hook/Hooks.js +9 -0
- package/lib/reanimated2/hook/commonTypes.js +1 -0
- package/lib/reanimated2/hook/index.js +8 -0
- package/lib/reanimated2/hook/useAnimatedGestureHandler.js +50 -0
- package/lib/reanimated2/hook/useAnimatedReaction.js +37 -0
- package/lib/reanimated2/hook/useAnimatedRef.js +25 -0
- package/lib/reanimated2/hook/useAnimatedScrollHandler.js +41 -0
- package/lib/reanimated2/hook/useAnimatedStyle.js +376 -0
- package/lib/reanimated2/hook/useDerivedValue.js +36 -0
- package/lib/reanimated2/hook/useSharedValue.js +17 -0
- package/lib/reanimated2/hook/utils.js +175 -0
- package/lib/reanimated2/index.js +3 -2
- package/lib/reanimated2/interpolation.js +95 -86
- package/lib/reanimated2/jestUtils.js +0 -12
- package/lib/reanimated2/js-reanimated/JSReanimated.js +9 -10
- package/lib/reanimated2/js-reanimated/index.js +57 -1
- package/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js +58 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +69 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +125 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +193 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +1 -0
- package/lib/reanimated2/layoutReanimation/animationBuilder/index.js +3 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +325 -207
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js +36 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js +235 -187
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js +327 -269
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +146 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +85 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js +119 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +289 -0
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js +159 -121
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +83 -65
- package/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +371 -277
- package/lib/reanimated2/layoutReanimation/defaultAnimations/index.js +4 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +78 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +128 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +37 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +41 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +34 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +46 -0
- package/lib/reanimated2/layoutReanimation/defaultTransitions/index.js +6 -0
- package/lib/reanimated2/layoutReanimation/index.js +3 -2
- package/lib/reanimated2/platform-specific/RNRenderer.web.js +2 -0
- package/lib/reanimated2/utils.js +9 -0
- package/libSo/fbjni/jni/arm64-v8a/libfbjni.so +0 -0
- package/libSo/fbjni/jni/armeabi-v7a/libfbjni.so +0 -0
- package/libSo/fbjni/jni/x86/libfbjni.so +0 -0
- package/libSo/fbjni/jni/x86_64/libfbjni.so +0 -0
- package/package.json +21 -10
- package/plugin.js +244 -85
- package/react-native-reanimated.d.ts +531 -453
- package/src/ConfigHelper.js +1 -0
- package/src/ReanimatedModule.native.js +10 -2
- package/src/createAnimatedComponent.js +64 -30
- package/src/reanimated1/core/AnimatedAlways.js +1 -1
- package/src/reanimated1/core/AnimatedBezier.js +1 -1
- package/src/reanimated1/core/AnimatedBlock.js +1 -1
- package/src/reanimated1/core/AnimatedCall.js +1 -1
- package/src/reanimated1/core/AnimatedCallFunc.js +1 -1
- package/src/reanimated1/core/AnimatedConcat.js +1 -1
- package/src/reanimated1/core/AnimatedCond.js +1 -1
- package/src/reanimated1/core/AnimatedDebug.js +1 -1
- package/src/reanimated1/core/AnimatedEvent.js +1 -1
- package/src/reanimated1/core/AnimatedFunction.js +1 -1
- package/src/reanimated1/core/AnimatedOperator.js +1 -1
- package/src/reanimated1/core/AnimatedParam.js +1 -1
- package/src/reanimated1/core/AnimatedProps.js +2 -2
- package/src/reanimated1/core/AnimatedSet.js +1 -1
- package/src/reanimated1/core/AnimatedStartClock.js +1 -1
- package/src/reanimated1/core/AnimatedStopClock.js +1 -1
- package/src/reanimated1/core/AnimatedStyle.js +1 -1
- package/src/reanimated1/core/AnimatedTransform.js +1 -1
- package/src/reanimated1/core/Core.test.js +30 -0
- package/src/reanimated1/core/InternalAnimatedValue.js +1 -1
- package/src/reanimated1/core/__mocks__/AnimatedProps.js +1 -1
- package/src/reanimated1/derived/interpolate.js +1 -1
- package/src/reanimated2/Colors.ts +30 -27
- package/src/reanimated2/Easing.ts +3 -1
- package/src/reanimated2/NativeMethods.ts +26 -16
- package/src/reanimated2/NativeReanimated/NativeReanimated.ts +78 -0
- package/src/reanimated2/NativeReanimated/index.ts +18 -0
- package/src/reanimated2/PlatformChecker.ts +21 -0
- package/src/reanimated2/PropAdapters.ts +52 -34
- package/src/reanimated2/UpdateProps.ts +40 -20
- package/src/reanimated2/ViewDescriptorsSet.ts +108 -0
- package/src/reanimated2/WorkletEventHandler.ts +41 -23
- package/src/reanimated2/animation/commonTypes.ts +48 -0
- package/src/reanimated2/animation/decay.ts +141 -0
- package/src/reanimated2/animation/delay.ts +103 -0
- package/src/reanimated2/animation/index.ts +16 -0
- package/src/reanimated2/animation/repeat.ts +128 -0
- package/src/reanimated2/animation/sequence.ts +110 -0
- package/src/reanimated2/animation/spring.ts +165 -0
- package/src/reanimated2/animation/styleAnimation.ts +253 -0
- package/src/reanimated2/animation/timing.ts +109 -0
- package/src/reanimated2/animation/util.ts +242 -0
- package/src/reanimated2/commonTypes.ts +81 -0
- package/src/reanimated2/core.ts +128 -82
- package/src/reanimated2/globals.d.ts +47 -1
- package/src/reanimated2/hook/Hooks.ts +16 -0
- package/src/reanimated2/hook/commonTypes.ts +12 -0
- package/src/reanimated2/hook/index.ts +25 -0
- package/src/reanimated2/hook/useAnimatedGestureHandler.ts +110 -0
- package/src/reanimated2/hook/useAnimatedReaction.ts +49 -0
- package/src/reanimated2/hook/useAnimatedRef.ts +34 -0
- package/src/reanimated2/hook/useAnimatedScrollHandler.ts +83 -0
- package/src/reanimated2/hook/useAnimatedStyle.ts +538 -0
- package/src/reanimated2/hook/useDerivedValue.ts +48 -0
- package/src/reanimated2/hook/useSharedValue.ts +22 -0
- package/src/reanimated2/hook/utils.ts +259 -0
- package/src/reanimated2/index.ts +3 -2
- package/src/reanimated2/interpolation.ts +170 -101
- package/src/reanimated2/jestUtils.ts +0 -12
- package/src/reanimated2/js-reanimated/JSReanimated.ts +47 -22
- package/src/reanimated2/js-reanimated/Mapper.ts +1 -1
- package/src/reanimated2/js-reanimated/index.ts +71 -0
- package/src/reanimated2/layoutReanimation/LayoutAnimationRepository.tsx +62 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.ts +91 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.ts +169 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/Keyframe.ts +263 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +78 -0
- package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +16 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +243 -121
- package/src/reanimated2/layoutReanimation/defaultAnimations/Default.ts +43 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Fade.ts +95 -53
- package/src/reanimated2/layoutReanimation/defaultAnimations/Flip.ts +114 -64
- package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +179 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.ts +93 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +132 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Rotate.ts +333 -0
- package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +84 -50
- package/src/reanimated2/layoutReanimation/defaultAnimations/Stretch.ts +41 -23
- package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +234 -154
- package/src/reanimated2/layoutReanimation/defaultAnimations/index.ts +4 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.ts +104 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.ts +213 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.ts +60 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.ts +58 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.ts +41 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.ts +78 -0
- package/src/reanimated2/layoutReanimation/defaultTransitions/index.ts +6 -0
- package/src/reanimated2/layoutReanimation/index.ts +3 -2
- package/src/reanimated2/platform-specific/RNRenderer.web.ts +2 -0
- package/src/reanimated2/utils.ts +21 -0
- package/android/react-native-reanimated-62-hermes.aar +0 -0
- package/android/react-native-reanimated-62-jsc.aar +0 -0
- package/ios/LayoutReanimation/REAAnimationRootView.h +0 -12
- package/ios/LayoutReanimation/REAAnimationRootView.m +0 -16
- package/ios/LayoutReanimation/REAAnimationRootViewManager.h +0 -9
- package/ios/LayoutReanimation/REAAnimationRootViewManager.m +0 -49
- package/ios/LayoutReanimation/REAReactBatchObserver.h +0 -20
- package/ios/LayoutReanimation/REAReactBatchObserver.m +0 -125
- package/ios/LayoutReanimation/REASnapshooter.h +0 -19
- package/ios/LayoutReanimation/REASnapshooter.m +0 -64
- package/ios/LayoutReanimation/REAViewTraverser.h +0 -13
- package/ios/LayoutReanimation/REAViewTraverser.m +0 -40
- package/lib/reanimated2/Hooks.js +0 -732
- package/lib/reanimated2/NativeReanimated.js +0 -4
- package/lib/reanimated2/animations.js +0 -713
- package/lib/reanimated2/js-reanimated/index.web.js +0 -20
- package/lib/reanimated2/layoutReanimation/AnimatedRoot.js +0 -55
- package/lib/reanimated2/layoutReanimation/defaultAnimationsBuilder.js +0 -374
- package/src/reanimated2/Hooks.ts +0 -918
- package/src/reanimated2/NativeReanimated.native.ts +0 -61
- package/src/reanimated2/NativeReanimated.ts +0 -5
- package/src/reanimated2/animations.ts +0 -868
- package/src/reanimated2/js-reanimated/index.js +0 -0
- package/src/reanimated2/js-reanimated/index.web.ts +0 -29
- package/src/reanimated2/layoutReanimation/AnimatedRoot.tsx +0 -68
- package/src/reanimated2/layoutReanimation/defaultAnimationsBuilder.ts +0 -440
|
@@ -1,54 +1,58 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include
|
|
4
|
-
#include
|
|
5
|
-
#include
|
|
3
|
+
#include <jsi/jsi.h>
|
|
4
|
+
#include <mutex>
|
|
5
|
+
#include <string>
|
|
6
|
+
#include <unordered_map>
|
|
6
7
|
#include "HostFunctionHandler.h"
|
|
7
8
|
#include "JSIStoreValueUser.h"
|
|
9
|
+
#include "LayoutAnimationsProxy.h"
|
|
8
10
|
#include "RuntimeManager.h"
|
|
9
11
|
#include "Scheduler.h"
|
|
10
|
-
#include
|
|
11
|
-
#include
|
|
12
|
-
#include
|
|
13
|
-
#include <jsi/jsi.h>
|
|
14
|
-
#include "LayoutAnimationsProxy.h"
|
|
12
|
+
#include "SharedParent.h"
|
|
13
|
+
#include "ValueWrapper.h"
|
|
14
|
+
#include "WorkletsCache.h"
|
|
15
15
|
|
|
16
16
|
using namespace facebook;
|
|
17
17
|
|
|
18
18
|
namespace reanimated {
|
|
19
19
|
|
|
20
|
-
class ShareableValue: public std::enable_shared_from_this<ShareableValue>,
|
|
21
|
-
|
|
22
|
-
friend
|
|
23
|
-
friend
|
|
24
|
-
friend
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
class ShareableValue : public std::enable_shared_from_this<ShareableValue>,
|
|
21
|
+
public StoreUser {
|
|
22
|
+
friend WorkletsCache;
|
|
23
|
+
friend FrozenObject;
|
|
24
|
+
friend LayoutAnimationsProxy;
|
|
25
|
+
friend void extractMutables(
|
|
26
|
+
jsi::Runtime &rt,
|
|
27
|
+
std::shared_ptr<ShareableValue> sv,
|
|
28
|
+
std::vector<std::shared_ptr<MutableValue>> &res);
|
|
29
|
+
|
|
30
|
+
private:
|
|
29
31
|
RuntimeManager *runtimeManager;
|
|
30
32
|
std::unique_ptr<ValueWrapper> valueContainer;
|
|
31
33
|
std::unique_ptr<jsi::Value> hostValue;
|
|
32
34
|
std::weak_ptr<jsi::Value> remoteValue;
|
|
33
35
|
bool containsHostFunction = false;
|
|
34
36
|
|
|
35
|
-
ShareableValue(RuntimeManager *runtimeManager, std::shared_ptr<Scheduler> s)
|
|
37
|
+
ShareableValue(RuntimeManager *runtimeManager, std::shared_ptr<Scheduler> s)
|
|
38
|
+
: StoreUser(s, *runtimeManager), runtimeManager(runtimeManager) {}
|
|
36
39
|
|
|
37
40
|
jsi::Value toJSValue(jsi::Runtime &rt);
|
|
38
|
-
jsi::Object createHost(
|
|
41
|
+
jsi::Object createHost(
|
|
42
|
+
jsi::Runtime &rt,
|
|
43
|
+
std::shared_ptr<jsi::HostObject> host);
|
|
39
44
|
void adapt(jsi::Runtime &rt, const jsi::Value &value, ValueType objectType);
|
|
40
45
|
void adaptCache(jsi::Runtime &rt, const jsi::Value &value);
|
|
46
|
+
std::string demangleExceptionName(std::string toDemangle);
|
|
41
47
|
|
|
42
|
-
public:
|
|
48
|
+
public:
|
|
43
49
|
ValueType type = ValueType::UndefinedType;
|
|
44
50
|
static std::shared_ptr<ShareableValue> adapt(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
);
|
|
51
|
+
jsi::Runtime &rt,
|
|
52
|
+
const jsi::Value &value,
|
|
53
|
+
RuntimeManager *runtimeManager,
|
|
54
|
+
ValueType objectType = ValueType::UndefinedType);
|
|
50
55
|
jsi::Value getValue(jsi::Runtime &rt);
|
|
51
|
-
|
|
52
56
|
};
|
|
53
57
|
|
|
54
|
-
}
|
|
58
|
+
} // namespace reanimated
|
|
@@ -8,9 +8,12 @@ enum class ValueType {
|
|
|
8
8
|
BoolType,
|
|
9
9
|
NumberType,
|
|
10
10
|
StringType,
|
|
11
|
-
RemoteObjectType, /* object that can be instantiated on host side and modified
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
RemoteObjectType, /* object that can be instantiated on host side and modified
|
|
12
|
+
on the remote (worklet) side */
|
|
13
|
+
MutableValueType, /* object with 'value' property that can be updated and read
|
|
14
|
+
from any thread */
|
|
15
|
+
HostFunctionType, /* function that will be executed asynchronously on the host
|
|
16
|
+
runtime */
|
|
14
17
|
WorkletFunctionType, /* function that gets run on the UI thread */
|
|
15
18
|
FrozenObjectType, /* frozen object, can only be set and never modified */
|
|
16
19
|
FrozenArrayType, /* frozen array, can only be set and never modified */
|
|
@@ -21,4 +24,4 @@ class MutableValue;
|
|
|
21
24
|
class RemoteObject;
|
|
22
25
|
class NativeReanimatedModule;
|
|
23
26
|
|
|
24
|
-
}
|
|
27
|
+
} // namespace reanimated
|
|
@@ -1,132 +1,151 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include "WorkletsCache.h"
|
|
4
|
-
#include "SharedParent.h"
|
|
5
3
|
#include <jsi/jsi.h>
|
|
6
4
|
#include <string>
|
|
7
|
-
#include "JSIStoreValueUser.h"
|
|
8
5
|
#include "HostFunctionHandler.h"
|
|
6
|
+
#include "JSIStoreValueUser.h"
|
|
7
|
+
#include "SharedParent.h"
|
|
8
|
+
#include "WorkletsCache.h"
|
|
9
9
|
|
|
10
10
|
namespace reanimated {
|
|
11
11
|
|
|
12
12
|
class HostFunctionWrapper;
|
|
13
13
|
|
|
14
14
|
class ValueWrapper {
|
|
15
|
-
public:
|
|
16
|
-
ValueWrapper()
|
|
17
|
-
ValueWrapper(ValueType _type) : type(_type)
|
|
15
|
+
public:
|
|
16
|
+
ValueWrapper(){};
|
|
17
|
+
ValueWrapper(ValueType _type) : type(_type){};
|
|
18
18
|
ValueType getType() const {
|
|
19
19
|
return type;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
virtual ~ValueWrapper() {}
|
|
23
23
|
|
|
24
|
-
static inline bool asBoolean(
|
|
25
|
-
|
|
26
|
-
static inline
|
|
27
|
-
|
|
28
|
-
static inline const std::
|
|
29
|
-
|
|
30
|
-
static inline std::
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
static inline bool asBoolean(
|
|
25
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
26
|
+
static inline double asNumber(
|
|
27
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
28
|
+
static inline const std::string &asString(
|
|
29
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
30
|
+
static inline const std::shared_ptr<HostFunctionHandler> &asHostFunction(
|
|
31
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
32
|
+
static inline const std::shared_ptr<FrozenObject> &asFrozenObject(
|
|
33
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
34
|
+
static inline const std::shared_ptr<RemoteObject> &asRemoteObject(
|
|
35
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
36
|
+
static inline std::vector<std::shared_ptr<ShareableValue>> &asFrozenArray(
|
|
37
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
38
|
+
static inline const std::shared_ptr<MutableValue> &asMutableValue(
|
|
39
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
40
|
+
|
|
41
|
+
static const HostFunctionWrapper *asHostFunctionWrapper(
|
|
42
|
+
const std::unique_ptr<ValueWrapper> &valueContainer);
|
|
43
|
+
|
|
44
|
+
protected:
|
|
45
|
+
ValueType type;
|
|
37
46
|
};
|
|
38
47
|
|
|
39
48
|
class BooleanValueWrapper : public ValueWrapper {
|
|
40
|
-
public:
|
|
49
|
+
public:
|
|
41
50
|
BooleanValueWrapper(const bool _value)
|
|
42
|
-
|
|
51
|
+
: ValueWrapper(ValueType::BoolType), value(_value){};
|
|
43
52
|
bool value;
|
|
44
53
|
};
|
|
45
54
|
|
|
46
55
|
class NumberValueWrapper : public ValueWrapper {
|
|
47
|
-
public:
|
|
56
|
+
public:
|
|
48
57
|
NumberValueWrapper(const double _value)
|
|
49
|
-
|
|
58
|
+
: ValueWrapper(ValueType::NumberType), value(_value){};
|
|
50
59
|
double value;
|
|
51
60
|
};
|
|
52
61
|
|
|
53
62
|
class StringValueWrapper : public ValueWrapper {
|
|
54
|
-
public:
|
|
55
|
-
StringValueWrapper(const std::string &
|
|
56
|
-
|
|
63
|
+
public:
|
|
64
|
+
StringValueWrapper(const std::string &_value)
|
|
65
|
+
: ValueWrapper(ValueType::StringType), value(_value){};
|
|
57
66
|
std::string value;
|
|
58
67
|
};
|
|
59
68
|
|
|
60
69
|
class HostFunctionWrapper : public ValueWrapper {
|
|
61
|
-
public:
|
|
62
|
-
HostFunctionWrapper(const std::shared_ptr<HostFunctionHandler> &
|
|
63
|
-
|
|
70
|
+
public:
|
|
71
|
+
HostFunctionWrapper(const std::shared_ptr<HostFunctionHandler> &_value)
|
|
72
|
+
: ValueWrapper(ValueType::HostFunctionType), value(_value){};
|
|
64
73
|
std::shared_ptr<HostFunctionHandler> value;
|
|
65
74
|
};
|
|
66
75
|
|
|
67
76
|
class FrozenObjectWrapper : public ValueWrapper {
|
|
68
|
-
public:
|
|
69
|
-
FrozenObjectWrapper(const std::shared_ptr<FrozenObject> &
|
|
70
|
-
|
|
77
|
+
public:
|
|
78
|
+
FrozenObjectWrapper(const std::shared_ptr<FrozenObject> &_value)
|
|
79
|
+
: ValueWrapper(ValueType::FrozenObjectType), value(_value){};
|
|
71
80
|
std::shared_ptr<FrozenObject> value;
|
|
72
81
|
};
|
|
73
82
|
|
|
74
83
|
class RemoteObjectWrapper : public ValueWrapper {
|
|
75
|
-
public:
|
|
76
|
-
RemoteObjectWrapper(const std::shared_ptr<RemoteObject> &
|
|
77
|
-
|
|
84
|
+
public:
|
|
85
|
+
RemoteObjectWrapper(const std::shared_ptr<RemoteObject> &_value)
|
|
86
|
+
: ValueWrapper(ValueType::RemoteObjectType), value(_value){};
|
|
78
87
|
std::shared_ptr<RemoteObject> value;
|
|
79
88
|
};
|
|
80
89
|
|
|
81
90
|
class FrozenArrayWrapper : public ValueWrapper {
|
|
82
|
-
public:
|
|
83
|
-
FrozenArrayWrapper() : ValueWrapper(ValueType::FrozenArrayType)
|
|
84
|
-
FrozenArrayWrapper(const std::vector<std::shared_ptr<ShareableValue>> &
|
|
85
|
-
|
|
91
|
+
public:
|
|
92
|
+
FrozenArrayWrapper() : ValueWrapper(ValueType::FrozenArrayType){};
|
|
93
|
+
FrozenArrayWrapper(const std::vector<std::shared_ptr<ShareableValue>> &_value)
|
|
94
|
+
: ValueWrapper(ValueType::FrozenArrayType), value(_value){};
|
|
86
95
|
std::vector<std::shared_ptr<ShareableValue>> value;
|
|
87
96
|
};
|
|
88
97
|
|
|
89
98
|
class MutableValueWrapper : public ValueWrapper {
|
|
90
|
-
public:
|
|
91
|
-
MutableValueWrapper(const std::shared_ptr<MutableValue> &
|
|
92
|
-
|
|
99
|
+
public:
|
|
100
|
+
MutableValueWrapper(const std::shared_ptr<MutableValue> &_value)
|
|
101
|
+
: ValueWrapper(ValueType::MutableValueType), value(_value){};
|
|
93
102
|
std::shared_ptr<MutableValue> value;
|
|
94
103
|
};
|
|
95
104
|
|
|
96
|
-
inline bool ValueWrapper::asBoolean(
|
|
97
|
-
|
|
105
|
+
inline bool ValueWrapper::asBoolean(
|
|
106
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
107
|
+
return static_cast<BooleanValueWrapper *>(valueContainer.get())->value;
|
|
98
108
|
};
|
|
99
109
|
|
|
100
|
-
inline double ValueWrapper::asNumber(
|
|
101
|
-
|
|
110
|
+
inline double ValueWrapper::asNumber(
|
|
111
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
112
|
+
return static_cast<NumberValueWrapper *>(valueContainer.get())->value;
|
|
102
113
|
};
|
|
103
114
|
|
|
104
|
-
inline const std::string&
|
|
105
|
-
|
|
115
|
+
inline const std::string &ValueWrapper::asString(
|
|
116
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
117
|
+
return static_cast<StringValueWrapper *>(valueContainer.get())->value;
|
|
106
118
|
};
|
|
107
119
|
|
|
108
|
-
inline const std::shared_ptr<HostFunctionHandler
|
|
109
|
-
|
|
120
|
+
inline const std::shared_ptr<HostFunctionHandler> &ValueWrapper::asHostFunction(
|
|
121
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
122
|
+
return static_cast<HostFunctionWrapper *>(valueContainer.get())->value;
|
|
110
123
|
};
|
|
111
124
|
|
|
112
|
-
inline const std::shared_ptr<FrozenObject
|
|
113
|
-
|
|
125
|
+
inline const std::shared_ptr<FrozenObject> &ValueWrapper::asFrozenObject(
|
|
126
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
127
|
+
return static_cast<FrozenObjectWrapper *>(valueContainer.get())->value;
|
|
114
128
|
};
|
|
115
129
|
|
|
116
|
-
inline const std::shared_ptr<RemoteObject
|
|
117
|
-
|
|
130
|
+
inline const std::shared_ptr<RemoteObject> &ValueWrapper::asRemoteObject(
|
|
131
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
132
|
+
return static_cast<RemoteObjectWrapper *>(valueContainer.get())->value;
|
|
118
133
|
};
|
|
119
134
|
|
|
120
|
-
inline std::vector<std::shared_ptr<ShareableValue
|
|
121
|
-
|
|
135
|
+
inline std::vector<std::shared_ptr<ShareableValue>>
|
|
136
|
+
&ValueWrapper::asFrozenArray(
|
|
137
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
138
|
+
return static_cast<FrozenArrayWrapper *>(valueContainer.get())->value;
|
|
122
139
|
};
|
|
123
140
|
|
|
124
|
-
inline const std::shared_ptr<MutableValue
|
|
125
|
-
|
|
141
|
+
inline const std::shared_ptr<MutableValue> &ValueWrapper::asMutableValue(
|
|
142
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
143
|
+
return static_cast<MutableValueWrapper *>(valueContainer.get())->value;
|
|
126
144
|
};
|
|
127
145
|
|
|
128
|
-
inline const HostFunctionWrapper*
|
|
129
|
-
|
|
146
|
+
inline const HostFunctionWrapper *ValueWrapper::asHostFunctionWrapper(
|
|
147
|
+
const std::unique_ptr<ValueWrapper> &valueContainer) {
|
|
148
|
+
return static_cast<HostFunctionWrapper *>(valueContainer.get());
|
|
130
149
|
};
|
|
131
150
|
|
|
132
|
-
}
|
|
151
|
+
} // namespace reanimated
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include "Scheduler.h"
|
|
4
3
|
#include <string>
|
|
4
|
+
#include "Scheduler.h"
|
|
5
5
|
|
|
6
|
-
namespace reanimated
|
|
7
|
-
{
|
|
6
|
+
namespace reanimated {
|
|
8
7
|
|
|
9
8
|
struct ErrorWrapper {
|
|
10
9
|
std::string message = "";
|
|
@@ -12,22 +11,21 @@ struct ErrorWrapper {
|
|
|
12
11
|
};
|
|
13
12
|
|
|
14
13
|
class ErrorHandler {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
this->getScheduler()->scheduleOnUI([this]() mutable {
|
|
21
|
-
this->raiseSpec();
|
|
22
|
-
});
|
|
23
|
-
return true;
|
|
14
|
+
public:
|
|
15
|
+
bool raise() {
|
|
16
|
+
if (getError()->handled) {
|
|
17
|
+
return false;
|
|
24
18
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
this->getScheduler()->scheduleOnUI([this]() mutable { this->raiseSpec(); });
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
virtual std::shared_ptr<Scheduler> getScheduler() = 0;
|
|
23
|
+
virtual std::shared_ptr<ErrorWrapper> getError() = 0;
|
|
24
|
+
virtual void setError(std::string message) = 0;
|
|
25
|
+
virtual ~ErrorHandler() {}
|
|
26
|
+
|
|
27
|
+
protected:
|
|
28
|
+
virtual void raiseSpec() = 0;
|
|
31
29
|
};
|
|
32
30
|
|
|
33
|
-
}
|
|
31
|
+
} // namespace reanimated
|
|
@@ -1,35 +1,40 @@
|
|
|
1
1
|
#ifndef JSIStoreValueUser_h
|
|
2
2
|
#define JSIStoreValueUser_h
|
|
3
3
|
|
|
4
|
+
#include <jsi/jsi.h>
|
|
4
5
|
#include <stdio.h>
|
|
5
6
|
#include <memory>
|
|
6
|
-
#include <vector>
|
|
7
|
-
#include <unordered_map>
|
|
8
|
-
#include <jsi/jsi.h>
|
|
9
7
|
#include <mutex>
|
|
8
|
+
#include <unordered_map>
|
|
9
|
+
#include <vector>
|
|
10
10
|
#include "Scheduler.h"
|
|
11
11
|
|
|
12
12
|
using namespace facebook;
|
|
13
13
|
|
|
14
14
|
namespace reanimated {
|
|
15
15
|
|
|
16
|
+
class RuntimeManager;
|
|
17
|
+
|
|
18
|
+
struct StaticStoreUser {
|
|
19
|
+
std::atomic<int> ctr;
|
|
20
|
+
std::unordered_map<int, std::vector<std::shared_ptr<jsi::Value>>> store;
|
|
21
|
+
std::recursive_mutex storeMutex;
|
|
22
|
+
};
|
|
23
|
+
|
|
16
24
|
class StoreUser {
|
|
17
25
|
int identifier = 0;
|
|
18
|
-
static std::atomic<int> ctr;
|
|
19
|
-
static std::unordered_map<int, std::vector<std::shared_ptr<jsi::Value>>> store;
|
|
20
|
-
static std::recursive_mutex storeMutex;
|
|
21
26
|
std::weak_ptr<Scheduler> scheduler;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
std::shared_ptr<StaticStoreUser> storeUserData;
|
|
28
|
+
|
|
29
|
+
public:
|
|
30
|
+
StoreUser(std::shared_ptr<Scheduler> s, RuntimeManager &runtimeManager);
|
|
31
|
+
|
|
26
32
|
std::weak_ptr<jsi::Value> getWeakRef(jsi::Runtime &rt);
|
|
27
33
|
void removeRefs();
|
|
28
|
-
|
|
29
|
-
static void clearStore();
|
|
34
|
+
|
|
30
35
|
virtual ~StoreUser();
|
|
31
36
|
};
|
|
32
37
|
|
|
33
|
-
}
|
|
38
|
+
} // namespace reanimated
|
|
34
39
|
|
|
35
40
|
#endif /* JSIStoreValueUser_h */
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include "ShareableValue.h"
|
|
4
|
-
#include "NativeReanimatedModule.h"
|
|
5
|
-
#include <stdio.h>
|
|
6
3
|
#include <jsi/jsi.h>
|
|
4
|
+
#include <stdio.h>
|
|
5
|
+
#include "NativeReanimatedModule.h"
|
|
6
|
+
#include "ShareableValue.h"
|
|
7
7
|
|
|
8
8
|
using namespace facebook;
|
|
9
9
|
|
|
@@ -11,9 +11,15 @@ namespace reanimated {
|
|
|
11
11
|
|
|
12
12
|
class MapperRegistry;
|
|
13
13
|
|
|
14
|
+
struct ViewDescriptor {
|
|
15
|
+
int tag;
|
|
16
|
+
jsi::Value name;
|
|
17
|
+
};
|
|
18
|
+
|
|
14
19
|
class Mapper : public std::enable_shared_from_this<Mapper> {
|
|
15
20
|
friend MapperRegistry;
|
|
16
|
-
|
|
21
|
+
|
|
22
|
+
private:
|
|
17
23
|
unsigned long id;
|
|
18
24
|
NativeReanimatedModule *module;
|
|
19
25
|
std::shared_ptr<jsi::Function> mapper;
|
|
@@ -21,23 +27,23 @@ private:
|
|
|
21
27
|
std::vector<std::shared_ptr<MutableValue>> outputs;
|
|
22
28
|
bool dirty = true;
|
|
23
29
|
std::shared_ptr<jsi::Function> userUpdater;
|
|
24
|
-
UpdaterFunction*
|
|
25
|
-
jsi::Value viewName;
|
|
26
|
-
int viewTag;
|
|
30
|
+
UpdaterFunction *updateProps;
|
|
27
31
|
int optimalizationLvl = 0;
|
|
32
|
+
std::shared_ptr<ShareableValue> viewDescriptors;
|
|
28
33
|
|
|
29
|
-
public:
|
|
30
|
-
Mapper(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const int viewTag,
|
|
37
|
-
const std::string& viewName,
|
|
38
|
-
const int optimalizationLvl);
|
|
34
|
+
public:
|
|
35
|
+
Mapper(
|
|
36
|
+
NativeReanimatedModule *module,
|
|
37
|
+
unsigned long id,
|
|
38
|
+
std::shared_ptr<jsi::Function> mapper,
|
|
39
|
+
std::vector<std::shared_ptr<MutableValue>> inputs,
|
|
40
|
+
std::vector<std::shared_ptr<MutableValue>> outputs);
|
|
39
41
|
void execute(jsi::Runtime &rt);
|
|
42
|
+
void enableFastMode(
|
|
43
|
+
const int optimalizationLvl,
|
|
44
|
+
const std::shared_ptr<ShareableValue> &updater,
|
|
45
|
+
const std::shared_ptr<ShareableValue> &jsViewDescriptors);
|
|
40
46
|
virtual ~Mapper();
|
|
41
47
|
};
|
|
42
48
|
|
|
43
|
-
}
|
|
49
|
+
} // namespace reanimated
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include <stdio.h>
|
|
4
3
|
#include <jsi/jsi.h>
|
|
4
|
+
#include <stdio.h>
|
|
5
5
|
|
|
6
6
|
using namespace facebook;
|
|
7
7
|
|
|
8
|
-
namespace reanimated
|
|
9
|
-
{
|
|
8
|
+
namespace reanimated {
|
|
10
9
|
|
|
11
|
-
using UpdaterFunction = std::function<void(
|
|
12
|
-
|
|
10
|
+
using UpdaterFunction = std::function<void(
|
|
11
|
+
jsi::Runtime &rt,
|
|
12
|
+
int viewTag,
|
|
13
|
+
const jsi::Value &viewName,
|
|
14
|
+
const jsi::Object &object)>;
|
|
15
|
+
using RequestRender =
|
|
16
|
+
std::function<void(std::function<void(double)>, jsi::Runtime &rt)>;
|
|
13
17
|
using ScrollToFunction = std::function<void(int, double, double, bool)>;
|
|
14
|
-
using MeasuringFunction =
|
|
18
|
+
using MeasuringFunction =
|
|
19
|
+
std::function<std::vector<std::pair<std::string, double>>(int)>;
|
|
15
20
|
using TimeProviderFunction = std::function<double(void)>;
|
|
16
21
|
|
|
17
22
|
struct PlatformDepMethodsHolder {
|
|
@@ -22,4 +27,4 @@ struct PlatformDepMethodsHolder {
|
|
|
22
27
|
TimeProviderFunction getCurrentTime;
|
|
23
28
|
};
|
|
24
29
|
|
|
25
|
-
}
|
|
30
|
+
} // namespace reanimated
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
#define REANIMATEDEXAMPLE_REANIMATEDHIDDEN_H
|
|
4
4
|
|
|
5
5
|
#if defined(ONANDROID)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
#include "Logger.h"
|
|
7
|
+
#include "LoggerInterface.h"
|
|
8
|
+
#include "SpeedChecker.h"
|
|
9
9
|
#else
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
#include "Common/cpp/hidden_headers/Logger.h"
|
|
11
|
+
#include "Common/cpp/hidden_headers/LoggerInterface.h"
|
|
12
|
+
#include "Common/cpp/hidden_headers/SpeedChecker.h"
|
|
13
13
|
#endif
|
|
14
14
|
|
|
15
|
-
#endif //REANIMATEDEXAMPLE_REANIMATEDHIDDEN_H
|
|
15
|
+
#endif // REANIMATEDEXAMPLE_REANIMATEDHIDDEN_H
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include
|
|
3
|
+
#include <jsi/jsi.h>
|
|
4
4
|
#include <stdio.h>
|
|
5
5
|
#include <unordered_map>
|
|
6
|
-
#include <jsi/jsi.h>
|
|
7
6
|
#include "LayoutAnimationsProxy.h"
|
|
7
|
+
#include "PlatformDepMethodsHolder.h"
|
|
8
8
|
|
|
9
9
|
using namespace facebook;
|
|
10
10
|
|
|
@@ -22,25 +22,27 @@ enum RuntimeType {
|
|
|
22
22
|
*/
|
|
23
23
|
UI
|
|
24
24
|
};
|
|
25
|
-
typedef jsi::Runtime*
|
|
25
|
+
typedef jsi::Runtime *RuntimePointer;
|
|
26
26
|
|
|
27
27
|
class RuntimeDecorator {
|
|
28
|
-
public:
|
|
28
|
+
public:
|
|
29
29
|
static void decorateRuntime(jsi::Runtime &rt, const std::string &label);
|
|
30
|
-
static void decorateUIRuntime(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
static void decorateUIRuntime(
|
|
31
|
+
jsi::Runtime &rt,
|
|
32
|
+
const UpdaterFunction updater,
|
|
33
|
+
const RequestFrameFunction requestFrame,
|
|
34
|
+
const ScrollToFunction scrollTo,
|
|
35
|
+
const MeasuringFunction measure,
|
|
36
|
+
const TimeProviderFunction getCurrentTime,
|
|
37
|
+
std::shared_ptr<LayoutAnimationsProxy> layoutAnimationsProxy);
|
|
38
|
+
|
|
38
39
|
/**
|
|
39
40
|
Returns true if the given Runtime is the Reanimated UI-Thread Runtime.
|
|
40
41
|
*/
|
|
41
42
|
inline static bool isUIRuntime(jsi::Runtime &rt);
|
|
42
43
|
/**
|
|
43
|
-
Returns true if the given Runtime is a Runtime that supports the concept of
|
|
44
|
+
Returns true if the given Runtime is a Runtime that supports the concept of
|
|
45
|
+
Workletization. (REA, Vision, ...)
|
|
44
46
|
*/
|
|
45
47
|
inline static bool isWorkletRuntime(jsi::Runtime &rt);
|
|
46
48
|
/**
|
|
@@ -48,31 +50,35 @@ public:
|
|
|
48
50
|
*/
|
|
49
51
|
inline static bool isReactRuntime(jsi::Runtime &rt);
|
|
50
52
|
/**
|
|
51
|
-
Register the given Runtime. This function is required for every
|
|
53
|
+
Register the given Runtime. This function is required for every
|
|
54
|
+
RuntimeManager, otherwise future runtime checks will fail.
|
|
52
55
|
*/
|
|
53
|
-
static void registerRuntime(jsi::Runtime*
|
|
56
|
+
static void registerRuntime(jsi::Runtime *runtime, RuntimeType runtimeType);
|
|
54
57
|
|
|
55
|
-
private:
|
|
58
|
+
private:
|
|
56
59
|
static std::unordered_map<RuntimePointer, RuntimeType> runtimeRegistry;
|
|
57
60
|
};
|
|
58
61
|
|
|
59
|
-
inline bool RuntimeDecorator::isUIRuntime(jsi::Runtime&
|
|
62
|
+
inline bool RuntimeDecorator::isUIRuntime(jsi::Runtime &rt) {
|
|
60
63
|
auto iterator = runtimeRegistry.find(&rt);
|
|
61
|
-
if (iterator == runtimeRegistry.end())
|
|
64
|
+
if (iterator == runtimeRegistry.end())
|
|
65
|
+
return false;
|
|
62
66
|
return iterator->second == RuntimeType::UI;
|
|
63
67
|
}
|
|
64
68
|
|
|
65
|
-
inline bool RuntimeDecorator::isWorkletRuntime(jsi::Runtime&
|
|
69
|
+
inline bool RuntimeDecorator::isWorkletRuntime(jsi::Runtime &rt) {
|
|
66
70
|
auto iterator = runtimeRegistry.find(&rt);
|
|
67
|
-
if (iterator == runtimeRegistry.end())
|
|
71
|
+
if (iterator == runtimeRegistry.end())
|
|
72
|
+
return false;
|
|
68
73
|
auto type = iterator->second;
|
|
69
74
|
return type == RuntimeType::UI || type == RuntimeType::Worklet;
|
|
70
75
|
}
|
|
71
76
|
|
|
72
|
-
inline bool RuntimeDecorator::isReactRuntime(jsi::Runtime&
|
|
77
|
+
inline bool RuntimeDecorator::isReactRuntime(jsi::Runtime &rt) {
|
|
73
78
|
auto iterator = runtimeRegistry.find(&rt);
|
|
74
|
-
if (iterator == runtimeRegistry.end())
|
|
79
|
+
if (iterator == runtimeRegistry.end())
|
|
80
|
+
return true;
|
|
75
81
|
return false;
|
|
76
82
|
}
|
|
77
83
|
|
|
78
|
-
}
|
|
84
|
+
} // namespace reanimated
|