Глава 9 видеодоступ 2 графический режим

Содержание

Графический режим

В графическом режиме имеется возможность индивидуального управления свечением каждой точки экрана независимо от остальных. Обозначение этого режима следующее:

G r (Graphics) графический;

APA (All Points Addressable) все точки адресуемы.

В графическом режиме каждой точке экрана — пикселю — соответствует ячейка специальной памяти, которая читается схемами адаптера синхронно с движением луча монитора. Процесс постоянного чтения видео памяти называется регенерацией изображения.

Количество бит памяти, отводимое на каждый пиксел, определяет возможное состояние цветов пиксела, его яркость, мерцание и др. Например, при 1 бите на пиксел возможно только 2 состояния6 светится или не светится пиксел.

При 2 битах на пиксел — 4 цвета на экране;

при 4 битах на пиксел — 16 цветов на экране;

при 8 битах на пиксел — 256 цветов на экране — цветная фотография;

В настоящее время имеем 15 или 16 бит на пиксел (режим High Color), что соответствует 65 536 цветов, а при 24 битах на пиксел (режим Tru Color) соответствует 16,7 миллиона цветов.

При 15 или 24 битах на пиксел распределение между базисными цветами К:З:С равномерное, при 16 битах — не равномерное с учетом восприятия цветов ( 5:6:5 или 6:6:4).

Принципы организации видеопамяти.

Логически видеопамять может быть организована по-разному, в зависимости от количества бит на пиксел.

В случае одного или двух бит на пиксел каждый байт памяти соответствует восьми или четырем соседним пикселам строки (рис. 3.3, а, б). При сканировании ячейка считывается в регистр сдвига, из которого информация о соседних точках последовательно поступает на выходные цепи адаптера. Такой способ отображения называется линейным — линейной последовательности пикселов соответствует линейная последовательность бит (или групп бит) видеопамяти.

В адаптере EGA количество бит на пиксел увеличили до четырех и видеопамять разбили на четыре области-слоя, называемых также и цветовыми плоскостями (рис. 3.4). В каждом слое используется линейная организация, где каждый байт содержит по одному биту восьми соседних пикселов. Слои считываются в сдвиговые регистры одновременно, в результате параллельно формируются по четыре бита на каждый пиксел. Такое решение (а именно параллельное считывание слоев) позволяет снизить частоту считывания ячеек памяти — одна операция чтения производится за время прохода лучом восьми пикселов. Снижение частоты считывания ограничивается быстродействием памяти. Ячейки слоев, отвечающие за одни и те же пикселы, имеют совпадающий адрес. Это позволяет производить параллельную запись информации сразу в несколько цветовых плоскостей (запись для каждого слоя разрешается индивидуально), что также экономит время. Считывание со стороны магистрали, конечно, возможно только послойное.

Рис. 3.3, а. Линейное отображение групп памяти 1 бит на пиксел.

Рис.3.3,б. Линейное отображение групп памяти 2 бит на пиксел.

Рис. 3.4. Многослойное отображение пикселов памяти

Таким образом, объем видеопамяти (в битах) V, требуемый для хранения образа экрана, определяется, как произведение количества пикселов p в строке на количество строк n и на количество бит на пиксел b.

Так, для режима HGC 720 х 350 с одним битом на точку он составляет 252 000 бит или около 31 Кбайт, а 800 х 600 х 256 цветов — 480 000 бит или около 469 Кбайт.

Если физический объем видеопамяти превышает объем, необходимый для отображения матрицы всего экрана, видеопамять можно разбить на страницы. Страница — это область видеопамяти, в которой умещается образ целого экрана. При многостраничной организации видеопамяти только одна из них может быть активной — отображаемой на экран. Этим страницы принципиально отличаются от слоев, которые отображаются одновременно.

Формирование битовой карты изображения в видеопамяти графического адаптера производится под управлением программы, исполняемой центральным процессором. Сама по себе задача формирования процессору вполне по силам, но при ее решении требуется пересылка большого объема информации в видеопамять, а для многих построений еще и чтение видеопамяти со стороны процессора. При этом, канал связи процессора с видеопамятью представляет собой узкое горлышко, через которое пытаются протолкнуть немалый поток данных, причем чем более высокое разрешение экрана и чем больше цветов (бит на пиксел), тем этот поток интенсивнее. Для решения вопроса обмена информацией необходимо:

  • 1. Повышение быстродействия памяти.
  • 2. Расширение разрядности шин графического адаптера, причем как внутренней (шины видеопамяти), так и интерфейсной.
  • 3. Повышение скорости видеопостроений с помощью кэширования видеопамяти или затенением видеопамяти, что, по сути, почти одно и то же. В этом случае при записи в область видеопамяти данные будут записаны как в видеопамять, так и в ОЗУ (или даже в кэш), а при считывании из этой области обращение будет только к быстродействующему ОЗУ.
  • 4. Принципиальное сокращение объема информации, передаваемой графическому адаптеру за счет наделения адаптера своим «интеллектом», т.е. процессором.

В современном компьютере используются все эти решения, причем необходимо чтобы разрядность шин видеоадаптера полностью совпадала бы с разрядностью видеопамяти. Иначе получается не эффективное использование одного или другого.

Особенности работы видеоадаптера.

К основным типам команд «интеллектуального» видео адаптера относятся:

  • — Команды рисования (Drawing Commands) обеспечивают построение графических примитивов — точки, отрезка прямой, прямоугольника, дуги, эллипса. Примитивы такого типа в командах описываются в векторном виде, что гораздо компактнее, чем их растровый образ. Таким образом, удается значительно сократить объем передаваемой графической информации за счет применения более эффективного способа описания изображений. К командам рисования относится и заливка замкнутого контура, заданного в растровом виде, некоторым цветом или узором (pattern). Она ускоряется особенно эффективно: при программной реализации процессор должен просмотреть содержимое видеопамяти вокруг заданной точки, двигаясь по всем направлениям до обнаружения границы контура и изменяя цвет пикселов на своем пути.
  • — Копирование блока с одного места экрана на другое применяется для «прокрутки» изображения экрана в разных направлениях. Эта команда сводится к пересылке блока бит — BitBIT (Bit Block Transferring), и эта операция интеллектуальным адаптером может быть сильно ускорена.

Аппаратная поддержка окон (Hardware Windowing) упрощает и ускоряет работу с экраном в многозадачных (многооконных) системах. На традиционном графическом адаптере при наличии нескольких, возможно, перекрывающих друг друга окон программе приходится отслеживать координаты обрабатываемых точек с тем, чтобы не выйти за пределы своего окна. Аппаратная поддержка окон упрощает вывод изображений: каждой задаче выделяется свое окно — область видеопамяти требуемого размера, в котором она работает монопольно. Взаимное расположение окон сообщается интеллектуальному адаптеру, и он для регенерации изображения синхронно с движением луча по растру сканирует видеопамять не линейно, а перескакивая с области памяти одного окна на другое.

Если объем видеопамяти превышает необходимый для данного формата экрана и глубины цветов, то в ней можно строить изображение, превышающее по размеру отображаемую часть. Интеллектуальному адаптеру можно поручить панорамирование (Panning) — отображение заданной области. При этом горизонтальная и вертикальная прокрутка изображения не потребует операций блочных пересылок — для перемещения достаточно лишь изменить указатель положения.

Вышеописанные функции интеллектуального адаптера относятся к двумерной графике (2D).

Трехмерное изображение должно состоять из ряда поверхностей различной формы. Эти поверхности «собираются» из отдельных элементов-полигонов, чаще треугольников, каждый из которых имеет трехмерные координаты вершин и описание поверхности (цвет, узор). Перемещение объектов приводит к необходимости пересчета всех координат.

Ускорение построений в интеллектуальном адаптере обеспечивается несколькими факторами:

Во-первых, это сокращение объема передачи по магистрали.

Во-вторых, во время работы процессора адаптера центральный процессор свободен, что ускоряет работу программ даже в однозадачном режиме.

В-третьих, процессор адаптера ориентирован на выполнение меньшего количества инструкций, а потому способен выполнять их гораздо быстрее центрального.

В-четвертых, скорость обмена данных внутри адаптера может повышаться за счет лучшего согласования обращений к видеопамяти для операций построения с процессом регенерации изображения, а также за счет расширения разрядности внутренней шины данных адаптера.

Современные адаптеры с ЗD-акселераторами (самые критичные к производительности памяти) строятся на памяти SGRAM (SDRAM) со 128-разрядной шиной, а в самых мощных применяется память с удвоенной частотой передачи DDR SGRAM/SDRAM.

Для построения сложных трехмерных изображений графическому акселератору будет явно тесно в ограниченном объеме видеопамяти. Для обеспечения доступа к основной памяти компьютера он должен иметь возможность управления шиной (bus mastering). Специально для мощных графических адаптеров в 1996 году появился новый канал связи с памятью — AGP (Accelerated Graphic Port). Обеспечив высокую пропускную способность порта, разработчики AGP предложили технологию DIME (Direct Memory Execute). По этой технологии графический акселератор является мастером шины AGP и может пользоваться основной памятью компьютера для своих нужд при трехмерных построениях. Например, в основной памяти могут храниться текстуры, которые акселератор накладывает на трехмерные поверхности. При этом снимается ограничение на размер описания текстур, которые без AGP приходится держать в ограниченном объеме видеопамяти. На дешевое решение проблемы «тесноты» нацелена и архитектура однородной памяти UMA, которая может быть реализована с помощью AGP. Однако AGP позволяет сохранить и локальную память на графическом адаптере (видеобуфер) и расширение доступной памяти не отзывается снижением производительности.

Персональная страничка
Диканева Тараса
Викторовича

13.2. Инициализация графического режима

Для того чтобы использовать в программе графические процедуры необходимо подключить стандартный модуль с графическими процедурами и функциями. В среде PascalABC он называется GraphABC:

Если вы используете PascalABC, то для перехода в графический режим этого достаточно и дальше можете не читать.

Только для среды Borland Pascal

В Borland Pascal соответствующий модуль называется просто Graph. Кроме того, для работы с графикой придется произвести ряд шаманских действий. А именно описать две целочисленные переменные (традиционно для них используют идентификаторы gd и gm):

В самой программе, перед тем как использовать графические процедуры, необходимо разместить такие строки:

Файл egavga.bgi обычно лежит в каталоге BGI, который в свою очередь находится в каталоге Паскаля. Например, путь может выглядеть так: C:\BP\BGI.

Нет смысла подробно разбирать, что происходит при выполнении перечисленных операторов и что это за загадочный файл egavga.bgi. Паскаль, как известно, рассчитан на операционную систему MS DOS. Современные операционные системы с самого начала работают в графическом режиме и каких-то особых предварительных действий для работы с графикой не требуется (либо они будут совершенно другими). Так что просто вставляйте в программы указанные строки и не забивайте голову лишней информацией.

Следует иметь в виду, что после перехода в графический режим (после выполнения процедуры InitGraph) перестают работать процедуры текстового ввода/вывода (Read, Write и т.д.) Так что если требуется что-то ввести с клавиатуры, делайте это до вызова InitGraph. Выйти из графического режима можно с помощью процедуры CloseGraph.

Таким образом, программа, работающая с графикой, будет выглядеть примерно следующим образом:

Глава 9 видеодоступ 2 графический режим

Глава 2. Графический пользовательский интерфейс

До середины девяностых существовали отдельно компьютерная графика и отдельно – настольные игры в компьютерную графику. Помнящие историю отечественной школьной информатизации читатели, возможно, сталкивались с чудом техники под названием «цифровой дисплей растровый» (ЦДР), которое удавалось подключить к первому отечественному персональному компьютеру ДВК, чтобы отображать на экране телевизора несколько тысяч пикселов в четырех цветах. В то время в Лабораториях Компьютерной Графики некоторых вузов можно было встретить Графические Рабочие Станции с векторными устройствами и X-терминалами, и даже плоттерами.

Закон Мура тем временем делал свое (в данном случае, не черное, а многоцветное) дело, и к середине девяностых на компьютере с процессором Intel 486 уже запускалась та самая система, которую пятью годами раньше наблюдать можно было лишь на X-терминалах и графических станциях, стоивших каких-то немыслимых (что по тем временам, что сегодня) денег.

Игры в самодельную графику, конечно, продолжаются и сегодня, но в целом мир воссоединился, и особой нужды в таких играх давно нет. Хотя – такова диалектика массовых рынков – именно эти игры (включая игры в буквальном смысле) породили спрос на дешевые устройства (прежде всего, графические акселераторы), которые и делают настоящую компьютерную графику доступной пользователю массовой x86– и PowerPC-техники, даже устаревшие «персоналки» – сопоставимыми с X-терминалами, а более новые и мощные – соперниками и с профессиональных графических рабочих станций начального и среднего уровня.

