Создание графических моделей с помощью Open Graphics Library

Библиотека OpenGL и Object Pascal

Показывать лекцию целиком

Цель лекции: Рассмотреть особенности поддержки различных версий OpenGL в Object Pascal, правила именования процедур и функций, реализующих команды OpenGL, основные типы данных Object Pascal для поддержки OpenGL.

Для использования OpenGL в Delphi входит модуль OpenGL.pas, который содержит объявление процедур, функций, констант и необходимых типов данных.

Для использования OpenGL в программе необходимо в раздел uses модуля включить модуль opengl.pas:

uses opengl;

В качестве компонента, на поверхности которого будет формироваться изображение, лучше использовать TForm. Формирование изображения возможно и на поверхности других графических компонент, но результат вывода изображения может быть нестабилен.

В Object Pascal команды библиотеки OpenGL реализуются с помощью процедур и функций.

Каждая команда OpenGL может быть реализована с помощью одной или нескольких процедур или функций. Названия функций и процедур, реализующих команды OpenGL, имеют определённый формат, позволяющий упростить их использование:

  • Все процедуры и функции библиотеки имеют префикс "gl", позволяющий отличить их от процедур и функций других библиотек.
  • После префикса следует непосредственно имя команды OpenGL, отражающее её назначение.
  • Постфикс в названии процедуры или функции располагается после имени команды и используется для указания числа параметров и при необходимости их типа. Для указания типа параметров используются условные обозначения типов данных, состоящих из одного или двух символов.
  • Некоторые процедуры и функции, которые используются для реализации команд библиотеки, могут принимать массивы данных. Для таких вариантов процедур и функций используется дополнительный постфикс "v". Для работы с такими типами в Object Pascal используются указатели на соответствующие типы данных.
  • В условном обозначении формата процедур и функций необязательные составляющие указываются в квадратных скобках, обязательные параметры указаны в угловых скобках:

    procedure gl<ИмяКоманды>[1 2 3 4][b s I f ub us ui][v]([параметры]);
    function gl<ИмяКоманды>[1 2 3 4][b s I f ub us ui][v]([параметры]):ТипРезультата;
    

    В OpenGL используются собственные типы данных для независимости библиотеки от языка программирования и операционной системы. При использовании реализации OpenGL с тем или иным языком программирования определяется соответствие типов данных OpenGL и языка программирования. В таблица 2.1 приводится информация о соответствии типов данных OpenGL и Object Pascal. В таблице также указаны условные обозначения типов данных, которые используются в названиях процедур и функций, реализующих команды OpenGL.

    Соответствие основных типов данных OpenGL и Object Pascal, их условные обозначения
    Условное обозначение в названии команды OpenGLТип данных OpenGLТип данных Object Pascal
    bGLbyteShortint
    sGLshortSmallInt
    iGLintInteger
    fGLfloatSingle
    dGLdoubleDouble
    ubGLubyteByte
    usGLushortWord
    uiGLuintCardinal
    GLenumCardinal
    GLbooleanBYTEBOOL

    Как уже было написано выше, в поставку Delphi входит модуль от сообщества немецких разработчиков Delphi OpenGL Community . Новости о выходе новых версий этого модуля регулярно размещаются на официальном сайте наблюдательного совета по развитию OpenGL .

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

    Краткие итоги

    В лекции рассмотрена поддержка библиотеки OpenGL в Object Pascal (Delphi), особенности именования процедур и функций, которые реализуют команды библиотеки OpenGL, соответствие типов данных OpenGL и Object Pascal.

    Вернуться к учебному плану