Скачиваний:
82
Добавлен:
16.07.2022
Размер:
1.8 Mб
Скачать
  1. Порядок работы с библиотекой

В соответствии с пожеланиями заказчика данная библиотека поставлена в виде исходного кода на языке Си, разбитого на 3 файла:

  • Заголовочный файл lib.h – через него осуществляется подключение библиотеки к проекту прикладной программы;

  • Файл lib.c – непосредственно файл с кодом реализации библиотечных и вспомогательных функций;

  • Заголовочный файл InitValues.h – включается в проект через файл lib.c. Является настроечным файлом библиотеки, в котором задаются размеры буферов, значения по умолчанию для различных параметров и массивы значений для цветов, шаблонов линий, шрифтов.

При написании прикладной программы с использованием библиотеки необходимо придерживаться следующих правил:

  • Вызовы всех функций (за исключением математических) должны производиться в основном цикле работы графического приложения (цикле отрисовки);

  • В начале цикла отрисовки всегда должен быть вызов функции gfInit(int32 ww, int32 wh) с передачей в качестве аргументов ширины и высоты окна соответственно;

  • В конце цикла отрисовки необходим вызов функции gfEndDrawing() для корректного завершения отрисовки всех необходимых примитивов;

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

    1. Пример прикладной программы

В качестве примера прикладной программы, написанной с помощью данной библиотеки, можно привести следующий код, представленный в листинге 4.1.

gfInit(ww, wh); //Инициализация библиотеки и сброс значений

gfCirclePred(30); //Окружность должна отрисовываться 30-ю

отрезками

gfEnable(GF_FILLING); //Включение заливки примитивов

gfEnable(GF_EDGING_POLYGON); //Включение обводки полигонов

gfEdgingWidth(4); //Установка толщины обводки в 5 пикселей

gfEdgingColor(2); //Установка цвета обводки значением

элемента

с индексом 2 из массива цветов в настроечном файле

gfColor(1); //Установка цвета примитивов значением элемента с

индексом 2 из массива цветов в настроечном файле

gfSetAbsoluteOffset(-ww / 2, 0); //Установка начала координат

в центр левой границы экрана

int i;

for (i = 0; i < 7; ++i) {

gfPolygonFan(cab, 6); //Отрисовка кузова машинки

gfCircle(35, 0, 30); //Отрисовка заднего колеса

gfCircle(135, 0, 30); //Отрисовка переднего колеса

gfSetRelativeOffset(200, 0); //Сдвиг начала координат на

200 пикселей вправо

gfSetAbsoluteAngle(i * 3); //Установка углового смещения

относительно начала координат

}

gfEndDrawing(); //Окончание цикла отрисовки

Листинг 4.1 – Пример кода из прикладной программы

При добавлении вышеприведённого кода в цикл отрисовки любого оконного менеджера, использующего OpenGL-контекст, и подключении к проекту разработанной библиотеки, можно будет наблюдать в окне вывода картинку, приведённую на рисунке 4.1.

Рисунок 4.1 – Пример прикладной программы

Безусловно, для именно такого поведения нужно задать соответствующие цвета в настроечном файле InitValues.h и соответствующие значения массива вершин «cab».