IllegalArgumentException: новый предел равен 5, но емкость равна 0 при доступе к данным представления буфера в jgltf.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 IllegalArgumentException: новый предел равен 5, но емкость равна 0 при доступе к данным представления буфера в jgltf.

Сообщение Anonymous »

Изначально я хотел просто преобразовать свою DefaultGltfModel в строку Json, но столкнулся с некоторыми непредвиденными проблемами. Я отследил исключение, которое попал в какое-то место в библиотеке, и в итоге создал это MRE.
Используя Jglf версии 2.0.4 из Maven Central:

Код: Выделить всё

  @Test
public void testBufferViewSlice() {
ByteBuffer byteBuffer = Buffers.create(10);
for (byte i = 0; i < 10; i++)
{
byteBuffer.put(i);
}

DefaultBufferModel bufferModel = new DefaultBufferModel();
bufferModel.setBufferData(byteBuffer);

DefaultBufferViewModel defaultBufferViewModel = new DefaultBufferViewModel(GltfConstants.GL_ARRAY_BUFFER);
defaultBufferViewModel.setBufferModel(bufferModel);
defaultBufferViewModel.setByteOffset(0);
defaultBufferViewModel.setByteLength(5);

ByteBuffer slice = defaultBufferViewModel.getBufferViewData(); //Here is the exception thrown
}
Исключение:

Код: Выделить всё

java.lang.IllegalArgumentException: The new limit is 5, but the capacity is 0

at de.javagl.jgltf.model.io.Buffers.createSlice(Buffers.java:109)
at de.javagl.jgltf.model.impl.DefaultBufferViewModel.getBufferViewData(DefaultBufferViewModel.java:153)
at xxx.gltf.AVSGLTFBuilderTests.testBufferViewSlice(AVSGLTFBuilderTests.java:167)
...
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Я не совсем понимаю, в чем проблема с моим кодом. Насколько я знаю, это должно дать мне часть буфера, используя первые пять байтов?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -buffer-vi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»