2012-04-17 5 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' - это количество текстур, а второй параметр - указатель начала массива. Но зачем удалять и воссоздавать текстуры снова и снова, когда изменяются данные? –

+0

Ммм .. ты, возможно, прав, собираешься проверить это. – RobotRock

ответ

3

Если у вас возникли какие-либо ошибки, вы связаны с неправильным контекстом рендеринга или вообще не используете контекст рендеринга?

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