Skip to content

Commit

Permalink
Format
Browse files Browse the repository at this point in the history
  • Loading branch information
mrousavy committed Feb 21, 2024
1 parent d3e03a3 commit 0234630
Show file tree
Hide file tree
Showing 17 changed files with 148 additions and 157 deletions.
2 changes: 1 addition & 1 deletion package/android/src/main/cpp/AndroidFilamentProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ int AndroidFilamentProxy::loadModel(const std::string& path) {
}

std::shared_ptr<FilamentView> AndroidFilamentProxy::findFilamentView(int id) {
return _proxy->cthis()->findFilamentView(id);
return _proxy->cthis()->findFilamentView(id);
}

} // namespace margelo
2 changes: 1 addition & 1 deletion package/android/src/main/cpp/AndroidSurface.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
#pragma once

#include "Surface.h"
#include <android/native_window.h>
#include <fbjni/fbjni.h>
#include <jni.h>
#include <android/native_window.h>

namespace margelo {

Expand Down
16 changes: 8 additions & 8 deletions package/android/src/main/cpp/JNISharedPtr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@

namespace margelo {

void GlobalRefDeleter::operator()(jni::global_ref<jobject> *ref) {
if (ref) {
ref->release();
delete ref;
}
void GlobalRefDeleter::operator()(jni::global_ref<jobject>* ref) {
if (ref) {
ref->release();
delete ref;
}
}

template<typename T, typename std::enable_if<std::is_base_of<jni::HybridClass<T>, T>::value>::type *>
template <typename T, typename std::enable_if<std::is_base_of<jni::HybridClass<T>, T>::value>::type*>
std::shared_ptr<T> JNISharedPtr::make_shared_from_jni(jni::global_ref<typename T::javaobject> ref) {
return std::shared_ptr<T>(ref->cthis(), GlobalRefDeleter {});
return std::shared_ptr<T>(ref->cthis(), GlobalRefDeleter{});
}

} // margelo
} // namespace margelo
9 changes: 4 additions & 5 deletions package/android/src/main/cpp/JNISharedPtr.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,13 @@ namespace margelo {
using namespace facebook;

struct GlobalRefDeleter {
void operator()(jni::global_ref<jobject>* ref);
void operator()(jni::global_ref<jobject>* ref);
};

class JNISharedPtr {
public:
template<typename T, typename std::enable_if<std::is_base_of<jni::HybridClass<T>, T>::value>::type* = nullptr>
static std::shared_ptr<T> make_shared_from_jni(jni::global_ref<typename T::javaobject> ref);
template <typename T, typename std::enable_if<std::is_base_of<jni::HybridClass<T>, T>::value>::type* = nullptr>
static std::shared_ptr<T> make_shared_from_jni(jni::global_ref<typename T::javaobject> ref);
};

} // margelo

} // namespace margelo
12 changes: 6 additions & 6 deletions package/android/src/main/cpp/java-bindings/JFilamentProxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
//

#include "JFilamentProxy.h"
#include <fbjni/fbjni.h>
#include "JFilamentView.h"
#include "JNISharedPtr.h"
#include <fbjni/fbjni.h>

