2012-04-17 8 views
0
glDeleteTextures(total, &Item::texture[0]); 
glGenTextures(total, &Item::texture[0]); 

すべての画像の繰り返し。OpenGLの変更/リロードテクスチャ

glBindTexture(GL_TEXTURE_2D, Item::texture[i]); 
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits()); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

テクスチャをリロードしようとしますが、そうではありません。テクスチャは同じで、変更されません。どのようにこれを処理することができる/考えなければならないアイディアですか?わかりやすくするために、新しいテクスチャを使用してテクスチャをリロードしようとしています。テクスチャの数を変更することはできません(多くの変更がある可能性があるため)。

私はQt、C++で作業しています。上記のコードは、別々のGLwidgetの静的関数内にあります。

+0

興味深いのは、インデックス0のテクスチャを常に削除し、同じインデックス(0)で新しいテクスチャを生成することですが、インデックス 'i'でテクスチャをバインドすることです。何か面白いにおいがする。 – karlphillip

+0

@karlphillip 'total'はテクスチャの数であり、2番目のパラメータは配列の開始ポインタです。しかし、なぜデータが変化しただけで何度もテクスチャを削除して再作成するのですか? –

+0

Mmm ..あなたが正しいかもしれない、それをチェックするつもりです。 – RobotRock

答えて

3

これらの呼び出しを行っているときに間違ったレンダリングコンテキストにバインドされているか、レンダリングコンテキストがまったくない可能性がありますか?

関連する問題