estrutura DXGI1_3_DDI_BASE_FUNCTIONS (dxgiddi.h)
Contém ponteiros para funções que um WDDM (Modelo de Driver de Exibição do Windows) 1.3 e um driver de exibição no modo de usuário posterior podem implementar para executar tarefas de baixo nível, como apresentar quadros renderizados em uma saída, controlar gama, receber notificações sobre superfícies interoperáveis de GDI (Interface de Dispositivo Gráfico do Windows) compartilhadas e do Windows e gerenciar uma transição de tela inteira.
Sintaxe
typedef struct DXGI1_3_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;
HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *) * pfnGetMultiplaneOverlayGroupCaps;
HRESULT()(void *) * pfnReserved1;
HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
HRESULT()(void *) * pfnReserved2;
HRESULT()(DXGI_DDI_ARG_PRESENT1 *) * pfnPresent1;
HRESULT()(DXGI_DDI_ARG_CHECKPRESENTDURATIONSUPPORT *) * pfnCheckPresentDurationSupport;
} DXGI1_3_DDI_BASE_FUNCTIONS;
Membros
pfnPresent
Um ponteiro para a função PresentDXGI do driver.
pfnGetGammaCaps
Um ponteiro para a função GetGammaCapsDXGI do do driver.
pfnSetDisplayMode
Um ponteiro para a função SetDisplayModeDXGI do driver.
pfnSetResourcePriority
Um ponteiro para a função SetResourcePriorityDXGI do driver.
pfnQueryResourceResidency
Um ponteiro para a função QueryResourceResidencyDXGI do driver.
pfnRotateResourceIdentities
Um ponteiro para a função RotateResourceIdentitiesDXGI do driver.
pfnBlt
Um ponteiro para a função BltDXGI do driver.
pfnResolveSharedResource
Um ponteiro para a função ResolveSharedResourceDXGI do driver.
pfnBlt1
Um ponteiro para a função de Blt1DXGI do driver.
pfnOfferResources
Um ponteiro para a função de pfnOfferResources do driver.
pfnReclaimResources
Um ponteiro para a função pfnReclaimResources do driver.
pfnGetMultiplaneOverlayCaps
Chamado pelo runtime DXGI para solicitar que o driver de exibição do modo de usuário obtenha recursos básicos do plano de sobreposição. Opcionalmente implementado pelo WDDM 1.3 e por drivers de exibição do modo de usuário posterior.
pfnGetMultiplaneOverlayGroupCaps
Chamado pelo runtime DXGI para solicitar que o driver de exibição do modo de usuário obtenha um grupo de recursos do plano de sobreposição. Opcionalmente implementado pelo WDDM 1.3 e por drivers de exibição do modo de usuário posterior.
de sintaxe
pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;
HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }
parâmetro
pGroupCaps Um ponteiro para uma estrutura de DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS que especifica o grupo de recursos do plano de sobreposição.
de valor de retorno de
Retorna um dos seguintes valores.
- S_OK O driver forneceu com êxito as funcionalidades do plano de sobreposição.
- D3DDDIERR_DEVICEREMOVED O driver detectou que o adaptador de exibição foi removido, portanto, o driver não concluiu a operação. Se o driver não estiver ciente da remoção do adaptador, o driver não será necessário para retornar esse código de erro.
pfnReserved1
Reservado para uso do sistema.
pfnPresentMultiplaneOverlay
Chamado pelo runtime da DXGI (Infraestrutura Gráfica do Microsoft DirectX) para notificar o driver de exibição do modo de usuário de que um aplicativo concluiu a renderização e solicita que o driver exiba a superfície de origem copiando ou invertendo ou que o driver execute uma operação de preenchimento de cores. Deve ser implementado por drivers WDDM (Windows Display Driver Model) 1.3 ou posteriores que dão suporte a sobreposições de vários planos.
Quando o driver de exibição do modo de usuário conclui com êxito o processamento de uma chamada para essa função, ele apresenta a superfície de origem para a exibição chamando a função pfnPresentMultiPlaneOverlayCb (DXGI).
PFND3DDDI_PRESENTMULTIPLANEOVERLAY pfnPresentMultiPlaneOverlay;
HRESULT __stdcall* pfnPresentMultiPlaneOverlay(
DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *pPresentDXGI
)
{ ... }
parâmetro
pPresentDXGI um ponteiro para uma estrutura de DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY que descreve como exibir para a superfície de destino.
de valor de retorno de
Se essa função de retorno de chamada for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
pfnReserved2
Reservado para uso do sistema.
pfnPresent1
Notifica o driver de exibição do modo de usuário de que um aplicativo terminou a renderização e que toda a propriedade do recurso compartilhado foi liberada e solicita que o driver seja exibido na superfície de destino.
de sintaxe
pfnPresent1 Present1DXGI;
HRESULT __stdcall* Present1DXGI(
DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }
parâmetro
pPresentData [in] Um ponteiro para uma estrutura de DXGI_DDI_ARG_PRESENT1 que descreve como exibir para a superfície de destino.
Observações
O hDevice membro da estrutura DXGI_DDI_ARG_PRESENT1 à qual o parâmetro pPresentData aponta é o mesmo identificador que a função CreateDevice(D3D10) do driver passada de volta para o runtime no hDrvDevice membro da estrutura D3D10DDIARG_CREATEDEVICE. Portanto, os gravadores de driver devem definir o tipo desse identificador com cuidado. Além disso, os drivers podem fornecer diferentes implementações da função pfnPresent1(DXGI) com base na qual a implementação de DDI lidou com a chamada para CreateDevice(D3D10). O runtime nunca misturará identificadores de driver entre implementações de DDI.
O pDXGIContext membro do DXGI_DDI_ARG_PRESENT1 é um mecanismo de comunicação opaco. O runtime passa esse contexto DXGI para o driver. O driver deve copiar esse contexto DXGI inalterado para o membro pDXGIContext da estrutura DXGIDDICB_PRESENT quando o driver chama a função pfnPresentCbDXGI.
O driver deve enviar todos os dados de renderização parcialmente compilados (buffers de comando) usando a função pfnRenderCb e o driver deve fazer uma única chamada para pfnPresentCbDXGI. Ao chamar qualquer um desses retornos de chamada, o driver deve seguir as regras de threading da função PresentDXGI.
Regras de threading
Essas regras se aplicam se o driver dá suporte a threading gratuito ou não:
- O driver indica suporte para threading gratuito definindo o membro caps da estrutura D3D11DDI_THREADING_CAPS para D3D11DDICAPS_FREETHREADED. Nesse caso:
- Somente um único thread pode estar funcionando em um identificador de contexto HCONTEXT de cada vez.
- O driver deve chamar pfnPresentCbDXGI somente quando a função de pfnPresent1(DXGI) do driver for chamada e pelo mesmo thread chamado pfnPresent1(DXGI).
- Quando o driver não indica suporte para threading livre, ele só pode chamar as funções de retorno de chamada quando um thread é chamado para o driver. O driver também ainda deve chamar o retorno de chamada pfnPresentCbDXGI no contexto de pfnPresent1(DXGI).
pfnCheckPresentDurationSupport
Um ponteiro para a função de pfnCheckPresentDurationSupport(DXGI) do driver.
Observações
Para obter mais informações sobre como usar essa estrutura, consulte Suporte à DDI DXGI.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 8.1, WDDM 1.3 e posterior |
servidor com suporte mínimo | Windows Server 2012 R2 |
cabeçalho | dxgiddi.h (inclua D3d10umddi.h) |