3.2.2. Логические устройства Теперь вернемся к рассмотрению устройств ввода с точки зрения возможности их связи с прикладной программой, т.е. будем рассматривать их как логические устройства. Функционирование устройства ввода можно описать двумя характеристиками:

какую измерительную информацию передает устройство в прикладную программу;

когда устройство посылает эту информацию.

В некоторых API, таких как PHIGS и GKS, рассматривается шесть классов логических устройств ввода. Поскольку в современных операционных системах функцию ввода можно полностью отделить от конструктивных особенностей того или иного прибора, в OpenGL такой подход не применяется. Тем не менее мы кратко познакомим читателей с этими шестью классами, поскольку они демонстрируют, какой широкий спектр форм ввода информации имеется в распоряжении разработчика прикладной графической системы. Кроме то-

Ввод и взаимодействие с пользователем

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

1. Строковое устройство. Это логическое устройство ввода, способное передавать в прикладную программу текстовую (символьную) информацию в виде строк (последовательностей символов) в определенном формате - чаше всего в виде кодов ASCII. Обычно логические устройства этого типа конструктивно оформляются в виде клавиатуры. В таком случае используемая терминология полностью совместима с применяемой в описании большинства существующих операционных систем. В OpenGL не делается различия между логическими строковыми устройствами и физическими устройствами типа клавиатуры.

2. Локатор. Устройство типа локатор передает в прикладную программу информацию о положении в мировой системе координат. Обычно такое логическое устройство конструктивно оформляется в виде устройства указания - мыши или трекбола. В OpenGL мы будем использовать устройства указания именно таким образом, хотя для этого и придется выполнять в прикладной программе промежуточные преобразования из системы координат экрана в мировую систему координат.


⇐ Предыдущая| |Следующая ⇒