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.

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

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 .

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

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)

Confira também

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_2_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS