Bagikan melalui


PFND3DDDI_PRESENTCB fungsi panggilan balik (d3dumddi.h)

Fungsi pfnPresentCb menyalin konten dari alokasi sumber.

Sintaksis

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.

Mengembalikan nilai

pfnPresentCb mengembalikan salah satu nilai berikut:

Mengembalikan kode Deskripsi
S_OK Isi berhasil disalin.
E_OUTOFMEMORY pfnPresentCb tidak dapat diselesaikan karena memori yang tidak cukup.
E_INVALIDARG Parameter divalidasi dan ditentukan salah.

Fungsi ini mungkin juga mengembalikan nilai HRESULT lainnya.

Komentar

Driver tampilan mode pengguna mengatur hContext anggota 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 driver atau CreateDevice(D3D10) 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

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

Lihat juga

CreateDevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb