Другие допустимые различия распадаются на две категории:
глобальные различия;
различия, зависящие от станции.
Глобальные различия
Несколько различий являются глобальными в смысле их применения к реализации как к целому, а не к отдельной станции. Эти глобальные различия следующие:
Функциональная сфера: уровень ЯГС.
Возможности:
число доступных типов станций;
список доступных типов станций;
максимальное число одновременно открытых станций;
максимальное число одновременно активных станций;
максимальное число станций, связанных с сегментом;
максимальное число преобразований нормирования;
количество одновременно определимых сегментов (на станцию);
максимальный размер входной очереди;
число доступных шрифтов;
число обобщенных примитивов вывода (ОПВ);
число функций РАСШИРЕНИЕ.
Прочие различия:
начальное значение флагов выборки атрибутов (ФВА);
режим работы функции АВАРИЙНО ЗАКРЫТЬ ЯГС;
действия, выполняемые с параметрами справочных функций, если информация не доступна;
формат метафайла, используемый в каждой станции категории МВЫВОД; шрифты.
Примечания:
Данные, приведенные в п. 1) и в первых шести перечислениях п. 2), содержатся в таблице описания ЯГС и могут быть выяснены прикладной программой.
Указывая в документации максимальный размер входной очереди, следует также указать его интерпретацию (при необходимости, включая соответствующую длину каждой записи).
Для различных уровней ЯГС определены минимальные возможности, приведенные в подразд. 2.10 настоящего стандарта.
Различия, зависящие отстанции
Эта группа допустимых различий предназначена для ряда станций, которые используются в некоторой реализации ЯГС. Основная группа различий в качестве таблицы описания станции приведена в подразд. 4.6. Она составляет часть структур данных ЯГС. Данные этой таблицы могут быть выяснены прикладной программой.
На значения некоторых данных указаны ограничения. Для различных уровней ЯГС определены некоторые минимальные возможности станций, которые описаны в разд. 2.10 настоящего стандарта.
Дополнительные различия, зависящие от станций, следующие:
Функции управления:
реализация функций ЯГС: СООБЩЕНИЕ, РАСШИРЕНИЕ;
буферизация отложенных действий при режимах задержки ГЛОБ, ПОКА и ЛЮБО.
Выходные функции и атрибуты:
ЛОМАНАЯ:
продолжается или начинается текстура линии в начале ломаной, в начале усеченной части ломаной и в каждой вершине ломаной;
графическое представление доступных типов линий (с ограничением, что- типы линий с 1 по 4 должны быть узнаваемы как сплошная, штриховая, пунктирная и штрихпунктирная, и что другие типы линий должны иметь одинаковый вид на всех станциях, на которых они доступны);
форма конца линии для некоторого значения масштаба ширины линии.
ПОЛИМАРКЕР:
графическое представление доступных типов маркеров (с ограничением, что типы маркеров с 1 по 5 должны быть узнаваемы как точка, знак плюс, звездочка, окружность и диагональный крест и что другие типы маркеров должны иметь одинаковый вид на всех станциях, на которых они доступны);
отсечение маркера, если его позиция попадает на границу отсечения.
ТЕКСТ:
отсечение для текста точности ДО СТРОКИ и ДО ЛИТЕРЫ;
влияние установленных в данное время характеристик для точности ДО- СТРОКИ;
влияние характеристик:
масштаб расширения литер, ВЫСОТА ЛИТЕР, НАПРАВЛЕНИЕ ТЕКСТА для точности ДО ЛИТЕРЫ;
действия по контролю над литерами внутри строки.
ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ:
графическое представление доступных видов штриховки (с ограничением,, что виды штриховки должны иметь одинаковый вид на всех станциях, на которых они доступны);
действуют ли преобразования на шаблоны и штриховку;
тип линии и толщина линии для вида заполнения ПУСТО.
МАТРИЦА ЯЧЕЕК:
будет ли МАТРИЦА ЯЧЕЕК полностью поддерживаться или при необходимости моделироваться и как моделироваться (минимальное выполняемо^- действие — нарисовать преобразованные границы прямоугольников ячеек, используя цвет, тип линии и толщину линии в зависимости от реализации).
ОПВ:
реализация каждого ОПВ;
все примитивы:
индекс используемого цвета, если примитивы вывода отображаются с индексом цвета, которого нет в таблице цветности;
на одноцветных станциях алгоритм получения интенсивности. Рекомендуется алгоритм:
интенсивность=0,3 х красный + 0.59 X зеленый -f-0,11 X голубой;
что вычерчивается, если точки или линии совпадают.
Сегменты:
1) обнаружение сегментов разного приоритета;
‘ 2) отображение перекрывающихся сегментов с равным приоритетом;
3) реализация выделения.
Функции ввода;
її) реализация логических устройств ввода (для каждого логического устройства ввода его моделирование и фиксатор следует представить в терминах физических устройств, имеющихся на этой станции);
2) реализация режима «подсказка — эхо», принятого по умолчанию;
3) использование записи данных ввода для необязательных параметров.
Справочные функции:
значение, возвращаемое функцией УЗНАТЬ ГАБАРИТЫ ТЕКСТА;
значение узнаваемой характеристики пикселя;
ответ, возвращаемый справочными функциями при флаге РЕАЛИЗОВАНО.
ПРИЛОЖЕНИЕ 7 Справочное
СТРУКТУРА МЕТАФАЙЛА
Введение
В ЯГС включены функции записи и считывания графической информации с внешнего файла, который называется графическим метафайлом или метафайлом. Метафайл может быть использован для различных целей:
передачи графической информации между системами;
передачи графической информации из одного места в другое;
передачи графической информации от одной прикладной задачи, использующей ЯГС, к другой;
хранения сопровождающей неграфической информации.
Механизм кодирования, используемый для записи в метафайл, может зависеть от реализации или от операционной среды, например:
кодирование в соответствии со СТ СЭВ 359—76 для передачи по сетям;
двоичное кодирование для экономии памяти ЭВМ во время счета;
текстовое кодирование, обеспечивающее возможность передачи между ЭВМ различной архитектурой и простоту редактирования.
Спецификация формата и содержания записей метафайла не является составной частью стандарта ЯГС. Определяется только интерфейс с метафайлом. Реализация ЯГС может поддерживать любое количество типов станции класса МВВОД и МВЫВОД. Пользователь может выбрать наиболее подходящую из них в зависимости от прикладной области и среды.
Для метафайла ЯГС определяются два вида кодирования:
текстовое кодирование;
двоичное кодирование.
Формат файла и формат данных
Метафайл ЯГС создается как последовательность логических записей данных. Файл начинается с записи, имеющей фиксированный формат — ЗАГОЛОВОК ФАЙЛА, которая определяет начало метафайла (автора, устройство, формат следующих записей и представление чисел). Файл заканчивается записью КОНЕЦ. Между этими двумя записями записывается следующая информация:
записи управления станцией и записи сообщения;
записи примитивов вывода, описывающие элементарные графические объекты;
информация об атрибутах, включающая атрибуты примитивов вывода, атрибуты сегментов и атрибуты станций;
записи сегмента, описывающие структуру и преобразования сегмента;
записи пользователя.
Общая структура метафайла ЯГС имеет следующий вид:
Файл:
Заголовок Запись
файла 1
Запись
Запись
N
Конечная
запись
Запись:
Заголовок
записи
Логическая запись
Заголовок
записи:
«GKSM» необязательно
Идентификационный
номер
Длина логической
записи в байтах
Все записи данных, за исключением заголовка файла, имеют заголовок записи, содержащий:
строку символов «GKSM» (необязательная), улучшающую читаемость файла и обеспечивающую возможность контроля ошибок;
тип логической записи, определяющий вид информации, которая содержится в записи.
Длина каждого из этих подполей заголовка записи зависит от реализации и задается в заголовке файла. Содержимое записи для каждого типа логической записи описано ниже.
Метафайл содержит символы, целые числа и действительные числа, помеченные (С), (Ц), (Д) в описании записи. Символы в метафайле должны соответствовать СТ СЭ'В 359'—76. Числа представляются в формате F1 для целых и формате F2 для действительных.
Форматы F1 и F2 могут быть записаны посредством форматов ФОРТРАНА. I и F соответственно.
Действительные числа, отображающие координаты и единицы длины, представляют нормированные координаты устройства. Преобразование станции, если оно задается в прикладной программе для станции ЛГВЫВОД, не выполняется, но ОКНО СТАНЦИИ и ПОЛЕ ВЫВОДА СТАНЦИИ будут записаны для дальнейшего использования. Действительные числа могут быть записаны как целые. В этом случае параметры преобразования задаются в заголовке файла, чтобы обеспечить возможность преобразования целых чисел в нормированные координаты.
В целях экономии памяти числа могут быть записаны с использованием внутреннего бинарного формата. Так как стандарта для бинарного представления чисел не существует, его использование будет ограничивать переносимость метафайла.
При передаче метафайла между различными вычислительными системами физическая структура хранения данных должна быть стандартизована.
Генерация метафайлов
Табл. 13 содержит список функций ЯГС, которые применяются для станций категории МВЫВОД, и их действия на метафайл. В этой таблице МВЫВОД является идентификатором станции, которая генерирует метафайл данного формата.
Концепция отсечения отражена в специальной записи метафайла, которая задает прямоугольник отсечения. Эта запись записывается в метафайл при активации станции со значениями (0., 1., 0., 1.,), если индикатор отсечения в таблице состояния ЯГС имеет значение НЕ ОТСЕКАТЬ или «прямоугольник отсечения», если индикатор отсечения имеет значение ОТСЕКАТЬ.
При переопределении прямоугольника отсечения и когда индикатор отсечения имеет значение ОТСЕКАТЬ, записывается новая запись прямоугольника отсечения. Если индикатор отсечения в таблице состояния ЯГС изменяется на НЕ ОТСЕКАТЬ, записывается прямоугольник отсечения (0., 1., 0., 1., 0.,). Если индикатор отсечения меняется на ОТСЕКАТЬ, записывается прямоугольник отсечения из таблицы состояния ЯГС.
Интерпретация метафайла
Общие сведения
Интерпретация метафайла в ЯГС описывается в подразд. 2.9 настоящего стандарта. Действие функции ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ для всех типов записей метафайла описывается в пи. 4.2—4.8. Записи группируются по классам в соответствии с табл. 13.
И и т е р п р е т а ц и я управляющих записей
Интерпретация записей для этого класса описывается при определении каждой записи в разд. 5 настоящего приложения.
Интерпретация записей о примитивах вывода
Интерпретация записей для этого класса генерирует вывод, соответствующий функциям примитивов, за исключением того, что координаты точек остаются в НК. С примитивами вывода связываются соответствующие атрибуты примитивов из таблицы состояния ЯГС.
И н т е р п р е т а ц и я записей об атрибутах примитивов вывода
Интерпретация записей этого класса устанавливает поля в таблице состояний ЯГС. Перед использованием информация о геометрических атрибутах, выраженных в НК, преобразуется посредством текущего преобразования нормирования. Интерпретация вертикали и горизонтали литеры преобразовывает эти векторы и помещает их в таблицу состояния ЯГ следующим образом: поле текущей вертикали литеры содержит вектор произвольной длины, параллельный вектору преобразованной высоты литеры. Текущие ширина и горизонталь .литеры устанавливаются аналогично.
Таблица 13
Функции ЯГС и их действие на станцию вывода метафайла ЯГС
Функции ЯГС, применяемые |
Запись метафайла |
к станциям категории МВЫВОД |
или действие |
Функции управления ОТКРЫТЬ СТАНЦИЮ (МВЫВОД) |
Заголовок файла 1 (условно) |
ЗАКРЫТЬ СТАНЦИЮ (МВЫВОД) АКТИВИРОВАТЬ СТАНЦИЮ (МВЫВОД) |
0 (конечная запись) (61, 21—44) Выводит текущие атрибуты, разрешает вывод |
ДЕАКТИВИРОВАТЬ СТАНЦИЮ (МВЫВОД) ОЧИСТИТЬ СТАНЦИЮ (МВЫВОД) ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ (МВЫВОД) ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ (МВЫВОД) ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ (МВЫВОД) СООБЩЕНИЕ (МВЫВОД) РАСШИРЕНИЕ Примитивы вывода ЛОМАНАЯ ПОЛИМАРКЕР ТЕКСТ ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ МАТРИЦА ЯЧЕЕК ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) Атрибуты примитивов вывода ЗАДАТЬ ИНДЕКС ЛОМАНОЙ ЗАДАТЬ ТИП ЛИНИИ ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ ЗАДАТЬ ИНДЕКС ЦВЕТА ЛОМАНОЙ ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА ЗАДАТЬ ТИП МАРКЕРА ЗАДАТЬ МАСШТАБ МАРКЕРА ЗАДАТЬ ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА ЗАДАТЬ ИНДЕКС ТЕКСТА ЗАДАТЬ ШРИФТ И ТОЧНОСТЬ ТЕКСТА ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ ЗАДАТЬ МЕЖЛИТЕРНЫИ ПРОСВЕТ ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА ЗАДАТЬ ВЫСОТУ ЛИТЕРЫ ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА ЗАДАТЬ ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
Запрещает вывод 1 2 3 4 5 (сообщение) 6 11 12 13 14 15 16 21 22 23 24 25 26 27 28 29 30 31 32 33 34 34 35 36 |