OpenHarmony开发者论坛

标题: EGL绘制操作是否只能在主线程,可以放子线程中执行吗? [打印本页]

作者: 北向实践与赋能    时间: 2024-1-4 11:31
标题: EGL绘制操作是否只能在主线程,可以放子线程中执行吗?
[md]EGL绘制操作是否只能在主线程,可以放子线程中执行吗?
[/md]
作者: 北向实践与赋能    时间: 2024-1-4 11:32
标题: EGL绘制操作是否只能在主线程,可以放子线程中执行吗?
[md]**关键字**
EGL 绘制,主线程,子线程
**解决方案**
EGL操作可以在子线程中操作,可以通过创建SharedContext
创建SharedContext示例代码如下

```ts
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;
    }
}
```
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5