Russian Qt Forum
Ноябрь 25, 2024, 07:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обновление тестуры OGL  (Прочитано 3219 раз)
cipher
Гость
« : Май 24, 2007, 13:34 »

Вопрос такой, вот так инициализирую class AOpenGL : public QGLWidget

Код:

void AOpenGL::initializeGL()
{
  glClearColor(0, 0, 0, 0);
  glShadeModel(GL_FLAT);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  glOrtho(-zoom, zoom, -zoom, zoom, 0.1, 100);
  glMatrixMode(GL_MODELVIEW);

  framePix = new unsigned char[3 * texSize * texSize];
  glEnable(GL_TEXTURE_2D);
  glGenTextures(1, &tex);
  glBindTexture(GL_TEXTURE_2D, tex);
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);

  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texSize, texSize, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, framePix);

  delete [] framePix;
  framePix = 0;
  startTimer(40);
}

Затем при отрисовке обновляю тестуру tex
Код:

  glBindTexture(GL_TEXTURE_2D, tex);
  glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, quick.frameWidth, quick.frameHeight, GL_BGRA_EXT, GL_UNSIGNED_BYTE, quick.frameData);


Было установлено что машина грузится на все 100% при наличии

Код:

  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);


В то время как такой приём на WinAPI прекрасно работает. Почему так?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.142 секунд. Запросов: 20.