EGL绘制是否支持多线程?如何在多线程的场景下同时操作一块buffer进行图形绘制

EGL绘制是否支持多线程?如何在多线程的场景下同时操作一块buffer进行图形绘制

HarmonyOS
2024-03-17 12:29:03
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect
  • 支持多线程,可以通过每个线程各自产生一块纹理,再将这些纹理合成到一块buffer。
  • 可以使用sharedContext,另外绘制操作可通过调用OpenGL实现。
  • 创建ShareEglContext的代码如下:
void CreateShareEglContext() 
{ 
  if (renderContext == nullptr) { // renderContext是主线程context 
    RS_LOGE("renderContext_ is nullptr"); 
    return; 
  } 
  eglShareContext = renderContext->CreateShareContext(); //  创建share context 
  if (eglShareContext == EGL_NO_CONTEXT) { 
    RS_LOGE("eglShareContext is EGL_NO_CONTEXT"); 
    return; 
  } 
  if (!eglMakeCurrent(renderContext->GetEGLDisplay(), EGL_NO_SURFACE, EGL_NO_SURFACE, eglShareContext)) { 
    RS_LOGE("eglMakeCurrent failed"); 
    return; 
  } 
}
分享
微博
QQ
微信
回复
2024-03-17 22:17:43
相关问题
求大佬告知ArkTS是否支持多线程
948浏览 • 1回复 待解决
如何实现多线程数据共享
939浏览 • 1回复 待解决
ArkTs多线程方案如何保证线程安全
1201浏览 • 1回复 待解决
使用Native、XComponent和EGL绘制图形
524浏览 • 1回复 待解决
如何使用taskpool实现多线程
567浏览 • 1回复 待解决
什么是系统多线程模型
55浏览 • 1回复 待解决
系统多线程模型是什么样
815浏览 • 1回复 待解决
配置管理类多线程方案
748浏览 • 1回复 待解决
Worker多线程使用,有谁知道啊?
516浏览 • 1回复 待解决
如何操作canvas重新绘制
447浏览 • 1回复 待解决
使用Drawing实现图形绘制与显示
437浏览 • 1回复 待解决
XComponent、NativeDrawing实现2D图形绘制
502浏览 • 1回复 待解决