Compartilhar via


estrutura DXGI1_1_DDI_BASE_FUNCTIONS (dxgiddi.h)

A estrutura DXGI1_1_DDI_BASE_FUNCTIONS contém ponteiros para funções que o driver de exibição do modo de usuário pode 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 compartilhadas e GDI e gerenciar uma transição de tela inteira.

Sintaxe

typedef struct DXGI1_1_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;
} DXGI1_1_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

A função SetDisplayModeDXGI alterna para um modo de exibição ou primário ao qual a área de trabalho GDI não dá suporte.

O runtime do Microsoft Direct3D chama SetDisplayModeDXGI para alternar para um modo de exibição ou primário ao qual a área de trabalho GDI não dá suporte. A lista a seguir descreve exemplos dessas primárias:

  • Primárias criadas com formatos de destino de 10 bits por canal (10:10:10:2) exibem e renderizam formatos de destino (por exemplo, D3DFMT_A2R10G10B10)
  • Primárias de vários exemplos em que a amostragem múltipla é executada durante a verificação
  • Primárias persistentes que os aplicativos microsoft DirectX versão 10 usam
O runtime do Direct3D chama a função CreateResource(D3D10) do driver de exibição do modo de usuário para criar o primário a ser verificado. No entanto, o driver deve programar o hardware para verificar somente quando sua função SetDisplayModeDXGI for chamada. Portanto, o runtime define os membros hResource e SubResourceIndex da estrutura DXGI_DDI_ARG_SETDISPLAYMODE apontada pelo parâmetro pDisplayModeData para o primário que foi criado por meio da chamada para a função CreateResourceD3D10 do driver. Em seguida, o driver deve converter o primário que hResource e SubResourceIndex representam para um identificador de alocação primário. Depois que o driver fizer essa tradução, o driver deverá passar o identificador resultante em uma chamada para a função pfnSetDisplayModeCb , que inicia uma chamada para a função DxgkDdiCommitVidPn do driver de miniporta de exibição.

O driver de exibição do modo de usuário pode definir o membro hPrimaryAllocation da estrutura D3DDDICB_SETDISPLAYMODE na chamada para pfnSetDisplayModeCb para verificar qualquer alocação. No entanto, a alocação deve ser marcada como primária (ou seja, o driver de exibição do modo de usuário deve ter definido o sinalizador de campo de bit primário no membro Flags da estrutura D3DDDI_ALLOCATIONINFO em uma chamada para a função pfnAllocateCb para criar a alocação).

pDisplayModeData

Um ponteiro para uma estrutura DXGI_DDI_ARG_SETDISPLAYMODE que especifica parâmetros para definir o modo de exibição.

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

A função ResolveSharedResourceDXGI informa a um driver de exibição do modo de usuário que a propriedade de uma superfície compartilhada foi alterada ou que uma superfície está sendo usada para interoperação GDI.

O runtime do Direct3D chama ResolveSharedResourceDXGI quando um aplicativo chama uma das seguintes funções:

  • IDXGIKeyedMutex::ReleaseSynch em uma superfície compartilhada sincronizada
  • IDXGISurface1::GetDC para uma superfície interoperável de GDI
O runtime chama a função ResolveSharedResourceDXGI do driver sempre que um proprietário de superfície compartilhada é alterado ou quando uma superfície é usada para interoperação GDI.

O driver implementa ResolveSharedResourceDXGI para gerenciar adequadamente recursos para vários cenários de GPU. Cada recurso pode ser dividido na memória para que várias GPUs sejam renderizadas. O driver pode implementar ResolveSharedResourceDXGI para remergir cada recurso para que o novo proprietário do recurso tenha o recurso mesclado. O driver deve liberar buffers de comando parcialmente criados que possam modificar o recurso.

