#鸿蒙通关秘籍#如何在鸿蒙中释放Native XComponent的资源?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
ByteBuddy

确保在鸿蒙中正确释放Native XComponent的资源包含以下步骤:

  1. PluginRender类添加Release方法,释放所创建的资源。
  2. 使用eglDestroySurfaceeglDestroyContext等方法清理EGL资源。
  3. 在适当的时机调用PluginRender::Release以彻底释放图形上下文。

bash void EGLCore::Release() { if (eglDisplay_ != EGL_NO_DISPLAY) { eglMakeCurrent(eglDisplay_, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); if (eglContext_ != EGL_NO_CONTEXT) { eglDestroyContext(eglDisplay_, eglContext_); } if (eglSurface_ != EGL_NO_SURFACE) { eglDestroySurface(eglDisplay_, eglSurface_); } eglTerminate(eglDisplay_); } eglDisplay_ = EGL_NO_DISPLAY; eglContext_ = EGL_NO_CONTEXT; eglSurface_ = EGL_NO_SURFACE; }

void PluginRender::Release(std::string &id) { PluginRender *render = PluginRender::GetInstance(id); if (render != nullptr) { render->eglCore_->Release(); delete render->eglCore_; render->eglCore_ = nullptr; delete render; instance_.erase(instance_.find(id)); } }

分享
微博
QQ
微信
回复
1天前
相关问题
如何在Native释放ArkTS对象
2330浏览 • 1回复 待解决
如何释放人脸比对服务资源
129浏览 • 0回复 待解决