PFND3DDDI_SETDISPLAYMODECB função de retorno de chamada (d3dumddi.h)
A função pfnSetDisplayModeCb define a alocação usada para verificar a exibição.
Sintaxe
PFND3DDDI_SETDISPLAYMODECB Pfnd3dddiSetdisplaymodecb;
HRESULT Pfnd3dddiSetdisplaymodecb(
HANDLE hDevice,
D3DDDICB_SETDISPLAYMODE *unnamedParam2
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
pData [in, out]
Um ponteiro para uma estrutura D3DDDICB_SETDISPLAYMODE que descreve a alocação usada para verificar.
Retornar valor
pfnSetDisplayModeCb retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
S_OK | O modo de exibição foi definido com êxito. |
E_INVALIDARG | Os parâmetros foram validados e determinados como incorretos. |
D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT | O driver de exibição do modo de usuário deve converter o formato da superfície associada à alocação que o membro hPrimaryAllocation de D3DDDICB_SETDISPLAYMODE especifica no atributo de formato que o PrivateDriverFormatAttributemember de D3DDDICB_SETDISPLAYMODE especifica. Em seguida, o driver deve chamar pfnSetDisplayModeCb novamente. O driver pode alocar uma nova alocação, executar uma conversão de bit-block transfer (bitblt) da superfície primária antiga para a nova e, em seguida, destruir o primário antigo, desde que o driver use o novo identificador de alocação para essa alocação para todas as operações subsequentes. O driver deve repetir esse processo até que pfnSetDisplayModeCb retorne um valor retornado diferente. |
Essa função também pode retornar outros valores HRESULT.
Comentários
Depois que o runtime do Microsoft Direct3D chama a função SetDisplayMode ou SetDisplayModeDXGI do driver de exibição do modo de usuário para definir a superfície primária a ser verificada para a exibição, o driver de exibição do modo de usuário chama a função pfnSetDisplayModeCb para definir a alocação primária subjacente usada para verificação.
Direct3D Versão 11 Observação: Para obter mais informações sobre como o driver chama pfnSetDisplayModeCb, consulte Alterações do Direct3D 10.
Exemplos
O exemplo de código a seguir mostra como definir a alocação para verificação para a exibição.
HRESULT CD3DContext::SetDisplayMode(CONST D3DDDIARG_SETDISPLAYMODE* pSetDisplayMode) {
DWORD dwSrcSurf = ((DWORD)(DWORD_PTR)pSetDisplayMode->hResource) + pSetDisplayMode->SubResourceIndex;
HRESULT hr;
// Timestamp the source surface
m_RTbl[dwSrcSurf].m_qwBatch = m_qwBatch;
// Send the presentation request to the display miniport driver
D3DDDICB_SETDISPLAYMODE SetDisplayModeCBData = {0};
SetDisplayModeCBData.hPrimaryAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx,
dwSrcSurf);
hr = m_d3dCallbacks.pfnSetDisplayModeCb(m_hD3D, &SetDisplayModeCBData);
return (hr);
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |