Поделиться через


Интерфейс 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 или другое полноэкранное приложение
В таких ситуациях приложение должно освободить интерфейс IDXGIOutputDuplication и создать новый интерфейс IDXGIOutputDuplication для нового содержимого. Если приложение не имеет права доступа к новому образу рабочего стола, его вызов метода IDXGIOutput1::D uplicateOutput завершается ошибкой.

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

Изображение рабочего стола всегда имеет DXGI_FORMAT_B8G8R8A8_UNORM формате.

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

Требования

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

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

Интерфейсы DXGI

IDXGIObject