Suporte à DDI DXGI
Para dar suporte à DDI (interface de driver de dispositivo) DXGI (Infraestrutura Gráfica do Microsoft DirectX), o driver de exibição no modo de usuário deve incluir o arquivo de cabeçalho Dxgiddi.h . Dxgiddi.h também inclui o arquivo de cabeçalho Dxgitype.h , que contém definições que são compartilhadas com constructos DXGI no nível do aplicativo. Dxgiddi.h define vários pontos de entrada do driver de exibição no modo de usuário e uma função de retorno de chamada DXGI que o driver pode usar para se comunicar com o kernel (incluindo o driver de miniporto de exibição).
O runtime do Microsoft Direct3D fornece acesso ao DDI DXGI na estrutura DXGI_DDI_BASE_ARGS para a qual o membro DXGIBaseDDI da estrutura D3D10DDIARG_CREATEDEVICE aponta em uma chamada para a função CreateDevice(D3D10). O driver de exibição do modo de usuário fornece ponteiros para funções DXGI.
O driver implementa essas funções por meio de membros das estruturas para as quais os membros pDXGIDDIBaseFunctionsXxx de DXGI_DDI_BASE_ARGS apontam. O driver deve registrar o ponteiro para a tabela de função de retorno de chamada DXGI para a qual o membro pDXGIBaseCallbacks de DXGI_DDI_BASE_ARGS aponta para para uso posterior. O driver deve registrar o ponteiro para a tabela de funções de retorno de chamada DXGI em vez de registrar o ponteiro individual para a função de retorno de chamada DXGI porque o runtime do Direct3D pode alterar o endereço da função de retorno de chamada sempre que não houver thread dentro do driver de exibição do modo de usuário.
Existe um requisito adicional de driver de exibição do modo de usuário DXGI para rasterizadores de software. Esse driver de exibição no modo de usuário (mais especificamente, qualquer driver que não dê suporte ao hardware compartilhado com a implementação de DDI do Direct3D versão 9 no adaptador gráfico) deve retornar o valor DXGI_STATUS_NO_REDIRECTION em vez do valor S_OK de sua função CreateDevice(D3D10). Esse valor retornado indica ao DXGI que ele não deve usar o caminho de apresentação de recurso compartilhado para afetar a comunicação com o DWM (Gerenciador de Janelas da Área de Trabalho). O caminho de apresentação de recurso compartilhado é criado quando ocorrem chamadas para funções de recurso compartilhado (ou seja, CreateResource(D3D10) e OpenResource(D3D10) com o sinalizador D3D10_DDI_RESOURCE_MISC_SHARED definido). No entanto, o DXGI deve usar técnicas relevantes para uma cadeia de troca cujos buffers estão disponíveis apenas para a CPU. Por exemplo, o DXGI deve mover dados renderizados do buffer de fundo para a área de trabalho por meios diferentes do caminho de apresentação de recurso compartilhado. Nessa situação, o DXGI realmente chama a função PresentDXGI do driver para mover dados renderizados em vez de afetar a comunicação com o DWM.
Funções DXGI do Direct3D Versão 10
Esta seção descreve as funções DXGI (Microsoft DirectX Graphics Infrastructure) que a DLL do driver de exibição do modo de usuário fornece ao runtime do Microsoft Direct3D versão 10. O driver fornece ponteiros para funções DXGI por meio de membros da estrutura DXGI_DDI_BASE_FUNCTIONS em uma chamada para a função CreateDevice(D3D10) do driver de exibição no modo de usuário.
BltDXGI: GetGammaCapsDXGI
PresentDXGI: QueryResourceResidencyDXGI
ResolveSharedResourceDXGI: RotateResourceIdentitiesDXGI
SetDisplayModeDXGI: SetResourcePriorityDXGI
Funções DXGI do Direct3D versão 11.1
Esta seção descreve as funções de DXGI (Infraestrutura Gráfica do Microsoft DirectX), implementadas por drivers de exibição no modo de usuário, que são adicionadas para o runtime do Microsoft Direct3D Versão 11.1. O Direct3D 11.1 foi introduzido com Windows 8.
A DLL do driver de exibição no modo de usuário exporta a função OpenAdapter10_2 e fornece ponteiros para funções específicas do adaptador por meio de membros da estrutura D3D10_2DDI_ADAPTERFUNCS quando o runtime chama CreateDevice(D3D10).
O driver fornece ponteiros para as funções DXGI do Direct3D versão 11.1 por meio de membros da estrutura DXGI1_2_DDI_BASE_FUNCTIONS em uma chamada para a função CreateDevice(D3D10) específica do driver de exibição do modo de usuário.
Funções DXGI do Direct3D versão 11.2
As páginas de referência nesta seção descrevem as funções de DXGI (Infraestrutura Gráfica do Microsoft DirectX), implementadas por drivers de exibição no modo de usuário, que são adicionadas para o runtime do Microsoft Direct3D Versão 11.2. O Direct3D 11.2 foi introduzido com Windows 8.1.
A DLL do driver de exibição no modo de usuário exporta a função OpenAdapter10_2 e fornece ponteiros para funções específicas do adaptador por meio de membros da estrutura D3D10_2DDI_ADAPTERFUNCS quando o runtime chama CreateDevice(D3D10).
O driver fornece ponteiros para as funções DXGI do Direct3D versão 11.2 por meio de membros da estrutura DXGI1_3_DDI_BASE_FUNCTIONS em uma chamada para a função CreateDevice(D3D10) específica do adaptador do driver de exibição no modo de usuário.
PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB: PFNDDXGIDDI_PRESENTCB
PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB: PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB
Observação
Funções DXGI adicionais compatíveis com o runtime do Direct3D 11.2 estão incluídas na seção Funções de sobreposição multiplane implementadas pelo driver de modo de usuário.