EGL绘制操作是否只能在主线程,可以放子线程中执行吗?

北向实践与赋能

沙发 发表于 2024-1-4 11:32:08

EGL绘制操作是否只能在主线程,可以放子线程中执行吗?

关键字 EGL 绘制,主线程,子线程 解决方案 EGL操作可以在子线程中操作,可以通过创建SharedContext 创建SharedContext示例代码如下

void CreateShareEglContext()
{
    if (renderContext == nullptr) { // renderContext是主线程context
        RS_LOGE("renderContext_ is nullptr");
        return;
    }
    eglShareContext = renderContext->CreateShareContext();
    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;
    }
}

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部