Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Немедленный режим в компьютерной графике - это основной шаблон проектирования API в графических библиотеках, в котором

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

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

Обзор [ править ]

Схематическое объяснение графического API немедленного режима

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

Схематическое объяснение графического API сохраненного режима в отличие от

Примеры систем рендеринга в немедленном режиме включают Direct2D , [1] OpenGL [3] и Quartz . [4] Есть несколько графических интерфейсов пользователя в немедленном режиме , которые особенно подходят при использовании в сочетании с системами рендеринга в немедленном режиме.

Есть еще один важный паттерн проектирования API в графических библиотеках - сохраненный режим .

Примитивный рендеринг в немедленном режиме [ править ]

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

Рендеринг в немедленном режиме с буферами вершин [ править ]

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

См. Также [ править ]

  • Графический интерфейс немедленного режима
  • Список отображения
  • Сохраненный режим , обычно в отличие от немедленного режима
  • График сцены

Ссылки [ править ]

  1. ^ a b Куинн Радич (30 мая 2018 г.). «Сохраненный режим по сравнению с немедленным режимом» . Приложения Win32 . Microsoft . Проверено 21 декабря 2019 .
  2. ^ Feldmeier, Alex (12 октября 2013). «Программирование GUI» . Технический отчет UWP Computer Science and Software Engineering . Проверено 22 декабря 2019 . Сохраненный режим был стандартом в течение многих лет. Почти каждый графический интерфейс находится в сохраненном режиме.
  3. ^ "OpenGL" . Дата обращения 4 мая 2020 .
  4. ^ Weiher, Марсель (24 февраля 2017). Настройка производительности iOS и macOS: Cocoa, Cocoa Touch, Objective-C и Swift . Эддисон-Уэсли Профессионал. ISBN 9780133085532. Проверено 22 декабря 2019 . Основной графический API Quartz и OpenGL - это API немедленного режима.