O Windows 7 fornece a macro IS_DXGI1_1_BASE_FUNCTIONS (que é definida no arquivo de cabeçalho D3D10umddi.h) para permitir que o driver de exibição no modo de usuário determine se ele recebe um ponteiro para uma estrutura de DXGI1_1_DDI_BASE_FUNCTIONS ou DXGI_DDI_BASE_FUNCTIONS em uma chamada para sua função CreateDevice(D3D10). A estrutura DXGI1_1_DDI_BASE_FUNCTIONS inclui o membro pfnResolveSharedResource que o driver pode preencher com um ponteiro para sua função ResolveSharedResourceDXGI . Se IS_DXGI1_1_BASE_FUNCTIONS retornar TRUE, o driver espera receber um ponteiro para uma estrutura DXGI1_1_DDI_BASE_FUNCTIONS no membro pDXGIDDIBaseFunctions da estrutura DXGI_DDI_BASE_ARGS que o membro DXGIBaseDDI da estrutura D3D10DDIARG_CREATEDEVICE especifica. Caso contrário, se IS_DXGI1_1_BASE_FUNCTIONS retornar FALSE, o driver espera receber um ponteiro para uma estrutura DXGI_DDI_BASE_FUNCTIONS. O Windows 7 fornece a macro IS_DXGI1_1_BASE_FUNCTIONS para permitir que drivers de versão mais recentes funcionem em runtimes de versão mais antiga. Os drivers podem determinar se corromperão a memória se tentarem preencher o membro pfnResolveSharedResource do DXGI1_1_DDI_BASE_FUNCTIONS com um ponteiro para a função ResolveSharedResourceDXGI .

pResourceData

Um ponteiro para uma estrutura DXGI_DDI_ARG_RESOLVESHAREDRESOURCE que especifica parâmetros para o dispositivo de exibição e a superfície associada ao dispositivo de exibição.

Comentários

O Windows 7 fornece a macro IS_DXGI1_1_BASE_FUNCTIONS (que é definida no arquivo de cabeçalho D3D10umddi.h ) para permitir que o driver de exibição do modo de usuário determine se ele recebe um ponteiro para uma estrutura de DXGI1_1_DDI_BASE_FUNCTIONS ou DXGI_DDI_BASE_FUNCTIONS em uma chamada para sua função CreateDevice(D3D10 ). A estrutura DXGI1_1_DDI_BASE_FUNCTIONS inclui o membro pfnResolveSharedResource que o driver pode preencher com um ponteiro para sua função ResolveSharedResourceDXGI . Se IS_DXGI1_1_BASE_FUNCTIONS retornar TRUE, o driver espera receber um ponteiro para uma estrutura DXGI1_1_DDI_BASE_FUNCTIONS no membro pDXGIDDIBaseFunctions da estrutura DXGI_DDI_BASE_ARGS que o membro DXGIBaseDDI da estrutura D3D10DDIARG_CREATEDEVICE especifica. Caso contrário, se IS_DXGI1_1_BASE_FUNCTIONS retornar FALSE, o driver espera receber um ponteiro para uma estrutura DXGI_DDI_BASE_FUNCTIONS. O Windows 7 fornece a macro IS_DXGI1_1_BASE_FUNCTIONS para permitir que drivers de versão mais recentes funcionem em runtimes de versão mais antiga. Os drivers podem determinar se corromperão a memória se tentarem preencher o membro pfnResolveSharedResource do DXGI1_1_DDI_BASE_FUNCTIONS com um ponteiro para uma função ResolveSharedResourceDXGI .

Requisitos

Requisito Valor
Cliente mínimo com suporte DXGI1_1_DDI_BASE_FUNCTIONS tem suporte a partir do sistema operacional Windows 7.
Cabeçalho dxgiddi.h (inclua D3d10umddi.h)

Confira também

BltDXGI

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS

GetGammaCapsDXGI

PresentDXGI

QueryResourceResidencyDXGI

ResolveSharedResource

ResolveSharedResourceDXGI

RotateResourceIdentitiesDXGI

SetDisplayModeDXGI

SetResourcePriorityDXGI