When running the rgb_depth_sync example from the tango-c-samples, or any custom code for retrieving the raw textures via the tango OpenGL ES 2.0 TangoService_updateTexture interface, I encounter an error when resuming an already running app.
The texture periodically found in the buffer is the last frame from the previous run of the app until it was paused. It look as though the OpenGL texture buffer from the previous context is being stored and occassionally erroneously returned, however I have confirmed the glTextures in all of these examples are being deleted when the app is paused:
ColorImage::~ColorImage() { glDeleteTextures(1, &texture_id_); }
The application itself is also successfully disconnecting from the TangoService:
TangoService_disconnect();
Is anybody having similar issues? It appears to be a bug within the Tango API. The only (not really) workaround I have found is to completely restart the app. Has anyone found a solution to this within their applications, or are the Tango Team aware that this is a problem?
Just to note: I am already aware of the life-cycle known issue:
The current version of the Project Tango APIs are designed for a single app using Tango Service in the foreground. Multi-app usage is undefined so do not plan on users switching between multiple active Project Tango apps at this time.
However I was not sure whether resuming a single app to be run again in the foreground after pausing is encompassed within that issue, as the app itself is not
The fix to this particular problem is to update device BSP and the TangoCore from play store.