Skip to content

Commit

Permalink
[android][ios] Upgrade @shopify/react-native-skia to 0.1.153 (#19360)
Browse files Browse the repository at this point in the history
# Why

close ENG-6536

# How

- [tools] Update react-native-skia.patch
- `et uvm -m @shopify/react-native-skia -c 0.1.153`
- [NCL] update SkiaScreen example mainly for `useDerivedValue -> useComputedValue`

# Test Plan

- android unversioned expo go + NCL skia
- ios unversioned expo go + NCL skia
  • Loading branch information
Kudo committed Oct 6, 2022
1 parent 446555c commit 56fe5e7
Show file tree
Hide file tree
Showing 110 changed files with 3,570 additions and 2,712 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Expand Up @@ -14,6 +14,7 @@ Package-specific changes not released in any SDK will be added here just before
- Updated `@react-native-community/netinfo` from `9.3.0` to `9.3.3`. ([#19421](https://github.com/expo/expo/pull/19421) by [@douglowder](https://github.com/douglowder))
- Updated `@react-native-picker/picker` from `2.4.2` to `2.4.6`. ([#19390](https://github.com/expo/expo/pull/19390) by [@aleqsio](https://github.com/aleqsio))
- Updated `react-native-screens` from `3.15.0` to `3.18.0`. ([#19383](https://github.com/expo/expo/pull/19383) by [@tsapeta](https://github.com/tsapeta))
- Updated `@shopify/react-native-skia` from `0.1.136` to `0.1.153`. ([#19360](https://github.com/expo/expo/pull/19360) by [@kudo](https://github.com/kudo))

### 🛠 Breaking changes

Expand Down
Expand Up @@ -138,7 +138,6 @@ android {
externalNativeBuild {
cmake {
path file('CMakeLists.txt')
version '3.10.2'
}
}

Expand Down
@@ -1,5 +1,11 @@
project(RNSkia)
cmake_minimum_required(VERSION 3.4.1)

if(${BUILD_TYPE} STREQUAL "debug")
set (CMAKE_BUILD_TYPE Debug)
message("-- Building with Debug Symbols")
endif()

set (CMAKE_VERBOSE_MAKEFILE ON)
set (CMAKE_CXX_STANDARD 17)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSK_GL -DSK_BUILD_FOR_ANDROID -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_MOBILE=1 -DON_ANDROID -DONANDROID")
Expand Down Expand Up @@ -29,23 +35,21 @@ add_library(
SHARED
"${PROJECT_SOURCE_DIR}/cpp/jni/JniLoad.cpp"
"${PROJECT_SOURCE_DIR}/cpp/jni/JniSkiaManager.cpp"
"${PROJECT_SOURCE_DIR}/cpp/jni/JniSkiaDrawView.cpp"

"${PROJECT_SOURCE_DIR}/cpp/jni/JniPlatformContext.cpp"
"${PROJECT_SOURCE_DIR}/cpp/rnskia-android/RNSkDrawViewImpl.cpp"
"${PROJECT_SOURCE_DIR}/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp"
"${PROJECT_SOURCE_DIR}/cpp/rnskia-android/SkiaOpenGLRenderer.cpp"

"${PROJECT_SOURCE_DIR}/../cpp/jsi/JsiHostObject.cpp"

"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkManager.cpp"
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkDrawView.cpp"
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkJsView.cpp"
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkDispatchQueue.cpp"


"${PROJECT_SOURCE_DIR}/../cpp/api/third_party/CSSColorParser.cpp"

)


target_include_directories(
${PACKAGE_NAME}
PRIVATE
Expand Down

This file was deleted.

Expand Up @@ -127,7 +127,9 @@ android {
arguments '-DANDROID_STL=c++_shared',
"-DREACT_NATIVE_VERSION=${REACT_NATIVE_VERSION}",
"-DNODE_MODULES_DIR=${nodeModules}",
"-DPREBUILT_DIR=${prebuiltDir}"
"-DPREBUILT_DIR=${prebuiltDir}",
"-DBUILD_TYPE=${buildType}"

}
}
}
Expand All @@ -137,8 +139,7 @@ android {

externalNativeBuild {
cmake {
path file('CMakeLists.txt')
version '3.10.2'
path file('CMakeLists.txt')
}
}

Expand Down Expand Up @@ -260,7 +261,7 @@ def nativeBuildDependsOn(dependsOnTask, variant) {

afterEvaluate {
nativeBuildDependsOn(extractAARHeaders, null)
nativeBuildDependsOn(extractJNIFiles, null)
nativeBuildDependsOn(extractJNIFiles, null)
}

tasks.whenTaskAdded { task ->
Expand Down
@@ -1,13 +1,15 @@
#include "JniPlatformContext.h"
#include "JniSkiaDrawView.h"
#include "JniSkiaPictureView.h"
#include "JniSkiaManager.h"
#include <fbjni/fbjni.h>
#include <jni.h>

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
return facebook::jni::initialize(vm, [] {
RNSkia::JniSkiaManager::registerNatives();
RNSkia::JniSkiaDrawView::registerNatives();
RNSkia::JniPlatformContext::registerNatives();
});
return facebook::jni::initialize(vm, [] {
RNSkia::JniSkiaManager::registerNatives();
RNSkia::JniSkiaDrawView::registerNatives();
RNSkia::JniSkiaPictureView::registerNatives();
RNSkia::JniPlatformContext::registerNatives();
});
}

This file was deleted.

Expand Up @@ -16,13 +16,8 @@ using namespace facebook;
void JniSkiaManager::registerNatives() {
registerHybrid({
makeNativeMethod("initHybrid", JniSkiaManager::initHybrid),
makeNativeMethod(
"initializeRuntime", JniSkiaManager::initializeRuntime),
makeNativeMethod("registerSkiaView", JniSkiaManager::registerSkiaView),
makeNativeMethod(
"unregisterSkiaView", JniSkiaManager::unregisterSkiaView),
makeNativeMethod(
"invalidate", JniSkiaManager::invalidate),
makeNativeMethod("initializeRuntime", JniSkiaManager::initializeRuntime),
makeNativeMethod("invalidate", JniSkiaManager::invalidate),
});
}

Expand All @@ -46,12 +41,4 @@ void JniSkiaManager::initializeRuntime() {
_skManager = std::make_shared<RNSkManager>(_jsRuntime, _jsCallInvoker, _context);
}

void JniSkiaManager::registerSkiaView(int viewTag, JniSkiaDrawView *skiaView) {
_skManager->registerSkiaDrawView(viewTag, skiaView->getDrawViewImpl());
}

void JniSkiaManager::unregisterSkiaView(int viewTag) {
_skManager->unregisterSkiaDrawView(viewTag);
}

} // namespace RNSkia
@@ -0,0 +1,68 @@
#pragma once

#include <memory>

#include <fbjni/fbjni.h>
#include <jni.h>
#include <jsi/jsi.h>

#include <JniSkiaManager.h>

namespace RNSkia {
using namespace facebook;
using namespace jni;

class JniSkiaBaseView {
public:
JniSkiaBaseView(jni::alias_ref<JniSkiaManager::javaobject> skiaManager,
std::shared_ptr<RNSkBaseAndroidView> skiaView) :
_manager(skiaManager->cthis()),
_skiaView(skiaView) {}

~JniSkiaBaseView() {}

std::shared_ptr<RNSkManager> getSkiaManager() { return _manager->getSkiaManager(); };

protected:
virtual void updateTouchPoints(jni::JArrayDouble touches) {
_skiaView->updateTouchPoints(touches);
}

virtual void surfaceAvailable(jobject surface, int width, int height) {
_skiaView->surfaceAvailable(surface, width, height);
}

virtual void surfaceSizeChanged(int width, int height) {
_skiaView->surfaceSizeChanged(width, height);
}

virtual void surfaceDestroyed() {
_skiaView->surfaceDestroyed();
}

virtual void setMode(std::string mode) {
_skiaView->setMode(mode);
}

virtual void setDebugMode(bool show) {
_skiaView->setShowDebugInfo(show);
}

virtual void registerView(int nativeId) {
getSkiaManager()->registerSkiaView(nativeId,
_skiaView->getSkiaView());
}

virtual void unregisterView() {
getSkiaManager()->setSkiaView(_skiaView->getSkiaView()->getNativeId(), nullptr);
getSkiaManager()->unregisterSkiaView(
_skiaView->getSkiaView()->getNativeId());
_skiaView->viewDidUnmount();
}

private:
JniSkiaManager *_manager;
std::shared_ptr<RNSkBaseAndroidView> _skiaView;
};

} // namespace RNSkia

0 comments on commit 56fe5e7

Please sign in to comment.