2011-11-22 58 views
0

說如果我有一個大的ShortBuffer只有5個相關項目從位置0開始,並且一個小緩衝區的容量比大緩衝區... 如何將'放'5從大緩衝區到小緩衝區的值沒有得到緩衝區溢出或不得不手動索引所有這些值?Java ShortBuffer數據傳輸沒有完整的緩衝區

目前拋出一個緩衝區溢出異常與此:

indexBuffer.position(0); 
subMeshes.get(subMeshIndex).indexBuffer.position(0); 
subMeshes.get(subMeshIndex).indexBuffer.put(indexBuffer); 

編輯: 還請注意,我需要從大的緩衝區更改數據之後這樣的共享內存選項,如複製等等都關閉表

回答

2

如果我正確理解您的需求,最簡單的做法是設置較大緩衝區的限制。當您執行批量put時,它最多隻能傳送limit項。你可以做到這一點:

indexBuffer.position(0); 
indexBuffer.limit(5); // <-- limit to 5 temporarily 
subMeshes.get(subMeshIndex).indexBuffer.position(0); 
subMeshes.get(subMeshIndex).indexBuffer.put(indexBuffer); 
indexBuffer.limit(indexBuffer.capacity()); 
+0

我認爲這可能只是我需要解決我的問題。我希望我可以肯定地告訴你,但似乎我的程序中的其他一切(字面上的)都停止了工作。從好的一面來看,我沒有得到這個例外了。 XD我的字面意思是把我的代碼恢復到之前12小時的工作方式,但仍然...(ANDROID必須爲我提供) – user980058