当从tango-c-samples运行rgb_depth_sync示例或通过探戈OpenGL ES 2.0 TangoService_updateTexture接口检索原始纹理的任何自定义代码时,我在恢复已经运行的应用程序时遇到错误。
在缓冲区中定期找到的纹理是应用程序上一次运行的最后一帧,直到暂停为止。看起来好像前一个上下文中的OpenGL纹理缓冲区被存储并且偶尔会错误地返回,但是我已经确认在应用程序暂停时所有这些示例中的glTextures都被删除了:
ColorImage::~ColorImage() { glDeleteTextures(1, &texture_id_); }
应用程序本身也成功断开与TangoService的连接:
TangoService_disconnect();
有人有类似的问题吗?它似乎是Tango API中的一个错误。我发现的唯一(不是真的)解决方法是完全重启应用程序。有没有人在他们的应用程序中找到解决方案,或者Tango团队是否意识到这是一个问题?
请注意:我已经知道生命周期known issue:
Project Tango API的当前版本是为前台使用Tango Service的单个应用程序设计的。多应用程序使用未定义,因此不要计划此时在多个活动的Project Tango应用程序之间切换的用户。
但是,由于应用程序本身不是
,我不确定在暂停后是否继续在前台再次运行单个应用程序