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