Bagikan melalui


METODE IDWriteTextAnalyzer::GetGlyphs (dwrite.h)

Mengurai string teks input dan memetakannya ke kumpulan glyph dan data glyph terkait sesuai dengan font dan aturan penyajian sistem penulisan.

Sintaks

HRESULT GetGlyphs(
  [in]           WCHAR const                       *textString,
                 UINT32                            textLength,
                 IDWriteFontFace                   *fontFace,
                 BOOL                              isSideways,
                 BOOL                              isRightToLeft,
  [in]           DWRITE_SCRIPT_ANALYSIS const      *scriptAnalysis,
  [in, optional] WCHAR const                       *localeName,
  [optional]     IDWriteNumberSubstitution         *numberSubstitution,
  [in, optional] DWRITE_TYPOGRAPHIC_FEATURES const **features,
  [in, optional] UINT32 const                      *featureRangeLengths,
                 UINT32                            featureRanges,
                 UINT32                            maxGlyphCount,
  [out]          UINT16                            *clusterMap,
  [out]          DWRITE_SHAPING_TEXT_PROPERTIES    *textProps,
  [out]          UINT16                            *glyphIndices,
  [out]          DWRITE_SHAPING_GLYPH_PROPERTIES   *glyphProps,
  [out]          UINT32                            *actualGlyphCount
);

Parameter

[in] textString

Jenis: const WCHAR*

Array karakter untuk dikonversi menjadi glyph.

textLength

Jenis: UINT32

Panjang textString.

fontFace

Jenis: IDWriteFontFace*

Wajah font yang merupakan sumber glyph output.

isSideways

Jenis: BOOL

Bendera Boolean diatur ke TRUE jika teks dimaksudkan untuk digambar secara vertikal.

isRightToLeft

Jenis: BOOL

Bendera Boolean diatur ke TRUE untuk teks kanan ke kiri.

[in] scriptAnalysis

Jenis: const DWRITE_SCRIPT_ANALYSIS*

Penunjuk ke hasil analisis Skrip dari panggilan AnalyzeScript .

[in, optional] localeName

Jenis: const WCHAR*

Lokal yang digunakan saat memilih glyph. Misalnya karakter yang sama dapat memetakan ke glyph yang berbeda untuk ja-jp versus zh-chs. Jika ini ADALAH NULL, maka pemetaan default berdasarkan skrip digunakan.

[optional] numberSubstitution

Jenis: IDWriteNumberSubstitution*

Penunjuk ke substitusi angka opsional yang memilih glyph yang sesuai untuk digit dan karakter numerik terkait, tergantung pada hasil yang diperoleh dari AnalyzeNumberSubstitution. Melewati NULL menunjukkan bahwa tidak ada substitusi yang diperlukan dan bahwa digit harus menerima glyph nominal.

[in, optional] features

Jenis: const DWRITE_TYPOGRAPHIC_FEATURES**

Array pointer ke set fitur tipografi untuk digunakan di setiap rentang fitur.

[in, optional] featureRangeLengths

Jenis: const UINT32*

Panjang setiap rentang fitur, dalam karakter.
Jumlah semua panjang harus sama dengan textLength.

featureRanges

Jenis: UINT32

Jumlah rentang fitur.

maxGlyphCount

Jenis: UINT32

Jumlah maksimum glyph yang dapat dikembalikan.

[out] clusterMap

Jenis: UINT16*

Ketika metode ini kembali, berisi pemetaan dari rentang karakter ke rentang glyph.

[out] textProps

Jenis: DWRITE_SHAPING_TEXT_PROPERTIES*

Ketika metode ini kembali, berisi penunjuk ke array struktur yang berisi properti pembentukan untuk setiap karakter.

[out] glyphIndices

Jenis: UINT16*

Indeks glyph output.

[out] glyphProps

Jenis: DWRITE_SHAPING_GLYPH_PROPERTIES*

Ketika metode ini kembali, berisi pointer ke array struktur yang berisi properti pembentukan untuk setiap glyph output.

[out] actualGlyphCount

Jenis: UINT32*

Ketika metode ini kembali, berisi jumlah glyph aktual yang dikembalikan jika panggilan berhasil.

Nilai kembali

Jenis: HRESULT

Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Perhatikan bahwa pemetaan dari karakter ke glyph adalah, secara umum, banyak ke banyak. Perkiraan yang direkomendasikan untuk buffer output per glyph adalah (3 * textLength / 2 + 16). Ini tidak dijamin cukup.

Nilai parameter actualGlyphCount hanya valid jika panggilan berhasil. Jika maxGlyphCount tidak cukup besar, HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) akan dikembalikan. Aplikasi harus mengalokasikan buffer yang lebih besar dan mencoba lagi.

Persyaratan

   
Klien minimum yang didukung Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header dwrite.h
Pustaka Dwrite.lib
DLL Dwrite.dll

Lihat juga

IDWriteTextAnalyzer