1

Эти две статьи указывают, что внеэкранный передний буфер является частью модели драйвера Windows Vista/7 (WDDM).

http://www.opengl.org/pipeline/article/vol003_7/

Даже выключение DWM, скорее всего, не исправит это, учитывая, что фронтальный буфер вне экрана является требованием самой модели драйвера.

http://blogs.msdn.com/b/greg_schechter/archive/2006/05/02/588934.aspx

Широко известно, что менеджер окон рабочего стола (DWM) объединяет передние буферы для рендеринга на экран.

У меня такой вопрос: если за пределами экрана используются передние буферы, независимо от того, включен ли DWM или нет, что выполняет операцию компоновки, когда DWM отключен?

Я также ищу любые хорошие ссылки о том, как ведет себя Windows 7, когда DWM отключен. Это просто возвращается к модели окон XP со стеком?

1 ответ1

1

Модель окна стека исчезла. Vista и выше использовать композитную модель рабочего стола

Я помню эти обсуждения еще тогда, когда Vista впервые появилась. Я буду стараться изо всех сил. Вы должны гуглить эти темы с Vista вместо Windows 7.

Широко известно, что менеджер окон рабочего стола (DWM) объединяет передние буферы для рендеринга на экран.

У меня такой вопрос: если фронтальные буферы за пределами экрана используются независимо от того, включен ли DWM или нет,> что делает композиция, когда DWM отключен?

Вы можете убедиться сами. Выключите Aero и переключитесь на Basic. Теперь вы работаете без DWM. Бум, нет DWM. Но если вы попытаетесь записать в память видеокарты, что произойдет? Большую часть времени вы будете перенаправлены за пределы экранных буферов, если вы не опытный программист. В этом случае вы бы не задавали этот вопрос. И вы бы знали, что происходит

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

Большую часть этого я узнал во время изучения WPF, поскольку DWM во многих отношениях является просто грандиозным WPF-приложением. Они оба используют DirectX и MIL для создания своих соответствующих рабочих пространств. Я бы начал с некоторых технических статей под Vista и WPF. Изменения в DVM и DDK под Windows 7 незначительны и не касаются вашего вопроса.

Я надеюсь, что все это имеет смысл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .