Введение

Язык сценариев

Протокол удаленного изображения и связанный с ним язык сценариев протокола удаленного изображения, RIPscrip, – это графический язык, предоставляющий систему для передачи векторной графики по каналам связи с низкой пропускной способностью, в частности, через модемы. Он был первоначально разработан Джеффом Ридером, Джимом Бергманом и Марком Хейтоном из TeleGrafix Communications в Хантингтон-Бич, Калифорния, для улучшения систем электронных досок объявлений (BBS) и других приложений. RIPscrip был представлен в 1992 году и состоял из текстовых описаний векторной графики и изображений в формате ASCII, а также средств для создания меню и интерактивных кнопок. Эти данные отправлялись из BBS вместо более распространенных экранов в текстовом режиме с кодировкой ANSI и интерпретировались на стороне пользователя терминальной программой с поддержкой RIP, такой как RIPTerm от TeleGrafix. Текст отображался на одном экране, а графика – на другом. RIPscrip нельзя было использовать в качестве основы для полноценного графического интерфейса, поскольку в нем отсутствовала система редактирования текста. RIPscript 1.5x представлял собой текстовую оболочку для Borland Graphics Interface (BGI). Все графические примитивы опирались на BGI, а шрифты ограничивались теми, что предоставлялись BGI (*.CHR). Формат файла иконок RIPscrip (.ICN) соответствовал функциям getImage и putImage в BGI. Многие считали включение функции заливки BGI ошибкой, поскольку сторонние реализации протокола RIPscrip часто не могли реализовать кривые Безье так же, как Telegrafix, что приводило к выходу заливки за пределы целевого объекта и заполнению всего экрана. Telegrafix никогда не публиковал свой алгоритм Безье или полную спецификацию RIPscrip, что вынуждало разработчиков, желающих реализовать RIPscrip, приобретать дорогостоящий комплект разработчика Telegrafix, содержащий предварительно скомпилированные DLL-файлы для оболочки BGI. Ранние версии RIPscrip были тесно связаны со стандартом EGA 640x350 и имели ярко выраженный стиль MS-DOS. Более поздние версии обеспечивали некоторую независимость от разрешения, расширенные цветовые палитры и возможность работы через telnet для доступа к Интернету. К этому времени широкая доступность World Wide Web привела к быстрому снижению интереса к системам электронных досок объявлений, что в конечном итоге привело к прекращению разработки RIPscrip и деятельности компании. Хотя RIPscrip 2.0 был выпущен, а 3.0 планировался, наиболее распространенной версией RIPscrip, используемой на практике, была серия 1.5x. Современные векторные графические стандарты, такие как Adobe Flash и SVG, имеют некоторые сходства с RIPscrip.

Описание

RIPscrip – это простой язык описания страниц, похожий по концепции на PostScript или HPGL. Графический вывод описывается серией текстовых инструкций, которые были значительно оптимизированы в RIPscrip, чтобы быть как можно более короткими и экономить время передачи. Терминал, поддерживающий RIPscrip, отслеживает строки, начинающиеся со специального управляющего символа RIPscrip, и интерпретирует следующие инструкции, передавая неэкранированные строки на экран вывода текста. RIPscrip использовал отдельные текстовый и графический дисплеи, по одному для каждого, и хотя он мог выводить текст на графический экран, скорость этого была слишком низкой для общего вывода текста или редактирования. Обычно система, использующая RIPscrip, применяла графический экран для отображения меню, а обычное редактирование и ввод осуществлялись на текстовом экране. RIPscrip обычно не использовался для создания традиционного графического интерфейса с несколькими окнами или редактированием текста с помощью мыши. Управляющий символ RIPscrip – восклицательный знак (!). Команды RIPscrip всегда начинались с вертикальной черты (|), за которой следовала одна буква команды. В более поздних версиях между вертикальной чертой и буквой команды могли добавляться цифры, указывающие версию RIPscrip, необходимую для интерпретации команды, что позволяло старым терминалам быстро отфильтровывать неподдерживаемые функции. Типичная команда в файле RIPscrip – установка размера и положения окна вывода текста, например, !|w00001B0M10, где "w" – команда "window" (окно), за которой следует ряд цифр, определяющих его местоположение и размер. Команды RIPscrip можно было объединять в одной строке для компактности. Например, !|v00001B0M10|E|c02|Thello world настраивает стандартное графическое окно просмотра (viewport) с помощью "v", стирает существующее изображение с помощью "E" (избыточно, так как окно только что было сброшено), устанавливает цвет на зеленый с помощью "c", а затем выводит текст "Hello world" с помощью "T". Более сложные рисунки обычно строились из серии объединенных команд, каждая из которых представляла часть общего рисунка, разбивая его на логические группы. Помимо базовой графики, такой как линии и окружности, RIPscrip также включал команды для интерактивных объектов, в частности кнопок. Команда "U" рисовала кнопку на дисплее в указанном месте с необязательной иконкой, горячей клавишей и меткой. При нажатии кнопки мышью или горячей клавишей последний параметр – строка команд хоста – отправлялся обратно на сервер. Таким образом, автор RIPscrip мог создавать графические меню для команд системы, например, меню, отображающее список всех доступных форумов, отправляя текст "FPA" (форумы, публичные, все). Эти строки различались для каждого программного обеспечения хоста и часто отличались от системы к системе.