Bagikan melalui


struktur DD_D3DBUFCALLBACKS (ddrawint.h)

Struktur DD_D3DBUFCALLBACKS hanya digunakan oleh driver yang menerapkan alokasi tingkat driver dari buffer perintah dan vertex.

Sintaks

typedef struct _DD_D3DBUFCALLBACKS {
  DWORD                     dwSize;
  DWORD                     dwFlags;
  PDD_CANCREATESURFACE      CanCreateD3DBuffer;
  PDD_CREATESURFACE         CreateD3DBuffer;
  PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
  PDD_SURFCB_LOCK           LockD3DBuffer;
  PDD_SURFCB_UNLOCK         UnlockD3DBuffer;
} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;

Anggota

dwSize

Menentukan ukuran dalam byte dari struktur DD_D3DBUFCALLBACKS ini.

dwFlags

Dicadangkan.

CanCreateD3DBuffer

Menunjuk ke panggilan balik CanCreateD3DBuffer driver.

CreateD3DBuffer

Menunjuk ke panggilan balik CreateD3DBuffer driver.

DestroyD3DBuffer

Menunjuk ke panggilan balik DestroyD3DBuffer driver.

LockD3DBuffer

Menunjuk ke panggilan balik LockD3DBuffer driver.

UnlockD3DBuffer

Menunjuk ke panggilan balik UnlockD3DBuffer driver.

Keterangan

Driver yang mengelola perintah dan buffer vertex mereka sendiri harus mengisi struktur DD_D3DBUFCALLBACKS dan mengarahkan anggota lpD3DBufCallbacksDD_HALINFO ke dalamnya.

Driver juga harus mendukung fungsi panggilan balik yang dilaporkan dalam struktur DD_D3DBUFCALLBACKS. Panggilan balik XxxD3DBuffer ini masing-masing dianalogikan dengan panggilan balik DdXxxSurface dengan nama yang sama; mereka memiliki prototipe yang sama dan dipanggil dengan parameter input yang sama. Panggilan balik baru ini dipanggil hanya ketika permukaan yang dimaksud memiliki bendera DDSCAPS_EXECUTEBUFFER yang diatur di tutup permukaan. Bendera pembuatan buffer DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER, dan DDSCAPS2_COMMANDBUFFER.

Driver menentukan jenis buffer yang diminta dengan memeriksa anggota ddsCaps dari struktur DD_SURFACE_LOCAL yang diteruskan ke CanCreateD3DBuffer dan CreateD3DBuffer untuk bendera berikut:

  • DDSCAPS_VERTEXBUFFER

    Menunjukkan bahwa driver harus mengalokasikan buffer vertex eksplisit.

  • DDSCAPS_COMMANDBUFFER

    Menunjukkan bahwa driver harus mengalokasikan buffer perintah.

  • Tidak adanya kedua bendera ini

    Menunjukkan bahwa driver harus mengalokasikan buffer vertex implisit.

Buffer vertex implisit tidak boleh ditempatkan dalam memori video karena diharapkan dibaca/ditulis. Hanya buffer vertex eksplisit dengan set bendera DDSCAPS_WRITEONLY yang dapat ditempatkan dengan aman dalam memori video.

Persyaratan

   
Header ddrawint.h (termasuk Winddi.h)

Lihat juga

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer