ГОСТ Р 34.1702.3-92
(ИСО 8651-3-88)
Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология
МАШИННАЯ ГРАФИКА
Связь ядра графической системы с языком программирования Ада
Information technology. Computer graphics - Graphical. Kernel System (GKS) language bindings - Ada
ОКСТУ 0034
Дата введения 1994-01-01
ИНФОРМАЦИОННЫЕ ДАННЫЕ
1. ПОДГОТОВЛЕН И ВНЕСЕН ТК 22 "Информационная технология"
2. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 28.12.92. N 1577
Настоящий стандарт подготовлен методом прямого применения международного стандарта ИСО 8651-3-88 "Системы обработки информации. Машинная графика. Связь ядра графической системы с языком программирования Ада"
3. ВВЕДЕН ВПЕРВЫЕ
4. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
Обозначение НТД, на который дана ссылка | Номер пункта |
ГОСТ 27817-88 | Введение, 2, Приложение |
ГОСТ 27831-88 | 2, Приложение |
ВНЕСЕНА поправка, опубликованная в ИУС N 12, 2007 г. Поправка внесена изготовителем базы данных.
Настоящий стандарт устанавливает правила привязки ядра графической системы (ЯГС) (ГОСТ 27817) к языку программирования Ада (ИСО 8651-3) и определяет:
имена и списки параметров процедур на языке Ада, соответствующие функциям ЯГС;
имена типов данных ЯГС в языке Ада;
структуры данных ЯГС в языке Ада;
имена функций обработки ошибок.
Настоящий стандарт не устанавливает:
структуры и методы реализации ЯГС;
требования к операционной среде и оборудованию;
методы связи ЯГС с другими языками программирования, отличными от языка Ада.
2. ССЫЛКИ
2*. ССЫЛКИ
________________
* Нумерация соответствует оригиналу. - Примечание изготовителя базы данных.
В качестве описания правил привязки ЯГС к языку программирования Ада использован международный стандарт ИСО 8651-3-88, приведенный в приложении.
ПРИЛОЖЕНИЕ. МЕЖДУНАРОДНЫЙ СТАНДАРТ. Системы обработки информации. МАШИННАЯ ГРАФИКА. Связь ядра графической системы с языком программирования Ада. ИСО 8651-3-88
ПРИЛОЖЕНИЕ
Системы обработки информации
МАШИННАЯ ГРАФИКА
Связь ядра графической системы с языком программирования Ада
ИСО 8651-3-88
ПРЕДИСЛОВИЕ
Международный стандарт ИСО 8651-3 разработан Техническим комитетом ИСО/СТК 1 "Системы обработки информации".
ИСО 8651 состоит из следующих частей под общим заголовком "Системы обработки информации. Машинная графика. Связь ядра графической системы (ЯГС) с языками программирования:
Часть 1.Фортран.
Часть 2. Паскаль.
Часть 3. Ада.
0. ВВЕДЕНИЕ
Функциональное описание ядра графической системы (ЯГС), содержащееся в ГОСТ 27817 (ИСО 7942), сформулировано независимым от языка программирования способом и должно быть окружено слоем, зависящим от языка программирования (привязка к языку) для использования с определенным языком программирования.
Цель настоящего стандарта части ИСО 8651 - определение стандартной привязки к языку программирования Ада.
1. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ
ГОСТ 27817 (ИСО 7942) определяет языконезависимое ЯГС. Для включения его в язык программирования ЯГС помещается на языковозависимый уровень, отвечающий соответствующим положениям этого языка. Настоящая часть ИСО 8651 определяет такой языковозависимый уровень для языка программирования Ада.
2. ССЫЛКИ
ГОСТ 27817 (ИСО 7942-85) Системы обработки информации. Машинная графика. Описание функций ядра графической системы (ЯГС).
ГОСТ 27831 (ИСО 8652-86) Язык программирования Ада.
3. СВЯЗЬ ЯГС С ЯЗЫКОМ АДА
Данная связь не предполагает, что компилятор поддерживает любые свойства языка Ада, которые являются зависящими от реализации, но подразумевает, что компилятор будет способен поддерживать декларации, входящие в связывание GKS/Ада. Не делается никаких предположений относительно машинного представления предопределенных типов чисел в Аде.
Данная связь предполагает, что прикладной программист будет применять имя файла ошибок и идентификатор связи, которые будут иметь формат, приемлемый для реализации Ады.
В данной связи не делается предположения относительно формата строки, определяющей имя файла ошибок или идентификатор связи для устройства или метафайла.
3.1. Условия соответствия стандарту
Данная связь включает правила, определенные в стандарте ГОСТ 27817 (ИСО 7942) со следующими дополнительными требованиями, специально заданными для реализации ЯГС в языке Ада.
Для определения соответствия или несоответствия реализации данному связыванию установлены следующие критерии:
а) реализация ЯГС в Аде соответствует уровню ЯГС, если она точно выполняет декларации для данного уровня ЯГС и более низких уровней, определенных данным связыванием;
б) семантика реализации должна соответствовать стандарту ЯГС с модификациями и расширениями для Ады, установленными в данном документе;
в) модуль, соответствующий реализуемому уровню ЯГС, должен быть доступен в виде блока библиотеки Ады с именем, определенным в данном документе.
3.2. Включение в язык
3.2.1. Отображение функций
Все функции ЯГС отображаются в процедуры Ады. Отображение использует "один-в-один" соответствие между функциями ЯГС и процедурами Ады, исключая функции ЯГС "Узнать текущий атрибут примитива" и "Узнать индивидуальный атрибут". Они связаны с отдельной процедурой Ады для каждого из запрашиваемых атрибутов; атрибуты связываются с одной записью.
3.2.2. Реализация и зависимость от компьютера
Существует ряд зависимостей от реализаций и компьютера, связанных с компилятором Ады и используемыми процедурами системы. Это будет влиять на переносимость прикладных программ и их использование ЯГС. Прикладному программисту следует придерживаться принятой практики обеспечения переносимости программ на языке Ада, чтобы избежать возникновения проблем при переносе прикладного программного обеспечения на другую систему. К зависимостям от реализаций относятся управление памятью и процессором.
3.2.3. Обработка ошибок
Справочные функции используют параметры индикаторов для возврата ошибок и не порождают прерываний. В языке Ада прикладная программа должна гарантировать, что индикаторы ошибок проверяются до попыток обращения к другим параметрам, так как некоторые реализации Ады не порождают прерываний, если обнаружено неопределенное значение.
Требования ЯГС по обработке ошибок можно выразить следующим образом.
1. По умолчанию процедура, названная ERROR_HANDLING, будет обеспечивать простую регистрацию ошибок вызовом ERROR_LOGGING. Она вызывается из функций ЯГС, обнаруживших ошибку.
2. Процедура ERROR_HANDLING может быть заменена пользователем на другую.
Процедура ERROR_HANDLING задается, как библиотечная подпрограмма:
with GKS_TYPES;
use GKS_TYPES;
procedure ERROR_HANDLING (ERROR_INDICATOR
: in ERROR_NUMBER; | |||
GKS_FUNCTION : in STRING; | |||
ERROR_FILE : in STRING | |||
: =DEFAULT_ERROR_FILE); |
Процедура ERROR_HANDLING определяется как библиотечная процедура и не декларируется внутри пакета ЯГС.
Данная связь определяет два различных тела для этой программы; каждое должно быть представлено реализацией. Тело по умолчанию - это одна из требуемых ЯГС семантических конструкций. Это просто вызов ERROR_LOGGING и возврат. Функция ЯГС должна быть написана так, чтобы она не поддерживала GKS_ERROR (это требование реализации). Таким образом, в соответствии с правилами языка Ада прерывание распространяется назад к прикладной программе, вызвавшей функцию GKS, в которой обнаружилась ошибка.
Смысл пользовательской замены тела, применяемого по умолчанию, на версию, порождающую прерывание, зависит от менеджера библиотеки Ады. Некоторые реализации поддерживают множество версий тела с одной спецификацией или допускают применение иерархических библиотек с разделением общих блоков. В других реализациях может оказаться необходимым дублировать библиотеку семантических конструкций для каждой версий ERROR HALDING.
Ошибки GKS отображаются в одно прерывание GKS_ERROR, декларированное в пакете GKS. Предполагаемый стиль в обработке ошибок с использованием прерываний состоит в том, чтобы обеспечить обработчик для прерываний GKS_ERROR.
3.2.4. Отображение данных
Простые и составные типы данных ЯГС связываются с различными скалярными и составными типами языка Ада. Ограничения на допустимые значения отображаются, где это возможно, в определениях типов. Общее соотношение между типами данных ЯГС и типами данных Ады следующее:
целые ЯГС отображаются в целые типы Ады;
действительные ЯГС отображаются в типы с плавающей запятой Ады;
строки ЯГС отображаются в тип STRING Ады или в тип, предназначенный для строк переменной длины;
указатели ЯГС отображаются в типы записи Ады;
имена ЯГС отображаются в дискретный тип Ады;
нумерация ЯГС отображается в тип нумерации Ады;
вектора ЯГС отображаются в тип записи Ады;
матрицы (matrix) ЯГС отображаются в типы массив (array) Ады;
списки ЯГС из элементов конкретного типа отображаются в приватный тип Ады, декларированный в общем пакете GKS_LIST_UTILITIES;
массивы ЯГС отображаются либо в тип неограниченной матрицы, либо в тип записи, предоставляемый для массивов переменной длины;
упорядоченные пары ЯГС отображаются в типы записей Ады;
записи данных ЯГС отображаются в приватные типы Ады.
В некоторых случаях набор подпрограмм для обработки записей данных явно определяется данным стандартом. Реализация ЯГС может предоставить другие подпрограммы для манипулирования зависящими от реализации данными.
3.2.5. Многозадачность
В определении языка Ада дается явная поддержка параллельности. Модель организации прохождения задачи включает средства для декларирования и выделения задачи и операции, допускающие межзадачную связь и синхронизацию.
Стандарт ЯГС не требует и не запрещает в реализации защиту от проблем, которые могут возникнуть при асинхронном доступе к структурам данных ЯГС из параллельных задач. В пользовательской документации по реализации ЯГС должна содержаться информация о том, введена ли защита от таких проблем.
Приложение Д представляет собой пособие для тех, кто хочет, чтобы поддерживались многозадачные прикладные программы. Приложение не является составной частью стандарта, а предоставляет дополнительную информацию.
3.2.6. Пакетирование
Стандарт ЯГС определяет девять уровней графической функциональности, где уровень 0а является низшим, а 2с - высшим уровнем. В реализации ЯГС можно сделать систему единой, а можно реализовать каждый уровень отдельно. Для поддержки этой концепции данный стандарт определяет девять пакетов Ады, которые соответствуют каждому уровню ЯГС. Каждый из этих пакетов именуется package GKS is ... end GKS, чтобы обеспечить переносимость прикладных программ для уровней ЯГС. Однако содержимое пакетов различается в зависимости от уровня ЯГС, который они реализуют. Каждый из этих пакетов предоставляет подпрограммы, определенные для их уровней и все подпрограммы, заданные в нижних уровнях, как определено в п.5.1. С каждым из этих пакетов связаны пакеты типов данных, которые обеспечивают декларации типов для соответствующего уровня, как определено в п.4.2, а ЯГС определяет прерывания, приведенные в п.4.3.1. Данные пакеты именуются package GKS_TYPES is ... end GKS_TYPES.
Средства библиотек программ Ады следует использовать для обеспечения отделения уровней. Так графические прикладные программы на Аде, которые используют ЯГС, должны включать соответствующие пакеты ЯГС, которые предоставляют подпрограмму, типы и прерывания для данного уровня компилированием и включением соответствующей библиотеки Ады, которая содержит данный уровень ЯГС. Например, прикладная программа, которая использует уровень 0а, могла бы выглядеть следующим образом:
with GKS;
use GKS_TYPES;
procedure APPLICATION is
begin
null;
end APPLICATION.
Далее программа компилируется и связывается с библиотекой программ Ады, которая соответствует уровню 0а.
Данный стандарт определяет и ряд дополнительных блоков Ады. Ими являются общие пакеты:
GKS_COORDINATE_SYSTEM;
GKS_LIST_UTILITIES.
Эти общие пакеты поддерживают типы деклараций в пакете GKS_TYPE, описанном выше. GKS_COORDINATE_SYSTEM представляет собой общий пакет, в котором определен ассортимент типов для поддержания каждой координатной системы ЯГС. GKS_LIST_UTILITIES является также общим пакетом, который предоставляет декларации списков и операции для типов списков, которые соответствуют типам списков ЯГС.
3.2.7. Среда прикладных программ
Прикладная программа, применяющая реализацию ЯГС в языке Ада, должна будет знать среду, в которой находятся и ЯГС и прикладная программа.
Одним таким интерфейсом является библиотека программ Ады. Язык Ада требует, чтобы прикладная программа имела доступ к библиотеке программ, в которой размещается программное обеспечение ЯГС. Справочное руководство по языку Ада ИСО 8652 не определяет, должна быть одна библиотека или их может быть много, как предоставляется доступ к библиотеке и так далее. Пользовательская документация по реализации ЯГС должна содержать информацию о том, где в системе находится библиотека ЯГС и как осуществляется к ней доступ.
Интерфейсы ввода/вывода также являются зависящими от реализации и требуют описания в пользовательской документации. Должны быть включены в документацию интерфейсы с файловой системой. Особенно это относится к интерфейсу с файлом ошибок ЯГС, а также к памяти метафайла.
3.2.8. Регистрация*
________________
* В соответствии с правилами назначения и работы Органов регистрации в директивах ИСО Совет ИСО для этой части (ИСО 8651) назначил Национальное бюро стандартов (Научно-производственный институт ЭВМ) как орган регистрации А266 Technology Building, Gaithersburg, MD, 20899, USA.
Стандарт ЯГС резервирует различные области величин для регистрации в качестве графических элементов. Зарегистрированные графические элементы будут встроены в Аду (и другие языки программирования). Зарегистрированные встроенные элементы будут согласовываться со связыванием, представленным в данном документе.
4. ТАБЛИЦЫ
4.1. Процедуры
Таблица 1
Сокращения, используемые в именах процедур
ASF | Флаг выборки атрибутов |
CHAR | Литера |
ESC | Расширение (escape) |
GDP | Обобщенный примитив вывода |
GKS | Ядро графической системы |
GKSM | Метафайл ядра графической системы |
ID | Идентификатор |
INQ | Справочная функция |
MAX | Максимум |
UGDP | Незарегистрированный обобщенный примитив вывода |
UESC | Незарегистрированное расширение |
WS | Станция |
Таблица 2
Список процедур, использующих сокращения
ASF | |
INQ_LIST_OF_ASF | |
CHAR | |
INQ_CHAR_BASE_VECTOR SET_CHAR_EXPANSION_FACTOR SET_CHAR_UP_VECTOR | |
ESC | |
ESC | |
GDP | |
GDP | |
GKS | |
CLOSE_GKS | |
GKSM | |
GET_ITEM_TYPE_FROM_GKSM | |
ID | |
INQ_CURRENT_PICK_ID_VALUE | |
IND | |
INQ_CHAR_BASE_VECTOR INQ_POLYMARKER_TYPE INQ_WS_TRANSFORMATION | |
MAX | |
INQ_MAX_LENGTH_OF_WS_STATE_TABLES | |
WS | |
ACTIVATE_WS INQ_SET_OF_OPEN_WS |
Таблица 3
Функции ЯГС и имена соответствующих процедур в Аде
Имя в Аде | Функция ЯГС |
ACCUMULATE_TRANSFORMATION_MATRIX | ВЫЧИСЛИТЬ РЕЗУЛЬТИРУЮЩУЮ МАТРИЦУ ПРЕОБРАЗОВАНИЙ |
ACTIVATE_WS | АКТИВИРОВАТЬ СТАНЦИЮ |
ASSOCIATE_SEGMENT_WITH_WS | СВЯЗАТЬ СЕГМЕНТ СО СТАНЦИЕЙ |
AWAIT_EVENT | ОЖИДАТЬ СОБЫТИЕ |
CELL_ARRAY | МАТРИЦА ЯЧЕЕК |
CLEAR_WS | ОЧИСТИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ |
CLOSE_GKS | ЗАКРЫТЬ ЯГС |
CLOSE_SEGMENT | ЗАКРЫТЬ СЕГМЕНТ |
CLOSE_WS | ЗАКРЫТЬ СТАНЦИЮ |
COPY_SEGMENT_TO_WS | ВЫВЕСТИ КОПИЮ СЕГМЕНТА НА СТАНЦИЮ |
CREATE_SEGMENT | СОЗДАТЬ СЕГМЕНТ |
DEACTIVATE_WS | ДЕАКТИВИРОВАТЬ СТАНЦИЮ |
DELETE_SEGMENT | УНИЧТОЖИТЬ СЕГМЕНТ |
DELETE_SEGMENT_FROM_WS | УДАЛИТЬ СЕГМЕНТ СО СТАНЦИИ |
EMERGENCY_CLOSE_GKS | АВАРИЙНО ЗАКРЫТЬ ЯГС |
ERROR_HANDLING | ОБРАБОТАТЬ ОШИБКУ |
ERROR_LOGGING | ЗАРЕГИСТРИРОВАТЬ ОШИБКУ |
ESCAPE | РАСШИРЕНИЕ |
EVALUATE_TRANSFORMATION_MATRIX | СФОРМИРОВАТЬ МАТРИЦУ ПРЕОБРАЗОВАНИЙ |
FILL_AREA | ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ |
FLUSH_DEVICE_EVENTS | УДАЛИТЬ СОБЫТИЯ ОТ УСТРОЙСТВА |
GDP | ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) |
GET_CHOICE | ПОЛУЧИТЬ АЛЬТЕРНАТИВУ |
GET_ITEM_TYPE_FROM_GKSM | ПОЛУЧИТЬ ТИП ЗАПИСИ ИЗ ЯГС |
GET_LOCATOR | ПОЛУЧИТЬ ПОЗИЦИЮ |
GET_PICK | ПОЛУЧИТЬ УКАЗАТЕЛЬ |
GET_STRING | ПОЛУЧИТЬ СТРОКУ |
GET_STROKE | ПОЛУЧИТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ ПОЗИЦИЙ |
GET_VALUATOR | ПОЛУЧИТЬ ЧИСЛО |
INITIALISE_CHOICE | ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВЫБОРА |
INITIALISE_LOCATOR | ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОЗИЦИИ |
INITIALISE_PICK | ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО УКАЗАНИЯ |
INITIALISE_STRING | ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА СТРОКИ |
INITIALISE_STROKE | ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ |
INITIALISE_VALUATOR | ИНИЦИАЛИЗИРОВАТЬ УСТРОЙСТВО ВВОДА ЧИСЛА |
INQ_CHOICE_DEVICE_STATE | УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВЫБОРА |
INQ_CLIPPING | УЗНАТЬ ЗНАЧЕНИЯ ОТСЕЧЕНИЯ |
INQ_COLOUR_FACILITIES | УЗНАТЬ ВОМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЦВЕТА |
INQ_COLOR_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА |
INQ_CURRENT_INDIVIDUAL_ATTRIBUTE_VALUES | УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ ИНДИВИДУАЛЬНЫХ АТРИБУТОВ |
Функция ЯГС "Узнать значение текущего индивидуального атрибута" отображается в следующие функции:
INQ_CHAR_EXPANSION_FACTOR
INQ_CHAR_SPACING
INQ_FILL_AREA_COLOUR_INDEX
INQ_FILL_AREA_INTERIOR_STYLE
INQ_LINETYPE
INQ_LINEWIDTH_SCALE_FACTOR
INQ_LIST_OF_ASF
INQ_POLYLINE_COLOUR_INDEX
INQ_POLYMARKER_COLOUR_INDEX
INQ_POLYMARKER_SIZE_SCALE_FACTOR
INQ_POLYMARKER_TYPE
INQ_TEXT_COLOUR_INDEX
INQ_TEXT_FONT_AND_PRECISION
INQ_CURRENT_NORMALIZATION_TRANSFORMATION_ | УЗНАТЬ НОМЕР ТЕКУЩЕГО ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ | |
INQ_CURRENT_PICK_ID_VALUE | УЗНАТЬ ЗНАЧЕНИЕ ИДЕНТИФИКАТОРА УКАЗАНИЯ | |
INQ_CURRENT_PRIMITIVE_ATTRIBUTE_VALUES | УЗНАТЬ ТЕКУЩИЕ ЗНАЧЕНИЯ АТРИБУТОВ ПРИМИТИВОВ |
Функция ЯГС "Узнать текущие значения атрибутов примитивов" отображается в следующие функции:
INQ_CHAR_BASE_VECTOR
INQ_CHAR_HEIGHT
INQ_CHAR_WIDTH
INQ_CHAR_UP_VECTOR
INQ_FILL_AREA_INDEX
INQ_PATTERN_HEIGHT_VECTOR
INQ_PATTERN_REFERENCE_POINT
INQ_PATTERN_WIDTH_VECTOR
INQ_POLYLINE_INDEX
INQ_POLYMARKER_INDEX
INQ_TEXT_ALIGNMENT
INQ_TEXT_INDEX
INQ_TEXT_PATH
Продолжение табл.3
Имя в Аде | Функция ЯГС |
INQ_DEFAULT_CHOICE_DEVICE_DATA | УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВЫБОРА |
INQ_DEFAULT_DEFERRAL_STATE_VALUES | УЗНАТЬ РЕЖИМ ЗАДЕРЖКИ ПО УМОЛЧАНИЮ |
INQ_DEFAULT_LOCATOR_DEVICE_DATA | УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОЗИЦИИ |
INQ_DEFAULT_PICK_DEVICE_DATA | УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА УКАЗАНИЯ |
INQ_DEFAULT_STRING_DEVICE_DATA | УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА СТРОКИ |
INQ_DEFAULT_STROKE_DEVICE_DATA | УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ |
INQ_DEFAULT_VALUATOR_DEVICE_DATA | УЗНАТЬ ХАРАКТЕРИСТИКИ ПО УМОЛЧАНИЮ УСТРОЙСТВА ВВОДА ЧИСЛА |
INQ_DISPLAY_SPACE_SIZE | УЗНАТЬ РАЗМЕР НОСИТЕЛЯ ИЗОБРАЖЕНИЯ |
INQ_DYNAMIC_MODIFICATION_OF_SEGMENT_ | УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОЙ МОДИФИКАЦИИ АТРИБУТОВ СЕГМЕНТОВ |
INQ_DYNAMIC_MODIFICATION_OF_WS_ | УЗНАТЬ СПОСОБ ДИНАМИЧЕСКОГО ОБНОВЛЕНИЯ ХАРАКТЕРИСТИК ИЗОБРАЖЕНИЯ НА СТАНЦИИ |
INQ_FILL_AREA_FACILITIES | УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
INQ_FILL_AREA_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
INQ_GDP | УЗНАТЬ ХАРАКТЕРИСТИКИ ОБОБЩЕННОГО ПРИМИТИВА ВЫВОДА |
INQ_INPUT_QUEUE_OVERFLOW | УЗНАТЬ НАЛИЧИЕ ПЕРЕПОЛНЕНИЯ ОЧЕРЕДИ СОБЫТИЙ |
INQ_LEVEL_OF_GKS | УЗНАТЬ УРОВЕНЬ ЯГС |
INQ_LIST_OF_AVAILABLE_GDP | УЗНАТЬ ИДЕНТИФИКАТОРЫ ДОСТУПНЫХ ОБОБЩЕННЫХ ПРИМИТИВОВ ВЫВОДА |
INQ_LIST_OF_AVAILABLE_WS_TYPES | УЗНАТЬ ДОСТУПНЫЕ ТИПЫ СТАНЦИЙ |
INQ_LIST_OF_COLOUR_INDICES | УЗНАТЬ ИНДЕКС ЦВЕТА |
INQ_LIST_OF_FILL_AREA_INDICES | УЗНАТЬ ИНДЕКСЫ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
INQ_LIST_OF_NORMALIZATION_ | УЗНАТЬ СПИСОК ПРЕОБРАЗОВАНИЙ НОРМИРОВАНИЯ |
INQ_LIST_OF_PATTERN_INDICES | УЗНАТЬ ИНДЕКСЫ ШАБЛОНА |
INQ_LIST_OF_POLYINE_INDICES | УЗНАТЬ ИНДЕКСЫ ЛОМАНОЙ |
INQ_LIST_OF_POLYMARKER_INDICES | УЗНАТЬ ИНДЕКСЫ ПОЛИМАРКЕРА |
INQ_LIST_OF_TEXT_INDICES | УЗНАТЬ ИНДЕКСЫ ТЕКСТА |
INQ_LOCATOR_DEVICE_STATE | УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОЗИЦИИ |
INQ_MAX_LENGTH_OF_WS_STATE_TABLES | УЗНАТЬ ДЛИНУ ТАБЛИЦ, ХАРАКТЕРИЗУЮЩИХ СТАНЦИЮ |
INQ_MAX_NORMALIZATION_TRANSFORMATION_ | УЗНАТЬ МАКСИМАЛЬНЫЙ НОМЕР ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ |
INQ_MORE_SIMULTANEOUS_EVENTS | УЗНАТЬ НАЛИЧИЕ ОДНОВРЕМЕННЫХ СОБЫТИЙ |
INQ_NAME_OF_OPEN_SEGMENT | УЗНАТЬ ИМЯ ОТКРЫТОГО СЕГМЕНТА |
INQ_NORMATIZATION_TRANSFORMATION | УЗНАТЬ ПРЕОБРАЗОВАНИЯ НОРМИРОВАНИЯ |
INQ_NUMBER_OF_AVAILABLE_LOGICAL_INPUT_ | УЗНАТЬ ЧИСЛО ДОПУСТИМЫХ УСТРОЙСТВ ВВОДА |
INQ_NUMBER_OF_SEGMENT_PRIORITIES_ | УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО ПРИОРИТЕТОВ СЕГМЕНТОВ |
INQ_OPERATING_STATE_VALUE | УЗНАТЬ ФУНКЦИОНАЛЬНОЕ СОСТОЯНИЕ |
INQ_PATTERN_FACILITIES | УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ШАБЛОНА |
INQ_PATTERN_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА |
INQ_PICK_DEVICE_STATE | УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА УКАЗАНИЯ |
INQ_PIXEL | УЗНАТЬ ЦВЕТ ПИКСЕЛЯ |
INQ_PIXEL_ARRAY | УЗНАТЬ МАТРИЦУ ПИКСЕЛЕЙ |
INQ_PIXEL_ARRAY_DIMENSION | УЗНАТЬ РАЗМЕРНОСТЬ МАТРИЦЫ ПИКСЕЛЕЙ |
INQ_POLYLINE_FACTILITIES | УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ЛОМАНОЙ |
INQ_POLYLINE_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ |
INQ_POLYMARKER_FACILITIES | УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ПОЛИМАРКЕРА |
INQ_POLYMARKER_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА |
INQ_PREDEFINED_COLOUR_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА ПО УМОЛЧАНИЮ |
INQ_PREDEFINED_FILL_AREA_ | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ПО УМОЛЧАНИЮ |
INQ_PREDEFINED_PATTERN_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА ПО УМОЛЧАНИЮ |
INQ_PREDEFINED_POLYLINE_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ ПО УМОЛЧАНИЮ |
INQ_PREDEFINED_POLYMARKER_ | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА ПО УМОЛЧАНИЮ |
INQ_PREDEFINED_TEXT_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА ПО УМОЛЧАНИЮ |
INQ_SEGMENT_ATTRIBUTES | УЗНАТЬ АТРИБУТЫ СЕГМЕНТА |
INQ_SET_OF_ACTIVE_WS | УЗНАТЬ НАБОР АКТИВНЫХ СТАНЦИЙ |
INQ_SET_OF_ASSOCIATED_WS | УЗНАТЬ СТАНЦИИ, СВЯЗАННЫЕ С СЕГМЕНТОМ |
INQ_SET_OF_OPEN_WS | УЗНАТЬ НАБОР ОТКРЫТЫХ СТАНЦИЙ |
INQ_SET_OF_SEGMENT_NAMES_IN_USE | УЗНАТЬ ИМЕНА СУЩЕСТВУЮЩИХ СЕГМЕНТОВ |
INQ_SET_SEGMENT_NAMES_ON_WS | УЗНАТЬ ИМЕНА СЕГМЕНТОВ, ХРАНИМЫХ НА СТАНЦИИ |
INQ_STRING_DEVICE_STATE | УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА СТРОКИ |
INQ_STROKE_DEVICE_STATE | УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ |
INQ_TEXT_EXTENT | УЗНАТЬ ГАБАРИТЫ ТЕКСТА |
INQ_TEXT_FACILITIES | УЗНАТЬ ВОЗМОЖНОСТИ ПРЕДСТАВЛЕНИЯ ТЕКСТА |
INQ_TEXT_REPRESENTATION | УЗНАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА |
INQ_VALUATOR_DEVICE_STATE | УЗНАТЬ СОСТОЯНИЕ УСТРОЙСТВА ВВОДА ЧИСЛА |
INQ_WS_CATEGORY | УЗНАТЬ КАТЕГОРИЮ СТАНЦИИ |
INQ_WS_CLASSIFICATION | УЗНАТЬ КЛАСС СТАНЦИИ |
INQ_WS_CONNECTION_AND_TYPE | УЗНАТЬ ТИП И ИДЕНТИФИКАТОР СВЯЗИ СТАНЦИИ |
INQ_WS_DEFERRAL_AND_UPDATE_STATES | УЗНАТЬ РЕЖИМЫ ЗАДЕРЖКИ И ОБНОВЛЕНИЯ СТАНЦИИ |
INQ_WS_MAX_NUMBERS | УЗНАТЬ ДОПУСТИМОЕ ЧИСЛО СТАНЦИЙ |
INQ_WS_STATE | УЗНАТЬ СОСТОЯНИЕ СТАНЦИИ |
INQ_WS_TRANSFORMATION | УЗНАТЬ ПРЕОБРАЗОВАНИЕ СТАНЦИИ |
INSERT_SEGMENT | ВСТАВИТЬ СЕГМЕНТ |
INTERPRET_ITEM | ИНТЕРПРЕТИРОВАТЬ ЗАПИСЬ |
MESSAGE | СООБЩЕНИЕ |
OPEN_GKS | ОТКРЫТЬ ЯГС |
OPEN_WS | ОТКРЫТЬ СТАНЦИЮ |
POLYLINE | ЛОМАНАЯ |
POLYMARKER | ПОЛИМАРКЕР |
READ_ITEM_FROM_GKSM | ПРОЧИТАТЬ ЗАПИСЬ ИЗ ЯГС |
REDRAW_ALL_SEGMENTS_ON_WS | ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ |
RENAME_SEGMENT | ПЕРЕИМЕНОВАТЬ СЕГМЕНТ |
REQUEST_CHOICE | ЗАПРОСИТЬ УСТРОЙСТВО ВЫБОРА |
REQUEST_LOCATOR | ЗАПРОСИТЬ ВВОД ПОЗИЦИИ |
REQUEST_PICK | ЗАПРОСИТЬ УКАЗАНИЯ |
REQUEST_STRING | ЗАПРОСИТЬ ВВОД СТРОКИ |
REQUEST_STROKE | ЗАПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ |
REQUEST_VALUATOR | ЗАПРОСИТЬ ВВОД ЧИСЛА |
SAMPLE_CHOICE | ОПРОСИТЬ ВЫБОР |
SAMPLE_LOCATOR | ОПРОСИТЬ ВВОД ПОЗИЦИЙ |
SAMPLE_PICK | ОПРОСИТЬ УКАЗАНИЕ |
SAMPLE_STRING | ОПРОСИТЬ ВВОД СТРОКИ |
SAMPLE_STROKE | ОПРОСИТЬ ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ |
SAMPLE_VALUATOR | ОПРОСИТЬ ВВОД ЧИСЛА |
SELECT_NORMALIZATION_TRANSFORMATION | ВЫБРАТЬ ПРЕОБРАЗОВАНИЕ НОРМИРОВАНИЯ |
SET_ASF | ЗАДАТЬ ФЛАГИ ВЫБОРКИ АТРИБУТОВ |
SET_CHAR_EXPANSION_FACTOR | ЗАДАТЬ МАСШТАБ РАСШИРЕНИЯ ЛИТЕРЫ |
SET_CHAR_HEIGHT | ЗАДАТЬ ВЫСОТУ ЛИТЕР |
SET_CHAR_SPACING | ЗАДАТЬ МЕЖЛИТЕРНЫЙ ПРОСВЕТ |
SET_CHAR_UP_VECTOR | ЗАДАТЬ ВЕРТИКАЛЬ ЛИТЕРЫ |
SET_CHOICE_MODE | ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВЫБОРА |
SET_CLIPPING_INDICATOR | ЗАДАТЬ ИНДИКАТОР ОТСЕЧЕНИЯ |
SET_COLOUR_REPRESENTATION | ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЦВЕТА |
SET_DEFERRAL_STATE | ЗАДАТЬ РЕЖИМ ЗАДЕРЖКИ |
SET_DETECTABILITY | ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ |
SET_FILL_AREA_COLOUR_INDEX | ЗАДАТЬ ИНДЕКС ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
SET_FILL_AREA_INDEX | ЗАДАТЬ ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
SET_FILL_AREA_INTERIOR_STYLE | ЗАДАТЬ ВИД ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
SET_FILL_AREA_REPRESENTATION | ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
SET_FILL_AREA_STYLE_INDEX | ЗАДАТЬ ИНДЕКС ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ |
SET_HIGHLIGHTING | ЗАДАТЬ ВЫДЕЛЕНИЕ |
SET_LINETYPE | ЗАДАТЬ ТИП ЛИНИЙ |
SET_LINEWIDTH_SCALE_FACTOR | ЗАДАТЬ МАСШТАБ ТОЛЩИНЫ ЛИНИИ |
SET_LOCATOR_MODE | ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОЗИЦИИ |
SET_MARKER_SIZE_SCALE_FACTOR | ЗАДАТЬ МАСШТАБ МАРКЕРА |
SET_MARKER_TYPE | ЗАДАТЬ ТИП МАРКЕРА |
SET_PATTERN_REFERENCE_POINT | ЗАДАТЬ ТОЧКУ ПРИВЯЗКИ ШАБЛОНА |
SET_PATTERN_REPRESENTATION | ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ШАБЛОНА |
SET_PATTERN_SIZE | ЗАДАТЬ РАЗМЕР ШАБЛОНА |
SET_PICK_ID | ЗАДАТЬ ИДЕНТИФИКАТОР УКАЗАНИЯ |
SET_PICK_MODE | ЗАДАТЬ РЕЖИМ УСТРОЙСТВА УКАЗАНИЯ |
SET_POLYLINE_COLOUR_INDEX | ЗАДАТЬ ИНДЕКС ЦВЕТА ЛОМАНОЙ |
SET_POLYLINE_INDEX | ЗАДАТЬ ИНДЕКС ЛОМАНОЙ |
SET_POLYLINE_REPRESENTATION | ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ |
SET_POLYMARKER_COLOUR_INDEX | ЗАДАТЬ ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА |
SET_POLYMARKER_INDEX | ЗАДАТЬ ИНДЕКС ПОЛИМАРКЕРА |
SET_POLYMARKER_REPRESENTATION | ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА |
SET_SEGMENT_PRIORITY | ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА |
SET_SEGMENT_TRANSFORMATION | ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА |
SET_STRING_MODE | ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА СТРОКИ |
SET_STROKE_MODE | ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ПОСЛЕДОВАТЕЛЬНОСТИ ПОЗИЦИЙ |
SET_TEXT_ALIGNMENT | ЗАДАТЬ ВЫРАВНИВАНИЕ ТЕКСТА |
SET_TEXT_COLOUR_INDEX | ЗАДАТЬ ИНДЕКС ЦВЕТА ТЕКСТА |
SET_TEXT_FONT_AND_PRECISION | ЗАДАТЬ ШРИФТ И ТОЧНОСТЬ ТЕКСТА |
SET_TEXT_INDEX | ЗАДАТЬ ИНДЕКС ТЕКСТА |
SET_TEXT_PATH | ЗАДАТЬ НАПРАВЛЕНИЕ ТЕКСТА |
SET_TEXT_REPRESENTATION | ЗАДАТЬ ПРЕДСТАВЛЕНИЕ ТЕКСТА |
SET_VALUATOR_MODE | ЗАДАТЬ РЕЖИМ УСТРОЙСТВА ВВОДА ЧИСЛА |
SET_VIEWPORT | ЗАДАТЬ ПОЛЕ ВЫВОДА |
SET_VIEWPORT_INPUT_PRIORITY | ЗАДАТЬ ПРИОРИТЕТ ПОЛЯ ВЫВОДА ПРИ ВВОДЕ |
SET_VISIBILITY | ЗАДАТЬ ВИДИМОСТЬ |
SET_WINDOW | ЗАДАТЬ ОКНО |
SET_WS_VIEWPORT | ЗАДАТЬ ПОЛЕ ВЫВОДА СТАНЦИИ |
SET_WS_WINDOW | ЗАДАТЬ ОКНО СТАНЦИИ |
TEXT | ТЕКСТ |
UPDATE_WS | ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ |
WRITE_ITEM_TO_GKSM | ЗАПИСЬ В МЕТАФАЙЛ |
Функции ЯГС, упорядоченные по алфавиту
Функции находятся в том же порядке, в котором перечислены имена процедур, соответствующие именам функций ЯГС. В табл.4 перечислены по алфавиту имена функций ЯГС.
Таблица 4
Список функций ЯГС по уровням и по алфавиту
Уровень 0а | |
ACTIVATE_WS | |
Функция ЯГС "Узнать значение текущего индивидуального атрибута" отображается в следующие функции: | |
INQ_CHAR_EXPANSION_FACTOR | |
Функция ЯГС "Узнать значение атрибута текущего примитива вывода" отображается в следующие функции: | |
INQ_POLYLINE_INDEX | |
Уровень 0b | |
INITIALISE_CHOICE REQUEST_STRING | |
Уровень 0с | |
AWAIT_EVENT | |
Уровень 1a | |
ACCUMULATE_TRANSFORMATION_MATRIX | |
Уровень 1b | |
INITIALISE_PICK | |
Уровень 1с | |
GET_PICK | |
Уровень 2с | |
ASSOCIATE_SEGMENT_WITH_WS | |
Уровень 2b | |
Отсутствуют | |
Уровень 2с | Отсутствуют |
4.2. Определение типов данных
4.2.1. Сокращения, используемые в определениях типов данных
ASF | Флаг выборки атрибутов | |||
CHAR | Литера | |||
DC | Координата устройства | |||
GDP | Обобщенный примитив вывода | |||
GKS | Ядро графической системы | |||
GKSM | Метафайл ядра графической системы | |||
ID | Идентификатор | |||
MAX | Максимум | |||
NDC | Нормализованные координаты устройства | |||
WC | Мировые координаты | |||
WS | Станция |
4.2.2. Определение типов в алфавитном порядке
В данном разделе в алфавитном порядке даются определения типов данных, используемые в связывании Ады с ЯГС. Каждая такая декларация задает уровень, на котором должна иметься декларация данных в реализации ЯГС данного уровня и любого более высокого уровня, в котором декларация типа впервые понадобится (аналогично функциям). Каждый декларируемый элемент также включает комментарий о типе и/или/ использовании типа. Некоторые декларации в определении типа содержат константы. Все эти декларации констант включены в пакет GKS_TYPE.
ASF | Уровень 0а | ||||
type ASF is (BUNDLED, INDIVIDUAL); | |||||
ASF_LIST | Уровень 0а | ||||
type ASF_LIST is | |||||
record | |||||
TYPE_OF_LINE_ASF | : ASF; | ||||
WIDTH_ASF | : ASF; | ||||
LINE_COLOUR_ASF | : ASF; | ||||
TYPE_OF_MARKER_ASF | : ASF; | ||||
SIZE_ASF | : ASF; | ||||
MARKER_COLOUR_ASF | : ASF; |