为什么 Tango Camera Interface 有两个独立的更新纹理函数?
Why does the Tango Camera Interface have two separate update texture functions?
我在回答这个问题时使用的是最新的 Tango 版本,即 Zaniah(1.46 版,2016 年 11 月)。我有两个设备,一个 Project Tango 开发工具包和一个预发布的 Lenovo phone。
有谁知道为什么 TangoService_updateTexture
仅在目标 GL_TEXTURE_EXTERNAL_OES
的纹理连接到相机接口时才有效?
有一个单独的 TangoService_updateTextureExternalOes
函数声明用于 GL_TEXTURE_EXTERNAL_OES
纹理,所以这给人的印象是 TangoService_updateTexture
应该与其他类型的纹理一起使用,例如 [=15] =](为什么还有一个单独的功能?)。但是,如果您将纹理与 GL_TEXTURE_2D
目标连接,则会生成一个 gl 错误,指出调用 TangoService_updateTexture
时无法绑定纹理,现在看不到代码,我猜 Tango API 尝试将纹理绑定到 GL_TEXTURE_EXTERNAL_OES
目标,而不管调用哪个函数。
如果是这种情况,为什么会有两个单独的函数?
有没有其他人观察到这一点,这是预期的行为还是已知问题?
我正在努力寻找有关它的任何类型的信息或文档。
API 文档:https://developers.google.com/tango/apis/c/reference/group/camera
TangoService_updateTexture
和TangoService_updateTextureExternalOes
都使用OES纹理。不幸的是,Tango 仅通过 C-API 函数支持 OES 纹理。
这两个函数之间的主要区别在于 TangoService_updateTexture
需要 TangoService_connectTexture
预先提供有效的纹理 ID。这意味着在调用 TangoService_connectTexture
时,您必须具有有效的纹理 ID(当然还有 gl-context)设置。这将 gl-context 的生命周期与 Tango&Android 生命周期紧密地联系在一起。在某些情况下,这可能有点棘手。
另一方面,TangoService_updateTextureExternalOes
在调用这个函数之前不需要任何纹理ID设置,所以你可以简单地在render()
函数中调用它,这保证了gl-context可用.
我在回答这个问题时使用的是最新的 Tango 版本,即 Zaniah(1.46 版,2016 年 11 月)。我有两个设备,一个 Project Tango 开发工具包和一个预发布的 Lenovo phone。
有谁知道为什么 TangoService_updateTexture
仅在目标 GL_TEXTURE_EXTERNAL_OES
的纹理连接到相机接口时才有效?
有一个单独的 TangoService_updateTextureExternalOes
函数声明用于 GL_TEXTURE_EXTERNAL_OES
纹理,所以这给人的印象是 TangoService_updateTexture
应该与其他类型的纹理一起使用,例如 [=15] =](为什么还有一个单独的功能?)。但是,如果您将纹理与 GL_TEXTURE_2D
目标连接,则会生成一个 gl 错误,指出调用 TangoService_updateTexture
时无法绑定纹理,现在看不到代码,我猜 Tango API 尝试将纹理绑定到 GL_TEXTURE_EXTERNAL_OES
目标,而不管调用哪个函数。
如果是这种情况,为什么会有两个单独的函数?
有没有其他人观察到这一点,这是预期的行为还是已知问题?
我正在努力寻找有关它的任何类型的信息或文档。
API 文档:https://developers.google.com/tango/apis/c/reference/group/camera
TangoService_updateTexture
和TangoService_updateTextureExternalOes
都使用OES纹理。不幸的是,Tango 仅通过 C-API 函数支持 OES 纹理。
这两个函数之间的主要区别在于 TangoService_updateTexture
需要 TangoService_connectTexture
预先提供有效的纹理 ID。这意味着在调用 TangoService_connectTexture
时,您必须具有有效的纹理 ID(当然还有 gl-context)设置。这将 gl-context 的生命周期与 Tango&Android 生命周期紧密地联系在一起。在某些情况下,这可能有点棘手。
另一方面,TangoService_updateTextureExternalOes
在调用这个函数之前不需要任何纹理ID设置,所以你可以简单地在render()
函数中调用它,这保证了gl-context可用.