структура DXGI1_1_DDI_BASE_FUNCTIONS (dxgiddi.h)
Структура DXGI1_1_DDI_BASE_FUNCTIONS содержит указатели на функции, которые драйвер отображения пользовательского режима может реализовать для выполнения низкоуровневых задач, таких как представление отрисованных кадров на выходе, управление гамма, получение уведомлений о общей и совместимой поверхности GDI, а также управление полноэкранным переходом.
Синтаксис
typedef struct DXGI1_1_DDI_BASE_FUNCTIONS {
HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
} DXGI1_1_DDI_BASE_FUNCTIONS;
Члены
pfnPresent
Указатель на функцию PresentDXGI драйвера.
pfnGetGammaCaps
Указатель на функцию GetGammaCapsDXGI драйвера.
pfnSetDisplayMode
Функция SetDisplayModeDXGI переключается в режим отображения или основной режим, который не поддерживается рабочим столом GDI.
Среда выполнения Microsoft Direct3D вызывает SetDisplayModeDXGI для переключения в режим отображения или основной режим, который не поддерживается рабочим столом GDI. В следующем списке приведены примеры таких первичных объектов:
- Первичные объекты, созданные с 10 битами на канал (10:10:10:2), отображают и отрисовывают целевые форматы (например, D3DFMT_A2R10G10B10)
- Первичные серверы с несколькими выборкой, в которых выполняется множественная выборка при сканировании
- Постоянные первичные приложения, которые используют полноэкранные приложения Microsoft DirectX версии 10
Драйвер отображения пользовательского режима может задать элемент hPrimaryAllocationструктуры D3DDDICB_SETDISPLAYMODE в вызове pfnSetDisplayModeCb для сканирования выделения. Однако выделение должно быть отмечено как основное (то есть драйвер отображения пользовательского режима должен задать флаг основного битового поля в элементе Flags структуры D3DDDI_ALLOCATIONINFO в вызове функции pfnAllocateCb для создания выделения).
pDisplayModeData
Указатель на структуру DXGI_DDI_ARG_SETDISPLAYMODE , которая задает параметры для настройки режима отображения.
pfnSetResourcePriority
Указатель на функцию SetResourcePriorityDXGI драйвера.
pfnQueryResourceResidency
Указатель на функцию QueryResourceResidencyDXGI драйвера.
pfnRotateResourceIdentities
Указатель на функцию RotateResourceIdentitiesDXGI драйвера.
pfnBlt
Указатель на функцию BltDXGI драйвера.
pfnResolveSharedResource
Функция ResolveSharedResourceDXGI сообщает драйверу дисплея в пользовательском режиме, что владение общей поверхностью изменилось или что поверхность используется для взаимодействия GDI.
Среда выполнения Direct3D вызывает ResolveSharedResourceDXGI , когда приложение вызывает одну из следующих функций:
- IDXGIKeyedMutex::ReleaseSynch на синхронизированной общей поверхности
- IDXGISurface1::GetDC для поверхности взаимодействия GDI
Драйвер реализует ResolveSharedResourceDXGI для соответствующего управления ресурсами для нескольких сценариев GPU. Каждый ресурс может быть разделен между памятью для нескольких GPU для отрисовки. Драйвер может реализовать ResolveSharedResourceDXGI для повторного объединения каждого ресурса, чтобы новый владелец ресурса получил объединенный ресурс. Драйвер должен очистить все частично созданные буферы команд, которые могут изменить ресурс.
Windows 7 предоставляет макрос IS_DXGI1_1_BASE_FUNCTIONS (который определен в файле заголовка D3D10umddi.h), позволяющий драйверу отображения пользовательского режима определить, получает ли он указатель на DXGI1_1_DDI_BASE_FUNCTIONS или DXGI_DDI_BASE_FUNCTIONS структуру в вызове функции CreateDevice(D3D10). Структура DXGI1_1_DDI_BASE_FUNCTIONS включает элемент pfnResolveSharedResource , который драйвер может заполнить указателем на функцию ResolveSharedResourceDXGI . Если IS_DXGI1_1_BASE_FUNCTIONS возвращает значение TRUE, драйвер должен получить указатель на структуру DXGI1_1_DDI_BASE_FUNCTIONS в элементе pDXGIDDIBaseFunctionsструктуры DXGI_DDI_BASE_ARGS , указанной элементом DXGIBaseDDI структуры D3D10DDIARG_CREATEDEVICE . В противном случае, если IS_DXGI1_1_BASE_FUNCTIONS возвращает значение FALSE, драйвер ожидает получения указателя на структуру DXGI_DDI_BASE_FUNCTIONS. Windows 7 предоставляет макрос IS_DXGI1_1_BASE_FUNCTIONS, чтобы разрешить более новым драйверам версий работать в старых средах выполнения версий. Затем драйверы могут определить, повреждают ли они память, если попытаются заполнить член pfnResolveSharedResourceDXGI1_1_DDI_BASE_FUNCTIONS указателем на функцию ResolveSharedResourceDXGI .
pResourceData
Указатель на структуру DXGI_DDI_ARG_RESOLVESHAREDRESOURCE , которая задает параметры для устройства отображения и поверхности, связанной с устройством отображения.
Комментарии
Windows 7 предоставляет макрос IS_DXGI1_1_BASE_FUNCTIONS (который определен в файле заголовка D3D10umddi.h), чтобы разрешить драйверу отображения пользовательского режима определить, получает ли он указатель на DXGI1_1_DDI_BASE_FUNCTIONS или DXGI_DDI_BASE_FUNCTIONS структуру в вызове функции CreateDevice(D3D10). Структура DXGI1_1_DDI_BASE_FUNCTIONS включает элемент pfnResolveSharedResource , который драйвер может заполнить указателем на функцию ResolveSharedResourceDXGI . Если IS_DXGI1_1_BASE_FUNCTIONS возвращает значение TRUE, драйвер должен получить указатель на структуру DXGI1_1_DDI_BASE_FUNCTIONS в элементе pDXGIDDIBaseFunctionsструктуры DXGI_DDI_BASE_ARGS , указанной элементом DXGIBaseDDI структуры D3D10DDIARG_CREATEDEVICE . В противном случае, если IS_DXGI1_1_BASE_FUNCTIONS возвращает значение FALSE, драйвер ожидает получения указателя на структуру DXGI_DDI_BASE_FUNCTIONS. Windows 7 предоставляет макрос IS_DXGI1_1_BASE_FUNCTIONS, чтобы разрешить более новым драйверам версий работать в старых средах выполнения версий. Затем драйверы могут определить, повреждают ли они память, если попытаются заполнить член pfnResolveSharedResourceDXGI1_1_DDI_BASE_FUNCTIONS указателем на функцию ResolveSharedResourceDXGI .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | DXGI1_1_DDI_BASE_FUNCTIONS поддерживается начиная с операционной системы Windows 7. |
Верхняя часть | dxgiddi.h (включая D3d10umddi.h) |