2010-03-08 3 views
10

Ich verwende glBindTexture(), um eine zuvor erstellte Textur zu binden. Nach dem glBindTexture() Aufruf benutze ich glTexParameteri() um MIN und MAG Filter zu setzen. Kein Problem bis jetzt.Persistenz von Texturparametern

Sind die Parameter, die ich mit glTexParameteri() an die Textur selbst gebunden habe oder sind sie verloren, wenn ich eine andere Textur binden. Muss ich sie wieder einstellen?

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? */ 

Antwort

10

Sie werden behalten. Die manuelle Seite für glBindTexture() sagt:

Während eine Textur gebunden ist, GL Operationen auf dem Ziel, an die es gebunden ist die gebundene Textur beeinflussen.

Da der erste Parameter von glTexParameter() ein Ziel ist, gelten sie für das gebundene Objekt wie glTexImage() gerade.

+0

danke für die Klärung dieser :) – fen