2011-11-22 25 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