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

HarmonyOS
2024-12-11 12:51:00
浏览
收藏 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
微信
回复
2024-12-11 14:23:40
相关问题
如何在Native释放ArkTS对象
2485浏览 • 1回复 待解决