пікселя на екрані; цей біт міг би вказувати, наприклад, на те, що конкретний піксель, як передбачається, є червоним. Бітові площини, у свою чергу, організовані в буфер кадру, який містить всю інформацію, необхідну графічному дисплею для того, щоб керувати кольором і яскравістю всіх пікселів на екрані.
Приклад 1. демонструє візуалізацію білого прямокутника на чорному тлі, як це показано на малюнку 1.
В
Приклад 1. Частковий програмного коду OpenGL
finclude ,
main () {
InitializeAWindowPlease ();
glClearColor (0.0, 0.0, 0.0, 0.0); glClear (GL_COLOR_BUFFER_BIT), glColor3f (1.0, 1.0, 1.0);
glOrtho (0.0, 1.0, 0.0, 1.0, -1.0, 1.0); glBegin (GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0); glEnd (); glFlush ();
UpdateTheWindowAndCheckForEvents ();}
Перший рядок функції main () ініціалізує певне вікно на екрані: функція InitializeAWindowPlease () використовується в даному випадку в якості мітки-"заповнювача" для підпрограм специфічних віконних систем, які в загальному випадку не є викликами OpenGL. Наступні два рядки містять команди OpenGL, які встановлюють чорний колір фону для вікна: функція glCIearCoIor () визначає те, який колір фону буде встановлений для вікна, а функція glClear () фактично встановлює колір вікна. Як тільки колір фону встановлений, вікно заливається цим кольором всякий раз, коли викликається функція glClear (). Цей колір фону може бути змінений з допомогою другого виклику функції glClearColor (). Точно так само функція glColor3f () встановлює те, який колір слід використовувати для промальовування об'єктів на екрані - в даному випадку цей колір є білим. Всі об'єкти, що виводяться на екран після цього моменту, використовують даний колір до тих пір, поки він не буде змінений за допомогою наступного виклику команди установки кольору.
Наступна функція OpenGL, використовувана в даній програмі, glOrtho (), визначає систему координат, яку OpenGL приймає для промальовування остаточного зображення, і те, як це зображення відображається на екрані. Виклики, укладені між функціями glBegin () і gl ВЈ nd (), визначають об'єкт, який буде виведений на екран, в розглянутому прикладі це багатокутник з чотирма вершинами. "Кути" багатокутника визначаються за допомогою функції glVertex3f (). Як ви, напевно, вже здогадалися, виходячи з значень параметрів цієї функції, які представляють собою координати (х, у, z), даний багатокутник є прямокутником, розташованим на площині z (z - 0).
Нарешті, функція gIFlush () гарантує, що команди промальовування фактично виконуються, а не просто зберігаються в деякому буфері, чекаючи додаткових команд OpenGL. Підпрограма-"заповнювач" UpdateTheWindowAndCheckForEvents () управляє вмістом вікна і починає обробку подій.
1.2. Синтаксис команд OpenGL
Як ви, ймовірно, могли помітити з прикладу простої програми, наведеного в попередньому розділі, команди бібліотеки OpenGL використовують префікс gl. Кожне слово, яке складає найменування команди, починається з великої літери (згадайте, наприклад, функцію glClearColor ()). Точно так само імена констант, визначених у бібліотеці OpenGL, починаються з префікса GL_, записуються цілком заголовними буквами і використовують символи підкреслення, щоб розділити окремі слова (наприклад, GL__COLOR_BUFFER_BIT).
Ви, ймовірно, також змогли помітити деякі символи, які здалися вам сторонніми, вони додаються в кінець найменування деяких команд (наприклад, 3f у функціях glColor3f () і glVertex3f ()). Дійсно, частина Color в найменуванні функції glColor3f () достатня для того, щоб визначити дану команду як команду, встановлює поточний колір. Однак було визначено кілька таких команд, щоб ви змогли використовувати їх з різними типами параметрів. Зокрема, частина 3 суфікса вказує, що для цієї команди задаються три параметри; інша версія команди Color використовує чотири параметри. Частина f суфікса вказує на те, що параметри даної команди представляють собою числа з плаваючою крапкою. Наявність різних форматів дозволяє бібліотеці OpenGL приймати дані користувача в його власній форматі даних.
Деякі команди бібліотеки OpenGL допускають використання 8 різних типів даних як своїх параметрів. Букви, використовувані як суфіксів для того, щоб визначити ці типи даних для реалізації ISO З бібліотеки OpenGL, представлені в Таблиці 1.1; там же наведені відповідні визначення типів у бібліотеці OpenGL. Конкретна реалізація бібліотеки OpenGL, яку ви використовуєте, може не збігатися в точності з наведеною схемою; наприклад, реалізації для мов програмування C + + або Ada, не вимагають цього. br/>
Тип даних
Т...