namespace margelo {

Expand All @@ -25,11 +25,11 @@ int JFilamentProxy::loadModel(const std::string& path) {
}

std::shared_ptr<FilamentView> JFilamentProxy::findFilamentView(int id) {
static const auto method = javaClassLocal()->getMethod<jni::alias_ref<JFilamentView::javaobject>(jint)>("findFilamentView");
jni::local_ref<JFilamentView::javaobject> view = method(_javaPart, id);
jni::global_ref<JFilamentView::javaobject> globalRef = jni::make_global(view);
std::shared_ptr<JFilamentView> sharedRef = JNISharedPtr::make_shared_from_jni<JFilamentView>(globalRef);
return std::static_pointer_cast<FilamentView>(sharedRef);
static const auto method = javaClassLocal()->getMethod<jni::alias_ref<JFilamentView::javaobject>(jint)>("findFilamentView");
jni::local_ref<JFilamentView::javaobject> view = method(_javaPart, id);
jni::global_ref<JFilamentView::javaobject> globalRef = jni::make_global(view);
std::shared_ptr<JFilamentView> sharedRef = JNISharedPtr::make_shared_from_jni<JFilamentView>(globalRef);
return std::static_pointer_cast<FilamentView>(sharedRef);
}

jsi::Runtime& JFilamentProxy::getRuntime() {
Expand Down
4 changes: 2 additions & 2 deletions package/android/src/main/cpp/java-bindings/JFilamentProxy.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

#pragma once

#include "FilamentView.h"
#include <ReactCommon/CallInvokerHolder.h>
#include <fbjni/fbjni.h>
#include <jni.h>
#include <jsi/jsi.h>
#include "FilamentView.h"

namespace margelo {

Expand All @@ -24,7 +24,7 @@ class JFilamentProxy : public jni::HybridClass<JFilamentProxy> {

// TODO(hanno): implement
int loadModel(const std::string& path);
std::shared_ptr<FilamentView> findFilamentView(int id);
std::shared_ptr<FilamentView> findFilamentView(int id);

jsi::Runtime& getRuntime();

Expand Down
22 changes: 10 additions & 12 deletions package/android/src/main/cpp/java-bindings/JFilamentView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,27 @@

namespace margelo {

JFilamentView::JFilamentView(const jni::alias_ref<jhybridobject>& javaThis,
jni::alias_ref<JSurfaceProvider::javaobject> surfaceProvider):
_javaPart(make_global(javaThis)), _surfaceProvider(jni::make_global(surfaceProvider)) {}
JFilamentView::JFilamentView(const jni::alias_ref<jhybridobject>& javaThis, jni::alias_ref<JSurfaceProvider::javaobject> surfaceProvider)
: _javaPart(make_global(javaThis)), _surfaceProvider(jni::make_global(surfaceProvider)) {}

JFilamentView::~JFilamentView() {
// TODO(marc): Cleanup?
// TODO(marc): Cleanup?
}

void JFilamentView::registerNatives() {
registerHybrid({
makeNativeMethod("initHybrid", JFilamentView::initHybrid),
});
registerHybrid({
makeNativeMethod("initHybrid", JFilamentView::initHybrid),
});
}

jni::local_ref<JFilamentView::jhybriddata> JFilamentView::initHybrid(jni::alias_ref<jhybridobject> jThis,
jni::alias_ref<JSurfaceProvider::javaobject> surfaceProvider) {
__android_log_write(ANDROID_LOG_INFO, TAG, "Initializing JFilamentView...");
return makeCxxInstance(jThis, surfaceProvider);
__android_log_write(ANDROID_LOG_INFO, TAG, "Initializing JFilamentView...");
return makeCxxInstance(jThis, surfaceProvider);
}

const SurfaceProvider& JFilamentView::getSurfaceProvider() {
return *_surfaceProvider->cthis();
return *_surfaceProvider->cthis();
}


} // margelo
} // namespace margelo
31 changes: 16 additions & 15 deletions package/android/src/main/cpp/java-bindings/JFilamentView.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,36 @@

#pragma once

#include "FilamentView.h"
#include "JSurfaceProvider.h"
#include "SurfaceProvider.h"
#include <fbjni/fbjni.h>
#include <jni.h>
#include "SurfaceProvider.h"
#include "JSurfaceProvider.h"
#include "FilamentView.h"

namespace margelo {

using namespace facebook;

class JFilamentView: public jni::HybridClass<JFilamentView>, public FilamentView {
class JFilamentView : public jni::HybridClass<JFilamentView>, public FilamentView {
public:
~JFilamentView();
static void registerNatives();
~JFilamentView();
static void registerNatives();

const SurfaceProvider& getSurfaceProvider() override;
const SurfaceProvider& getSurfaceProvider() override;

private:
friend HybridBase;
jni::global_ref<JFilamentView::javaobject> _javaPart;
jni::global_ref<JSurfaceProvider::javaobject> _surfaceProvider;
friend HybridBase;
jni::global_ref<JFilamentView::javaobject> _javaPart;
jni::global_ref<JSurfaceProvider::javaobject> _surfaceProvider;

private:
static auto constexpr TAG = "JFilamentView";
static auto constexpr kJavaDescriptor = "Lcom/margelo/filament/FilamentView;";
static auto constexpr TAG = "JFilamentView";
static auto constexpr kJavaDescriptor = "Lcom/margelo/filament/FilamentView;";

private:
explicit JFilamentView(const jni::alias_ref<jhybridobject>& javaThis, jni::alias_ref<JSurfaceProvider::javaobject> surfaceProvider);
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> javaThis, jni::alias_ref<JSurfaceProvider::javaobject> surfaceProvider);
explicit JFilamentView(const jni::alias_ref<jhybridobject>& javaThis, jni::alias_ref<JSurfaceProvider::javaobject> surfaceProvider);
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> javaThis,
jni::alias_ref<JSurfaceProvider::javaobject> surfaceProvider);
};

} // margelo
} // namespace margelo
48 changes: 24 additions & 24 deletions package/android/src/main/cpp/java-bindings/JSurfaceProvider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,49 +6,49 @@

namespace margelo {

JSurfaceProvider::JSurfaceProvider(const jni::alias_ref<jhybridobject>& javaThis): _javaPart(make_global(javaThis)) {}
JSurfaceProvider::JSurfaceProvider(const jni::alias_ref<jhybridobject>& javaThis) : _javaPart(make_global(javaThis)) {}

JSurfaceProvider::~JSurfaceProvider() {
// TODO(hanno): Cleanup?
// TODO(hanno): Cleanup?
}

void JSurfaceProvider::registerNatives() {
registerHybrid({
makeNativeMethod("initHybrid", JSurfaceProvider::initHybrid),
makeNativeMethod("onSurfaceCreated", JSurfaceProvider::onSurfaceCreated),
makeNativeMethod("onSurfaceChanged", JSurfaceProvider::onSurfaceChanged),
makeNativeMethod("onSurfaceDestroyed", JSurfaceProvider::onSurfaceDestroyed),
});
registerHybrid({
makeNativeMethod("initHybrid", JSurfaceProvider::initHybrid),
makeNativeMethod("onSurfaceCreated", JSurfaceProvider::onSurfaceCreated),
makeNativeMethod("onSurfaceChanged", JSurfaceProvider::onSurfaceChanged),
makeNativeMethod("onSurfaceDestroyed", JSurfaceProvider::onSurfaceDestroyed),
});
}

jni::local_ref<JSurfaceProvider::jhybriddata> JSurfaceProvider::initHybrid(jni::alias_ref<jhybridobject> jThis) {
__android_log_write(ANDROID_LOG_INFO, TAG, "Initializing JSurfaceProvider...");
return makeCxxInstance(jThis);
__android_log_write(ANDROID_LOG_INFO, TAG, "Initializing JSurfaceProvider...");
return makeCxxInstance(jThis);
}

void JSurfaceProvider::onSurfaceCreated(jni::alias_ref<jobject> javaSurface) {
if (_surface == nullptr || _surface->getJavaSurface() != javaSurface) {
_surface = std::make_shared<AndroidSurface>(javaSurface);
}
SurfaceProvider::onSurfaceCreated(_surface);
if (_surface == nullptr || _surface->getJavaSurface() != javaSurface) {
_surface = std::make_shared<AndroidSurface>(javaSurface);
}
SurfaceProvider::onSurfaceCreated(_surface);
}

void JSurfaceProvider::onSurfaceChanged(jni::alias_ref<jobject> javaSurface, int width, int height) {
if (_surface == nullptr || _surface->getJavaSurface() != javaSurface) {
_surface = std::make_shared<AndroidSurface>(javaSurface);
}
SurfaceProvider::onSurfaceChanged(_surface, width, height);
if (_surface == nullptr || _surface->getJavaSurface() != javaSurface) {
_surface = std::make_shared<AndroidSurface>(javaSurface);
}
SurfaceProvider::onSurfaceChanged(_surface, width, height);
}

void JSurfaceProvider::onSurfaceDestroyed(jni::alias_ref<jobject> surface) {
SurfaceProvider::onSurfaceDestroyed(_surface);
if (_surface != nullptr && _surface->getJavaSurface() == surface) {
_surface = nullptr;
}
SurfaceProvider::onSurfaceDestroyed(_surface);
if (_surface != nullptr && _surface->getJavaSurface() == surface) {
_surface = nullptr;
}
}

std::shared_ptr<Surface> JSurfaceProvider::getSurfaceOrNull() {
return _surface;
return _surface;
}

} // margelo
} // namespace margelo
34 changes: 17 additions & 17 deletions package/android/src/main/cpp/java-bindings/JSurfaceProvider.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,38 @@

