Какую часть буфера использует glBufferData - PullRequest
0 голосов
/ 03 мая 2020

Какую часть Buffer использует android.opengl.GLES20.glBufferData?

Соглашение заключается в том, что потребитель буфера NIO читает remaining элементы данных между position и limit. Быстрый эксперимент с игрушечным приложением и эмулированным Android показывает, что, по крайней мере, position действительно принимается во внимание. Но, с другой стороны, API-интерфейс OpenGL, на который влияют C, выглядит немного низкоуровневым, и функция имеет собственный аргумент size, хотя remaining уже имеет эту информацию в типичном соглашении NIO. , Поэтому мне интересно, насколько я могу доверять остальной части этого соглашения.

Существует ли какая-либо документация, в которой прямо указано, что используемые данные начинаются с position, а не с начала буфера? И в идеале также проясняет связь между аргументом size и glBufferData и значением Buffer.remaining(), особенно если последнее меньше?

За исключением такой четкой документации, насколько я могу доверять своим экспериментам? Обычно я склонен полагать, что все, что не задокументировано, может зависеть от реализации. Существует ли реальная опасность того, что какой-либо графический драйвер поставщика или будущее Android обновление может изменить поведение на этом Java уровне API и интерпретировать буферы по-разному?

Должен ли я использовать Buffer.slice просто чтобы быть безопасным с точки зрения совместимости?

...