В функциях ввода широко используется три режима. Режим запроса передает ввод под управление программы-приложения. В режиме дискретизации устройства ввода и программа работают параллельно. Режим событий позволяет устройствам ввода инициировать ввод данных и управлять обработкой данных. После выбора режима для класса логических устройств и определенного физического устройства, которое будет использоваться для ввода данных этого типа, информация вводится в программу. Программа-приложение может разрешать одновременное использование различных физических устройств ввода, работающих в различных режимах.
Интерактивные методы построения изображений широко применяются во многих приложениях, включая пакеты разработки и рисования. Данные методы предлагают пользователю возможность задавать положения объектов, ограничивать расположение объектов определенными ориентациями или взаимным расположением и интерактивно изображать объекты на сцене. Чтобы облегчить расположение и выбор ориентации элементов изображения, широко используются сетки, поля притяжения и эластичные методы.
В прикладном программном обеспечении стандартно присутствуют графические интерфейсы пользователя. Диалог в программном обеспечении разрабатывается исходя из модели пользователя, которая описывает цели и функции прикладного пакета. Все элементы диалога представлены на языке приложения.
Системы окон предлагают стандартный интерфейс с процедурами для работы с окнами на экране дисплея, меню и пиктограммами. Для поддержки нескольких менеджеров окон можно разработать системы окон.
При разработке диалога с пользователем важно ориентироваться на легкость использования, ясность и гибкость. По сути, графические интерфейсы предназначены для поддержания согласованности взаимодействия с пользователем и предполагают разный уровень подготовки. Кроме того, интерфейсы разрабатываются так, чтобы минимизировать используемую память, обеспечить достаточную обратную связь и адекватные возможности резервирования и обработки ошибок.
В Utility Toolkit GLUT имеются функции ввода, предназначенные для работы с интерактивными устройствами, такими как мышь, планшет, спейсбол, поле клавиш и наборный диск. Кроме того, GLUT предоставляет функцию приема комбинированного входа от мыши и клавиатуры. Операции выбора с помощью указки можно выполнить, используя функции из библиотеки GLU и основной библиотеки OpenGL. Можно также отобразить всплывающие меню и подменю с помощью функции библиотеки GLUT. Резюме по функциям ввода и функциям меню OpenGL представлены в табл. 11.1 и 11.2.
ТАБЛИЦА 11.1. Резюме по функциям ввода OpenGL
Функция |
Описание |
д11^МоизеЕипс |
Задает функцию обратного вызова мыши, которая будет активизирована при нажатии кнопки мыши |
д1и1Мо11опЕипс |
Задает функцию обратной связи мыши, которая будет вызвана при перемещении курсора мыши при нажатой кнопке |
glutPassive |
Задает функцию обратной связи мыши, которая будет вызва |
Мо1д.опГипс |
на при перемещении курсора мыши без нажатой кнопки |
д1и!:КеуЬоаг(1Еипс |
Задает функцию обратной связи клавиатуры, которая будет вызвана при нажатии стандартной клавиши |
д1и13рес1а1Гипс |
Задает функцию обратной связи клавиатуры, которая будет вызвана при нажатии специальной (например, функциональной) клавиши |
glutTaЫet |
Задает функцию обратной связи планшета, которая будет вы |
ButtonFunc |
звана при нажатии кнопки планшета, когда курсор мыши находится в окне на экране дисплея |
д1и1:ТаЫеЪ |
Задает функцию обратной связи планшета, которая будет вы |
Мс^Д-ОпЕипс |
звана, когда перо планшета или курсор движутся, а курсор мыши находится в окне на экране дисплея |
Окончание табл. 11.1