crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

KuvshinoF
  опции профиля:
сообщение 31.5.2017, 22:21
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 25.7.2013
Пользователь №: 3887

Спасибо сказали: 0 раз(а)




Репутация:   0  


 flag_1 = true;
 flag_2 = true;

::paintGL()
{
 …
func_1();
func_2();
….

 flag_1 = false;
 flag_2 = false;
}
//----------------------------------------------------------------------------

func_1():
{
  if (flag_1)
  {
    if (glIsList(1))
     glDeleteLists(1, 1);
    glNewList(1, GL_COMPILE_AND_EXECUTE);
    glPushAttrib(GL_CURRENT_BIT);
     
    renderText(100, 150, 0, "myText");
    
    glPopAttrib();
    glEndList();
  }
  else
    glCallList(1);
}
//----------------------------------------------------------------------------

func_2():
{
  if (flag_2)
  {
    if (glIsList(2))
     glDeleteLists(2, 1);
    glNewList(2, GL_COMPILE_AND_EXECUTE);
    glPushAttrib(GL_CURRENT_BIT);
     
    renderText(300, 250, 0, trUtf8("#") + QString::number(iValue));
    
    glPopAttrib();
    glEndList();
  }
  else
    glCallList(2);
}
//----------------------------------------------------------------------------

ButtonOnClick:
{
   iValue = 55;
   flag_2 = true;

   updateGL();
}

После онклика кнопки результатом func_2 будет вывод строки "55", а не "#55"... почему так происходит (то есть теряется часть (???) строки (символ "#"))? Если закомментировать renderText в func_1(), то func_2 сработает правильно ("#55")...Также будет верный ответ, если в обоих функциях отказаться от дисплейных списков, но этого не хотелось бы делать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.4.2025, 4:44