ГОСТ 27817-88 сторінка 10 з 43
передачи графической информации между системами;
переноса графической информации из одного места в другое (например при помощи магнитной ленты);
передачи графической информации между прикладными программами, использующими ЯГС;
хранения сопровождающей неграфической информации.
Описание метафайла приведено в приложении 7.
-
Устройства ввода-вывода метафайла рассматриваются ■как графические станции типа МВЫВОД и МВВОД. К этим станциям, однако, неприменимы некоторые функции управления и справочные функции.
-
Прикладная программа заносит данные в метафайл с помощью функции ЗАПИСАТЬ В МЕТАФАЙЛ.
-
Для чтения и интерпретации записей метафайла применяются функции: ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЕТАФАЙЛА, СЧИТАТЬ ЗАПИСЬ ИЗ МЕТАФАЙЛА, ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ. Предполагается, что метафайл состоит из последовательности записей, каждая из которых включает: тип записи, длину блока данных и сам блок данных. Тип записи определяет, может ли запись быть интерпретирована ЯГС либо ее занесла прикладная программа функцией ЗАПИСАТЬ В МЕТАФАЙЛ.
После открытия станции МВВОД первая запись метафайла становится текущей.
-
Функция ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ МЕТАФАЙЛА извлекает тип записи и длину блока данных текущей записи.
-
Функция СЧИТАТЬ ЗАПИСЬ ИЗ МЕТАФАЙЛА копирует содержимое блока данных текущей записи в область, предоставленную прикладной программой, и делает текущей следующую запись метафайла.
-
Функция ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ работает с содержимым блока данных, представленных прикладной программой (в том виде, в котором оно было получено с помощью функции СЧИТАТЬ ЗАПИСЬ ИЗ МЕТАФАЙЛА). Она производит необходимые изменения состояния ЯГС, генерирует графический выход в соответствии с содержимым записи. Интерпретация информации об атрибутах примитивов, прямоугольнике отсечения, индикаторе отсечения вызывает изменения в таблице состояния ЯГС. Информация о геометрических атрибутах, выраженная в нормированных координатах, преобразуется с помощью преобразования, ■обратного текущему преобразованию нормирования, а затем заносится в таблицу состояния ЯГС. Информация, относящаяся к функциям управления станцией, может быть интерпретирована на всех графических станциях.
Для сохранения целостности файлов занесение данных в метафайл и считывание из метафайла должны выполняться только под управлением ЯГС. На черт. 12 показана взаимосвязь между прикладной программой, ЯГС и метафайлом.
-
У р о в н и ЯГС
-
Введение в уровни
-
Система ЯГС предназначена для использования в широком диапазоне применений от простого вывода на графопостро-Связь между Я ГС и МЯГС
Считывание из МЯГС
Запись в МЯГС
Записи пользо-
I Графи- ! ческие-
Заііиси для ин-
П
ПРИКЛАДНАЯ ПРОГРАММА
J I
Г рафические функции ЯГС
Записи пользователя
РИКЛАДНАЯ ПРОГРАММАЧерт. 12
итель до формирования динамически перемещающихся изображений и взаимодействия в реальном времени. У многих дисплеев отсутствуют аппаратные возможности (например устройство указания), моделирование которых программным путем может потребовать значительных усилий. Целесообразно допускать реализации ЯГС, которые не включают все функциональные возможности стандарта.
-
Структура уровней
-
Функциональные возможности ЯГС подразделяются на следующие основные группы:
-
вывод — минимальное исполнение, полное исполнение;
ввод — ввод отсутствует, ввод в режиме ЗАПРОС, синхронный ввод, полный ввод;
число графических станций (одна, несколько);
атрибуты — возможны только предварительно определенные -связки и индивидуально задаваемые атрибуты, полная реализация концепции связок;
сегментация — отсутствует, базовая сегментация (без общей памяти сегментов), полная сегментация.
-
Если при реализации ЯГС допустить произвольную комбинацию возможностей, то скоро появится почти неограниченное число различных диалектов стандарта и станет невозможным сохранить программную совместимость — одну из основных целей настоящего стандарта. В связи с этим было определено девять допустимых уровней реализации ЯГС, позволяющих охватить большую часть существующего оборудования и приложений. Каждая реализация ЯГС обеспечивает функции одного уровня. Реализация ЯГС считается некорректной, если она находится между двумя уровнями.
-
Уровневая структура ЯГС имеет два независимых компонента: «ввод» и все другие функции, объединяемые под общим названием «вывод».
Имеется четыре уровня вывода:
уровень m — минимальный вывод;
уровень 0 — все примитивы и атрибуты;
уровень 1 — базовая сегментация с полным выводом;
уровень 2 — общая память сегментов.
Имеется три уровня ввода:
уровень а — отсутствие ввода;
уровень b — ввод в режиме ЗАПРОС;
уровень с — полный ввод.
-
Возможности ЯГС определяются набором доступных функций и диапазоном изменения их параметров. На каждом уровне существуют три категории возможностей:
явно определенные и обязательные возможности —• поддерживаются всеми реализациями ЯГС данного уровня;
явно определенные, но необязательные возможности — если реализация поддерживает эти возможности, то они соответствуют ■определениям функций ЯГС;
концептуально определенные и необязательные возможности — реализация ЯГС может содержать эти возможности в соответствии с общими правилами и концепциями ЯГС.
-
Набор явно определенных и обязательных возможностей включает:
предварительно определенное число связок вплоть до требуемого номера;
типы линии — от 1 до 4;
типы маркеров — от 1 до 5;
точность представления текста ДО ШТРИХА (уровни вывода 1 и 2);
вид заполнения — ПУСТО;
одно устройство ввода каждого класса (уровни ввода b и с);
тип подсказки и эха — 1 (уровни ввода b и с).
-
Набор явно определенных, но необязательных возможностей включает:
точность текста ДО ШТРИХА (уровень вывода ш и 0);
виды заполнения — ЗАЛИВКА, ПО ШАБЛОНУ, ШТРИХОВКА;
преобразуемые шаблоны;
приоритет сегментов (уровни вывода 1 и 2);
типы подсказки и эха с номерами больше 1, определенные в настоящем стандарте (уровни ввода b и с)
-
.Набор концептуально определенных и необязательных возможностей включает:
типы линий больше 4; '
типы маркеров больше 5;
обобщенные примитивы вывода;
типы подсказки и эха сверх определенных в настоящем стандарте (уровни ввода b и с); !
функции расширения.
-
-
Явно определенные,' но необязательные возможности1 некоторого уровня становятся явно определенными и обязательными на более высоком уровне ЯГС при расширении диапазона изменения параметров. Каждый уровень ЯГС содержит только Те функции, которые явно определены и обязательны для этого уровня.. Однако диапазоны изменения значений параметров могут содержать дополнительные явно определенные и необязательные, а также концептуально определенные и необязательные возможности.
-
-
У ровни функциональности
-
Каждый уровень содержит следующие средства: Характеристики уровня вывода «гп» — минимальный вывод: 1) ограниченный набор управляющих функций;
-
-
ограниченный набор примитивов;
-
ограниченный набор управляющих атрибутов;
-
не существует связок и атрибутов;
-
возможно изменение представления цвета;
-
в каждый момент времени доступна только одна станция, обладающая возможностями вывода;
-
допускается преобразование нормирования 0 и только одна устанавливаемое преобразование нормирования;
-
ограниченный набор справочных функций.
-
Характеристики уровня вывода «0» (все примитивы и атрибуты):
-
все возможности уровня вывода «т»;
-
базовые средства управления;
-
все примитивы, по крайней мере, в минимальном исполнении;
-
предварительно определенные связки (изменение связок невозможно);
-
изменение представления цвета;
-
в каждый момент доступна лишь одна станция вывода;
-
метафайл не обязателен, но если он имеется, необходимы средства как ввода, так и вывода;
-
несколько преобразований нормирования, однако, допустимо иметь преобразование 0 и еще одно устанавливаемое преобразование;
-
базовые справочные функции;
-
обеспечено считывание пикселей (устройства, на которых пикселей нет, выдают сообщение об ошибке).
-
Характеристики уровня вывода «1» (базовая сегментация с полным выводом):
-
все возможности уровня 0;
-
полный набор функций управления станцией;
-
полный набор средств вывода;
-
полная реализация концепции связок;
-
несколько графических станций;
-
станции ввода-вывода метафайла;
-
несколько устанавливаемых преобразований нормирования;
-
базовая сегментация (отсутствует общая память сегментов);
-
соответствующие справочные функции.
-
Характеристики уровня вывода «2» (общая память сегментов):
-
все возможные уровни вывода «1»;
-
общая память сегментов.
-
Характеристики уровня ввода «а» (отсутствие ввода): средств ввода нет.
-
Характеристики уровня ввода «Ь» (ввод в режиме ЗАПРОС — синхронный ввод):
функции инициализации устройств ввода и задания режима их работы;
функции ЗАПРОСИТЬ для всех соответствующих устройств;
соответствующие логические устройства ввода включают устройство УКАЗАНИЯ только в комбинации с возможностями уровня вывода «1»;
функция установки входного приоритета вывода.
-
Характеристики уровня ввода «с» (полный ввод):
все возможности уровня ввода «Ь»;
режимы ОПРОС и СОБЫТИЕ.
-
В табл. 2 приведен перечень функциональных возможностей каждого допустимого уровня ЯГС. В каждом поле содержатся функции, которые добавляются к функциям, описанным в предыдущих полях той же строки и столбца.
Допустимые различия в реализациях ЯГС, связанные с различными функциональными возможностями, приведены в приложении 6.Таблица 2
Концепция уровней Я ГС
|
Уровень вывода |
Уровень ввода |
||
|
а |
ь |
о |
|
|
m |
Нет ввода, минимальные средства управления, только индивидуально устанавливаемые атрибуты, одно устанавливаемое преобразование нормирования, ограниченный набор функций вывода и атрибутов |
Ввод данных в режиме ЗАПРОС, функции установки режима работы инициализации для логических устройств ввода, отсутствие устройства указания |
Ввод данных в режимах ОПРОС и СОБЫТИЕ, отсутствие устройства указания |
|
0 |
Отсутствие ввода, базовые средства управления, только предварительно определенные связки; несколько преобразований нормирования, причем хотя бы одно из них является устанавливаемым, все функции вывода, возможно использование станций метафайла |
Ввод данных в режимах ЗАПРОС функции инициализации и установки режима работы для логических устройств ввода, отсутствие режима УКАЗАНИЕ и функции установки входного приоритета поля вывода |
Ввод данных в режиме ОПРОС и СОБЫТИЕ; ■отсутствие выбора элементов |
|
1 А |
Полный вывод, включая полную реализацию концепции связок, концепцию нескольких графических станций, базовые средства сегментации (за исключением общей памяти сегментов); станции метафайла |
Функция ЗАПРОСИТЬ УКАЗАНИЕ, функции инициализации и установки режима работы для устройства УКАЗАНИЯ |
: Ввод данных в режиме ОПРОС и СОБЫТИЕ для устройства УКАЗАНИЯ |
|
2 |
Общая память сегментов |
||
-
На различных уровнях число обязательных возможностей может быть различным. Минимальные характеристики, которые должны обеспечивать уровни ЯГС, приведены в табл. 3. Число 0 указывает определенную, но необязательную на данном уровне возможность. Прочерк означает, что соответствующая функция на данном уровне не определена.
Таблица 3>
Минимальные возможности, необходимые на каждом уровне Я ГС
|
Возможность |
Уровень |
|||||||||||
|
та |
mb |
тс |
Оа |
оь |
Ос |
1а |
1Ь |
1с |
2а |
2Ь |
2а |
|
|
Количество цветов (интенсивностей) |
1 |
1 |
■ 1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
Типы линий |
4 |
4 |
4 |
4 |
4 |
4. |
4 |
4' |
4 |
4 |
4 |
4 |
|
Ширина линий |
— |
•—- |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
||
|
Предварительно определенные связки ломаной |
5 |
5 |
5 |
5 |
' 5 |
5 |
5 |
5 |
&> |
|||
|
Устанавливаемые связки |
. |
20 |
20 |
20 |
20 |
20 |
20 |
|||||
|
Типы маркера |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5- |
|
Размеры маркера |
— |
— |
— |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
Предварительно определенные связки полимаркера |
— |
.— |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5> |
|
|
Устанавливаемые связки полимаркера ломаной |
— |
— |
20 |
20 |
20 |
20 |
20 |
20 |
||||
|
Высота литеры |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
F |
|
Масштабы расширения литеры |
— |
— |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
Шрифты точности ДО СТРОКИ |
1 |
1 |
1 |
1 |
1 |
I |
1 |
1 |
1 |
1 |
1 |
b |
|
Шрифты точности ДО ЛИТЕРЫ |
— |
— |
— |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
Шрифты точности ДО ШТРИХА |
— |
— |
0 |
0 |
0 |
2 |
2 |
2 |
2 |
2 |
2 |
|
|
Предварительно определенные связки текста |
— |
— |
— |
2 |
2 |
2 |
6 |
6 |
6 |
6 |
6 |
6- |
|
Устанавливаемые связки текста |
— |
— |
— |
— |
— |
— |
.20 |
20 |
20 |
20 |
20 |
20» |
|
Предварительно определенные шаблоны |
— |
— |
— |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
Устанавливаемые шаблоны |
— |
— |
— |
.— |
10 |
10 |
‘ 10 |
10 |
10 |
10 |
||
|
Типы штриховки |
— |
— |
— |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
|
Предварительно определенные связки полигональной области |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5- |
|||
|
Устанавливаемые связи полигональной области |
— |
10 |
10 |
■ 10 |
10 |
10 |
10« |
|||||
|
Устанавливаемые преобразования нормирования |
1 |
1 |
1 |
1 |
1 |
1 |
. 10 |
10 |
10 |
10 |
10 |
10> |
|
Приоритеты сегментов |
— |
— |
— |
— |
— |
— |
2 |
2 |
2 |
2 |
2 |
2' |
Побачили розбіжність з офіційним текстом?
Дивіться також
Сборник ГОСТ ЕСКД
Збірник із 154 стандартів