estrutura DXGI1_3_DDI_BASE_FUNCTIONS (dxgiddi.h)
Contém ponteiros para funções que um driver de exibição WDDM (Modelo de Driver de Exibição do Windows) 1.3 e posterior pode implementar para executar tarefas de baixo nível, como apresentar quadros renderizados a uma saída, controlar gama, receber notificações sobre superfícies interoperáveis compartilhadas e da GDI (Interface de Dispositivo Gráfico do Windows) e gerenciar uma transição em 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 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 Blt1DXGI do driver.
pfnOfferResources
Um ponteiro para a função pfnOfferResources do driver.
pfnReclaimResources
Um ponteiro para a função pfnReclaimResources do driver.
pfnGetMultiplaneOverlayCaps
Chamado pelo runtime do 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 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 drivers de exibição do modo de usuário posterior.
Sintaxe
pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;
HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }
Parâmetro
pGroupCaps Um ponteiro para uma estrutura DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS que especifica o grupo de recursos do plano de sobreposição.
Valor de retorno
Retorna um dos valores a seguir.
- 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 terminou de renderizar 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 (Modelo de Driver de Exibição do Windows) 1.3 ou posteriores que dão suporte a sobreposições multiplano.
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 DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY que descreve como exibir para a superfície de destino.
Valor de retorno
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.
Sintaxe
pfnPresent1 Present1DXGI;
HRESULT __stdcall* Present1DXGI(
DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }
Parâmetro
pPresentData [in] Um ponteiro para uma estrutura DXGI_DDI_ARG_PRESENT1 que descreve como exibir para a superfície de destino.
Comentários
O membro hDevice da estrutura DXGI_DDI_ARG_PRESENT1 para a qual o parâmetro pPresentData aponta é o mesmo identificador para o qual a função CreateDevice(D3D10) do driver passou de volta para o runtime no membro hDrvDevice 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 membro pDXGIContext 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 chamar a função pfnPresentCbDXGI .
O driver deve enviar todos os dados de renderização parcialmente criados (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 como D3D11DDICAPS_FREETHREADED. Nesse caso:
- Somente um único thread pode estar funcionando em um identificador de contexto HCONTEXT por vez.
- O driver deve chamar pfnPresentCbDXGI somente quando a função pfnPresent1(DXGI) do driver for chamada e pelo mesmo thread que chamou 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 dentro do contexto de pfnPresent1(DXGI).
pfnCheckPresentDurationSupport
Um ponteiro para a função pfnCheckPresentDurationSupport(DXGI) do driver.
Comentários
Para obter mais informações sobre como usar essa estrutura, consulte Suporte à DDI DXGI.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8.1, WDDM 1.3 e posterior |
Servidor mínimo com suporte | Windows Server 2012 R2 |
Cabeçalho | dxgiddi.h (inclua D3d10umddi.h) |