2011-06-01 105 views
5

它好像glTexSubImage2D需要一個指針質感十足緩衝區。如何通過僅提供指向更新區域的指針而不是整個緩衝區來對紋理進行部分更新?如何更新紋理的一部分?

例如,如果我想要將第二個圖像疊加到現有紋理上,而不是將圖像數據複製到我的紋理緩衝區,然後調用glTexSubImage2D,我只需要讓opengl更新紋理而不必在RAM位置之間複製數據。

回答

7

你從哪裏得到的是glTexSubImage2D需要一個指向質感十足緩存的概念?

從上面鏈接的文檔,這在我看來,最後一個參數是指向只包含新數據的緩衝區。其他參數是用來指定要更新哪些紋理對象(只是一個OpenGL標識符,不需要指向原始數據的指針)以及用於複製新數據的偏移量和大小。

TL; DR:glTexSubImage2D需要一個指針到新的數據和不正是你認爲它應該在你的例子:)

+0

感謝您的答覆。我實際上發現我的問題是我在一個單獨的線程中執行紋理更新,導致問題..試圖找出如何通過現在..再次感謝! – gamedynamix 2011-06-01 10:49:39

+0

不客氣!對於OpenGL和多線程,這個問題可能會有所幫助:http://stackoverflow.com/questions/4567296/opengl-and-threading – 2011-06-01 10:53:20