Metode IDirectDrawSurface7::Blt (ddraw.h)
Melakukan transfer blok bit (bitblt). Metode ini tidak mendukung z-buffering atau alpha blending selama operasi bitblt.
Sintaks
HRESULT Blt(
[in] LPRECT unnamedParam1,
[in] LPDIRECTDRAWSURFACE7 unnamedParam2,
[in] LPRECT unnamedParam3,
[in] DWORD unnamedParam4,
[in] LPDDBLTFX unnamedParam5
);
Parameter
[in] unnamedParam1
Penunjuk ke struktur RECT yang mendefinisikan titik kiri atas dan kanan bawah persegi panjang ke bitblt ke pada permukaan tujuan. Jika parameter ini NULL, seluruh permukaan tujuan digunakan.
[in] unnamedParam2
Penunjuk ke antarmuka IDirectDrawSurface7 untuk objek DirectDrawSurface yang merupakan sumber bitblt.
[in] unnamedParam3
Penunjuk ke struktur RECT yang mendefinisikan titik kiri atas dan kanan bawah persegi panjang ke bitblt dari pada permukaan sumber. Jika parameter ini NULL, seluruh permukaan sumber akan digunakan.
[in] unnamedParam4
Kombinasi bendera yang menentukan anggota yang valid dari struktur DDBLTFX terkait, menentukan informasi kunci warna, atau meminta perilaku khusus dari metode . Bendera berikut didefinisikan:
Bendera validasi
DDBLT_COLORFILL
Menggunakan anggota dwFillColor dari struktur DDBLTFX sebagai warna RGB yang mengisi persegi panjang tujuan pada permukaan tujuan.
DDBLT_DDFX
Menggunakan anggota dwDDFX dari struktur DDBLTFX untuk menentukan efek yang akan digunakan untuk bitblt ini.
DDBLT_DDROPS
Menggunakan anggota dwDDROP dari struktur DDBLTFX untuk menentukan operasi raster (ROPS) yang bukan bagian dari API Win32.
DDBLT_DEPTHFILL
Menggunakan anggota dwFillDepth dari struktur DDBLTFX sebagai nilai kedalaman untuk mengisi persegi tujuan pada permukaan z-buffer tujuan.
DDBLT_KEYDESTOVERRIDE
Menggunakan anggota ddckDestColorkey dari struktur DDBLTFX sebagai kunci warna untuk permukaan tujuan.
DDBLT_KEYSRCOVERRIDE
Menggunakan anggota ddckSrcColorkey dari struktur DDBLTFX sebagai kunci warna untuk permukaan sumber.
DDBLT_ROP
Menggunakan anggota dwROP dari struktur DDBLTFX untuk ROP untuk bitblt ini. ROP ini sama dengan yang didefinisikan dalam API Win32.
DDBLT_ROTATIONANGLE
Menggunakan anggota dwRotationAngle dari struktur DDBLTFX sebagai sudut rotasi (ditentukan dalam 1/100s derajat) untuk permukaan.
Bendera kunci warna
DDBLT_KEYDEST
Menggunakan kunci warna yang terkait dengan permukaan tujuan.
DDBLT_KEYSRC
Menggunakan kunci warna yang terkait dengan permukaan sumber.
Bendera perilaku
DDBLT_ASYNC
Melakukan bitblt ini secara asinkron melalui perangkat keras first in, first out (FIFO) dalam urutan yang diterima. Jika tidak ada ruang yang tersedia di perangkat keras FIFO, panggilan gagal.
DDBLT_DONOTWAIT
Mengembalikan tanpa bitbltting dan juga mengembalikan DDERR_WASSTILLDRAWING jika bitbltter sibuk.
DDBLT_WAIT
Menunda nilai pengembalian DDERR_WASSTILLDRAWING jika bitbltter sibuk, dan kembali segera setelah bitblt dapat disiapkan atau kesalahan lain terjadi.
Bendera usang dan tidak didukung
Semua nilai bendera DDBLT_ALPHA
Saat ini tidak diimplementasikan.
Semua nilai bendera DDBLT_ZBUFFER
Metode ini saat ini tidak mendukung operasi bitblt yang sadar z. Tidak ada bendera yang dimulai dengan "DDBLT_ZBUFFER" yang didukung.
[in] unnamedParam5
Penunjuk ke struktur DDBLTFX untuk bitblt.
Mengembalikan nilai
Jika metode berhasil, nilai yang dikembalikan adalah DD_OK.
Jika gagal, metode dapat mengembalikan salah satu nilai kesalahan berikut:
- DDERR_GENERIC
- DDERR_INVALIDCLIPLIST
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
- DDERR_INVALIDRECT
- DDERR_NOALPHAHW
- DDERR_NOBLTHW
- DDERR_NOCLIPLIST
- DDERR_NODDROPSHW
- DDERR_NOMIRRORHW
- DDERR_NORASTEROPHW
- DDERR_NOROTATIONHW
- DDERR_NOSTRETCHHW
- DDERR_NOZBUFFERHW
- DDERR_SURFACEBUSY
- DDERR_SURFACELOST
- DDERR_UNSUPPORTED
- DDERR_WASSTILLDRAWING
Keterangan
Blt dapat melakukan bitblt sinkron atau asinkron (yang terakhir adalah perilaku default). Bitblts ini dapat terjadi dari memori tampilan hingga memori tampilan, dari memori tampilan hingga memori sistem, dari memori sistem hingga memori tampilan, atau dari memori sistem ke memori sistem. Bitblts dapat dilakukan dengan menggunakan tombol warna sumber dan tombol warna tujuan. Peregangan atau penyusutan arbitrer dilakukan jika persegi panjang sumber dan tujuan tidak berukuran sama.
Biasanya, Blt segera kembali dengan kesalahan jika bitbltter sibuk dan bitblt tidak dapat diatur. Tentukan bendera DDBLT_WAIT untuk meminta bitblt sinkron. Saat Anda menyertakan bendera DDBLT_WAIT, Blt menunggu hingga bitblt dapat disiapkan atau kesalahan lain terjadi sebelum kembali.
Struktur RECT didefinisikan sehingga anggota kanan dan bawah eksklusif—oleh karena itu, kanan dikurangi kiri sama dengan lebar persegi panjang, bukan 1 kurang dari lebar.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | ddraw.h |
Pustaka | Ddraw.lib |
DLL | Ddraw.dll |