DX10 SwapChain ResizeBuffers (...) против ResizeTarget (...) - PullRequest
1 голос
/ 20 декабря 2010

Какая разница?Google / MSDN, похоже, не имеет никакой информации.

MSDN:

ResizeBuffers

ResizeTarget

1 Ответ

0 голосов
/ 22 декабря 2010

Нашел это при поиске чего-то совершенно другого ...

Из MSDN

... DXGI изменяет размер переднего буфера, чтобы соответствовать вновь выбранному полноэкранному режиму, ион отправляет сообщение WM_SIZE в приложение.Приложение снова вызывает ResizeBuffers, точно так же, как если бы граница окна была перетащена.

Методология предыдущего объяснения следует очень специфическому пути.DXGI по умолчанию устанавливает полноэкранное разрешение на разрешение рабочего стола.Однако многие приложения переключаются на предпочитаемое полноэкранное разрешение.В таком случае DXGI предоставляет IDXGISwapChain :: ResizeTarget.Это должно быть вызвано перед вызовом SetFullscreenState.Хотя эти методы можно вызывать в обратном порядке (сначала SetFullscreenState, а затем ResizeTarget), это приводит к отправке дополнительного сообщения WM_SIZE в приложение.(Это также может вызвать мерцание, поскольку DXGI может быть вынужден выполнить два изменения режима.) После вызова SetFullscreenState рекомендуется снова вызвать ResizeTarget с обнуленным членом RefreshRate.Это равносильно тому, что в DXGI отсутствует инструкция без операции, но это может избежать проблем с частотой обновления, которые обсуждаются далее.

В полноэкранном режиме диспетчер окон рабочего стола отключен.DXGI может выполнить переворот, чтобы представить содержимое заднего буфера, вместо того, чтобы делать блиц, что было бы в оконном режиме.Однако это повышение производительности может быть отменено, если определенные требования не выполняются.Чтобы DXGI выполнял переворот вместо блита, передний буфер и задний буфер должны иметь одинаковый размер.Если приложение правильно обрабатывает свои сообщения WM_SIZE, это не должно быть проблемой.Кроме того, форматы должны быть идентичны.

Проблема для большинства приложений - частота обновления.Частота обновления, указанная в вызове ResizeTarget, должна быть частотой обновления, которая перечисляется объектом IDXGIOutput, который использует цепочка подкачки.DXGI может автоматически рассчитать это значение, если приложение обнуляет элемент RefreshRate элемента DXGI_MODE_DESC, который передается в ResizeTarget....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...