[Предыдущая: Модуль QtNetwork] [Модули Qt] [Следующая: Модуль QtSql] Модуль QtOpenGL
|
QGL | Определяет различные идентификаторы, используемые в модуле Qt OpenGL |
---|
QGLColormap | Используется для установки собственных цветовых карт в QGLWidgets |
---|---|
QGLContext | Заключает в себе контекст рисования OpenGL |
QGLFormat | Определяет формат отображения контекста рисования OpenGL |
QGLFramebufferObject | Инкапсулирует объект буфера кадров OpenGL |
QGLPixelBuffer | Заключает в себе пиксельный буфер OpenGL |
QGLWidget | Виджет для отрисовки графики OpenGL |
OpenGL является стандартным API для отображения трехмерной графики. OpenGL имеет дело только с трехмерным рисованием и предоставляет очень слабую поддержку (или не предоставляет её вовсе) для решения проблем GUI-программирования. Интерфейс пользователя для OpenGL-приложений должен быть создан с помощью других инструментов, таких как Motif в платформе X, Microsoft Foundation Classes (MFC) в Windows, или Qt на обоих платформах.
Замечание: OpenGL является торговой маркой корпорации Silicon Graphics в США и других странах
Модуль Qt OpenGL облегчает использование OpenGL в Qt-приложениях. Он предоставляет классы виджетов OpenGL, которые могут использоваться, за исключением буфера дисплея OpenGL, в котором вы можете для отображения содержимого использовать API OpenGL, так же, как другие виджеты Qt.
Для включения определений классов этого модуля используйте следующую директиву:
#include <QtOpenGL>
Для линковки приложения с этим модулем, добавьте в ваш qmake файл проекта .pro:
QT += opengl
Модуль Qt OpenGL реализован как платформо-независимая обёртка Qt/C++ вокруг платформо-зависимых GLX (версии 1.3 и выше), WGL или AGL C API. Хотя предоставляемая базовая функциональность очень похожа на библиотеку GLUT Марка Килгарда (Mark Kilgard), приложения, использующие модуль Qt OpenGL, могут получить преимущество всего API Qt для неспецифичной для OpenGL GUI функциональности.
Внимание: Модуль QtOpenGL входит в состав Qt Full Framework Edition и Qt Open Source Edition. Он доступен в Windows, X11 и Mac OS X. Qt для Embedded Linux поддерживает OpenGL ES (OpenGL для встраиваемых систем). Чтобы воспользоваться API OpenGL в Qt для Embedded Linux, необходимо интегрировать Q Window System (QWS). За подробностями обращайтесь к документации Qt для Embedded Linux и OpenGL.
При установке Qt в X11 скрипт конфигурирования пытается автоматически обнаружить, установлены ли в системе заголовочные файлы и библиотеки OpenGL, и, если это так, он включает модуль Qt OpenGL в библиотеку Qt. (Если Ваши заголовочные файлы и библиотеки OpenGL размещены в необычной директории, то вам может потребоваться изменение переменных QMAKE_INCDIR_OPENGL и/или QMAKE_LIBDIR_OPENGL в файле конфигурации для вашей системы).
При установке Qt в Windows и Mac OS X, модуль Qt OpenGL всегда включается. Пользователям X11, возможно, будет полезным прочитать замечания относительно оверлейных программ (overlays), приведенные ниже.
Документация по QGL предполагает, что вы знакомы с программированием OpenGL. Если оно вам не знакомо, то хорошей отправной точкой станет ресурс http://www.opengl.org/.
Оверлеи X11 - это мощный механизм для рисования комментариев и т.д. поверх рисунков не затрагивая их, что экономит значительное время при отрисовке изображения. За дополнительной информацией настоятельно рекомендуем вам обратиться к книге OpenGL Programming for the X Window System (Mark Kilgard, Addison Wesley Developers Press 1996).
Внимание: Qt OpenGL Extension включает прямую поддержку использования оверлеев OpenGL. Для большинства случаев использования оверлеев техника, описанная ниже, избыточна. Далее следует обсуждение использования не-QGL виджетов в оверлейных планах.
Обычно оверлеи X11 легко могут использоваться с текущей версией Qt и Qt OpenGL Extension. Следующие требования применяются в случаях, когда:
Если все вышеперечисленные требования выполнены, QGLWidget по умолчанию будет использовать визуализацию в основном плане, в то время как все другие виджеты будут использовать оверлейную визуализацию. Таким образом, мы можем размещать обычные виджеты поверх QGLWidget, и выполнять рисование в них без воздействия на изображение в окне OpenGL Другими словами, мы можем использовать все возможности рисования QPainter для отображения комментариев, линий и т.д. Это намного легче для типичного использования оверлейных программ, чем применять OpenGL для рисования надписей.
Оверлейный план имеет специальный цвет, называемый прозрачным цветом. Пиксели, нарисованные этим цветом, не видны; вместо них будет показан нижележащий рисунок OpenGL.
Для применении этой техники, вы не должны использовать цветовые спецификации QApplication::ManyColor или QApplication::TrueColor для QApplication, так как это вынудит обычные виджеты Qt использовать TrueColor-визуализацию, которая обычно должна быть в основном плане, а в оверлейном нежелательна.
[Предыдущая: Модуль QtNetwork] [Модули Qt] [Следующая: Модуль QtSql]
Copyright © 2008 Nokia | Торговые марки | Qt 4.4.3 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |