Сохранение параметров текстуры

Я использую glBindTexture() для привязки ранее созданной текстуры. После вызова glBindTexture() я использую glTexParameteri() для установки фильтра MIN и MAG. Пока нет проблем.

Я устанавливаю эти параметры, используя glTexParameteri(), привязанные к самой текстуре, или они теряются, если я связываю другую текстуру. Нужно ли их снова устанавливать?

glGenTexture(1, &tex1);
glGenTexture(1, &tex2);

/* bind tex1 and set params */
glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex1);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, ...);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

/* do something */

/* bind tex2 and set params */
glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex2);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, ...);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

/* do something */

/* bind tex1 again */
glBindtexture(GL_TEXTURE_RECTANGLE_ARB, tex1);

/* do i have to set the parameters from above again or are they stored with tex1? */

Ответ 1

Они хранятся. На странице руководства glBindTexture() говорится:

Пока текстура связана, GL операции над мишенью, на которую она привязана к связанной текстуре.

Поскольку первый параметр glTexParameter() является целью, они применяются к связанному объекту точно так же, как glTexImage().