Bagikan melalui


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)