2.1 Оконная система «Икс» и XFree86

Оконная система «Икс» – один из самых больших и успешных проектов в истории компьютерной техники – восходит к 1984 г., когда разработчики двух систем компьютерной графики, претендующих на универсальность – проектов Athena (Массачусетский технологический институт) и W Windowing (Стэнфордский университет) – решили объединить свои усилия. С тех пор практически каждая компания, серьезно занимающаяся графикой, считала своим долгом внести какие-либо разработки в систему, формальным «хозяином» которой в 1987 г. стал вновь созданный X Consortium (ныне Open Group, www.X.org).

С тех пор «Икс» прошла через одиннадцать основных релизов и множество версий.

Дальнейшее изложение ориентировано на свободную реализацию «Икс», которая называется XFree86, поддерживается одноименным партнерством (www.xfree86.org) и воплощает на сегодня версию 4.2 текущего релиза. XFree86 – самая популярная реализация «Икс», она поставляется в составе подавляющего большинства открытых систем (как свободных, так и несвободных) для x86-совместимых компьютеров, поддерживает беспрецедентно широкий спектр оборудования и, благодаря доступности исходных текстов и пользовательской аудитории в десятки миллионов человек, достаточно «вылизана», по крайней мере, насколько это возможно для такого разнообразия «железа». Несмотря на то, что исторически цифры «86» в названии пакета относятся к соответствующему семейству процессоров от Intel, современные версии XFree86 реализованы для большинства других популярных процессоров. XFree86 доступен и для некоторых альтернативных архитектур ОС, включая «Майкрософт Уиндоуз НТ».

Большинство нижесказанного справедливо для любой реализации «Икс» на любом оборудовании и под любой ОС, список которых можно найти на www.X.org.

2.2 Цветной сэндвич

То, что пользователю, сидящему за монитором, представляется сплошной графической операционной средой, реализовано как многослойный сэндвич технологий.

Непосредственно с оборудованием (видеосистемой, устройствами ввода и динамиком) работает Икс-сервер. Эта программа захватывает оборудование и предоставляет его возможности другим программам как ресурсы (собственно, именно поэтому она и называется сервером) по особому протоколу, который так и называется, Икс-протокол. Перечисленное оборудование в совокупности называется Икс-терминалом (аппаратным Икс-терминалом называется и специализированный компьютер, на котором исполняется исключительно Икс-сервер).

Здесь сразу видно отличие «Икс» от большинства самодельных систем графики, используемых в проприетарных системах: взаимодействие Икс-сервера с его многочисленной клиентурой происходит по специфицированному протоколу, который может туннелироваться через TCP/IP и, соответственно, клиенты и сервер могут исполняться на разных узлах Сети. Это означает, что одни и те же программы могут эксплуатироваться в разных топологиях, включая совокупность автономных рабочих станций («персональных компьютеров»), совокупность рабочих станций без данных или бездисковых рабочих станций («локальная сеть»), многопользовательскую систему с Икс-терминалами (или какую-либо гибридную топологию).

Еще одним ресурсом, который предоставляет Икс-сервер, являются шрифты. Оперировать шрифтами он может самостоятельно, либо с помощью другой программы, которая называется фонт-сервером и обеспечивает их масштабирование.

Большинство пользователей, установив систему, получают в свое распоряжение готовую графическую среду. Мы поступим иначе – будем разбираться с ней по слоям.

На Рис. 2-1 изображена «голая» оконная система «Икс» – то, с чем большинство пользователей никогда не сталкивается. Запустить ее обычно можно, подав команду: «X &».

Мы видим традиционный серый экран с не менее традиционным курсором в виде буквы «x». Используя мышь или другое координатное устройство, курсор можно перемещать по экрану. На нажатие кнопок мыши и клавиш никакой видимой реакции не следует. И невидимой тоже – сервер готов передавать эти сигналы своим клиентам, а клиенты пока не запущены. Хотя на самом деле некоторые комбинации клавиш «Икс» перехватывает и обрабатывает. Это Zap (Control-Alt-Backspace) – завершение работы сервера (если эта возможность не запрещена при конфигурации), Zoom (Control-Alt-+ и Control-Alt–) – «горячее» переключение доступных видеорежимов. В некоторых ОС (Например, «ГНУ/Линукс») Control-Alt в сочетании с функциональной клавишей освобождает оборудование и передает его на время соответствующей виртуальной консоли.

Воспользуемся последней возможностью, перейдем на консоль и запустим первое клиентское приложение: программу «xterm» (Рис. 2-2). На экране «Икс» появилось окно, а в окне можно видеть интерфейс клиентского приложения. В данном случае интерфейс текстовый, а приложение – эмулятор терминала, на котором запущена диалоговая оболочка системы по умолчанию. С эмулятором можно делать все то же, что и с обычным терминалом: издавать команды, получать результат и запускать другие программы. Если программы текстовые (строчные или оконные), исполняться они будут в том же окне, а если графические (как и сам «xterm») – в отдельных окнах.

Запустим программу «xclock» (Рис. 2-3). При ее запуске мы использовали несколько параметров, задающих геометрию (местоположение и размер) вновь порождаемого окна, цвет его фона и шрифта по умолчанию, толщину и цвет рамки. Эти (и некоторые другие) параметры типичны для программ, построенных на основе графической библиотеки «X Toolkit». Значения параметров, заданные при вызове программы, могут быть перекрыты самим запускающимся приложением, кроме опции геометрии. Дело в том, что окно выделяется клиентскому приложению при запуске, и все доступные ему ресурсы этим окном и ограничены – это свойство X-протокола.

Запустив несколько экземпляров того же «xterm» (и почитав документацию) можно обнаружить, что и «голышом» «Икс» умеет не так мало. Например, оперирует буфером обмена текстом между приложениями и предоставляет текстовым приложениям такой ресурс, как полосу прокрутки (забавная полоска, скроллировать текст с помощью которой вверх или вниз можно, щелкая по ней разными кнопками мыши, – это наследие проекта «Athena»).

Есть ли польза от системы, работающей с фиксированными окнами? Да, если вспомнить, что «универсальный десктоп» – не единственная сфера применения компьютера. Можно запустить при загрузке «Икс» и браузер на весь экран и получить гипермедийный киоск по цене персонального компьютера. А можно посадить за тот же браузер оператора, который будет через него весь день «рулить» базу данных.

Но мы пойдем дальше. Итак, основная работа Икс-сервера – создавать окна и предоставлять клиентским приложениям возможности работы в них. Для того, чтобы работать с окнами, нужна другая программа, которая так и называется – менеджер окон (window manager).

Как же менеджер окон преодолевает указанное ограничение X-протокола? Никак – просто выделенным ему окном является весь экран. (На самом деле, менеджер окон – не единственная программа, способная работать с «корневым» окном; например, входящая в комплект поставки «xsetroot» позволяет установить цвет фона или поместить на него рисунок.)

Менеджеров окон существует превеликое множество – под любой набор задач, которые может решать графическая многооконная система. Их настолько много, что выбрать какой-нибудь в качестве «типичного представителя семейства» затруднительно. Поэтому выберем один из самых развитых – Enlightenment.

«Просвещение» (www.Enlightenment.org) создано Карстеном Хайцлером и Джеффом Харрисоном (Carsten Haitzler, Geoff Harrison) и его текущая версия – 0.16.5. До 2000 г. он был «штатным» менеджером окон в популярной среде «Гном» (см. раздел 2.17), затем уступив это место менее функциональной, но более быстрой «Рыбе-пиле» (Sawfish). Он продолжает оставаться «Гном»-совместимым, и многие пользователи этого популярного десктоп-менеджера предпочитают его, хотя и без «Гном» у Enlightenment поклонников хватает.

Запустим «Просвещение» (Рис. 2-4). Как резко изменилась картина!

Первое, что мы видим – это появившиеся вокруг окна нашего xterm «виджеты» (элементы окон) – строка заголовка с кнопками и рамка. Окно теперь можно перемещать по экрану, «ухватив» за заголовок, масштабировать, «взяв» за бок или за угол, максимизировать, минимизировать или закрыть, нажав соответствующую кнопку. Спрашивается, что еще можно делать с окном?

Вопрос не праздный. Нажав на левую кнопку в заголовке, получаем неожиданно разнообразное меню (меню – это тоже «виджет») таких действий (Рис. 2-5). Оказывается, его можно еще уничтожить (Annihilate), поднять/опустить (Raise/Lower), оттенить/растенить (Shade/Unshade) приклеить/отклеить (Stick/Unstick) и выполнить еще массу действий, для которых потребовались отдельные меню! Набор этих действий зависит от конкретного менеджера окон (и Enlightenment – один из самых богатых возможностями), а то, какие из них выведены в строку заголовка отдельными кнопками – вообще от его настройки.

Собственно, управление окнами – основная функция оконного менеджера, и на этом его функциональность может и заканчиваться. Однако большинство из них выполняют по крайней мере еще одну функцию.

Вы уже обратили внимание на то, что при запуске «Просвещения» на экране появилось еще одно окно. Это так называемый пейджер (pager), на Рис. 2-6 он изображен крупным планом. На пейджере представлена миниатюрная копия экрана, обновляющаяся в режиме реального времени, причем, если подвести курсор к изображению отдельного окна, оно увеличивается и рядом высвечивается название приложения, запущенного в нем. Но почему экран занимает только четверть окна пейджера? Потому что оконный менеджер позволяет оперировать «виртуальным столом, по размеру превышающим физический экран, а пейджер – одно из средств перемещения физического экрана по рабочему столу. Enlightenment позволяет создавать до 64 экранов на рабочем столе.

Еще один важный компонент Enlightenment мы не увидели сразу: это меню настройки самого менеджера, которое можно «достать», щелкнув правой кнопкой мыши на фоне экрана (Рис. 2-7). Порывшись в настройках, можно обнаружить, что вышесказанное о способах оперирования с этим менеджером весьма условно, потому что поменять можно буквально все, от декора виджетов до количества и функций элементов оформления окон и их реакции на различные действия.

Лишь один пример: сколько способов визуализировать перемещение окна вы знаете? Разработчики «Просвещения» придумали целых шесть, включая фантастический «полупрозрачный». Настройки и расширения Enlightenment можно объединять в «темы» (themes) и обмениваться ими.

Собственно, на этом функции оконного менеджера как такового и заканчиваются, а дальше Enlightenment вторгается во владения другого класса программ – менеджеров рабочего стола.

. Что демонстрирует отсутствие резкой границы между ними. Существует два подхода к тому, чтобы достроить оконную систему до полнофункциональной среды. Первый – добавить в «графический сэндвич» еще один слой – менеджер рабочего стола – работающий «поверх» оконного менеджера и использующий функциональность последнего. Этим путем идут команды разработчиков «ГНОМ» (см. раздел 2.17) и «КДЕ» (см. раздел 2.18).

Илон Маск рекомендует:  Краткий ликбез Что такое драйвер, для чего он нужен

Другой путь – «дотянуть» до полнофункциональной среды функциональность самого оконного менеджера, и им идет «Enlightenment» и ряд других проектов.

Чего нам не хватает до полнофункциональной среды? Менеджера программ и утилит. Так вот, в «Просвещении» есть и такая функциональность, доступная (по умолчанию) по щелчку на фоне левой кнопкой.

Комментировать здесь особо нечего: пункты меню позволяют запустить множество различных приложений, причем, кроме независимо разработанных, и целую пачку «эпплетов», поставляемых вместе с «Enlightenment». Альтернативный способ запуска – через «панель» – встроен в некоторые темы «Просвещения».

Откуда берутся такие ресурсы, как «виджеты» с их декором и способом поведения? Конечно, менеджер окон может содержать их в себе. Но такой подход не очень характерен для открытых систем, одним из принципов разработки которых является компонентность. Большинство развитых оконных менеджеров, менеджеров рабочего стола и «заточенных» под них приложений можно сгруппировать по библиотекам (toolkits), с опорой на которые они разработаны.

2.6 Триумф интерфейса над пользователем?

Косметических улучшений за тридцать лет существования парадигмы WIMP была придумана масса, а вот более или менее серьезных, при внимательном анализе, обнаруживается только два: интеграция звука (и превращение графической (визуальной) среды в сенсуальную) и начало эксплуатации концепции гиперссылок, в терминах которых можно переформулировать почти весь интерфейс.

