Bagikan melalui


Fungsi DrvStrokePath (winddi.h)

Fungsi DrvStrokePath mengelabui (menguraikan) jalur.

Sintaks

BOOL DrvStrokePath(
  [in, out]      SURFOBJ   *pso,
  [in]           PATHOBJ   *ppo,
  [in]           CLIPOBJ   *pco,
  [in, optional] XFORMOBJ  *pxo,
  [in]           BRUSHOBJ  *pbo,
  [in]           POINTL    *pptlBrushOrg,
  [in]           LINEATTRS *plineattrs,
  [in]           MIX       mix
);

Parameter

[in, out] pso

Penunjuk ke struktur SURFOBJ yang mengidentifikasi permukaan untuk menggambar.

[in] ppo

Penunjuk ke struktur PATHOBJ . Rutinitas layanan GDI PATHOBJ_Xxx disediakan untuk menghitung garis, kurva Bezier, dan data lain yang membentuk jalur. Ini menunjukkan apa yang harus digambar.

[in] pco

Penunjuk ke struktur CLIPOBJ . Rutinitas layanan GDI CLIPOBJ_Xxx disediakan untuk menghitung wilayah klip sebagai satu set persegi panjang. Secara opsional, semua baris di jalur dapat dijumlahkan sebelumnya dalam struktur CLIPOBJ. Ini berarti bahwa driver dapat meminta GDI melakukan semua penghitungan kliping baris.

[in, optional] pxo

Penunjuk ke struktur XFORMOBJ . Ini hanya diperlukan ketika garis lebar geometris akan digambar. Ini menentukan transformasi yang memetakan koordinat dunia ke koordinat perangkat. Ini diperlukan karena jalur disediakan dalam koordinat perangkat tetapi garis lebar geometris sebenarnya diperlebar dalam koordinat dunia.

Struktur XFORMOBJ dapat dikueri untuk menemukan transformasi.

[in] pbo

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

[in] pptlBrushOrg

Penunjuk ke struktur POINTL yang menentukan asal kuas yang digunakan untuk menyelaraskan pola kuas pada perangkat.

[in] plineattrs

Penunjuk ke struktur LINEATTRS . Perhatikan bahwa anggota elStyleState dari struktur ini harus diperbarui sebagai bagian dari fungsi ini jika garis ditata. Perhatikan juga bahwa anggota ptlLastPel harus diperbarui jika satu garis kosmetik lebar piksel sedang digambar.

[in] mix

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

Mengembalikan nilai

Nilai yang dikembalikan adalah TRUE jika driver dapat membelai jalur. Jika GDI harus mengelabui jalur, nilai yang dikembalikan adalah FALSE, tetapi tidak ada kode kesalahan yang dicatat. Jika driver mengalami kesalahan, nilai yang dikembalikan DDI_ERROR, dan kode kesalahan dilaporkan.

Keterangan

Jika driver telah menghubungkan fungsi, dan jika GCAPS yang sesuai diatur, GDI memanggil DrvStrokePath saat GDI menarik garis atau kurva dengan sekumpulan atribut apa pun.

Jika driver mendukung titik masuk ini, itu juga harus mendukung gambar garis lebar kosmetik dengan kliping arbitrer. Dengan menggunakan fungsi GDI yang disediakan, panggilan dapat dipecah menjadi satu set garis lebar piksel tunggal dengan kliping yang telah dikomputasi sebelumnya.

Fungsi ini diperlukan jika ada gambar yang harus dilakukan pada permukaan yang dikelola perangkat.

Driver untuk perangkat tingkat lanjut dapat secara opsional menerima panggilan ini untuk menggambar jalur yang berisi kurva Bezier dan garis lebar geometris. GDI akan menguji bendera GCAPS_BEZIERS dan GCAPS_GEOMETRICWIDE anggota flGraphicsCaps dari struktur DEVINFO untuk memutuskan apakah harus memanggil fungsi ini. (Empat kombinasi bit menentukan empat tingkat fungsionalitas untuk panggilan ini.) Jika driver mendapatkan panggilan lanjutan yang berisi kurva Bezier atau garis lebar geometris, driver dapat memutuskan untuk tidak menangani panggilan, mengembalikan FALSE. Ini mungkin terjadi jika jalur atau kliping terlalu kompleks untuk diproses oleh perangkat. Jika panggilan mengembalikan FALSE, GDI memecah panggilan menjadi panggilan yang lebih sederhana yang dapat ditangani dengan lebih mudah.

Untuk permukaan yang dikelola perangkat, fungsi ini harus minimal mendukung garis kosmetik padat dan bergaya piksel tunggal menggunakan kuas berwarna solid.

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

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

Lihat juga

CLIPOBJ

DEVINFO

DrvFillPath

LINEATTRS

PATHOBJ

XFORMOBJ