2010-06-03 54 views

回答

4

您需要將其退回,對不起。關於VBO的數據可能居住在遠離你的CPU的地方,並且訪問速度很慢,所以你需要在本地保存你需要的任何數據。

+0

好的,謝謝。它是一個問題的原因是因爲我正在使用C++和Python與ctypes一起。 Ctypes不喜歡結構,當我試着用它來返回所需的兩件事情。 我可以使用全局變量,但這看起來像一個荒謬的解決方案,所以我會再嘗試結構。 謝謝你的回答。 – 2010-06-03 21:48:43

+0

你可以通過引用,從Python到C嗎?這是您可以從函數「返回」數據的另一種方式;它可能會有幫助。 – 2010-06-04 00:03:37

+0

Ctypes不介意使用指針,所以我爲數組分配了一些內存,並將需要的數據存儲在這個數組中。數據都是GLUint,所以數組是完美的。我用新的和刪除操作符來做到這一點。現在幾乎完全可以工作。至少屏幕不是空白的。 :D 哦,親愛的。我有內存泄漏。我想我的刪除功能沒有被調用... – 2010-06-05 17:35:58

1

也許它可能不適用於您的應用程序,您可以使用glGetBufferParameteriv與參數GL_BUFFER_SIZE:它返回的緩衝區對象的字節數。

這很難說,這是解決方案,因爲您應該知道緩衝區元素的內部格式(事實上,它的大小,以字節爲單位),以便獲得組成緩衝區對象的元素的數量。

當然,最好的解決方案是將大多數信息保存在代表緩衝區對象的類中,但正如我從你的問題中可以理解的,這很難實現。

+0

謝謝你的回答。 ;) 我確實設法通過自己存儲信息來實現它。 – 2010-06-05 17:34:06

相關問題