Фредерик Брукс еще в 1995 г., обсуждая основные процессы, произошедшие в программной отрасли за 20 предшествовавших лет, назвал в числе «наиболее впечатляющих явлений» «триумф интерфейса WIMP» [17, сс. 239-243]. В этом ставшем классическим четырехстраничном анализе (всем, интересующимся темой, крайне рекомендуется прочитать эти четыре страницы, а заодно – и всю книгу), Брукс:

производит декомпозицию самой идеи («диалог» с системой: объекты-«существительные» и действия-«глаголы»),

выделяет факторы, способствовавшие ее «триумфу» («концептуальная целостность через метафору» «рабочего стола»; эквивалентность клавиатурных команд пунктам меню, обеспечивающая постепенный переход от новичка к опытному пользователю; навязывание архитектуры через средства разработки),

называет ограничения метафоры «рабочего стола» («проблема двух курсоров»), а также

предрекает устаревание WIMP при внедрении речевого интерфейса («WIMP через поколение станет достоянием истории. Указание курсором останется способом задания существительных при управлении нашими компьютерами. Для выражения глаголов станет использоваться речь»).

Прошло еще пять лет, и мы можем отметить, что:

Проф. Брукс не заметил решения «проблемы двух курсоров» (а заодно – и непротиворечивой интеграции командной строки в графико-интерфейсное окружение) в конце восьмидесятых в Norton Commander (и сонме последователей этой замечательной программы на разных платформах (обзор см. в [15]. Проф. Безруков предложил для реализованного в Norton Commander интерфейса термин «ортодоксальный менеджер файлов» (OFM));

WIMP не думает устаревать, и скорее сам абсорбирует новые интерфейсные возможности (включая распознавание речи), чем будет вытеснен ими;

и, наконец, самое серьезное – это то, что «триумф WIMP» на сегодня выглядит не то чтобы менее бесспорным, а менее однозначным, все более походя на пресловутое «триумфальное шествие советской власти» по обессиленным Первой мировой войной частям Российской империи и ее окрестностей. Во многих прикладных областях попытки внедрения WIMP стали скорее частью проблемы пользовательского интерфейса, чем частью ее решения.

«Сплошной» же WIMP-среды и вовсе нет нигде, кроме встроенных/специализированных систем: в любом окружении, претендующем даже не на универсальность, а просто на широкую сферу применения, элементы WIMP сочетаются с элементами другой интерфейсной модели – командно-строчной – иногда более органично (OFM, AppleScript и т.п.), а чаще эклектично, противоречиво и с фатальным для производительности исходом (фрагменты «рваной» командной строки в «диалоговых окнах», разнообразные Wizards и «окна установки предпочтений»).

Если перечитать текст доклада, в котором идеи WIMP впервые были представлены широкой публике [16], станет понятно, почему: модель WIMP предлагалась как средство непосредственного манипулирования конкретными объектами («взять это и положить туда», «изменить такое-то свойство того-то объекта», а не как средство формулирования абстрактных положений и команд («все ли файлы, лежащие в каталоге X, имеют формат Y?», «удалить все файлы, созданные до 01.01.2000 в которых упоминается Борис Ельцин» и т.п.). Соответственно, сделать WIMP-рабочее место для выполнения технических процедур, «рабского», неквалифицированного труда можно, а вот систему поддержки полноценной свободной практики – затруднительно.

2.7 От какого наследства нам не стоит отказываться?

Виктор Вагнер [18] противопоставляет «рыхлости» модели WIMP, пусть и целостной метафорически, концептуальную целостность командно-строчного интерфейса, основывающуюся на четырех принципах:

универсальности формы представления информации (текстовый файл, понимаемый как последовательность символов, некоторые из которых разделяют строки (записи), поля и слова);

возможности переназначения ввода-вывода и соединения программ каналами;

философии «набора инструментов» (одна утилита – одна функция);

наличия в оболочке механизма регулярных выражений.

По Вагнеру, по-настоящему успешным графическим интерфейсом («True UNIX GUI») будет интерфейс, предлагающий не менее целостную и последовательно реализованную концептуальную основу. Причем, предлагающий ее не только и не столько конечному пользователю, сколько разработчику, т.е. реализованный начиная с системы быстрой разработки (СБР, RAD). В упомянутой статье Вагнер рассматривает несколько кандидатов на роль универсальной формы представления информации в графической среде и рассуждает о том, какие принципы могли бы стать аналогами другим «китам», на которых покоится командно-строчный интерфейс.

На самом деле, существует целый ряд систем, в той или иной степени закладывающих основу «интерфейсов следующего поколения». К сожалению, ни одну из них нельзя назвать на сегодня массовой, кроме, возможно, языка описания интерфейса XUL, использованного в «Мозилла» (см. гл. 3), но и для XUL пока нет СБР.

2.8 Зачем нужны «легкие» среды?

В то время, как сама оконная система «Икс» много лет является фактическим отраслевым стандартом, лежащие «над» нею слои графической среды не стандартизованы.

Какую-либо классификацию графических сред дать затруднительно, однако самым грубым образом их можно разделить на «интегрированные» и «легкие».

Оборотной стороной интегрированности является достаточно высокая их требовательность к ресурсам. Комфортная работа с «КДЕ» или «Гном» «свежего разлива» начинается примерно от производительности, эквивалентной производительности 800 МГц процессора Celeron, отказ от некоторых ресурсоемких свойств (анимация изменений в среде и т.п.) позволяет «снизить планку» примерно до 500 МГц при объеме оперативной памяти от 128 МБ. Разумеется, эти цифры даже ниже характерных для компьютеров «стартового уровня», поставляемых сегодня производителями, однако парк машин, находящихся в эксплутации, как в офисах, так дома и в школе, включает и компьютеры с более низкими характеристиками.

Так, в школе весьма желательно предоставить возможность работы в графической среде на менее мощных машинах. Здесь помогут «легкие» графические среды, представляющие собой оконные менеджеры с несколько расширенными возможностями (базовая и расширенная функциональность типичных оконных менеджеров описана ниже).

Обсуждаемые сегодня IceWB, BlackBox и fluxBox (а также чуть более требовательный к ресурсам WindowMaker)63 позволяют достаточно комфортно работать с графикой на машинах производительностью (в эквиваленте Intel Pentium) примерно от 100 МГц и с памятью от 32М (текст одного из предыдущих разделов набирался в поезде, с одновременной «съемкой» изображений с его экрана графическим редактором «ГИМП» (см. главу 5) на ноутбуке с процессором Intel Pentium MMX 166 и ОЗУ объемом 64МБ).

Следует оговориться, что отказ от интегрированных графических сред не является «волшебной палочкой»: конкретные прикладные программы могут быть сами по себе достаточно требовательными к ресурсам. Так, на упомянутом ноутбуке запуск word-процессора «OpenWriter» занимает более минуты (хотя дальнейшая работа не сопряжена с существенными задержками). Кроме того, если прикладная программа изначально создана в ориентации на определенную интегрированную среду, она может интенсивно использовать соответствующие библиотеки, даже если запускается в «легкой» среде. Например, запуск программ из пакета KOffice в «легкой» среде, на самом деле, дает небольшой выигрыш по сравнению с его запуском из «родной» для него среды «КДЕ».

(Если необходимо задействовать имеющийся парк «слабой» техники для таких задач, а также, если необходимо сохранять в эксплуатации еще менее производительные машины (например, старшие модели IBM PC-совместимых компьютеров на базе процессоров Intel 486 или AMD 586 или «Макинтоши» на процессорах Motorola 68K), следует подумать об использовании такой техники в режиме графических терминалов или, по крайней мере, варианте запуска наиболее «тяжелых» прикладных программ на сервере.)

Следует оговорить также, что ограниченность аппаратных ресурсов не является единственным мотивом применения «легких» графических сред. Каждая графическая среда, интегрированная или легкая, обладает собственными уникальными особенностями, собственным стилем, и уместность пользования конкретной средой в значительной степени зависит от набора задач, решаемых на компьютере конкретным пользователям, и от его личных предпочтений.

2.9 Базовая функциональность оконного менеджера

Как уже говорилось, ключевой компонент графической платформы – Икс-сервер:

создает по запросу других программ (которые в этой терминологии называются X-клиентами) окна и

предоставляет другим программам возможность работы в окнах, то есть вывода информации в эти окна и обработки сигналов от устройств ввода (клавиатуры и «мыши» или другого координатного устройства), когда окно, назначенное программе, является активным. Предоставление ресурсов возможно в том числе и через сеть, когда клиент и сервер работают на разных компьютерах (узлах).

В «голой» среде, образуемой Икс-сервером без оконного менеджера, окно, выделяемое клиенту, является фиксированным: его геометрия (местоположение на экране и размер) задается при запуске клиента и сохраняется в течение всего сеанса работы с этим клиентом. Это вполне соответствует цели создания специализированных систем с графическим интерфейсом пользователя (таких, как мультимедийные киоски и т.п.), но совершенно недостаточно для универсального «настольного» применения.

При универсальном применении компьютера характерна поочередная работа с различными программами (иногда достаточно большим их количеством), причем пользователь может отрываться, допустим, от редактирования текста, чтобы поработать другой программой с иллюстрацией, прочитать почту или заглянуть на WWW-страницу, затем возвращаться к редактированию текста и т.д. Графическая операционная среда должна быть достаточно гибкой, чтобы допускать и поддерживать такой, «субъектно-ориентированный», а не ориентированный на строго последовательное выполнение предзаданных процедур, стиль работы.

В частности, должно поддерживаться управление (с помощью клавиатуры или «мыши») окнами, т.е. возможность изменять «на лету» их геометрию (положение и размеры), а также (обычно не относимое к геометрии) положение в воображаемой «стопке» окон, т.е. определение того, какое из окон будет «верхним» (видимым полностью), если окна перекрывают друг друга на плоскости экрана.

Управление окнами и составляет базовую функциональность оконного менеджера (устоявшийся термин window manager, относящийся к этому классу программ, будет передаваться далее словосочетанием-калькой «оконный менеджер», которое, впрочем, не представляется особенно удачным, так же, как и встречающиеся в литературе «менеджер окон» и «администратор окон»).

Технически ограничение на изменение геометрии однажды выделенного окна преодолевается оконным менеджером за счет того, что ему в качестве окна выделяется весь экран.

Прикладным программам, таким образом, выделяются далее уже не окна собственно X, а окна оконного менеджера. Для них это совершенно прозрачно, хотя желательно, чтобы программа была достаточно «сообразительной», чтобы изменить свое поведение при изменении размеров выделенного ей окна «на лету» (изменение положения окна в подавляющем большинстве случаев ничего от клиента не требует), это справедливо для большинства, но не для всех программ (в частности, этого не «умеют» многие старые программы и некоторые компьютерные игры).

В свою очередь, и оконный менеджер может быть достаточно «умен», чтобы понять, что программа не реагирует на изменение геометрии, и заблокировать возможность изменения размеров окна пользователем (чтобы он не оказался в ситуации, когда ему видна лишь часть области вывода программы или наоборот, часть окна прикладной программы пуста). Однако такое решение может привести к весьма дискомфортным ситуациям (например, если при запуске программы ее окно оказывается больше экрана)64.

Базовая (а также расширенная) функциональность оконных менеджеров доступна пользователю прежде всего за счет введения в интерфейс так называемых «виджетов» (w >

В пользовательской перспективе виджеты, составляющие обрамление окна, часто воспринимаются как его часть. Однако не следует забывать, что внутри окна (содержимым которого управляет прикладная программа) зачастую тоже есть свои виджеты: кнопки, полосы прокрутки, переключатели, меню и т.п. В общем случае, используемые оконным менеджером и прикладной программой библиотеки виджетов могут и не совпадать.

(Зачастую при проектировании выдвигается требование единства стиля органов управления и согласованного управления изменением этого стиля (например, для настройки среды для пользователя с ограниченными возможностями: со слабым зрением, нарушением моторики и т.п.), и в этом сильно выигрывают интегрированные графические среды «Гном» и «КДЕ», используемые совместно с прикладными программами, основанными на тех же графических библиотеках и наследующими те же настройки. Однако на практике ограничиться набором программ, основанных на одной библиотеке графических примитивов, бывает трудно, поэтому разумно познакомить учеников с особенностями по крайней мере самых распространенных из них.)

Обрамление окна обычно включает:

рамку, окружающую окно. При «буксировке» рамки мышью окно изменяет свой размер. Иногда для изменения размера окна предназначены только выделенные «уголки» рамки, представляющие собою отдельные виджеты;

полосу заголовка, часто совпадающую с одной из (обычно, верхней) сторон рамки. Полоса заголовка может содержать название программы, команду, ее запустившую, или другую информацию, специфичную для окна. При «буксировке» полосы заголовка перемещается все окно. Со «щелчками» различными кнопками мыши на полосе заголовка также могут быть связаны различные действия по управлению окнами;

кнопки управления окном. Часто вынесенные на полосу заголовка или в другое место рамки кнопки позволяют выполнить с ним такие действия, как закрытие (часто сопровождающееся выходом из программы, открывшей окно), максимизация (разворачивание окна на весь экран), минимизация/сворачивание (см. ниже расширенную функциональность), вызов меню управления окном, которое может содержать весьма обширный репертуар других действий.

Детали реализации обрамления окна могут быть весьма различными в зависимости от конкретного оконного менеджера и его настроек.

2.11 Расширенная функциональность оконного менеджера

Собственно, перечисленными функциями оконный менеджер, предназначенный для работы в составе интегрированной операционной среды, может и ограничиться. При использовании же в качестве операционной графической среды самого оконного менеджера, крайне полезной может оказаться его расширенная функциональность. К ней можно отнести:

минимизацию/сворачивание окон и управление свернутыми окнами. Работа на «столе», «захламленном» десятком различных окон, может быть дискомфортной, и крайне полезна возможность «свернуть» или «минимизировать» окно со временно неиспользуемой программой. Для того, чтобы средствами графической среды можно было окно затем развернуть, оно и в свернутом состоянии должно каким-то образом визуализироваться. Существует несколько относительно распространенных способов визуализации свернутых окон. Например, «на столе» может оставаться полоса заголовка свернутого окна, по щелчку на которой оно вновь разворачивается. Свернутым окнам могут соответствовать пиктограммы («иконки», «значки») на поверхности «рабочего стола» или в специально отведенном для этого окне («панели управления»). Свернутые окна могут визуализироваться как пункты общего или специального меню (см. ниже);

управление несколькими «столами». Практика показывает, что для многих продвинутых пользователей, для которых освоение стандартных систем следует за освоением специфически персонально-компьютерных, именно возможность работать на нескольких «столах» оказывается первым «убойным приложением» оконной системы «Икс». Действительно, переключение между виртуальными «столами» позволяет организовать комфортную работу со множеством программ даже на мониторах с относительно низким разрешением (1024х728, 800х600) и физическими размерами (17, 15-дюймовыми). В иных условиях комфортность работы существенно снизилась бы, или настоятельной необходимостью стало бы приобретение более крупного и емкого монитора (что зачастую влечет за собой необходимость смены графической карты и прочих недешевых мероприятий). Все современные оконные менеджеры поддерживают виртуальные столы, правда называются эти сущности в них по-разному: «столами», «рабочими областями» или «экранами». До предела (чтобы не сказать, до абсурда) эта функциональность развита в оконном менеджере Enlightenment, упоминавшемся в одном из предшествующих разделов: E позволяет организовать до 64 «экранов» на «рабочем столе», при этом «рабочих столов» также может быть более одного (точнее, до 32). Трудно представить, зачем может понадобиться две тысячи с лишним отдельных экранов (как правило, четырех экранов хватает с избытком для любых практических задач), однако возможности приема демонстрируются этим «в полный рост»;

быстрый запуск команд. Возможность быстрого запуска предуготовленных команд обычно ассоциируется с общим меню, вызываемым «щелчком» на особом виджете, не связанном с прикладными окнами, или в свободной от прикладных окон области экрана;

возможности настройки «поведения» и внешего вида среды. «Поведение» (реакция отдельных виджетов на операции с ними, модель фокусировки (связывание ввода с клавиатуры и «мыши» с теми или иными программами) и т.п.) и внешний вид оформления окон, а также наличие на экране «общих» виджетов, не связанных с конкретными прикладными окнами, «обои» и т.п. могут варьировать в очень широких пределах. Иногда возможности такой настройки считают некими «архитектурными излишествами», однако более взвешенной является точка зрения, согласно которой в хорошем визуальном дизайне (так же, как и в хорошей архитектуре) ничто не является излишеством. В частности, в школе программы эксплуатируются на широком спектре оборудования с весьма разными характеристиками и разного качества, причем используются они широким кругом людей с различными психофизическими особенностями, как в пределах нормы, так и связанных со здоровьем, и игнорировать возможности настройки нельзя даже уже исходя из гигиенических соображений.

Выше при характеристике тех или иных (предположительно, общих) характеристик оконных менеджеров чаще обычного употреблялись слова «обычно», «как правило», «может» и т.п. Это связано с чрезвычайным разнообразием решений на базе распространенных оконных менеджеров. Ниже самые распространенные из них характеризуются более подробно и определенно.

2.12 Оконные менеджеры «BlackBox» и «FluxBox»

«BlackBox» («BB») – один из самых компактных, «минималистичных» и быстродействующих оконных менеджеров. Он позволяет эффективно организовать работу на «рабочем столе», не «захламляя» его ненужными ссылками и не расходуя экранное пространство на отображение громоздких элементов оформления.

Наряду с базовой функциональностью, «BB» предоставляет (факультативно) панель, содержащую кнопки переключения между «рабочими столами» (по умолчанию их четыре) и заголовки открытых окон. Общее меню вызывается «щелчком» правой кнопкой «мыши» на свободном от окон месте «стола». Меню (или любое из вложенных в него меню) «щелчком» по заголовку может быть превращено в окно, остающееся на экране до явного его закрытия щелчком на соответствующей кнопке.

По умолчанию на полосе заголовка каждого окна присутствуют кнопки сворачивания (сворачивание можно выполнить также двойным «щелчком» на самом заголовке), максимизации и закрытия окна. Свернутое окно присутствует на экране в виде полосы заголовка, развернуть его можно повторным двойным «щелчком» на полосе заголовка или из меню Workspaces («рабочие пространства»), доступного по «щелчку» средней кнопкой мыши на свободном от окон месте «стола». Это же меню позволяет перейти на другой «стол», добавить или удалить «стол» из рабочего пространства.

«BB» поддерживает различные модели фокусировки ввода. «Click to focus» («фокусировка по щелчку») позволяет реализовать стиль работы, привычный для пользователей «Гном», «КДЕ» или «Майкрософт Уиндоуз»: окно становится активным (принимающим текущий ввод с клавиатуры и от «мыши») после «щелчка» на нем. Активное окно автоматически становится «верхним» (видимым полностью, даже если оно частично перекрывается с другими окнами). Модель «Sloppy focus» («небрежная фокусировка») предполагает активизацию окна при попадании на него курсора мыши (окно при этом не «всплывает» автоматически наверх).

Наряду с панелью и конвертируемыми в дополнительные окна-«панели» меню, «BB» реализует еще один автономный виджет – так называемую «щель» (Slit). «Щель» располагается на краю видимого экрана и может содержать маленькие (без обрамлений) окна специализированных программок (их существует около десяти), индицирующих какие-либо состояния среды или позволяющих быстро выполнить часто исполняемые действия.

На основе «BB» созданы два более развитых оконных менеджера – «OpenBox» и более популярный «FluxBox».

«Наиболее характерная особенность „Fluxbox“ – реализация закладок (tabs) в контексте рабочего стола. Если закладки в браузере позволяют одновременно открыть несколько страниц в одном окне, то закладки fluxbox позволяют удобно сгруппировать несколько окон на столе. Все окна в группе имеют одинаковые размеры и расположены строго одно под другим. Для переключения на какое-либо из них достаточно навести курсором мыши или щелкнуть (в зависимости от настроек) по соответствующей закладке. К примеру, мне приходится работать с несколькими различными почтовыми клиентами. Совместив их в одну группу, я могу легко переключаться между ними и при этом я всегда знаю, где расположено каждое окно. На словах объяснить преимущества этого оригинального подхода не очень легко, но после нескольких дней практического использования, становится трудно без него обходиться: к хорошему привыкаешь быстро.» [3]

Внешний вид «BB», «FluxBox» и «OpenBox» легко настраивается с помощью механизма «тем» рабочих столов.

2.13 Оконный менеджер «WindowMaker»

«WindowMaker» («WM») – это свободная реализация (в рамках проекта «GNUStep») концепций «NextSTEP» – первой получившей более или менее широкую известность универсальной графической среды пользователя. За недоступностью оригинальной «NextSTEP» для современных платформ, познакомиться с «WM» полезно и поучительно вне зависимости от того, собираетесь ли вы с ним работать – это позволит увидеть исходную точку развития графических сред и оценить продуктивность (или контрпродуктивность) того, чем эти идеи «обросли» со временем.

Основным автономным виджетом WM, как и NextSTEP, является «пирс» прикладных программ, представленный при запуске пиктограммой со скрепкой. При запуске любой «корректной» (с точки зрения WM), а также некоторых «некорректных» программ, кроме ее окна на экране появляется ее пиктограмма. Если «пришвартовать» эту пиктограмму к «пирсу», она там и останется, позволяя запускать эту программу вновь и вновь простым щелчком по ней – это «родной» некстстеповский интегрирующий интерфейс.

WM позволяет работать с несколькими «столами» (переключение по умолчанию по Alt-n или через меню, доступное по «щелчку» правой кнопкой на свободном песте «стола»). «WM» очень гибко настраивается, как в части внешнего вида, так и в части «поведения», причем большая часть настроек доступна из программы «Wprefs.app», запускаемой по щелчку на пиктограмке «со ступенькой».

2.14 Оконный менеджер «IceWM»

«IceWM» – простой оконный менеджер, очень часто выбираемый пользователями, приходящими из-под «Майкрософт Уиндоуз» или «ОС/2», поскольку он способен достаточно точно имитировать их основные черты.

Из автономных виджетов прежде всего стоит отметить панель с кнопкой, вызывающей главное меню (подобно тому, как это делает кнопка в «Майкрософт Уиндоуз», «Гном» или «КДЕ»). С помощью панели можно также управлять текущим сеансом и настраивать «IceWM». Впрочем, основное меню также доступно и по «щелчку» правой кнопкой на свободном месте «стола», что более привычно для пользователей «WindowMaker», «Sawfish», «Blackbox» или «Enlightenment».

А еще панель содержит список запущенных программ (включая те, окна которых минимизированы), на нее можно вывести и «мини-терминал», позволяющий оперировать командной строкой. Любые действия могут выполняться с помощью ассоциированных клавиатурных комбинаций.

«IceWM» также позволяет работать с множеством «столов» («рабочих мест»), которые нумеруются или именуются пользователем.

2.15 Интегрированные графические среды

Запуск графической среды (точнее, «бутерброда» из оконной среды «Икс», оконного менеджера и графической среды) в открытой операционной системе можно сравнить с запуском «Майкрософт Уиндоуз» в «МС-ДОС»65.

Однако, сходство заканчивается, не успев начаться. «МС-ДОС» – это однозадачная и однопользовательская система, и запущенная оболочка захватывает все ее ресурсы. Из-за неполноценности ОС оболочке приходится брать на себя несвойственные ей функции (например, имитацию многозадачности), с которой она справляется плохо (так, «зависание» одной программы вполне может привести к неработоспособности всей системы).

При запуске графической среды под полноценной ОС, она, с точки зрения последней, представляет группу обычных процессов, управление которыми производится общесистемными средствами. Точно так же, общесистемными средствами производится и управление процессами, запускаемыми «из-под» этой графической среды. Более того, поскольку платформой для запуска конкретной среды является изначально сетевая среда «Икс», прикладная программа даже может запускаться на другом компьютере.

Илон Маск рекомендует:  Направление текста

Среда отнюдь не монополизирует использование компьютера; параллельно с ее работой продолжает исполняться множество служебных системных процессов; с других терминалов (если система многотерминальная) могут запускаться другие программы или даже другие графические среды (или дополнительные экземпляры той же среды).

2.16 Плюсы и минусы интегрированных сред

Однородность опыта и связанная с нею привычность (иногда ошибочно называемая «интуитивностью», хотя она не имеет отношения к философскому и психологическому понятиям интуиции) позволяют при освоении нового инструмента-программы сосредоточиться на ее прикладной логике (на аспектах, связанных с конкретным приложением ИТ, которое она реализует), не задумываясь и специально не фокусируя внимания на аспектах, общих для разного инструментария. Это делает более «крутой» пресловутую «кривую обучения» нового пользователя.

(Разумеется, это сильно идеализированная картина. Иногда прикладная логика диктует некоторые элементы эргономики; например, интерфейсы большинства систем автоматизированного конструирования и проектирования (CAD, САПР) весьма сходны, вне зависимости от среды, в которой работают эти программы.)

Как ни парадоксально, основной недостаток работы в интегрированной среде является оборотной стороной основного достоинства: жестко закрепленные навыки мешают при выходе за ее пределы. Конечному пользователю, ограниченному опытом работы в одной среде, недостает «стереоскопичности» видения, глубины понимания; элементы эргономической логики могут напрямую ассоциироваться с определенными визуальными элементами и «жестами», с помощью которых подаются команды.

Общеизвестны сложности, с которыми сталкиваются люди, несколько лет пользовавшиеся «МакОС» или «Майкрософт Уиндоуз» при необходимости поработать в другой (пусть даже и весьма схожей) среде. Подобная «ригидность» опыта может формироваться и при работе в любой из свободных сред, хотя как правило пользователь в них не ограничен (в отличие от специфически персонально-компьютерных сред) прикладными программами, специально разработанными для данной среды и делящими с ней наборы элементов интерфейса («виджетсеты»), поэтому его опыт изначально более разнообразен.

В этом смысле, крайне полезным представляется знакомство учащихся с разными средами уже на начальном этапе освоения графических интерфейсов. Это не обязательно должны быть разные интегрированные среды, но само представление о том, что один и тот же результат может достигаться с помощью разных интерфейсных средств, должно быть передано обязательно. В общем случае это возможно и в рамках одной интегрированной среды из числа рассматриваемых ниже – и «КДЕ», и «Гном» в высшей степени гибки в отношении настройки внешнего вида и «поведения». Эта гибкость также весьма полезна для обеспечения доступности и максимально достижимого комфорта учащимся с физиологическими особенностями и физическими недостатками (дальтонизмом, слабым зрением, ограниченной подвижностью или расстроенной координацией движений и т.п.).

2.17 Общие черты интегрированных сред

Сколько-нибудь последовательной теории интегрированных графических сред не существует. Изучая отдельные среды в динамике их развития, можно, тем не менее, выделить несколько общих черт:

они опираются на определенный интерфейс разработчика (API), состоящий из библиотек, доступных также разработчикам прикладных программ (будь то MS Windows API для «Майкрософт Уиндоуз», «Мотиф» для «CDE», «Qt» для «КДЕ» или GTK+ для «Гном»);

они реализуют элементы объектной метафоры (одельные экземпляры сущностей, таких как файлы, процессы (их потоки ввода-вывода) визуализируются определенным образом, на них можно фокусироваться и выполнять с ними различные действия, их состояния и изменения этих состояний также могут визуализироваться или озвучиваться). Целостная объектная метафора своей реализации не нашла (и, видимо, последовательно «объектная» среда была бы крайне неудобной в использовании);

они реализуют единообразные элементы управления («виджеты»), зачастую не только в оформлении отдельных окон, но и в их «начинке»;

они содержат те или иные элементы управления, не привязанные к отдельным окнам прикладных программ («общие» меню, «панели управления», «поверхность стола» и т.п.);

они позволяют согласованно изменять свойства интерфейса образующих среду программ;

они реализуют «буфер (буферы) обмена», позволяющий передавать типизованные данные от программы программе (оконная система «Икс» содержит буфер, позволяющий передавать данные лишь простого текстового типа);

они реализуют возможность «перетаскивания» (drag’n’drop) объектов или данных между окнами одной программы или разных программ.

(За ограниченностью объема «за бортом» остаются более сложные вопросы, такие, как компонентная объектная модель и модели сетевого взаимодействия, так или иначе «втягиваемые» в проекты интегрированных сред.)

На сегодня существуют и развиваются две свободные интегрированные графические среды общего назначения: «КДЕ» и «Гном». Они входят в поставку большинства стандартных (открытых) ОС, как свободных, так и несвободных. Хотя «Гном» на полгода моложе «КДЕ», мы начнем обсуждение именно с «Гном».

2.18 «Гном» (Модельная среда сетевых объектов GNU)

«Гном» (GNOME, GNU Network Object Model Environment – «Среда GNU, основанная на модели сетевых объектов», но также и «Образцовая среда для сетевых объектов GNU») – один из самых амбициозных и масштабных проектов в программистском сообществе.

Кроме реализации функционально полной графической среды (возможно, уместнее говорить о сенсуальных средах, учитывая то, что звук стал их полноправной частью), «Гном» претендует на то, чтобы полностью реализовать спецификации промышленной платформы сетевого взаимодействия CORBA и полностью абстрагировать слой «менеджера рабочего стола» (или «графической среды») от низлежащего слоя управления окнами («оконного менеджера»).

«Гном» поддерживает ряд оконных менеджеров, среди которых: Sawfish («штатный» оконный менеджер по умолчанию), Enlightenment, IceWM, WindowMaker, AfterStep и FVWM2, совместимые с «Гном», впрочем, в разной степени.

Сегодняшняя версия «Гнома» («Гном» 2.4) – полноценная интегрированная среда, включающая реализацию повседневно необходимых функций и позволяющая использовать сторонние решения для реализации функциональности, которая в ней отсутствует.

«Гном» использует один из самых развитых интерфейсных пакетов GTK+, реализованный для разных платформ. Над ним надстраивается масса компонентов и библиотек, обеспечивающих сетевую функциональность, интерфейсы к различным языкам программирования, работу со звуком через механизмы ОС и пр. Сам «Гном» стремится оставаться мобильным и доступным во всех открытых системах. Он стабильно работает в «ГНУЛинукс», «БСД», AIX и «Солярис»; последнее обстоятельство способствовало поддержке разработки «Гном», которую оказывает Sun Microsystems через созданный в 2001 г. году «Фонд “Гном”», среди учредителей которого также крупнейшие поставщики свободных ОС.

С пользовательской точки зрения «Гном» предстает как набор базовых компонентов интерфейса и «апплетов», утилит и прикладных программ. К базовым компонентам относятся менеджер файлов и поверхности стола Nautilus, панели управления и меню GNOME Panel и центр управления (Gnome Control Center).

«Наутилус». Менеджер файлов Nautilus позволяет отображать содержимое файлов и каталогов в окнах и выполнять над файлами обычные действия (удаление, переименование, копирование и перемещение и т.п.), а также осуществлять предварительный просмотр многих типов данных. «Наутилус» эффектен, но работа с ним не более эффективна, чем с прочими браузерами файлов, включаемыми обычно в графические среды (менеджер файлов CDE или «Майкрософт Уиндоуз Эксплорер»).

Помимо отображения содержимого каталогов в окнах, «Нау» также может отображать один из каталогов на поверхности «рабочего стола»: размещенные на нем иконки как бы приклеены к монитору, и при смене текущего экрана остаются на том же месте относительно наблюдателя (так же, кстати, ведут себя и открытые окна, если их «приклеить»).

Поддерживается широкий спектр операций переноса мышью (drag’n’drop), причем «перетаскиванию» подвержены не только объекты (файлы, пункты меню и т.п.), но и некоторые их свойства: так, можно «взять цвет» в окне выбора цвета и перенести его на панель, которая воспримет его. Есть даже операции, позволяющие назначить один объект свойством другого: например, если на панель «перетащить» не цвет, а файл с картинкой, последняя станет ее фоном. «Таскать» файлы между окнами «Нау», на рабочий стол и панели можно практически без ограничений.

Панели и меню. Уже упомянутые панели являются, наряду с менеджером файлов, важнейшей составной частью интерфейса «Гном». Панелей может быть неограниченное количество. Панель может относиться к одному из пяти типов, но на самом деле их два: панель-меню (menu panel) и объектная панель. Первая из них содержит пункты меню и может содержать пиктограммы, а вторая – только пиктограммы. Последняя может быть краевой (edge), выравненной (aligned), скользящей (sliding) или плавающей (floating), но это скорее свойство панели (которое можно менять «на ходу»), определяющее особенности ее поведения, чем тип.

Внешний вид и поведение панелей является в высшей степени конфигурируемым. Пользователь может задавать как глобальные предпочтения (анимация движения панелей, отображение панельных объектов и пр.), так и индивидуальные предпочтения для каждой из них (ее тип и положение на экране, ширина, возможность автосокрытия и принудительной минимизации, цвет и фоновое изображение и т.п.) Ну и, разумеется, пользователь может «набивать» панели теми объектами, которые ему нужны.

На панелях могут присутствовать объекты пяти типов:

пускатель (launcher) ассоциирован с приложением или командой, которые исполняются по щелчку на его пиктограмме в панели;

выдвижной ящик (drawer) – это кнопка, открывающая другую панель, перпендикулярно первой – некий аналог подменю в меню, который можно «набить» всевозможными апплетами;

апплет (applet, «приложеньице») – интересный тип панельного объекта, демонстрирующий то, что он не обязан быть представлен статической картинкой. Это программа, места в панели которой достаточно, чтобы отображать какую-нибудь полезную (или забавную) информацию или даже принимать клавиатурный и/или координатный ввод. С «Гном» поставляется масса апплетов, отображающих всякую полезную информацию (состояние ресурсов и статус сети, например) или позволяющих осуществить нетривиальные действия (например, mini commander, позволяющее набрать команду, не запуская терминала). Важными «приложеньицами» являются «путеводитель по столу» (Desktop Guide) и «список задач» (Task List), позволяющие переключаться между виртуальными экранами и активизировать окна запущенных программ, соответственно;

специальные объекты – это те же апплеты, но выполняющие функции, которые другими средствами «достать» почему-либо нельзя (запереть экран, выйти из «Гном» или запустить программу «вручную»). В качестве «специальных объектов» исполняются и программы, которые не были написаны специально для «Гном», но могут, тем не менее, осуществлять вывод в панель – «поглощенные программы» (swallowed applications);

наконец, объект-меню раскрывает меню.

За работу системы меню, как и за работу панелей, отвечает компонент GNOME Panel, и это не случайно: разница между панелью и меню более декоративная, чем сущностная: любое меню можно зафиксировать на экране, и оно превратится в подобие панели-меню (только вертикальное, а не горизонтальное, и с меньшими возможностями настройки).

У «Гнома» нет единой иерархии меню: кроме главного, вызывающегося объектом-меню с гномьей лапой (оно же, когда вызывается щелчком правой кнопки на фоне или нажатием клавиши, почему-то называется глобальным (global)), пользователь может создавать «обычные» (normal) меню, связанные с объектами-меню на панелях.

Меню настраиваются примерно так же, как и панели: пользователь может добавлять, менять и удалять пункты, создавать подменю и т.п. При этом создаваемые «обычные» меню изначально пусты, а главное/глобальное «набивается» при установке всем, что «Гном» найдет в системе, и пользователю остается только убрать лишнее и переставить пункты в соответствии со своими предпочтениями.

Утилиты, апплеты и «капплеты». Для настройки различных аспектов функционирования системы предназначен Центр управления, представляющий собой набор «управляющих апплетов» (capplets), связанных с разными компонентами и прикладными программами.

Одни из них позволяют менять параметры рабочего стола и облик приложений (включая использование «тем»), другие – настраивать мультимедиа, третьи – управлять свойствами клавиатуры и мыши, и т.д.

Важным «капплетом» является менеджер т.н. «драйверов документов» (Document Handlers), устанавливающий соответствие между типом файла или протокола и программой, выполняющей различные операции с ними. Набор «капплетов» является расширяемым, их можно писать не только для программ, написанных специально для «Гнома», но и для внешних программ.

Еще более открыт набор утилит, прикладных программ и апплетов, поставляемых с «Гном» – вместе с программами, входящими в большинство дистрибутивов ОС, о которых «Гном» «в курсе», их число превышает сотню.

Перечислить их здесь нет никакой возможности, но среди них есть интерфейсы для администрирования системы, средства звукозаписи и воспроизведения, сетевые утилиты, игры и многое другое.

«Гном» снабжен встроенной системой помощи; кроме того, его разработчиками совместно с Sun Microsystems подготовлено компактное (130 с.) руководство, доступное в разных форматах на сайте проекта. В его поставку входит система разработки графических приложений под GTK+, которая называется Glade и включает в себя специфические для «Гном» элементы.

«Гном» и большинство его компонент соответствуют соглашениям об интернационализации и, соответственно, поддерживают работу с кириллицей и локализацию и перевод интерфейса. К сожалению, локализация «Гнома» сильно отстает от разработки.

2.19 «КДЕ» (Настольная среда K)

Само название «КДЕ» – явная пародия на CDE – Common Desktop Environment («Общая настольная среда») – последнюю попытку отрасли стандартизовать графическую среду на несвободной основе, предпринятую в конце девяностых годов. «K» в «КДЕ» ничего не означает.

Несмотря на явно игривый тон, начинающийся с названия среды и продолжающийся в названии компонент (в «КДЕ» любят играть со словами; например, универсальный браузер, входящий в среду, называется Konqueror (от Conqueror – «завоеватель», «покоритель»), терминал – Konsole (от Console – «консоль), а система помощи – вообще Kandalf (от имени Гэндальфа, мага из фантазийных произведений Дж.Р.Р.Толкиена)), „КДЕ“ – очень серьезный проект.

Если единообразие и «сплошность» среды считать достоинством, то «КДЕ» – несомненный лидер среди всех (как свободных, так и несвободных) интегрированных графических сред. Основное «видимое» средство интеграции – это универсальный браузер Konqueror. Функция Konqueror близка к той, которую приобрел «Майкрософт Интернет Эксплорер» в «Майкрософт Уиндоуз» – он совмещает функции гипермедийного браузера WWW и браузера локальных ресурсов.

Разработчики «КДЕ» пошли даже дальше своих коллег из Microsoft и определили ряд дополнительных протоколов, что позволило, в частности, просматривать с помощью браузера в единообразном формате все разнообразие справочной информации, представленное в сегодняшних открытых система (традиционные страницы руководства man, гипертекстовую систему Info из проекта GNU, разрозненные файлы документации в текстовом и гипертекстовом формате). В Konqueror интегрирована также возможность предварительного просмотра содержимого большого количества типов файлов.

«КДЕ» включает также настраиваемую систему панелей и меню и интегрированный «центр управления», позволяющий согласованно изменять параметры среды. «КДЕ» менее гибка в настройке, чем «Гном», однако ее гибкости вполне достаточно для решения любых практических задач (в том числе, имитации вида и поведения других сред). «КДЕ» работает только с собственным оконным менеджером KWin.

В поставку «КДЕ» входит множество «аксессуаров» и прикладных программ, к тому же «рядом» с проектом выросла целая «грибница» сопутствующих, ориентированных на те или иные предметные приложения, из которых самым развитым является KOffice.

GIS-LAB

Географические информационные системы и дистанционное зондирование

Руководство пользователя gvSIG

8. Инструменты редактирования

8.1 Введение

Существует два вида редактирования. Первый, включает редактирование графических элементов — создание, преобразование и удаление графики. Второй – редактирование атрибутивной информации объектов, в процессе которого создаются, преобразовывается и удаляются данные, ассоциированные с пространственными элементами.

8.2 Редактирование графики

8.2.1 Введение

Расширения CAD gvSIG способны создавать сложные рисунки на основе базовых элементов – линий, кругов и полигонов.

Элементы могут быть дублированы либо модифицированы по вашему желанию, используя функции копирования или вращения.

Чтобы осуществить эти действия необходимо знать тип редактируемого слоя. Зная тип редактируемого слоя, можно увидеть, какие из задач могут быть выполнены.

После того, как выбрана опция “Start edition”, появляется панель инструментов редактирования. Активные кнопки на ней – те кнопки, которые могут быть использованы. Так, например, если редактируется точечный слой, то будут доступны инструменты выбора, перемещения и создания точек.

Если слой линейный, будут активны то все инструменты, кроме создания точек.

В начале сессии редактирования также появляется консоль команд, либо сообщение и область команд, находящаяся ниже графической области. Эти инструменты позволяют вам вводить команды с клавиатуры компьютера, которые впоследствии выполняются в графической части.

8.2.2 Область графики

Если вы выбираете опцию “Start edition” из меню “Layer”, то появляется окно, состоящее из нижеперечисленных областей:

  • Menubar: Меню, позволяющее использовать функции приложения. Содержание меню будет меняться в зависимости от ситуации, так, например, меню “Geometry” возникает лишь в том случае, когда выбран какой-либо слой.
  • Toolbar: Панель, на которой находятся инструменты рисования.
  • Graphicarea: Область, занимающаяся большую часть экрана. В ней отображается редактируемый слой.
  • Commandconsole: Здесь расположена системная подсказка. После ввода команды, запускается соответствующий процесс, после чего выводится сообщение, информация либо параметры.
  • Statusbar: Показывает масштаб, единицы измерений, абсолютные координаты положения курсора (X и Y), а также проекцию.

8.2.3 Начало и завершение сессии редактирования

Активируйте слой, который вы хотите редактировать, выбрав его в таблице содержания. Поместите курсор над ним и кликните правой кнопкой мыши. В появившемся меню выберите опцию “Start edition”.

Примечание: При необходимости возможно редактирование более одного слоя. Однако все ваши действия будут применяться только к активному слою. Для смены слоя, над которым вы работаете, выберите его в таблице содержания. Когда вы хотите закончить сессию редактирования, выберите из контекстного меню “Finish edition”.

Примечание: В процессе приложение будет создавать виртуальную копию объекта, над которым вы работаете, чтобы помочь визуально представить результат рисования. Виртуальный объект будет показан красным цветом.

Рисунок ниже дает представление о том, как выглядит виртуальная копия объекта в процессе копирования. Такое проецирование позволяет точно определить место, в которое вы хотите поместить графический объект.

8.2.4 Процедуры ввода команд

Существуют три основных способа использования пользовательских команд. Первый способ состоит в выборе команды путем двойного щелчка мышью на соответствующей кнопке, находящейся на панели инструментов. Второй способ — выбор инструмента в панели меню (обычно они находятся во вкладке “Geometry”). Третий способ – ввод команды в консоль, используя клавиатуру.

8.2.4.1 Панель инструментов

Панель инструментов появляется во время редактирования какого-либо слоя. Иконки панели инструментов становятся активными в зависимости от типа редактируемого слоя.

8.2.4.2 Панель меню

Когда начинается сессия редактирования, в панели меню появляется новое меню “Geometry”.

8.2.4.3 Консоль команд

Команды, опции, сообщения или параметры запросов программа показывает в консоли команд. Нижняя строка консоли команд отображает исполняемую команду.

Размер окна консоли команд можно увеличивать либо уменьшать. Чтобы изменить размер, поместите курсор мыши на область разделителей между консолью команд и областью графики, щелкните левой кнопкой мыши и переместите указатель вверх или вниз так, чтобы консоль команд приняла нужный размер. Когда закончите изменения, отпустите клавишу мыши.

Можно также скрыть консоль, щелкнув на кнопке, расположенной в верхнем правом углу консоли в виде треугольника с направленной вниз вершиной. Чтобы восстановить консоль, кликните на кнопке в виде треугольника с вершиной, направленной вверх.

Чтобы ввести команду с помощью клавиатуры, напишите название команды и нажмите “Enter”. Команды не чувствительны к регистру.

Когда команда введена, появится окно или набор опций, которые связаны с этой командой. Например, после ввода команды “rectangle”, появляется окно, в котором будет запрошено определение угловой точки. После того, как точка была введена, для определения прямоугольника будет запрошена вторая точка или “C”.

8.2.5 Свойства редактирования

Во время сессии редактирования, если вы нажмете правую клавишу мыши на имени слоя в таблице содержания, то возникнет контекстное меню, в котором можно установить свойства редактирования.

8.2.5.1 Прилипание

На первой странице настроек редактирования можно установить допуск «прилипания». “Snap” или “Snapping” – процесс перемещения элемента до тех пор, пока он не будет точно совпадать с координатами другого элемента. Если допуск «прилипания» (“Snap tolerance”) равен 4 пикселям, то два элемента на расстоянии менее 4 пикселей будут соединены, а координаты этих элементов станут одинаковыми.

Можно установить «прилипание» между слоями, выбрав соответствующие переключатели в колонке “Selected”.

Можно также изменять значение колонки “Maximum features edition cache” – максимальное количество геометрических примитивов, с которыми вы желаете работать в кэше. Это ускоряет процесс обработки прилипания.

8.2.5.2 Установка свойств сетки

Чтобы установить свойства сетки, выберите “Grid” в раскрывающемся списке слева.

Стека – точечный шаблон, который находится в области графики. Она полезна при выравнивании объектов, а также позволяет рассчитать расстояния между ними.

Можно включить сетку, включив переключатель “Show grid”, а также отредактировать расстояния между точками, включив переключатель “Adjust grid”.

Когда сетка включена, область графики выглядит следующим образом:

8.2.5.3 Сглаживание

Установка сглаживания осуществляется через соответствующую опцию в раскрывающемся списке слева.

В gvSIG окружность или другие закругленные геометрические примитивы состоят из ровных частей – хорд. Вы можете установить степень сглаженности, определив максимальный размер таких хорд.

8.2.6 Отмена последних действий / Повторение отмененного действия

gvSIG использует несколько механизмов отмены действий, которые были совершены над редактируемым слоем или повторение действия, которое было отменено.

8.2.6.1 Набор команд

Набор команд — инструмент, позволяющий отменять/повторять несколько команд одновременно. Этот инструмент предоставляет информацию о выполненных командах, такие как, имя и время, когда они были сделаны.

Набор команд можно запустить несколькими способами:

  • Выбрав на панели инструментов иконку, показанную ниже:
  • Выбрав из меню “File” пункт “Command stack”.

Набор команд сохраняет все команды, которые были выполнены над слоем в течении сессии редактирования с момента последнего сохранения.

Вы можете выбрать команды, которые необходимо отменить с помощью ползунка прокрутки. Перемещая ползунок прокрутки вверх и вниз, можно перейти к тому месту, с которого нужно продолжить работу.

Нужно помнить, что нельзя отменить какую-то одну команду в случайном месте, нужно будет отменить также все команды, выполненные после этой команды, то есть, необходимо перейти к последнему шагу с которого будет продолжено редактирование. Например, давайте представим, что мы совершили одиннадцать действий и, достигнув одиннадцатого действия, понимаем, что действие номер шесть было неверным. Мы не можем просто перейти к действию шесть и отменить его, нам придется отменить одиннадцатое, десятое, девятое … шестое действие, пока не достигнем пятого.

Преимущество использования набора команд в том, что мы можем отменять действия одновременно, а не по одному. К тому же, мы знаем, какие из действий мы отменяем.

Командами отмены действий/повторения отмененных действий, можно воспользоваться щелкнув на соответствующей иконке на панели инструментов.

Кнопка со стрелкой, направленной влево, отменяет последнее действие.

Кнопка со стрелкой, направленной вправо, возвращает последнее отмененное действие.

8.2.7 Координаты

Каждая точка может быть привязана двумя способами:

  • В режиме консоли. Координаты точки вводятся вручную.
  • Графический режим. Точка наносится с помощью устройства указания местоположения (позиции). В большинстве случаев этим устройством является мышь.

8.2.7.1 Режим консоли

В данном режиме может использоваться два вида систем координат:

  • Прямоугольные координаты. Определяются X и Y относительно точки отсчета.
  • Полярные координаты. Определяются расстоянием от точки отсчета и угла относительно горизонтальной оси.

Координаты также могут быть:

  • Абсолютные. Определяются относительно начала координат (0,0).
  • Относительные. Определяются относительно последней заданной точки.

Ввод прямоугольных координат

Вводите координаты X и Y, разделяя их запятой (X,Y). X — расстояние по горизонтальной оси (может быть положительным либо отрицательным), Y – значение расстояния вдоль вертикальной оси.

Введенные числа могут быть целыми, десятичными, положительными или отрицательными.

Значения абсолютных координат отсчитываются относительно начала координат (0,0) на расстояние Х и Y вдоль соответствующих осей. Например, точка с координатой (25,7) значит, что точка находится на расстоянии 25 единиц от начала координат по оси X и 7 единицах по оси Y.

Относительные значения координат основываются на последней введенной точке. Используйте относительные координаты, когда вы знаете координаты точки относительно последней введенной точки. Чтобы обозначить относительную точку, поместите cимвол “@” перед координатами.

Например, введенные @1,2 координаты значат, что введенная точка будет смещаться на 1 единицу по оси Х и на 2 единицы по оси У относительно последней введенной точки.

Какого режима видеодаптера не существует (см. варианты)?

Какого режима видеодаптера не существует?

2.) Алфавитно-графическо­ го

Текстовый и графический режимы видеоадаптера — известные режимы. При работе в графическом режиме можно задавать цвет каждого пикселя. Таким образом создается изображение.

Илон Маск рекомендует:  Краткий справочник по функциям winapi

В текстовом режиме экран представляет собой решетку, в каждой ячейке которой может быть расположен символ.

Текстовый режим применялся на первых компьютерах. Операционные системы не имели графического интерфейса. Для работы в системе команды набирались в консольном режиме. Для работы с файлами использовались фаловые менеджеры.

Что касается алфавитно-графическо­ го режима, его просто не существует. Видеоадаптер не оперирует термином алфавит. Оно неприменимо в отношении видеадаптера. А совмещение алфавита и графики скорее применимо к шрифтам.

Please verify you are a human

Access to this page has been denied because we believe you are using automation tools to browse the website.

This may happen as a result of the following:

  • Javascript is disabled or blocked by an extension (ad blockers for example)
  • Your browser does not support cookies

Please make sure that Javascript and cookies are enabled on your browser and that you are not blocking them from loading.

Reference ID: #b15d7f50-0562-11ea-8ca7-ad976e6ec4ed

1.5.5. Проблемы с переходом в графический режим

1.5.5. Проблемы с переходом в графический режим

Программа установки Linux работает в графическом режиме. Если у вас старая видеокарта, не поддерживающая разрешения 800?600, или старый монитор, вам придется запускать инсталлятор в режиме с низким разрешением. В ответ на приглашение boot: введите lowres — программа установки будет использовать разрешение 640?480.

Похожие главы из других книг

1.2.1 Графический контекст

1.2.1 Графический контекст Прежде чем начать работу с графикой, программа должна выделить себе специальную структуру данных и получить указатель на нее. Эта структура называется графическим контекстом (Graphic Context (GC)). Указатель на GC используется в качестве одного из

1.3. Графический интерфейс и консоль

1.3. Графический интерфейс и консоль 1.3.1. Что такое консоль В первых версиях Linux не было графического интерфейса. Да, система X Window (новое название — X.Org), которая лежит в основе графического интерфейса, появилась в 1992 году, но как такового графического интерфейса пользователя

Глава 7. Графический интерфейс

Глава 7. Графический интерфейс Хотя Linux представляет собой очень мощную и развитую операционную систему, но, если работать с ней только через интерфейс командной строки, она довольно трудна в обращении и «недружелюбна» к пользователю. Все необходимые операции выполняются

15.5. Графический редактор Gimp

15.5. Графический редактор Gimp Если СУБД встречается далеко не на каждом персональном компьютере, то программы работы с графикой нужны каждому пользователю, если не для создания или редактирования картинок, так хотя бы для их просмотра. Хотя для Linux и созданы разнообразные

П9. К главе 7 «Графический интерфейс»

П9. К главе 7 «Графический интерфейс» 1. Игорь Николаев. «FAQ по настройке монитора в XFree86». (http://knot.pu.ru/faq/xfaq.html). 2. Сергей Кононенко. «Графические системы Linux с точки зрения игр и мультимедиа». (http://www.citycat.ru/linux/artic/index.html). 3. «Как научить KDE говорить по-русски?».

Графический интерфейс

Графический интерфейс Отличие всех программ, работающих в операционной среде Windows, – это графический настраиваемый интерфейс. Это относится и к программам Microsoft Office. Пользователь в определенных пределах сам может выбирать вид, размер и функции рабочих окон и

Графический редактор Paint

Графический редактор Paint Paint – простейшая графическая программа, позволяющая создавать несложные рисунки, схемы и чертежи, а также подписи к изображениям. Большинство начинающих пользователей впервые пробуют свои силы в компьютерном изобразительном искусстве именно в

Простейший графический редактор

5.2. Графический редактор Paint

5.2. Графический редактор Paint Если вам нужно нарисовать какое-то изображение вручную и стандартных средств текстового редактора Word для этого недостаточно, то вы можете сделать это, используя специальную программу – графический редактор. Современные графические

Пользовательский режим и режим ядра

Пользовательский режим и режим ядра Сервер NFS в основном предназначен для обмена данными между файлами на диске и сетевым интерфейсом. В обычных условиях сервер NFS выполняется в системе Linux в пользовательском режиме. Это означает, что сервер не имеет специальных

Графический цвет

Графический цвет Графический цвет — это обычное графическое изображение, которым закрашиваются линии или заливки. Таким графическим изображением может быть содержи- мое как обычного графического файла, так и другой канвы.Графический цвет создают в три этапа.Первый

Графический цвет

Графический цвет Графический цвет — это обычное графическое изображение, которым закрашиваются линии или заливки. Таким графическим изображением может быть содержимое как обычного графического файла, так и другой канвы.Графический цвет создают в три этапа.Первый этап

Графический редактор

Графический редактор Теперь, когда мы ознакомились с графическими методами, настало время написать простейший графический редактор с минимальными возможностями. В этом приложении можно будет рисовать при помощи стилуса линии, а также прямые цветные линии из трех

Сгладим масштабирование переходом

Сгладим масштабирование переходом Напоследок, добавив переход на фотографию, мы сгладим масштабирование, навесив на состояние :hover анимированное увеличение и уменьшение фотографии. Такой эффект раньше можно было воспроизвести только на основе Flash или JavaScript; теперь он

Видеосистема ПК (стр. 2 из 3)

Важной характеристикой монитора и его адаптера скорость работы. В текстовом режиме все мониторы работают достаточно быстро, но при выводе графических изображений с высокой разрешающей способностью скорость работы может быть довольно существенна. В приложениях с интенсивным использованием графики (обработке изображений, анимации, конструировании и т.д.) может оказаться необходимым использование «быстрого» адаптера и соответствующего монитора. Многие фирмы выпускают ВА[2] с графическим сопроцессорами или ускорителями. Они работают параллельно с CPU и освобождают CPU от специализированных задач формирования изображений и делают это быстрее CPU. CPU выдает ВА команды высокого уровня для формирования графических примитивов. Примеры таких команд: пересылка блока изображения, формирование отрезка прямой, изменение масштаба, заполнение графического окна заданным цветом и т.д. Часто такие ВА устанавливаются на локальную шину (VL — bus, PCI), что существенно увеличивает скорость передачи данных между CPU и видеопамятью.

Режимы работы видеосистемы

Все видеосистемы персональных компьютеров (за исключением адаптера MDA) могут работать в двух основных режимах — текстовом и графическом. Различия этих режимов работы связаны со способом интерпретации содержимого видеобуфера.

Текстовый режим

В этом режиме, называемом также символьным, экран разделяется на отдельные символьные позиции, в каждой из которых выводится один символ. Символьные позиции определяются двумя координатами: номер текстовой строки и номер текстового столбца. Начало координат находится в верхнем левом углу рабочей области экрана.

После загрузки, компьютер всегда начинает работать в текстовом режиме. На принимаемой по умолчанию текстовый режим ориентирован на ОС DOS. Процедуры вывода на экран ОС основаны на элементарных функциях BIOS, которые вызываются командой программного прерывания INT 10h.

Изображение символа формируется на точечной матрице, размер которой зависит от используемого адаптера и номера режима. Точки, образующие изображение символа называются передним планом, а остальные фоном. Чем больше размер точечной матрицы, тем выше качество изображения.

Во всех видеосистемах персональных компьютеров совместимых с IBM применяется один и тот же формат хранения текстовых данных в видеобуфере. Каждый символ представлен двумя байтами.

Байт с четным адресом содержит код символа и определяет, что выводится на экран. Соседний байт с большим нечетным адресом содержит атрибуты и определяет, как они выводятся на экран. Байты, содержащие коды символов и атрибуты, размещаются в видеобуфере последовательно. Адаптер считывает их и с помощью аппаратного знакогенератора преобразует код каждого символа в точечное изображение на экране. Одновременно контроллер атрибутов формирует заданные атрибуты символа — цвет, яркость, мерцание. Благодаря принятому способу представления текстовых данных обеспечивается независимое управление атрибутами каждого символа. Изображение символа формируется на прямоугольной матрице пикселей.

Графический режим

В этом режиме цветовое значение каждого пикселя хранится, как один или несколько бит в видеобуфере и считывается на экран с дополнительным преобразованием. Графический режим называется еще режимом с двоичным или точечным отображением (bit — mapped display), т.к. в нем имеется взаимно однозначное соответствие между битами в видеобуфере и пикселями на экране. Говорят, что в видеобуфере хранится образ экрана.

Если в видеобуфере пиксель кодируется n битами, то одновременно на экране можно наблюдать 2n цветов. Число бит, отведенных для кодирования цвета, иногда называют числом цветовых плоскостей. Адаптеры EGA и VGA осуществляют дополнительные преобразования битовых полей пикселей с целью расширения отображаемой палитры. С помощью специальных схем n-битный код расширяется до m-битного, причем m>n. При этом получается палитра из 2m цветов, однако одновременно на экране можно наблюдать по-прежнему лишь 2n цветов.

Видеоданные графических режимов хранятся в виде двоичных полей представляющих значения пикселей. Они прямо (CGA)или косвенно(EGA,VGA) определяют цвет каждого пикселя на экране.

Видеорежимы, превосходящие VGA по разрешению и числу цветов, стали называть Super VGA или SVGA. Так же стали именовать поддерживающие эти режимы видеоадаптеры и мониторы. В настоящее время к стандартам VESA SVGA и стандартам SVGA, действующим де-факто, относятся:

Разрешения: 640 x 480, 800 x 600, 1024 x 768, 1152 x 864, 1280 x 1024, 1600 x 1280 (или 1200), 1800 x 1350

Количество бит/цветов: 4 бита / 16 цветов, 8 бит / 256 цветов, 16 бит / 32768 или 65536 цветов, 24 бит / 16,7 млн. цветов, 32 бит / 16,7 млн. цветов.

Для использования SVGA-видеорежимов под MS-DOS (в основном в компьютерных играх) ассоциация VESA предложила стандартное расширение системы команд обычного VGA, который хранится в VGA BIOS. Этот набор, называемый VESA BIOS Extension, реализуется производителем видеоадаптера либо в системе команд BIOS, либо в виде загружаемого драйвера. Существуют драйверы сторонних производителей, например программа UniVBE компании Scitech Software.

Принцип действия видеосистемы

Все видеосистемы содержат электронные компоненты, формирующие сигналы синхронизации, цветности и управляющие генерированием текстовых символов. Кроме того, во всех видеосистемах имеется видеобуфер. Он представляет собой область ОЗУ, которая предназначена только для хранения текста или графической информации, выводимой на экран. Основная функция ВА заключается в преобразовании данных из видеобуфера в те сигналы, которые управляют дисплеем и формируют наблюдаемое на экране изображение.

Программисту в большинстве случаев не требуется детального знания схем адаптера и монитора. Но для разработки эффективного ПО необходимо знать, где и как программа взаимодействует с аппаратными средствами, чтобы сформировать требуемое изображение. Хотя переход к визуальному программированию ставит под сомнение необходимость и таких знаний.

В персональных компьютерах видеобуфер (видеопамять) является частью адресного пространства ЦП и в них реализуется видеоподсистема с отображением на память. Каждая группа бит в видеобуфере определяет цвет и яркость определенного участка на экране. Такая организация подсистемы позволяет существенно повысить скорость отображения информации на экране, поскольку запись процессором данных в Video RAM превращается в запись на экран, а считывание данных из Video RAM эквивалентно считыванию с экрана. В видеоподсистеме с отображением на память, выводимую на экран информацию можно изменять с такой скоростью, с какой процессор может записывать данные в память плюс задержка на передачу сигналов.

Архитектура видеоадаптеров

В видеоадаптере VGA можно условно выделить шесть логических блоков.

Видеопамять: в видеопамяти размещаются данные, отображаемые на экране дисплея. Логически она содержится в едином адресном пространстве ОС. Минимальный объем видеопамяти для VGA = 256 КБ. Физически видеопамять разделена на четыре банка, или цветовых слоя, использующих единое адресное пространство. Понятно, что чем больше емкость видеопамяти, тем большее разрешение или цветов можно получить, а, следовательно, вывести более сложное изображение. В видеоадаптерах применяются специальные микросхемы VRAM они имеют два начала обращения: один для считывания данных и формирование видеосигнала, а второй для чтения и записи данных при обращении CPU. Оба канала действуют параллельно и независимо, поэтому скорость передачи информации возрастает.

1. Графический контроллер: управляет обменом данных между CPU и видеопамятью. Он позволяет производить над данными VRAM и данными в регистрах простейшие логические операции.

2. Последовательный преобразователь(RAMDAC): выбирает из видеопамяти один или несколько байт, преобразует их в последовательный поток битов, которые передаются в контроллер атрибутов.

3. Контроллер ЭЛТ: генерирует временные синхросигналы, управляющие ЭЛТ.

4. Контроллер атрибутов: преобразует информацию о цветах из формата, в котором она хранится в видеопамяти, в формат, необходимый для ЭЛТ. Преобразование цветов осуществляется в соответствии с таблицей цветовой палитры. Например, модифицируя таблицу цветовой палитры можно выбрать 16 цветов из 64, которые может отображать EGA или 256 цветов из палитры 256 К для VGA. В адаптере VGA контроллер атрибутов преобразует информацию о цветах текстового режима и пиксельные данные графического режима в 8-битные индексы, выбирающие регистры цвета ЦАП.

5.Синхронизатор: управляет всеми временными параметрами видеоадаптера и доступом CPU к цветовым слоям видеопамяти.

6. Видео-ПЗУ (Video ROM): постоянное запоминающее устройство, в которое записаны видео-BIOS, экранные шрифты, служебные таблицы и т.п. ПЗУ не используется видеоконтpоллеpом напрямую — к нему обращается только центральный пpоцессоp, и в результате выполнения им пpогpамм из ПЗУ происходят обращения к видеоконтpоллеpу и видеопамяти. На многих видеокартах устанавливаются электрически пеpепpогpаммиpуемые ПЗУ (EEPROM, Flash ROM), допускающие перезапись пользователем под управлением специальной программы из комплекта каpты. ПЗУ необходимо только для первоначального запуска адаптера и работы в режиме MS DOS, Novell Netware и других ОС.

GIS-LAB

Географические информационные системы и дистанционное зондирование

Руководство пользователя gvSIG

8. Инструменты редактирования

8.1 Введение

Существует два вида редактирования. Первый, включает редактирование графических элементов — создание, преобразование и удаление графики. Второй – редактирование атрибутивной информации объектов, в процессе которого создаются, преобразовывается и удаляются данные, ассоциированные с пространственными элементами.

8.2 Редактирование графики

8.2.1 Введение

Расширения CAD gvSIG способны создавать сложные рисунки на основе базовых элементов – линий, кругов и полигонов.

Элементы могут быть дублированы либо модифицированы по вашему желанию, используя функции копирования или вращения.

Чтобы осуществить эти действия необходимо знать тип редактируемого слоя. Зная тип редактируемого слоя, можно увидеть, какие из задач могут быть выполнены.

После того, как выбрана опция “Start edition”, появляется панель инструментов редактирования. Активные кнопки на ней – те кнопки, которые могут быть использованы. Так, например, если редактируется точечный слой, то будут доступны инструменты выбора, перемещения и создания точек.

Если слой линейный, будут активны то все инструменты, кроме создания точек.

В начале сессии редактирования также появляется консоль команд, либо сообщение и область команд, находящаяся ниже графической области. Эти инструменты позволяют вам вводить команды с клавиатуры компьютера, которые впоследствии выполняются в графической части.

8.2.2 Область графики

Если вы выбираете опцию “Start edition” из меню “Layer”, то появляется окно, состоящее из нижеперечисленных областей:

  • Menubar: Меню, позволяющее использовать функции приложения. Содержание меню будет меняться в зависимости от ситуации, так, например, меню “Geometry” возникает лишь в том случае, когда выбран какой-либо слой.
  • Toolbar: Панель, на которой находятся инструменты рисования.
  • Graphicarea: Область, занимающаяся большую часть экрана. В ней отображается редактируемый слой.
  • Commandconsole: Здесь расположена системная подсказка. После ввода команды, запускается соответствующий процесс, после чего выводится сообщение, информация либо параметры.
  • Statusbar: Показывает масштаб, единицы измерений, абсолютные координаты положения курсора (X и Y), а также проекцию.

8.2.3 Начало и завершение сессии редактирования

Активируйте слой, который вы хотите редактировать, выбрав его в таблице содержания. Поместите курсор над ним и кликните правой кнопкой мыши. В появившемся меню выберите опцию “Start edition”.

Примечание: При необходимости возможно редактирование более одного слоя. Однако все ваши действия будут применяться только к активному слою. Для смены слоя, над которым вы работаете, выберите его в таблице содержания. Когда вы хотите закончить сессию редактирования, выберите из контекстного меню “Finish edition”.

Примечание: В процессе приложение будет создавать виртуальную копию объекта, над которым вы работаете, чтобы помочь визуально представить результат рисования. Виртуальный объект будет показан красным цветом.

Рисунок ниже дает представление о том, как выглядит виртуальная копия объекта в процессе копирования. Такое проецирование позволяет точно определить место, в которое вы хотите поместить графический объект.

8.2.4 Процедуры ввода команд

Существуют три основных способа использования пользовательских команд. Первый способ состоит в выборе команды путем двойного щелчка мышью на соответствующей кнопке, находящейся на панели инструментов. Второй способ — выбор инструмента в панели меню (обычно они находятся во вкладке “Geometry”). Третий способ – ввод команды в консоль, используя клавиатуру.

8.2.4.1 Панель инструментов

Панель инструментов появляется во время редактирования какого-либо слоя. Иконки панели инструментов становятся активными в зависимости от типа редактируемого слоя.

8.2.4.2 Панель меню

Когда начинается сессия редактирования, в панели меню появляется новое меню “Geometry”.

8.2.4.3 Консоль команд

Команды, опции, сообщения или параметры запросов программа показывает в консоли команд. Нижняя строка консоли команд отображает исполняемую команду.

Размер окна консоли команд можно увеличивать либо уменьшать. Чтобы изменить размер, поместите курсор мыши на область разделителей между консолью команд и областью графики, щелкните левой кнопкой мыши и переместите указатель вверх или вниз так, чтобы консоль команд приняла нужный размер. Когда закончите изменения, отпустите клавишу мыши.

Можно также скрыть консоль, щелкнув на кнопке, расположенной в верхнем правом углу консоли в виде треугольника с направленной вниз вершиной. Чтобы восстановить консоль, кликните на кнопке в виде треугольника с вершиной, направленной вверх.

Чтобы ввести команду с помощью клавиатуры, напишите название команды и нажмите “Enter”. Команды не чувствительны к регистру.

Когда команда введена, появится окно или набор опций, которые связаны с этой командой. Например, после ввода команды “rectangle”, появляется окно, в котором будет запрошено определение угловой точки. После того, как точка была введена, для определения прямоугольника будет запрошена вторая точка или “C”.

8.2.5 Свойства редактирования

Во время сессии редактирования, если вы нажмете правую клавишу мыши на имени слоя в таблице содержания, то возникнет контекстное меню, в котором можно установить свойства редактирования.

8.2.5.1 Прилипание

На первой странице настроек редактирования можно установить допуск «прилипания». “Snap” или “Snapping” – процесс перемещения элемента до тех пор, пока он не будет точно совпадать с координатами другого элемента. Если допуск «прилипания» (“Snap tolerance”) равен 4 пикселям, то два элемента на расстоянии менее 4 пикселей будут соединены, а координаты этих элементов станут одинаковыми.

Можно установить «прилипание» между слоями, выбрав соответствующие переключатели в колонке “Selected”.

Можно также изменять значение колонки “Maximum features edition cache” – максимальное количество геометрических примитивов, с которыми вы желаете работать в кэше. Это ускоряет процесс обработки прилипания.

8.2.5.2 Установка свойств сетки

Чтобы установить свойства сетки, выберите “Grid” в раскрывающемся списке слева.

Стека – точечный шаблон, который находится в области графики. Она полезна при выравнивании объектов, а также позволяет рассчитать расстояния между ними.

Можно включить сетку, включив переключатель “Show grid”, а также отредактировать расстояния между точками, включив переключатель “Adjust grid”.

Когда сетка включена, область графики выглядит следующим образом:

8.2.5.3 Сглаживание

Установка сглаживания осуществляется через соответствующую опцию в раскрывающемся списке слева.

В gvSIG окружность или другие закругленные геометрические примитивы состоят из ровных частей – хорд. Вы можете установить степень сглаженности, определив максимальный размер таких хорд.

8.2.6 Отмена последних действий / Повторение отмененного действия

gvSIG использует несколько механизмов отмены действий, которые были совершены над редактируемым слоем или повторение действия, которое было отменено.

8.2.6.1 Набор команд

Набор команд — инструмент, позволяющий отменять/повторять несколько команд одновременно. Этот инструмент предоставляет информацию о выполненных командах, такие как, имя и время, когда они были сделаны.

Набор команд можно запустить несколькими способами:

  • Выбрав на панели инструментов иконку, показанную ниже:
  • Выбрав из меню “File” пункт “Command stack”.

Набор команд сохраняет все команды, которые были выполнены над слоем в течении сессии редактирования с момента последнего сохранения.

Вы можете выбрать команды, которые необходимо отменить с помощью ползунка прокрутки. Перемещая ползунок прокрутки вверх и вниз, можно перейти к тому месту, с которого нужно продолжить работу.

Нужно помнить, что нельзя отменить какую-то одну команду в случайном месте, нужно будет отменить также все команды, выполненные после этой команды, то есть, необходимо перейти к последнему шагу с которого будет продолжено редактирование. Например, давайте представим, что мы совершили одиннадцать действий и, достигнув одиннадцатого действия, понимаем, что действие номер шесть было неверным. Мы не можем просто перейти к действию шесть и отменить его, нам придется отменить одиннадцатое, десятое, девятое … шестое действие, пока не достигнем пятого.

Преимущество использования набора команд в том, что мы можем отменять действия одновременно, а не по одному. К тому же, мы знаем, какие из действий мы отменяем.

Командами отмены действий/повторения отмененных действий, можно воспользоваться щелкнув на соответствующей иконке на панели инструментов.

Кнопка со стрелкой, направленной влево, отменяет последнее действие.

Кнопка со стрелкой, направленной вправо, возвращает последнее отмененное действие.

8.2.7 Координаты

Каждая точка может быть привязана двумя способами:

  • В режиме консоли. Координаты точки вводятся вручную.
  • Графический режим. Точка наносится с помощью устройства указания местоположения (позиции). В большинстве случаев этим устройством является мышь.

8.2.7.1 Режим консоли

В данном режиме может использоваться два вида систем координат:

  • Прямоугольные координаты. Определяются X и Y относительно точки отсчета.
  • Полярные координаты. Определяются расстоянием от точки отсчета и угла относительно горизонтальной оси.

Координаты также могут быть:

  • Абсолютные. Определяются относительно начала координат (0,0).
  • Относительные. Определяются относительно последней заданной точки.

Ввод прямоугольных координат

Вводите координаты X и Y, разделяя их запятой (X,Y). X — расстояние по горизонтальной оси (может быть положительным либо отрицательным), Y – значение расстояния вдоль вертикальной оси.

Введенные числа могут быть целыми, десятичными, положительными или отрицательными.

Значения абсолютных координат отсчитываются относительно начала координат (0,0) на расстояние Х и Y вдоль соответствующих осей. Например, точка с координатой (25,7) значит, что точка находится на расстоянии 25 единиц от начала координат по оси X и 7 единицах по оси Y.

Относительные значения координат основываются на последней введенной точке. Используйте относительные координаты, когда вы знаете координаты точки относительно последней введенной точки. Чтобы обозначить относительную точку, поместите cимвол “@” перед координатами.

Например, введенные @1,2 координаты значат, что введенная точка будет смещаться на 1 единицу по оси Х и на 2 единицы по оси У относительно последней введенной точки.

В отладчике DEBUG составить и выполнить процедуру, которая устанавливает графический режим экрана

03.12.2009, 11:51

В отладчике DEBUG создать и выполнить ассемблерную программу
1. С помощью отладчика DEBUG создать и выполнить ассемблерную программу, которая устанавливает.

Переместить курсор в заданную точку экрана (графический режим)
Доброе время суток! Подскажите, как переместить курсор в заданную точку на экране, для.

Создать программу, которая переводит экран в графический режим
«Создать программу, которая переводит экран в графический режим 13h (320×200), заселяет его.

Как создать хранимую процедуру,которая устанавливает является ли строка символов адресом электронной почты
Установить, является ли строка символов адресом электронной почты. Указание: в строке должен.

Написать процедуру обработки события OnCreate для формы, которая устанавливает для формы размер шрифта
Задание: 1.Создать приложение с формой. 2. Поместить на форму метку и кнопку. 3. Написать.

04.12.2009, 01:40 2 04.12.2009, 01:40

Составить процедуру, которая упорядочивают последовательность
составить процедуру, которая упорядочивают последовательность A1,A2. An в порядке возрастания ее.

Режим Debug
Скажите, пожалуйста, можно ли в Debug режиме следить за значением переменных, находящихся НЕ в.

Составить процедуру, которая определяет, лежит ли точка А на отрезке [c,d]
На числовой оси расположены пять точек с координатами b1, b2, b3, b4, b5 и точка А с координатой x.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL