Підготовка вікна

Підготовку контексту передачі OPENGL треба розглядати як деякий обов'язковий ритуал, в якому порядок дій давно визначений і без якого не можна починати творчу роботу із створення сцени OPENGL. Варто десь промахнутися, і ви побачите мовчазний білий екран. Спочатку треба підготувати вікно так, щоб виклики функцій OPENGL почали працювати. У цій процедурі виділяють наступні кроки:

  • установка стилю вікна;
  • обробка повідомлення WM_ERASEBACKGROUND і відмова від стирання фону;
  • установка pixel-формата;
  • створення контексту пристрою (НІС) і контексту передачі (HGLRC);
  • специфічна обробка повідомлення WM_SIZE;
  • обробка повідомлення WM_PAINT;
  • звільнення контекстів при закритті вікна.

Аби використовувати функції бібліотеки OPENGL у вашому застосуванні, треба переконатися, що в системному каталозі Windows присутні модулі OpenGL32.dll і GLU32.dll. Вони мають бути там, оскільки компанія Silicon Graphics (автори пакету OPENGL) постаралася, аби підтримка OPENGL на платформі Windows була максимально доступна і досить надійна. Проте хочу попередити, що я зустрічав системи, в яких контекст передачі (rendering context) OPENGL працює ненадійно, - з'являються плями пропусків і затримка перемальовування, якщо робота йде не в повноекранному режимі. Якщо це є, то повинно виявлятися при запуску будь-якої програми, використовуючою OPENGL. Причина, мабуть, в драйвері відеопам'яті.

Типи даних

OPENGL використовує своїх власних типів даних, які повинні відповідати аналогічним типам тієї платформи, на якій бібліотека встановлена. У Microsoft-реализации відповідність типів задана у файлі заголовків GL.H так, як показано нижче. Ця таблиця знадобиться вам при аналізі прикладів і при розробці власної коди:

typedef unsigned int GLenum;

typedef unsigned char GLboolean;

typedef unsigned int GLbitfield;

typedef signed char GLbyte;

typedef short GLshort;

typedef int GLint;

typedef int GLsizei;

typedef unsigned char GLubyte;

typedef unsigned short GLushort;

typedef unsigned int GLuint;

typedef float GLfloat;

typedef float GLclampf;

typedef double GLdouble;

typedef double GLclampd;

typedef void GLvoid;

 

рекламодавці:

/ LF KS

::  Меню ::

Введення

Початок роботи з Visual Studio.Net

Режими відображення координат

Традиційне Windows-приложение

Аналізатор код помилок

Управління файловим деревом

Графіка OPENGL

Тривимірні графіки функцій

Від сирих COM API до проекту ATL

Тривимірна графіка в проекті ATL

З життя студентів

Вирішуємо краєву задачу

Деякі відомості про архітектуру Windows


:: Реклама ::

Створи сайт за допомогою MS Office AsenKat - каталог сайт

:: Статистика ::

Індекс цитування

:: Навигация ::

Головна
Додати у вишукане  

 

 

 


Copyright © Asentli, 2008