PFND3DDDI_PRESENTCB回呼函式 (d3dumddi.h)

pfnPresentCb 函式會從來源配置複製內容。

語法

PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;

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

參數

hDevice

顯示裝置的句柄 (圖形內容) 。

unnamedParam2

pData [in]

描述內容複製來源配置的 D3DDDICB_PRESENT 結構的指標。

傳回值

pfnPresentCb 會傳回下列其中一個值:

傳回碼 描述
S_OK 已成功複製內容。
E_OUTOFMEMORY pfnPresentCb 因為記憶體不足而無法完成。
E_INVALIDARG 已驗證參數,並判斷為不正確。

此函式也可能傳回其他 HRESULT 值。

備註

使用者模式顯示驅動程式會將 pData 參數指向之D3DDDICB_PRESENT結構的 hContext 成員設定為先前呼叫 pfnCreateContextCb 函式所建立的內容。 當使用者模式顯示驅動程式必須在 Microsoft Direct3D 運行時間呼叫驅動程式的 CreateDeviceCreateDevice (D3D10) 函式來建立裝置時,至少必須建立一個內容。 Direct3D 運行時間會將目前作業傳送至已建立的內容。

Direct3D 版本 11 附注: 如需驅動程式如何呼叫 pfnPresentCb 的詳細資訊,請參閱 Direct3D 10 的變更

範例

下列程式代碼範例示範如何以色彩填滿目的地介面。

    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;

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 d3dumddi.h (include D3dumddi.h)

另請參閱

CreateDevice

CreateDevice (D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb