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

A função pfnPresentCb copia o conteúdo de uma alocação de origem.

Sintaxe

PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;

HRESULT Pfnd3dddiPresentcb(
  HANDLE hDevice,
  D3DDDICB_PRESENT *unnamedParam2
)
{...}

Parâmetros

hDevice

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

unnamedParam2

pData [in]

Um ponteiro para uma estrutura D3DDDICB_PRESENT que descreve a alocação de origem da qual o conteúdo é copiado.

Retornar valor

pfnPresentCb retorna um dos seguintes valores:

Código de retorno Descrição
S_OK O conteúdo foi copiado com êxito.
E_OUTOFMEMORY pfnPresentCb não pôde ser concluído devido à memória insuficiente.
E_INVALIDARG Os parâmetros foram validados e determinados como incorretos.

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

Comentários

O driver de exibição do modo de usuário define o membro hContext da estrutura D3DDDICB_PRESENT apontada pelo parâmetro pData para um contexto que ele criou anteriormente chamando a função pfnCreateContextCb . O driver de exibição do modo de usuário deve criar pelo menos um contexto quando o runtime do Microsoft Direct3D chama a função CreateDevice ou CreateDevice(D3D10) do driver para criar um dispositivo. O runtime do Direct3D envia a operação atual para um contexto criado.

Direct3D Versão 11 Observação: Para obter mais informações sobre como o driver chama pfnPresentCb, consulte Alterações do Direct3D 10.

Exemplos

O exemplo de código a seguir mostra como preencher uma superfície de destino por cores.

    HRESULT hr=S_OK;
    // A color-fill request that does not have a source surface
    D3DDDICB_PRESENT    PresentCBData = {0};

    PresentCBData.hContext = m_sContexts[MULTI_ENGINE_NODE_3D].hContext;
    PresentCBData.hSrcAllocation = NULL;

    if (pPresent->hDstResource) {
        DWORD   dwDstSurf = ((DWORD)(DWORD_PTR)pPresent->hDstResource) + pPresent->DstSubResourceIndex;
        _ASSERT(dwDstSurf < m_RTbl.Size());
        m_RTbl[dwDstSurf].m_qwBatch = m_qwBatch;
        PresentCBData.hDstAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx, dwDstSurf);
    }

    hr = m_d3dCallbacks.pfnPresentCb(m_hD3D, &PresentCBData);

    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)

Confira também

Createdevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb