struktur DD_SURFACE_GLOBAL (ddrawint.h)

Struktur DD_SURFACE_GLOBAL berisi data terkait permukaan global yang dapat dibagikan di antara beberapa permukaan.

Sintaks

typedef struct _DD_SURFACE_GLOBAL {
  union {
    DWORD dwBlockSizeY;
    LONG  lSlicePitch;
  };
  union {
    LPVIDEOMEMORY lpVidMemHeap;
    DWORD         dwBlockSizeX;
    DWORD         dwUserMemSize;
  };
  FLATPTR       fpVidMem;
  union {
    LONG  lPitch;
    DWORD dwLinearSize;
  };
  LONG          yHint;
  LONG          xHint;
  DWORD         wHeight;
  DWORD         wWidth;
  ULONG_PTR     dwReserved1;
  DDPIXELFORMAT ddpfSurface;
  FLATPTR       fpHeapOffset;
  HANDLE        hCreatorProcess;
} *PDD_SURFACE_GLOBAL, DD_SURFACE_GLOBAL;

Anggota

dwBlockSizeY

Menentukan lokasi di mana driver mengembalikan tinggi, di baris pemindaian, dari blok memori di luar layar yang harus dialokasikan Microsoft DirectDraw. Driver harus mengatur nilai ini ketika mengembalikan DDHAL_PLEASEALLOC_BLOCKSIZE di anggota fpVidMem .

lSlicePitch

Pitch ilis untuk tekstur volume.

lpVidMemHeap

Menunjuk ke struktur VIDEOMEMORY tempat memori tampilan tumpukan dialokasikan.

dwBlockSizeX

Menentukan lokasi di mana driver mengembalikan ukuran dalam byte lebar blok memori di luar layar yang harus dialokasikan DirectDraw. Driver harus mengatur nilai ini ketika mengembalikan DDHAL_PLEASEALLOC_BLOCKSIZE di anggota fpVidMem .

dwUserMemSize

Menentukan lokasi di mana driver mengembalikan ukuran dalam byte blok memori yang harus dialokasikan DirectDraw dalam memori sistem mode pengguna. Driver harus mengatur nilai ini ketika mengembalikan DDHAL_PLEASEALLOC_USERMEM di anggota fpVidMem .

fpVidMem

Jika driver mengalokasikan blok memori, driver harus mengembalikan offset ke dalam memori tampilan di anggota ini. Jika driver meminta DirectDraw untuk melakukan alokasi memori, driver dapat mengembalikan salah satu nilai berikut dalam anggota ini dari rutinitas DdCreateSurface-nya :

Nilai Makna
DDHAL_PLEASEALLOC_BLOCKSIZE DirectDraw harus mengalokasikan blok memori ukuran dwBlockSizeX dan dwBlockSizeY dalam memori di luar layar.
DDHAL_PLEASEALLOC_USERMEM DirectDraw harus mengalokasikan blok memori ukuran dwUserMemSize dalam memori mode pengguna.

lPitch

Menentukan nada permukaan; yaitu, jarak dalam byte ke awal baris berikutnya. Ini juga dikenal sebagai langkah permukaan.

dwLinearSize

Menentukan ukuran linier dalam byte permukaan nonrektangular.

yHint

Menentukan koordinat y permukaan. Anggota ini adalah koordinat Kartesius 2D yang ditentukan dalam ruang perangkat.

xHint

Menentukan koordinat x permukaan. Anggota ini adalah koordinat Kartesius 2D yang ditentukan dalam ruang perangkat.

wHeight

Menentukan tinggi dalam piksel permukaan.

wWidth

Menentukan lebar dalam piksel permukaan.

dwReserved1

Dicadangkan untuk digunakan oleh pengandar tampilan.

ddpfSurface

Menunjuk ke struktur DDPIXELFORMAT yang menjelaskan format piksel permukaan.

fpHeapOffset

Menunjuk ke offset mentah dalam timbunan sumber.

hCreatorProcess

Dicadangkan untuk penggunaan sistem dan harus diabaikan oleh driver.

Keterangan

Buffer vertex, yang dibuat oleh CreateD3DBuffer, menyimpan daftar simpul yang digunakan oleh panggilan balik D3dDrawPrimitives2 untuk merender primitif. Microsoft Windows mewakili buffer vertex sebagai permukaan DirectDraw, sehingga membangun koneksi antara buffer vertex dan struktur DD_SURFACE_GLOBAL.

Ketika driver DirectX bekerja dengan buffer vertex, penting baginya untuk dapat menentukan ukuran buffer ini dengan benar. DirectDraw meneruskan ukuran buffer linier ke driver di anggota lPitch struktur ini. Pada Windows 2000 dan versi yang lebih baru, tetapi tidak pada Windows 98/Me, anggota wWidth dari struktur ini diatur ke nilai yang sama. Perhatikan bahwa kedua anggota struktur harus dianggap baca-saja. Nilai yang ditempatkan DirectDraw dalam anggota ini mewakili ukuran buffer vertex minimum. Jika kebutuhan akan buffer yang lebih besar muncul (seperti untuk pengoptimalan), penulis driver bebas untuk membuat buffer yang lebih besar dari ukuran tersebut. Namun, dalam keadaan apa pun, jika driver melaporkan ukuran buffer yang lebih besar ke DirectDraw.

Persyaratan

   
Header ddrawint.h (termasuk Winddi.h)

Lihat juga

CreateD3DBuffer

D3dDrawPrimitives2

DDPIXELFORMAT

DdCreateSurface

VIDEOMEMORY