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



             

Урок 20. Маскирование - часть 2


HGLRC      hRC=NULL;  // Постоянный контекст визуализации

HWND       hWnd=NULL; // Сохраняет дескриптор окна

HINSTANCE  hInstance; // Сохраняет экземпляр приложения

Мы будем использовать 7 глобальных переменных в этой программе. masking - логическая переменная (ИСТИНА / ЛОЖЬ), которая будет отслеживать, действительно ли маскировка включена или выключена. mp используется, чтобы быть уверенным, что клавиша 'M' не нажата. sp используется, чтобы быть уверенным, что 'Пробел' не нажат, и переменная scene будет отслеживать, действительно ли мы рисуем первую или вторую сцену.

Мы выделяем память для 5 текстур, используя переменную texture[5]. loop - наш общий счетчик, мы будем использовать его несколько раз в нашей программе, чтобы инициализировать текстуры, и т.д. Наконец, мы имеем переменную roll. Мы будем использовать roll, чтобы сделать прокрутку текстуры по экрану. Создавая изящный эффект! Мы будем также использовать ее для вращения объекта в сцене 2.

bool  keys[256];      // Массив для работы с клавиатурой

bool  active=TRUE;    // Флаг активации окна, по умолчанию = TRUE

bool  fullscreen=TRUE;// Флаг полноэкранного режима

bool  masking=TRUE;   // Маскирование Вкл/Выкл

bool  mp;             // M нажата?

bool  sp;             // Пробел нажат?

bool  scene;          // Какая сцена выводиться

 

GLuint  texture[5];   // Память для пяти наших текстур

GLuint  loop;         // Общая переменная цикла

 

GLfloat  roll;        // Катание текстуры

 

LRESULT  CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Объявление WndProc

 

Код загрузки картинки не изменился. Он тот же, какой был в уроке 6, и т.д.

В коде ниже мы резервируем память для 5 изображений. Мы очищаем место и загружаем все 5 картинок. Мы делаем цикл по всем изображениям и конвертируем их в текстуры для использования в нашей программе. Текстуры сохранены в texture[0-4].

int LoadGLTextures()                // Загрузка картинки и конвертирование в текстуру




Содержание  Назад  Вперед