2.10. Уровни ЯГС
2.10.1. Введение в уровни
2.10.1.1. Система ЯГС предназначена для использования в широком диапазоне применений от простого вывода на графопостроитель до формирования динамически перемещающихся изображений и взаимодействия в реальном времени. У многих дисплеев отсутствуют аппаратные возможности (например устройство указания), моделирование которых программным путем может потребовать значительных усилий. Целесообразно допускать реализации ЯГС, которые не включают все функциональные возможности стандарта.
2.10.2. Структура уровней
2.10.2.1. Функциональные возможности ЯГС подразделяются на следующие основные группы:
вывод - минимальное исполнение, полное исполнение;
ввод - ввод отсутствует, ввод в режиме ЗАПРОС, синхронный ввод, полный ввод;
число графических станций (одна, несколько);
атрибуты - возможны только предварительно определенные связки и индивидуально задаваемые атрибуты, полная реализация концепции связок;
сегментация - отсутствует, базовая сегментация (без общей памяти сегментов), полная сегментация.
2.10.2.2. Если при реализации ЯГС допустить произвольную комбинацию возможностей, то скоро появится почти неограниченное число различных диалектов стандарта и станет невозможным сохранить программную совместимость - одну из основных целей настоящего стандарта. В связи с этим было определено девять допустимых уровней реализации ЯГС, позволяющих охватить большую часть существующего оборудования и приложений. Каждая реализация ЯГС обеспечивает функции одного уровня. Реализация ЯГС считается некорректной, если она находится между двумя уровнями.
2.10.2.3. Уровневая структура ЯГС имеет два независимых компонента: "ввод" и все другие функции, объединяемые под общим названием "вывод".
Имеется четыре уровня вывода:
уровень m - минимальный вывод;
уровень 0 - все примитивы и атрибуты;
уровень 1 - базовая сегментация с полным выводом;
уровень 2 - общая память сегментов.
Имеется три уровня ввода:
уровень а - отсутствие ввода;
уровень b - ввод в режиме ЗАПРОС;
уровень с - полный ввод.
2.10.2.4. Возможности ЯГС определяются набором доступных функций и диапазоном изменения их параметров. На каждом уровне существуют три категории возможностей:
явно определенные и обязательные возможности - поддерживаются всеми реализациями ЯГС данного уровня;
явно определенные, но необязательные возможности - если реализация поддерживает эти возможности, то они соответствуют определениям функций ЯГС;
концептуально определенные и необязательные возможности - реализация ЯГС может содержать эти возможности в соответствии с общими правилами и концепциями ЯГС.
2.10.2.5. Набор явно определенных и обязательных возможностей включает: