2010-03-08 4 views
10

Я использую 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? */ 

ответ

10

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

В то время как текстура связана, GL операции на цель, к которой он обязан влиять на связанную структуру.

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

+0

спасибо за разъяснение этого :) – fen

Смежные вопросы