public void dispose() { lock.lock(); try { if (!disposed) { for (int i = 0; i < vertexBuffers.length; i++) { int id = vertexBuffers[i]; if (id != 0) { bufferPool.dispose(id); vertexBuffers[i] = 0; } id = idxBuffers[i]; if (id != 0) { bufferPool.dispose(id); idxBuffers[i] = 0; } } disposed = true; vertexElements = null; } } finally { lock.unlock(); } }