Skip to main content

Что такое немедленный режим?

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

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

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

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