Учебник по Visual C++ .Net


Требования OpenGL


Вместо тестового изображения с надписью ATL 4.0, которым мы научились кое-как управлять, поместим в окно СОМ-объекта OpenGL-изображение поверхности в трехмерном пространстве. Точнее, мы хотим дать клиенту нашего СОМ-объекта возможность пользоваться всей той функциональностью, которая была разработана в уроке 7. Вы помните, что изображение OpenGL может быть создано в окне, которое прошло специальную процедуру подготовки. Необходимо создать и сделать текущим контекст передачи OpenGL (HGRC). Вы также помните, что подготовку контекста надо рассматривать как некий обязательный ритуал, в котором порядок действий определен. Повторим его:

  • установка стиля окна;

  • обработка сообщения WM_ERASEBACKGROUND и отказ от стирания фона;

  • установка pixel-формата;

  • создание контекста устройства (нос) и контекста передачи (HGLRC);

  • специфическая обработка сообщения WM_SIZE;

  • обработка сообщения WM_PAINT;

  • освобождение контекстов при закрытии окна.

Чтобы использовать функции библиотеки OpenGL, надо подключить их к проекту. На этапе компоновки они будут интегрированы в коды СОМ-сервера.

  1. В окне Solution Explorer поставьте фокус на строку с именем проекта ATLGL и нажмите кнопку Properties, которая расположена на панели инструментов этого окна.

  2. В левом окне диалога ATLGL Property Pages найдите и выберите ветвь дерева Linker.

  3. В раскрывшемся поддереве выберите ветвь Input и перейдите в строку Additional Inputs в таблице правого окна.

  4. Поставьте фокус во вторую колонку этой строки и в конец существующего текста ячейки добавьте, не стирая содержимое ячейки, имена подключаемых библиотек OPENGL32.LIB GLU32.LIB, не забыв о разделяющих пробелах. Нажмите ОК.

  5. В конец файла библиотечных заголовков stdafx.h добавьте строки:

#include <math.h>

#include <gl/gl.h>

#include <gl/glu.h>

При работе с трехмерными координатами мы пользовались вспомогательным классом CPoint3D, который здесь нам тоже понадобится. Нужны будут и все переменные, которые были использованы ранее для управления сценой OpenGL. Там, если вы помните, был контейнер STL типа vector для хранения точек изображения. Использование контейнеров требует подключения соответствующих файлов заголовков, поэтому вставьте в конец файла stdafx.h следующие строки:




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



Книжный магазин