2016-11-25 21 views
0

我正在使用最新的探戈發佈時間是Zaniah(版本1.46,2016年11月)。我有兩個設備,一個Project Tango開發套件和一個預發佈聯想手機。爲什麼探戈相機界面有兩個獨立的更新紋理功能?

有誰知道爲什麼TangoService_updateTexture只適用於目標GL_TEXTURE_EXTERNAL_OES連接到相機接口的紋理?

存在被用於表示用GL_TEXTURE_EXTERNAL_OES紋理單獨TangoService_updateTextureExternalOes功能,所以這給人的印象是TangoService_updateTexture應與其他類型的紋理,如GL_TEXTURE_2D(否則爲什麼有一個單獨的功能?)的工作。然而,如果你連接一個紋理與GL_TEXTURE_2D目標,那麼會產生一個gl錯誤,說明在調用TangoService_updateTexture時不能綁定紋理,現在沒有看到代碼我猜Tango API試圖將紋理綁定到GL_TEXTURE_EXTERNAL_OES目標無論哪個函數被調用。

所以,如果是這樣的話爲什麼有兩個單獨的功能?

有其他人看到這一點,這是預期的行爲,或者這是一個已知的問題?

我很努力地找到任何有關它的信息或文檔。

的API文檔:https://developers.google.com/tango/apis/c/reference/group/camera

回答

1

兩個TangoService_updateTextureTangoService_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可用。