Partilhar via


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.

Observação Essa função é chamada para cada um dos grupos de funcionalidades que o driver relata.
 

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.

Observação Quando a função pfnPresent1(DXGI) do driver copia o conteúdo formatado em sRGB de uma superfície de origem para uma superfície de destino não sRGB, o driver deve copiar o conteúdo sRGB inalterado (ou seja, o driver não deve executar o sRGB para conversão linear).

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).
Para obter mais informações sobre threading, consulte Alterações do Direct3D 10.

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)

Consulte também

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_2_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS