1
我有一些我寫的CAD軟件。繪製的每個組件都有一組頂點緩衝區對象。如果組件被刪除,我必須釋放在finalize方法頂點緩衝對象,如:JVM使用JOGL,頂點緩衝區對象崩潰,並試圖在finalize方法中釋放vbo
if (gl != null) {
Integer[] keys = vbos.keySet().toArray(new Integer[0]);
for (int i = 0; i < keys.length; i++) {
Integer tmp = keys[i];
if (tmp != null) {
if (gl.glIsBufferARB(tmp.intValue()));
gl.glDeleteBuffersARB(1, new int[]{tmp.intValue()}, 0);
}
}
}
但我有時會收到一個SIGSEV和JVM崩潰。 hs_err日誌文件指向gl.glIsBufferArb(tmp.intValue())。
我相信這意味着我的gl對象不再有效嗎?
它應該仍然有效,我認爲。該方案仍在運行直到崩潰。有沒有一種方法來釋放glbuffer而不存儲對GL對象的引用?
謝謝!
這是一個很好的建議,謝謝! – vextorspace