Struktur SURFOBJ (winddi.h)
Struktur SURFOBJ adalah objek pengguna untuk permukaan. Driver perangkat biasanya memanggil metode pada objek permukaan hanya ketika objek permukaan mewakili bitmap GDI atau permukaan yang dikelola perangkat.
Sintaks
typedef struct _SURFOBJ {
DHSURF dhsurf;
HSURF hsurf;
DHPDEV private_dhpdev;
HDEV private_hdev;
DHPDEV dhpdev;
HDEV hdev;
SIZEL sizlBitmap;
ULONG cjBits;
PVOID pvBits;
PVOID pvScan0;
LONG lDelta;
ULONG iUniq;
ULONG iBitmapFormat;
USHORT iType;
USHORT fjBitmap;
} SURFOBJ;
Anggota
dhsurf
Tangani ke permukaan, asalkan permukaan dikelola perangkat. Jika tidak, anggota ini nol.
hsurf
Tangani ke permukaan.
private_dhpdev
private_hdev
dhpdev
Mengidentifikasi PDEV perangkat yang terkait dengan permukaan yang ditentukan.
hdev
Handel logis GDI ke PDEV yang terkait dengan perangkat ini.
sizlBitmap
Menentukan struktur SIZEL yang berisi lebar dan tinggi, dalam piksel, permukaan. Struktur SIZEL identik dengan struktur SIZE .
cjBits
Menentukan ukuran buffer yang diacu oleh pvBits.
pvBits
Jika permukaan adalah bitmap format standar, ini adalah penunjuk ke piksel permukaan. Untuk gambar BMF_JPEG atau BMF_PNG, ini adalah penunjuk ke buffer yang berisi data gambar dalam format JPEG atau PNG. Jika tidak, anggota ini NULL.
pvScan0
Arahkan ke baris pemindaian pertama bitmap. Jika iBitmapFormat BMF_JPEG atau BMF_PNG, anggota ini ADALAH NULL.
lDelta
Menentukan jumlah byte yang diperlukan untuk memindahkan ke bawah satu baris pemindaian di bitmap. Jika iBitmapFormat BMF_JPEG atau BMF_PNG, anggota ini ADALAH NULL.
iUniq
Menentukan status permukaan yang ditentukan saat ini. Setiap kali permukaan berubah, nilai ini bertahap. Ini memungkinkan driver untuk menyimpan permukaan sumber.
Untuk permukaan yang tidak boleh di-cache, iUniq diatur ke nol. Nilai ini digunakan bersama dengan bendera BMF_DONTCACHE fjBitmap.
iBitmapFormat
Menentukan format standar yang paling cocok dengan permukaan ini. Jika anggota iType menentukan bitmap (STYPE_BITMAP), anggota ini menentukan formatnya. Sistem operasi berbasis NT mendukung serangkaian format yang telah ditentukan sebelumnya, meskipun aplikasi juga dapat mengirim format khusus perangkat dengan menggunakan SetDIBitsToDevice. Format yang telah ditentukan sebelumnya meliputi yang berikut ini:
Nilai | Makna |
---|---|
BMF_1BPP | 1 bit per piksel. |
BMF_4BPP | 4 bit per piksel. |
BMF_8BPP | 8 bit per piksel. |
BMF_16BPP | 16 bit per piksel. |
BMF_24BPP | 24 bit per piksel. |
BMF_32BPP | 32 bit per piksel. |
BMF_4RLE | 4 bit per piksel, panjang eksekusi dikodekan. |
BMF_8RLE | 8 bit per piksel, panjang eksekusi dikodekan. |
BMF_JPEG | Gambar terkompresi JPEG. |
BMF_PNG | Gambar terkompresi PNG. |
iType
Jenis permukaan, yang merupakan salah satu dari berikut ini:
Jenis | Definisi |
---|---|
STYPE_BITMAP | Permukaannya adalah bitmap. |
STYPE_DEVBITMAP | Permukaannya adalah bitmap format perangkat. |
STYPE_DEVICE | Permukaan dikelola oleh perangkat. |
fjBitmap
Jika permukaan berjenis STYPE_BITMAP dan merupakan bitmap format standar yang tidak dikompresi, bendera berikut dapat diatur. Jika tidak, anggota ini harus diabaikan.
Nilai | Makna |
---|---|
BMF_DONTCACHE | Bitmap tidak boleh di-cache oleh driver karena merupakan bitmap sementara, yang dibuat oleh GDI, bahwa driver tidak akan pernah melihat lagi. Jika bendera ini diatur, anggota iUniq dari struktur ini akan diatur ke 0. |
BMF_KMSECTION | Hanya digunakan oleh GDI dan harus diabaikan oleh driver. |
BMF_NOTSYSMEM | Bitmap tidak ada dalam memori sistem. EngModifySurface mengatur bendera ini saat memindahkan bitmap ke memori video. |
BMF_NOZEROINIT | Bitmap tidak diinisialisasi nol. |
BMF_TOPDOWN | Baris pemindaian pertama mewakili bagian atas bitmap. |
BMF_WINDOW_BLT | GDI mengatur bendera ini untuk memberi tahu driver tentang pemindahan jendela dari satu lokasi layar ke lokasi lain. |
Keterangan
Ketika informasi tentang permukaan tertentu diperlukan oleh driver, driver harus mengakses SURFOBJ. Struktur ini memungkinkan akses cepat ke properti permukaan.
Ketika struktur SURFOBJ mewakili bitmap GDI, driver harus dapat menentukan format bitmap dan menemukan bitmap bitmap bit.
Ketika struktur SURFOBJ mewakili permukaan perangkat, driver harus dapat menemukan handel perangkat untuk permukaan.
Untuk informasi selengkapnya tentang mendukung gambar terkompresi JPEG dan PNG, lihat DEVINFO.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | winddi.h (termasuk Winddi.h) |