Compartilhar via


PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB função de retorno de chamada (d3dumddi.h)

A função pfnSetDisplayPrivateDriverFormatCb altera o atributo de formato privado de uma fonte presente de vídeo.

Sintaxe

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
  HANDLE hDevice,
  const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}

Parâmetros

hDevice

Um identificador para o dispositivo de exibição (contexto gráfico).

unnamedParam2

pData [in]

Um ponteiro para uma estrutura de D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT que descreve como formatar uma fonte de vídeo presente.

Valor de retorno

pfnSetDisplayPrivateDriverFormatCb retorna um dos seguintes valores:

Código de retorno Descrição
S_OK A origem do vídeo presente foi alterada com êxito.
E_INVALIDARG Os parâmetros foram validados e determinados como incorretos.
E_FAIL pfnSetDisplayPrivateDriverFormatCb não pôde alterar o atributo de formato privado da fonte presente do vídeo.

Essa função também pode retornar outros valores HRESULT.

Observações

Alterar o atributo de formato privado de uma fonte presente de vídeo é útil para acomodar um aplicativo DirectX de tela inteira que cria sua alteração de inversão quando a superfície primária de GDI compartilhada está em um formato privado não ideal para o aplicativo DirectX de tela inteira. Por exemplo, suponha que o driver de miniporto de exibição sempre crie a superfície primária compartilhada GDI como deswizzled. No entanto, por motivos de desempenho, o driver de exibição do modo de usuário exige que todas as superfícies em uma cadeia de inversão de tela inteira sejam giradas. O driver de exibição do modo de usuário pode criar os buffers de fundo como girados e chamar pfnSetDisplayPrivateDriverFormatCb para alterar a superfície primária do GDI compartilhada para girada.

Se a chamada para pfnSetDisplayPrivateDriverFormatCb falhar, o driver de exibição do modo de usuário deverá continuar sem alterar o atributo de formato privado da fonte presente do vídeo. No exemplo anterior, o driver pode deixar o primário compartilhado como deswizzled e ter os buffers traseiros girados ou o driver pode alterar os buffers traseiros para o formato deswizzled.

Se o driver de exibição do modo de usuário receber o erro D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT de uma chamada para a função pfnSetDisplayModeCb, o driver poderá fazer um dos seguintes procedimentos:

  • Altere o atributo de formato privado da superfície primária e chame pfnSetDisplayModeCb novamente.
  • Chame pfnSetDisplayPrivateDriverFormatCb e tente alterar o atributo de formato privado da fonte presente do vídeo. Em seguida, o driver pode chamar pfnSetDisplayModeCb novamente.
O driver de exibição do modo de usuário só poderá chamar pfnSetDisplayPrivateDriverFormatCb somente se o Version membro da estrutura D3DDDIARG_CREATEDEVICE tiver sido definido como maior que sete quando o dispositivo de exibição (especificado pelo parâmetro hDevice) foi criado em uma chamada para a função CreateDevice do driver.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
da Plataforma de Destino Área de trabalho
cabeçalho d3dumddi.h (inclua D3dumddi.h)

Consulte também

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb