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) |