將整數句柄傳遞給我創建給其他類使用的多個VBO是否安全?OpenGL VBO處理
我的主類創建了一堆與gllenbuffers的句柄。 然後,我將這些句柄傳遞給子類,並將它們存儲在該類中的變量中。 該類內部是通過glbufferdata實際上傳數據的地方。
這樣好嗎?
將整數句柄傳遞給我創建給其他類使用的多個VBO是否安全?OpenGL VBO處理
我的主類創建了一堆與gllenbuffers的句柄。 然後,我將這些句柄傳遞給子類,並將它們存儲在該類中的變量中。 該類內部是通過glbufferdata實際上傳數據的地方。
這樣好嗎?
整數句柄只是OpenGL用來唯一標識VBO的名稱,所以是的。有些人遇到的問題是,當存在多個OpenGL上下文時,並且您在另一個上下文中的一個上下文中使用VBO時,該VBO不存在。
只要確保你有一個計劃,知道哪個元素會在你完成使用時清理句柄,而不會留下其他具有無效VBO名稱的對象。
這絕對是一個有效的問題,但如果正確創建上下文,則可以共享某些類型的對象(實際存儲數據的類型)的名稱空間,例如緩衝區對象和紋理對象。像WGL和GLX這樣的低級API可以在創建上下文時執行此操作,而更高級別的框架(例如Qt,GLFW)通常允許您將句柄傳遞給另一個上下文以共享資源。 – 2014-10-30 21:26:36
好點。我和iOS一起工作了很多,我們可以類似地創建可共享VBO,紋理等的OpenGL上下文的「ShareGroups」。正確的上下文之間的數據共享可能導致難以找出問題。 – MtRoad 2014-10-30 21:31:32
簡答:是的,爲什麼不呢?正如你已經提到的句柄只是整數。 – BDL 2014-10-30 21:10:21
這很好,或者你可以創建一個包裝VBO(或多個VBO)的類。這樣你可以更好地控制他們的生命週期。 – vesan 2014-10-31 05:10:42