Шаг 244.
Библиотека Qt.
Реализация OpenGL-программы

    На этом шаге рассмотрим реализацию OpenGL-программы в Qt.

    Чтобы воспользоваться OpenGL, необходимо унаследовать класс QGLWidget, который организует соединение с функциями библиотеки OpenGL. В унаследованном от QGLWidget классе необходимо, по меньшей мере, переопределить три виртуальных метода: initializeGL(), resizeGL() и paintGL(). Эти методы определены в классе QGLWidget как virtual protected.

    Метод initializeGL() вызывается сразу после создания объекта. Это требуется для проведения инициализаций, связанных с OpenGL. Метод вызывается, если объекту, унаследованному от класса QGLWidget, присваивается контекст OpenGL.

    Назначение метода resizeGL(int width, int height) схоже с назначением метода обработки события изменения размера resizeEvent(). Этот метод вызывается при изменении размеров объекта, созданного от класса, наследующего QGLWidget. В параметрах метода передаются актуальные размеры виджета.

    Назначение метода paintGL() схоже с назначением метода обработки события рисования paintEvent(). Метод вызывается в тех случаях, когда требуется заново перерисовать содержимое виджета. Это происходит, например, после вызова метода resizeGL().

    Поскольку класс QGLWidget унаследован от QWidget, он обладает всеми свойствами, присущими этому классу. Развернуть программу на полный экран можно вызовом метода showFullScreen(). Это приведет к тому, что виджет верхнего уровня перекроет своим окном все остальные и займет весь экран. Это очень удобно, т. к. можно отлаживать программу в маленьком окне, а когда она будет готова, просто поменять метод show() на showFullScreen().

    Производительность OpenGL-программы в полноэкранном режиме полностью зависит от возможностей видеокарты.

    На следующем шаге рассмотрим пример OpenGL-программы.




Предыдущий шаг Содержание Следующий шаг