Интерфейс IDXGIOutputDuplication (dxgi1_2.h)

Интерфейс IDXGIOutputDuplication обращается к дублированному изображению рабочего стола и управляет им.

Наследование

Интерфейс IDXGIOutputDuplication наследуется от IDXGIObject. IDXGIOutputDuplication также имеет следующие типы элементов:

Методы

Интерфейс IDXGIOutputDuplication имеет эти методы.

 
IDXGIOutputDuplication::AcquireNextFrame

Указывает, что приложение готово к обработке следующего образа рабочего стола.
IDXGIOutputDuplication::GetDesc

Извлекает описание повторяющихся выходных данных. Это описание указывает размеры поверхности, содержащей изображение рабочего стола.
IDXGIOutputDuplication::GetFrameDirtyRects

Возвращает сведения о грязных прямоугольниках для текущего кадра рабочего стола.
IDXGIOutputDuplication::GetFrameMoveRects

Возвращает сведения о перемещенных прямоугольниках для текущего кадра рабочего стола.
IDXGIOutputDuplication::GetFramePointerShape

Получает сведения о новой фигуре указателя для текущего кадра рабочего стола.
IDXGIOutputDuplication::MapDesktopSurface

Предоставляет ЦП с эффективным доступом к образу рабочего стола, если этот образ уже находится в системной памяти.
IDXGIOutputDuplication::ReleaseFrame

Указывает, что приложение завершило обработку кадра.
IDXGIOutputDuplication::UnMapDesktopSurface

Отменяет указатель на изображение рабочего стола, полученное с помощью IDXGIOutputDuplication::MapDesktopSurface.

Комментарии

Приложение для совместной работы может использовать IDXGIOutputDuplication для доступа к образу рабочего стола. IDXGIOutputDuplication поддерживается в диспетчере окон рабочего стола (DWM) в полноэкранных режимах DirectX, отличных от 8bpp, и в полноэкранных режимах OpenGL, отличных от 8bpp. 16-разрядные или 32-разрядные режимы GDI, отличные от DWM, не поддерживаются.

Приложение может использовать IDXGIOutputDuplication в отдельном потоке, чтобы получать образы рабочего стола и передавать их в конкретный конвейер обработки изображений. Приложение использует IDXGIOutputDuplication для выполнения следующих операций:

  1. Получите следующий образ рабочего стола.
  2. Получите сведения, описывающие изображение.
  3. Выполните операцию на изображении. Эта операция может быть такой же простой, как копирование изображения в промежуточный буфер, чтобы приложение удобочитало данные пикселей на изображении. Приложение считывает данные пикселей после вызова IDXGISurface::Map. Кроме того, эта операция может быть более сложной. Например, приложение может запускать некоторые шейдеры пикселей в обновленных регионах изображения, чтобы закодировать эти области для передачи клиенту.
  4. После того как приложение завершит обработку каждого образа рабочего стола, оно освобождает образ, циклирует на шаг 1 и повторяет шаги. Приложение повторяет эти действия до тех пор, пока оно не завершит обработку образов настольных компьютеров.
Следующие компоненты операционной системы могут создавать образ рабочего стола:
  • DWM путем создания образа рабочего стола
  • Полноэкранное приложение DirectX или OpenGL
  • Приложение путем переключения на отдельный рабочий стол, например безопасный рабочий стол, используемый для отображения экрана входа
Все текущие интерфейсы IDXGIOutputDuplication становятся недействительными при переключении операционной системы на другой компонент, который создает образ рабочего стола или при изменении режима. В таких ситуациях приложение должно уничтожить текущий интерфейс IDXGIOutputDuplication и создать новый интерфейс IDXGIOutputDuplication .

Ниже приведены примеры ситуаций, в которых idXGIOutputDuplication становится недопустимым:

  • Переключение рабочего стола
  • Изменение режима
  • Переключение с DWM вкл., DWM off или другого полноэкранного приложения
В таких ситуациях приложение должно освободить интерфейс IDXGIOutputDuplication и создать новый интерфейс IDXGIOutputDuplication для нового содержимого. Если у приложения нет соответствующих привилегий для нового образа рабочего стола, вызов метода IDXGIOutput1::D uplicateOutput завершается ошибкой.

Хотя приложение обрабатывает каждый образ рабочего стола, операционная система накапливает все обновления образа рабочего стола в одном обновлении. Дополнительные сведения об обновлениях для настольных компьютеров см. в разделе "Обновление данных образа рабочего стола".

Образ рабочего стола всегда находится в формате DXGI_FORMAT_B8G8R8A8_UNORM .

Интерфейс IDXGIOutputDuplication не существует для приложений Магазина Windows.

Требования

   
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header dxgi1_2.h

См. также раздел

Интерфейсы DXGI

IDXGIObject