问题场景:在使用eglSwapBuffers API时,经常会抛出一些常见错误码,下面对这些错误码进行分析汇总。问题1:eglSwapBuffers执行抛出错误码:EGL\_BAD\_SURFACE (300d)。日志中显示:QEGLPlatformContext: eglSwapBuffers failed: 300d。参考答复:surface不是EGL绘图表面就会报这个错:EGL\_BAD\_SURFACE。官方解释:An EGLSurface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.建议检查eglCreateWindowSurface/eglCreatePixmapSurface/eglCreatePbufferSurface的参数设置。问题2:eglSwapBuffers执行抛错错误码:EGL\_BAD\_ALLOC。参考答复:具体场景1:编码器通过OH\_VideoEncoder\_GetSurface(encoder\_, NativeWindow);获取NativeWindow,使用该NativeWindow去创建Encoder的EGLSurface来接收OpenGL的纹理数据。如果没有先调用OH\_NativeWindow\_NativeWindowHandleOpt(nativeWindow, SET\_BUFFER\_GEOMETRY, height, width) 来设置SET\_BUFFER\_GEOMETRY配置buffer大小,那么在调用eglSwapBuffers API时就会报上述错误。
问题场景:
在使用eglSwapBuffers API时,经常会抛出一些常见错误码,下面对这些错误码进行分析汇总。
问题1:
eglSwapBuffers执行抛出错误码:EGL\_BAD\_SURFACE (300d)。
日志中显示:QEGLPlatformContext: eglSwapBuffers failed: 300d。
参考答复:
surface不是EGL绘图表面就会报这个错:EGL\_BAD\_SURFACE。
官方解释:
An EGLSurface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.
建议检查eglCreateWindowSurface/eglCreatePixmapSurface/eglCreatePbufferSurface的参数设置。
问题2:
eglSwapBuffers执行抛错错误码:EGL\_BAD\_ALLOC。
参考答复:
具体场景1:编码器通过OH\_VideoEncoder\_GetSurface(encoder\_, NativeWindow);获取NativeWindow,使用该NativeWindow去创建Encoder的EGLSurface来接收OpenGL的纹理数据。如果没有先调用OH\_NativeWindow\_NativeWindowHandleOpt(nativeWindow, SET\_BUFFER\_GEOMETRY, height, width) 来设置SET\_BUFFER\_GEOMETRY配置buffer大小,那么在调用eglSwapBuffers API时就会报上述错误。