iOS fixes for direct FFI

This commit is contained in:
Nick Fisher
2023-09-29 21:51:33 +08:00
parent 99484d6838
commit 2e207e636a
6 changed files with 50 additions and 543 deletions

View File

@@ -27,7 +27,7 @@ public:
{
std::unique_lock<std::mutex> lock(_access);
if(_tasks.empty()) {
_cond.wait_for(lock, std::chrono::duration<int, std::milli>(_frameIntervalInMilliseconds));
_cond.wait_for(lock, std::chrono::duration<float, std::milli>(_frameIntervalInMilliseconds));
continue;
}
task = std::move(_tasks.front());
@@ -65,7 +65,7 @@ public:
_renderCallback(_renderCallbackOwner);
}
void setFrameIntervalInMilliseconds(int frameIntervalInMilliseconds) {
void setFrameIntervalInMilliseconds(float frameIntervalInMilliseconds) {
_frameIntervalInMilliseconds = frameIntervalInMilliseconds;
}
@@ -83,7 +83,7 @@ public:
private:
bool _stop = false;
bool _rendering = false;
int _frameIntervalInMilliseconds = 1000 / 60;
float _frameIntervalInMilliseconds = 1000.0 / 60.0;
std::mutex _access;
FilamentViewer *_viewer = nullptr;
void (*_renderCallback)(void *const) = nullptr;
@@ -152,7 +152,7 @@ extern "C"
}
}
FLUTTER_PLUGIN_EXPORT void set_frame_interval(double frameIntervalInMilliseconds) {
FLUTTER_PLUGIN_EXPORT void set_frame_interval_ffi(float frameIntervalInMilliseconds) {
_rl->setFrameIntervalInMilliseconds(frameIntervalInMilliseconds);
}
@@ -377,4 +377,8 @@ extern "C"
auto fut = _rl->add_task(lambda);
fut.wait();
}
FLUTTER_PLUGIN_EXPORT void ios_dummy_ffi() {
Log("Dummy called");
}
}