【发布时间】:2019-06-21 11:55:17
【问题描述】:
我使用 EGL API 编写了一个库。该库具有“init”和“deinit”功能。 在“init”函数中,用户传递的本机窗口 ID,使用该本机窗口 ID eglCreateWindowSurface 被创建。在 'deinit' 函数中,使用 eglDestroySurface 销毁表面。
现在用户再次调用“init”函数来创建另一个 eglCreateWindowSurface,但他传递了与之前相同的窗口 id(因为他没有关闭他的窗口),这里 eglCreateWindowSurface 失败并出现错误 EGL_BAD_ALLOC。
我阅读了 EGL 规范
如果已经存在与 win 关联的 EGLSurface(由于 之前的 eglCreateWindowSurface 调用),然后是 EGL_BAD_ALLOC 错误 生成
当我已经使用 eglDestroySurface 破坏了表面时,我不明白为什么要使用相同的窗口 ID 再次创建它。
xserver 重新使用之前关闭的窗口 id 时会出现这个问题吗?
【问题讨论】: