Bagikan melalui


PFND3DDDI_SETPRIORITYCB fungsi panggilan balik (d3dumddi.h)

Fungsi pfnSetPriorityCb menetapkan tingkat prioritas sumber daya atau daftar alokasi.

Sintaksis

PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;

HRESULT Pfnd3dddiSetprioritycb(
  HANDLE hDevice,
  D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}

Parameter

hDevice

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDICB_SETPRIORITY yang menjelaskan tingkat prioritas untuk mengatur sumber daya atau daftar alokasi.

Mengembalikan nilai

pfnSetPriorityCb mengembalikan salah satu nilai berikut:

Mengembalikan kode Deskripsi
S_OK Tingkat prioritas berhasil diatur.
E_INVALIDARG Parameter divalidasi dan ditentukan salah.

Fungsi ini mungkin juga mengembalikan nilai HRESULT lainnya.

Komentar

Driver tampilan mode pengguna dapat memanggil fungsi pfnSetPriorityCb untuk mengatur prioritas sumber daya atau daftar alokasi yang mendasar. Jika tingkat prioritas sumber daya diatur, semua alokasi yang termasuk dalam sumber daya diatur ke tingkat prioritas yang ditentukan. Biasanya, driver tampilan mode pengguna menetapkan prioritas sumber daya atau daftar alokasi setelah runtime Microsoft Direct3D memanggil fungsi SetPriority driver tampilan mode pengguna atau SetResourcePriorityDXGI untuk mengatur prioritas pengeluaran dari memori untuk sumber daya. Namun, driver tampilan mode pengguna dapat mengatur prioritas alokasi kapan saja.

Setelah aplikasi meminta untuk mengatur tingkat prioritas permukaan, driver tampilan mode pengguna harus mengatur sumber daya atau daftar alokasi yang sesuai ke tingkat prioritas yang ditentukan oleh aplikasi.

Perhatikan tingkat Prioritas hanya petunjuk untuk manajer memori video; mereka dapat diabaikan oleh manajer memori dalam berbagai kondisi.
 
Prioritas alokasi mendefinisikan kemungkinan bahwa alokasi tetap tinggal dan kemungkinan seberapa keras manajer memori video akan mencoba menghormati preferensi driver untuk penempatan alokasi. Tingkat prioritas berikut didefinisikan dalam file header D3dukmdt.h:

Driver dapat menggunakan tingkat prioritas selain nilai yang ditentukan sebelumnya jika sesuai. Misalnya, menandai alokasi dengan tingkat prioritas 0x78000001 menunjukkan bahwa alokasi sedikit di atas normal.

Contoh

Contoh kode berikut menunjukkan cara mengatur tingkat prioritas.

HRESULT CD3DContext::SetPriority(CONST D3DDDIARG_SETPRIORITY* pSetPriority) {
    DWORD  dwSurfaceHandle = (DWORD)(DWORD_PTR)pSetPriority->hResource;
    CResource   &res = m_RTbl[dwSurfaceHandle];
    D3DDDICB_SETPRIORITY    setPri;
    UINT                    priority;

    priority = pSetPriority->Priority;

    memset(&setPri, 0, sizeof(setPri));

    setPri.hResource   = res.m_hResRuntime;
    setPri.pPriorities = &priority;

    return (m_d3dCallbacks.pfnSetPriorityCb(m_hD3D, &setPri));
}

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

D3DDDICB_SETPRIORITY

D3DDDI_DEVICECALLBACKS

DxgkCbCreateContextAllocation

SetPriority

setResourcePriorityDXGI