-
Notifications
You must be signed in to change notification settings - Fork 4.7k
/
JniSkiaBaseView.h
68 lines (51 loc) · 1.89 KB
/
JniSkiaBaseView.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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