Bagikan melalui


Fungsi DrvStrokeAndFillPath (winddi.h)

Stroke fungsi DrvStrokeAndFillPath (kerangka) dan mengisi jalur secara bersamaan.

Sintaks

BOOL DrvStrokeAndFillPath(
  [in, out]      SURFOBJ   *pso,
  [in, out]      PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pboStroke,
  [in]           LINEATTRS *plineattrs,
  [in]           BRUSHOBJ  *pboFill,
  [in]           POINTL    *pptlBrushOrg,
  [in]           MIX       mixFill,
  [in]           FLONG     flOptions
);

Parameter

[in, out] pso

Penunjuk ke struktur SURFOBJ yang menggambarkan permukaan untuk menggambar.

[in, out] ppo

Penunjuk ke struktur PATHOBJ yang menjelaskan jalur yang akan diisi. Rutinitas layanan PATHOBJ_Xxx disediakan untuk menghitung garis, kurva Bezier, dan data lain yang membentuk jalur.

[in] pco

Penunjuk ke struktur CLIPOBJ . Rutinitas layanan CLIPOBJ_Xxx disediakan untuk menghitung wilayah klip sebagai satu set persegi panjang.

[in, optional] pxo

Penunjuk ke struktur XFORMOBJ yang diperlukan saat garis lebar geometris digambar. Ini menentukan transformasi yang membutuhkan koordinat dunia ke koordinat perangkat. Ini diperlukan karena jalur disediakan dalam koordinat perangkat tetapi garis lebar geometris sebenarnya diperlebar dalam koordinat dunia. XFORMOBJ dapat dikueri untuk mengetahui apa transformasinya.

[in] pboStroke

Arahkan ke struktur BRUSHOBJ yang menentukan kuas yang akan digunakan saat membelai jalur.

[in] plineattrs

Arahkan ke struktur LINEATTRS yang menjelaskan atribut garis yang akan digambar.

[in] pboFill

Arahkan ke struktur BRUSHOBJ yang menentukan kuas yang akan digunakan saat mengisi jalur.

[in] pptlBrushOrg

Pointer ke struktur POINTL yang menentukan asal kuas untuk kedua kuas.

[in] mixFill

Mode campuran yang mendefinisikan operasi raster latar depan dan latar belakang yang akan digunakan untuk kuas. Untuk informasi selengkapnya tentang mode campuran, lihat Keterangan.

[in] flOptions

Menentukan FP_WINDINGMODE, yang berarti bahwa pengisian mode berliku harus dilakukan, atau FP_ALTERNATEMODE, yang berarti bahwa pengisian mode alternatif harus dilakukan. Semua bendera lain harus diabaikan. Untuk informasi selengkapnya tentang mode ini, lihat Mode Pengisian Jalur.

Mengembalikan nilai

Nilai yang dikembalikan adalah TRUE jika driver dapat mengisi jalur. Jika tidak, jika GDI harus mengisi jalur, nilai yang dikembalikan adalah FALSE. Jika terjadi kesalahan, nilai yang dikembalikan DDI_ERROR, dan kode kesalahan dicatat.

Keterangan

Jika garis lebar digunakan untuk membelai, area yang diisi harus dikurangi untuk mengimbangi.

Driver dapat mengembalikan FALSE jika jalur atau kliping terlalu kompleks untuk ditangani perangkat; dalam hal ini, GDI mengonversi ke panggilan yang lebih sederhana. Misalnya, jika driver perangkat telah mengatur bendera GCAPS_BEZIERS di anggota flGraphicsCaps dari struktur DEVINFO dan kemudian menerima jalur dengan kurva Bezier, itu dapat mengembalikan FALSE; GDI kemudian akan mengonversi kurva Bezier menjadi baris dan memanggil DrvStrokeAndFillPath lagi. Jika driver perangkat mengembalikan FALSE lagi, GDI akan lebih menyederhanakan panggilan, melakukan panggilan ke DrvStrokePath dan DrvFillPath, atau ke DrvBitBlt, tergantung pada campuran dan lebar baris yang membentuk jalur.

Mode campuran menentukan bagaimana pola masuk harus dicampur dengan data yang sudah ada di permukaan perangkat. Jenis data MIX terdiri dari dua nilai operasi raster biner (ROP2) yang dikemas ke dalam satu ULONG. Byte urutan terendah mendefinisikan operasi raster latar depan; byte berikutnya mendefinisikan operasi raster latar belakang. Untuk informasi selengkapnya tentang kode operasi raster, lihat dokumentasi Microsoft Windows SDK.

Persyaratan

   
Target Platform Desktop
Header winddi.h (termasuk Winddi.h)

Lihat juga

CLIPOBJ

DrvBitBlt

DrvFillPath

DrvStrokePath

LINEATTRS

PATHOBJ

SURFOBJ

XFORMOBJ