#include "lynx_extension_module.h"
// 假设我们有一个函数来创建我们的原生模块
napi_value CreateMyNativeModule(napi_env env, napi_value exports);
const uint64_t kDemoExtensionModuleID =
reinterpret_cast<uint64_t>(&kDemoExtensionModuleID);
class MyExtensionModule : public lynx::pub::LynxExtensionModule {
private:
std::unique_ptr<lynx::pub::VSyncObserver> _vsync_observer;
public:
void OnRuntimeAttach(Napi::Env env,
std::unique_ptr<lynx::pub::VSyncObserver> vsync_observer) override {
printf("MyExtensionModule: 运行时已在 BTS 线程上附加。\\n");
// 存储 VSync 观察者以备后用
_vsync_observer = std::move(vsync_observer);
// 将当前实例指针存储到 N-API 环境中,用于稍后的回调中可以从 N-API 环境中获取当前实例
lynx::pub::LynxExtensionModule::SetNapiInstanceData(
env, kDemoExtensionModuleID, this,
[](Napi::Env env, void* data, void* hint) {}, nullptr);
}
// ... 其他生命周期方法
};