#java #android #opengl-es #parameters
#java #Android #opengl-es #параметры
Вопрос:
Это звучит просто, но я посмотрел на разных сайтах, и это дает мне только два параметра :
void glGenTextures(GLsizei n, GLuint * textures)
.. с объяснением.
Однако при использовании OpenGL ES с Android этот метод не существует, и я также видел несколько веб-сайтов, исходные коды и учебные пособия, использующие этот метод с тремя параметрами, что для меня не выдает ошибку компилятора :
gl.glGenTextures(amountOfTexturesToMake, pointerToArray, 0);
.. для чего этот ноль? Что это за третий параметр? Несмотря на то, что я видел, как разные люди использовали его, я не мог найти его объяснения.
Ответ №1:
Параметр offset задает начальный индекс в массиве int. Это способ «эмулировать» арифметику указателя.
следующее
glGenTextures(n, (texture offset))
может быть «переведен» на
gl.glGenTextures(n, textureArray, offset)
Комментарии:
1. Итак, если я собираюсь сгенерировать несколько имен текстур с помощью нескольких вызовов, я бы сохранил переменную int индекса, в котором она находится в данный момент, и если создается новое имя, сделайте что-то вроде: index ?
2. Это будет зависеть от области textureArray. Но если вы планируете сохранять имена своих текстур в textureArray во всем приложении, да.
3. Мне любопытно узнать, откуда вы это знаете. Все, что я вижу в документации для glGenTextures , это то, что аргумент вызывается
offset
, но нет никакого поддерживающего текстового описания того, что означает аргумент.
Ответ №2:
Я почти уверен, что это смещение массива, то есть индекс, в котором хранится первое имя текстуры (ID).