Сохраненный режим - Retained mode

Сохраненный режим в компьютерной графике - основной образец Дизайн API в графических библиотеках,[1] в котором

Немедленный режим это альтернативный подход. Исторически сложилось так, что сохраненный режим был доминирующим стилем в GUI библиотеки;[3] однако оба они могут сосуществовать в одной библиотеке и на практике не обязательно являются исключением.[4]

Обзор

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

В сохраненном режиме клиент вызовы не вызывают непосредственно фактический рендеринг, а вместо этого обновляют абстрактная внутренняя модель (обычно список объектов), который поддерживается в пространстве данных библиотеки. Это позволяет библиотеке оптимизировать, когда происходит фактический рендеринг вместе с обработкой связанных объектов.[2]

Вот некоторые методы оптимизации рендеринга:

Пример сосуществования с немедленным режимом в одной библиотеке: OpenGL.[9] OpenGL имеет функции немедленного режима, которые могут использовать ранее определенные объекты на стороне сервера (текстуры, буферы вершин и индексные буферы, шейдеры и т. д.) без повторной отправки неизмененных данных.[10][11]

Примеры систем рендеринга с сохраненным режимом включают: Windows Presentation Foundation,[2] SceneKit на macOS,[12] и ФИГС.

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

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

Смотрите также

Рекомендации

  1. ^ Джин, Чефан (май 2006 г.). «Рендеринг параллельной графики с сохраненным режимом для совместных сред проектирования». 2006 10-я Международная конференция по компьютерной совместной работе в дизайне: 1–6. Дои:10.1109 / CSCWD.2006.253142.
  2. ^ а б c Куинн Радич (30 мая 2018 г.). «Сохраненный режим против немедленного режима». Приложения Win32. Microsoft. Получено 21 декабря 2019.
  3. ^ Фельдмайер, Алекс (12 октября 2013 г.). "Программирование GUI". Технический отчет UWP Computer Science and Software Engineering. Получено 22 декабря 2019. Сохраненный режим был стандартом в течение многих лет. Практически каждый графический интерфейс находится в сохраненном режиме.
  4. ^ QuinnRadich. «Сохраненный режим по сравнению с немедленным режимом - приложения Win32». docs.microsoft.com. Получено 2020-08-21.
  5. ^ «Двойная буферизация OpenGL». Получено 7 мая 2020.
  6. ^ «Двойная буферизация DirectX». Получено 7 мая 2020.
  7. ^ "Удаление лиц OpenGL". Получено 7 мая 2020.
  8. ^ "Удаление окклюзии DirectX". Получено 7 мая 2020.
  9. ^ "OpenGL". Получено 4 мая 2020.
  10. ^ «Поддержка драйверов OpenGL». Разработчик NVIDIA. 2013-08-19. Получено 2020-08-21.
  11. ^ «OpenGL - отраслевой фундамент высокопроизводительной графики». Группа Хронос. 2011-07-19. Получено 2020-08-21.
  12. ^ Вейхер, Марсель (24 февраля 2017 г.). Настройка производительности iOS и macOS: Cocoa, Cocoa Touch, Objective-C и Swift. Эддисон-Уэсли Профессионал. ISBN  9780133085532. Получено 22 декабря 2019. SceneKit и SpriteKit, с другой стороны, являются API с сохраненным режимом.