#pragma once

#include <fbjni/fbjni.h>
#include <jni.h>
#include "AndroidSurface.h"
#include "SurfaceProvider.h"
#include <fbjni/fbjni.h>
#include <jni.h>

namespace margelo {

using namespace facebook;

class JSurfaceProvider: public jni::HybridClass<JSurfaceProvider>, public SurfaceProvider {
class JSurfaceProvider : public jni::HybridClass<JSurfaceProvider>, public SurfaceProvider {
public:
~JSurfaceProvider();
static void registerNatives();
~JSurfaceProvider();
static void registerNatives();

void onSurfaceCreated(jni::alias_ref<jobject> surface);
void onSurfaceChanged(jni::alias_ref<jobject> surface, int width, int height);
void onSurfaceDestroyed(jni::alias_ref<jobject> surface);
void onSurfaceCreated(jni::alias_ref<jobject> surface);
void onSurfaceChanged(jni::alias_ref<jobject> surface, int width, int height);
void onSurfaceDestroyed(jni::alias_ref<jobject> surface);

std::shared_ptr<Surface> getSurfaceOrNull() override;
std::shared_ptr<Surface> getSurfaceOrNull() override;

private:
friend HybridBase;
jni::global_ref<JSurfaceProvider::javaobject> _javaPart;
std::shared_ptr<AndroidSurface> _surface;
friend HybridBase;
jni::global_ref<JSurfaceProvider::javaobject> _javaPart;
std::shared_ptr<AndroidSurface> _surface;

private:
static auto constexpr TAG = "JSurfaceProvider";
static auto constexpr kJavaDescriptor = "Lcom/margelo/filament/SurfaceProvider;";
static auto constexpr TAG = "JSurfaceProvider";
static auto constexpr kJavaDescriptor = "Lcom/margelo/filament/SurfaceProvider;";

private:
explicit JSurfaceProvider(const jni::alias_ref<jhybridobject>& javaThis);
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> javaThis);
explicit JSurfaceProvider(const jni::alias_ref<jhybridobject>& javaThis);
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> javaThis);
};

} // margelo
} // namespace margelo
4 changes: 1 addition & 3 deletions package/cpp/FilamentView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,4 @@

#include "FilamentView.h"

namespace margelo {

} // namespace margelo
namespace margelo {} // namespace margelo
2 changes: 1 addition & 1 deletion package/cpp/FilamentView.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

#include <jsi/jsi.h>

#include "SurfaceProvider.h"
#include <string>
#include <vector>
#include "SurfaceProvider.h"

namespace margelo {

Expand Down
14 changes: 7 additions & 7 deletions package/cpp/Listener.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@

namespace margelo {

Listener::Listener(std::function<void()> remove): _remove(std::move(remove)), _isRemoved(false) {}
Listener::Listener(std::function<void()> remove) : _remove(std::move(remove)), _isRemoved(false) {}

void Listener::remove() {
if (_isRemoved) {
return;
}
_remove();
_isRemoved = true;
if (_isRemoved) {
return;
}
_remove();
_isRemoved = true;
}

} // margelo
} // namespace margelo
Loading

0 comments on commit 0234630

Please sign in to comment.