передача данных Java ShortBuffer без всего буфера - PullRequest
0 голосов
/ 23 ноября 2011

скажем, если у меня большой ShortBuffer только с 5 соответствующими элементами, начиная с позиции 0, и маленький буфер с меньшей емкостью, чем большой буфер ... Как бы я «поместил» 5 значений из большого буфера в маленький буфер без получения переполнения буфера или необходимости вручную индексировать все из них?

в настоящее время выдает исключение переполнения буфера с этим:

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

редактировать: также, пожалуйста, обратите внимание, что впоследствии мне нужно будет изменить данные из большого буфера, чтобы параметры совместной памяти, такие как дублирование и т. д., были вне стола

1 Ответ

2 голосов
/ 23 ноября 2011

Если я правильно понимаю ваши потребности, проще всего будет установить ограничение на больший буфер.Когда вы делаете большую 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() );
...