Какую часть 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
просто чтобы быть безопасным с точки зрения совместимости?