Народный учебник по OpenGL

Здесь купить диплом Кемерово. | Купить диплом медсестры - цена с занесением в реестр источник. |

Урок 24. Лексемы, Расширения, Вырезка и Загрузка TGA - часть 20


 

Когда у strtok() не останется текста для сохранения в token, token станет равным NULL и цикл остановится.

 

    token=strtok(NULL," ");               // Поиск следующего расширения

  }

 

После того, как все расширения будут разобраны из переменной text, мы можем запретить вырезку и освободить переменную text. Это освобождает память, которую мы использовали для хранения информации, полученной от glGetString(GL_EXTENSIONS).

 

При следующем вызове DrawGLScene(), будет выделена новая память. Свежая копия информации, которую вернет glGetStrings(GL_EXTENSIONS), будет скопирована с переменную text и весь процесс начнется заново.

 

  glDisable(GL_SCISSOR_TEST);               // Запрещаем вырезку

 

  free (text);                              // Освобождаем выделенную память

 

Первая строка ниже необязательна, но я подумал, что это хороший случай рассказать о ней, чтобы все знали, что она существует. Команда glFlush() в основном говорит OpenGL закончить то, что он делает. Если Вы когда-нибудь заметите мерцание в Вашей программе (исчезновение четырехугольников, и т.д.), то попытайтесь добавить команду flush в конец DrawGLScene.    

 

Последнее, что мы делаем - возвращаем true, чтобы показать, что все прошло ok.

 

  glFlush();                                   // Сброс конвейера рендеринга

  return TRUE:                                 // Все прошло ok

}

 

Единственно, что стоит отметить в KillGLWindow() - в конец я добавил KillFont(). Таким образом, когда окно будет уничтожено, шрифт также будет уничтожен. 

 

GLvoid KillGLWindow(GLvoid)               // Правильное уничтожение окна

{

    if (fullscreen)                       // Полноэкранный режим?

    {

        ChangeDisplaySettings(NULL,0);    // Переход в режим разрешения рабочего стола

        ShowCursor(TRUE);// Показать указатель мыши

    }

 

    if (hRC)                              // Существует контекст рендеринга?

    {




- Начало -  - Назад -  - Вперед -