// glFinishO;

FINISHC2) //Фиксация времени вывода двух треугольников.

START(L."Обрамление без примитивов".3)

glVi ewport(-R.right/2.0.R.ri ght.R.bottom/3):
glBegin(GL_TRIANGLES);
glEndO;
// glFinishO;
FINISHO)

STARKL."Смена страниц".4) SwapBuffers(wglGetCurrentDC());//hDC // glFinishO;

FINISH(4) //Фиксация момента окончания смены страниц }

//По выбору пункта меню вызовем несколько раз вывод примитивов

Render KhWnd);
Render KhWnd);
Renderl(hWnd);
Render KhWnd);
L.LogFile("Log_minim.txt");

Показатели времени при третьем вызове функции Render К ) будут сохранены в файл Log_minim.txt, часть которого приведена ниже: Проход 3

Накладные затраты 0.33

Очистка 4.93

Вывод примитивов 1.73

новости строительства https://goo-gl.ru/.

Обрамление без примитивов 1.80

Смена страниц 9859.30

Полное время 9873.19

Эти данные показывают, что смена страниц длится около 10 мс, а все операции вместе выполняются в тысячу раз быстрее смены страниц. Это заставляет

Использование расширений сделать вывод о неверной организации измерений. Если перед вызовом вывода примитивов изменять размер окна, то будет видно, что многократное изменение площади рисуемых треугольников никак не сказывается на времени их рисования.

Как и в рассмотренном ранее примере копирования областей экрана, программа измерения фиксирует только время передачи заявок драйверу OpenGL, а не время их выполнения. Кроме того, библиотека не предоставляет средств программного управления синхронизацией смены страниц с началом вертикальной развертки. Перед запуском приложения пользователь настроил видеосистему компьютера на частоту развертки 100 Гц и в параметрах драйвера OpenGL (рис. 22.3) выбрал вертикальную синхронизацию. Поэтому смена страниц не может выполняться чаще.

Настройка драйвера OpenGL

Рис. 22.3. Настройка драйвера OpenGL

Удаление комментариев перед вызовом дЧПгтИС) позволит определить реальные затраты на все операции, кроме смены страниц. Если в функции Репс1ег1 () включить цикл вывода N треугольников, то будет видно, как по мере роста затрат на вывод примитивов уменьшается измеренное время переключения страниц, а полное время остается практически неизменным. При дости-


⇐ Предыдущая| |Следующая ⇒