PFND3DDDI_PRESENTCB fungsi panggilan balik (d3dumddi.h)

Fungsi pfnPresentCb menyalin konten dari alokasi sumber.

Sintaks

PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;

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

Parameter

hDevice

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDICB_PRESENT yang menjelaskan alokasi sumber tempat konten disalin.

Nilai kembali

pfnPresentCb mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
S_OK Konten berhasil disalin.
E_OUTOFMEMORY pfnPresentCb tidak dapat diselesaikan karena memori yang tidak mencukuum.
E_INVALIDARG Parameter divalidasi dan ditentukan salah.

Fungsi ini mungkin juga mengembalikan nilai HRESULT lainnya.

Keterangan

Driver tampilan mode pengguna mengatur anggota hContext dari struktur D3DDDICB_PRESENT yang ditunjukkan oleh parameter pData ke konteks yang sebelumnya dibuat dengan memanggil fungsi pfnCreateContextCb . Driver tampilan mode pengguna harus membuat setidaknya satu konteks ketika runtime Microsoft Direct3D memanggil fungsi CreateDevice atau CreateDevice (D3D10) driver untuk membuat perangkat. Runtime Direct3D mengirimkan operasi saat ini ke konteks yang dibuat.

Catatan Direct3D Versi 11: Untuk informasi selengkapnya tentang cara driver memanggil pfnPresentCb, lihat Perubahan dari Direct3D 10.

Contoh

Contoh kode berikut menunjukkan cara mengisi warna permukaan tujuan.

    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;

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Desktop
Header d3dumddi.h (termasuk D3dumddi.h)

Lihat juga

CreateDevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb