Что такое графический режим
Перейти к содержимому

Что такое графический режим

  • автор:

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

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

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

Как и в случае с графическими объектами, система инициализирует контроллер домена с графическими режимами по умолчанию. Приложение может получить и проверить эти режимы по умолчанию, вызвав следующие функции.

Графический режим Функция
История GetBkMode
Рисование GetROP2
Сопоставление GetMapMode
Заполнение многоугольников GetPolyFillMode
Растяжения GetStretchBltMode

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

Графический режим Функция
История SetBkMode
Рисование SetROP2
Сопоставление SetMapMode
Заполнение многоугольников SetPolyFillMode
Растяжения SetStretchBltMode

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

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

Графический интерфейс - определение в словаре.

Понравилось? Поделись с друзьями!

Что такое графический режим

26 сентября 2023

Скопировано

GUI — это графический пользовательский интерфейс. Название происходит от английского словосочетания graphical user interface. Так называется внешний вид программы — то, что видит пользователь и с чем он может взаимодействовать. Это, например, компоненты графического интерфейса: окна, кнопки и так далее.

Освойте профессию «Frontend-разработчик»

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

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

Название по-русски произносится как ГУИ. Иногда в материалах по информатике используют адаптированную аббревиатуру ГИП — графический интерфейс пользователя.

Для чего нужен GUI

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

GUI нужен, чтобы пользователям было удобнее. Альтернатива графическому интерфейсу — консольный интерфейс CLI, то есть программа для командной строки. У нее нет кнопок и окошек, а чтобы управлять программой, нужно писать команды в консоль. Такой подход бывает удобным для программистов, но только в случае специализированного профессионального ПО. А программами и приложениями для личных дел проще и удобнее пользоваться через GUI.

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

Профессия / 9 месяцев
Frontend-разработчик

Создавайте интерфейсы сервисов, которыми пользуются все

Group 1321314347 (1)

Какие компоненты есть в GUI

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

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

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

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

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

Манипуляции. Действия, которые можно совершить с интерфейсом, тоже считаются его частью. Например, на кнопку можно нажать, меню — открыть и закрыть, окно — расширить. Еще есть drag-n-drop и другие способы взаимодействия с интерактивными элементами. Все это делается с помощью мыши или клавиатуры, иногда — других устройств ввода и вывода.

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

Каким может быть GUI

  • Стандартный графический интерфейс — это окно, в котором есть разные пиктограммки, кнопки, поля и так далее. Пример — окно «Проводника» в операционной системе. Интерфейс понятный, наглядный и функциональный. Так называют GUI, которые реализованы средствами самой ОС.
  • Существуют также истинно графические интерфейсы — так называют красивые GUI, которые реализованы с помощью сторонних инструментов. В них могут быть необычные, нестандартные компоненты, например кнопки разных форм и цветов, картинки-кнопки, анимации и так далее. Пример — сайты: там интерфейсы не зависят от операционной системы пользователя и отрисовываются в браузере. А придумывает их команда программистов и дизайнеров, с нуля. Средства ОС там используются очень ограниченно.
  • Трехмерные графические интерфейсы в основном встречаются в играх и в других программах, которые подразумевают работу с 3D-моделями. Например, рабочая область 3D-редактора будет иметь трехмерный интерфейс с тенями, сеткой и отображением объекта, который сейчас рисуют.

Требования к GUI

Наглядность. С графическими интерфейсами работает принцип DWIM — Do What I Mean, то есть «Делай то, что я имею в виду». Этот принцип означает, что интерфейс должен быть интуитивно ясным, а пользователь легко мог понять, что делает тот или иной элемент. Можно сказать, что интерфейс должен быть предсказуемым: например, кнопка «Сохранить» должна сохранять файл как есть, а не экспортировать в другой формат.

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

Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все

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

Удобство — очень широкое понятие. Для его измерения даже есть специальные метрики: по ним определяют, насколько быстро и полно человек может разобраться в интерфейсе.

Эффективность. Эффективный интерфейс — это такой, который помогает достичь нужного результата как можно быстрее. Сюда можно отнести два правила:

  • интерфейс не должен «тормозить» и зависать;
  • интерфейс должен давать возможность быстро добраться до нужной функции.

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

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

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

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

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

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

Примеры GUI

  • Графический интерфейс операционной системы: рабочий стол, панель задач и меню «Пуск», трей, иконки, окна и так далее.
  • Интерфейс браузера: окно, список открытых вкладок, панель закладок сверху, адресная строка, кнопки «Вперед», «Назад» и другие, меню, аккаунт, список расширений.
  • Графический интерфейс сайта: шапка и подвал, меню, основной контент страницы, кнопки и формы, виджеты и прочие элементы.
  • Интерфейс среды разработки: окно программы, рабочая область для ввода кода, меню управления проектом и программой, меню запуска и отладки, дополнительные расширения, контроль версий и прочее. В масштабных средах может быть очень много функций.
  • Интерфейс 3D-редактора: «сцена», где расположены объект, свет и текстуры — это, кстати, пример трехмерного интерфейса. Также в нем есть меню для работы с объектами, различные инструменты, горячие клавиши и прочее.

Преимущества GUI

  • Удобство. Пользоваться GUI намного проще и понятнее, чем командной строкой. Графические интерфейсы в принципе сделаны так, чтобы в них мог разобраться любой.
  • Широкая аудитория. Приложением с графическим интерфейсом может воспользоваться кто угодно, даже человек, который не слишком хорошо разбирается в компьютерах.
  • Понятность. Функции, которые есть в графическом интерфейсе, видны наглядно: человеку не приходится читать мануалы, чтобы узнать команды для управления программой.
  • Скорость работы. Зачастую нажать кнопку в GUI куда быстрее, чем писать строки кода для консоли. А еще в графическом интерфейсе можно быстрее разобраться.

Недостатки GUI

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

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

Как создают GUI

Создание графического интерфейса можно условно разделить на несколько этапов.

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

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

  • в веб-разработке графические и функциональные элементы создают с помощью HTML и CSS, какие-то сложные компоненты программируют на JavaScript;
  • для приложений под определенные ОС есть среды разработки с возможностью создавать графические интерфейсы, например Visual Studio. А есть библиотеки компонентов, в которых уже собраны готовые наборы элементов.

Frontend-разработчик

Научитесь создавать удобные и эффектные сайты, сервисы и приложения, которые нужны всем. Сегодня профессия на пике актуальности: в России 9000+ вакансий, где требуется знание JavaScript.

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

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

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

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

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

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

Рис.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 позволяет сохранить и локальную память на графическом адаптере (видеобуфер) и расширение доступной памяти не отзывается снижением производительности.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *