Опубликован: 02.12.2011 | Доступ: свободный | Студентов: 887 / 68 | Оценка: 5.00 / 4.00 | Длительность: 09:26:00
Специальности: Программист
Теги: .net, open source, opengl
Лекция 3:

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

< Лекция 2 || Лекция 3 || Лекция 4 >
Аннотация: В лекции расcматриваются особенности использования библиотеки OpenGL в программах, создаваемых на языке программирования Object Pascal с использованием среды разработки Delphi.

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

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

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

uses opengl;

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

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

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

  1. Все процедуры и функции библиотеки имеют префикс "gl", позволяющий отличить их от процедур и функций других библиотек.
  2. После префикса следует непосредственно имя команды OpenGL, отражающее её назначение.
  3. Постфикс в названии процедуры или функции располагается после имени команды и используется для указания числа параметров и при необходимости их типа. Для указания типа параметров используются условные обозначения типов данных, состоящих из одного или двух символов.
  4. Некоторые процедуры и функции, которые используются для реализации команд библиотеки, могут принимать массивы данных. Для таких вариантов процедур и функций используется дополнительный постфикс "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.

Таблица 2.1. Соответствие основных типов данных OpenGL и Object Pascal, их условные обозначения
Условное обозначение в названии команды OpenGL Тип данных OpenGL Тип данных Object Pascal
b GLbyte Shortint
s GLshort SmallInt
i GLint Integer
f GLfloat Single
d GLdouble Double
ub GLubyte Byte
us GLushort Word
ui GLuint Cardinal
GLenum Cardinal
GLboolean BYTEBOOL

Как уже было написано выше, в поставку Delphi входит модуль Opengl.pas, содержащий объявления процедур, функций и констант, соответствующих версии 1.2 библиотеки OpenGL. При желании использовать возможности более поздних версий библиотеки OpenGL потребуется воспользоваться реализацией аналогичного модуля от сторонних разработчиков. Одним из вариантов является использование модуля dglOpenGL.pas [ 9 ] от сообщества немецких разработчиков Delphi OpenGL Community [ 1 ] . Новости о выходе новых версий этого модуля регулярно размещаются на официальном сайте наблюдательного совета по развитию OpenGL [ 1 ] .

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

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

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

< Лекция 2 || Лекция 3 || Лекция 4 >
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?

 

Александр Сивков
Александр Сивков
Россия, Екатеринбург
Алиса Алиса
Алиса Алиса
Украина