параметры glGenTexture?

#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).