wglUseFontOutlinesW (wingdi.h)
Fungsi wglUseFontOutlines membuat sekumpulan daftar tampilan, satu untuk setiap glyph font kerangka yang saat ini dipilih dari konteks perangkat, untuk digunakan dengan konteks penyajian saat ini. Daftar tampilan digunakan untuk menggambar karakter 3-D font TrueType. Setiap daftar tampilan menjelaskan kerangka glyph dalam koordinat floating-point.
Eksekusi glyph dimulai dengan thefirstglyph font dari konteks perangkat yang ditentukan. Ukuran persegi font em, ukuran kisi nosional dari kerangka font asli tempat font dipasang, dipetakan ke 1,0 dalam koordinat x- dan y dalam daftar tampilan. Parameter ekstrusi menetapkan seberapa jauh kedalaman font ke arah z.
Thelpgmfparameter mengembalikan struktur GLYPHMETRICSFLOAT yang berisi informasi tentang penempatan dan orientasi setiap glyph dalam sel karakter.
Sintaks
BOOL wglUseFontOutlinesW(
HDC unnamedParam1,
DWORD unnamedParam2,
DWORD unnamedParam3,
DWORD unnamedParam4,
FLOAT unnamedParam5,
FLOAT unnamedParam6,
int unnamedParam7,
LPGLYPHMETRICSFLOAT unnamedParam8
);
Parameter
unnamedParam1
Menentukan konteks perangkat dengan font kerangka yang diinginkan. Font kerangka hdc digunakan untuk membuat daftar tampilan dalam konteks penyajian saat ini.
unnamedParam2
Menentukan yang pertama dari kumpulan glyph yang membentuk daftar tampilan kerangka font.
unnamedParam3
Menentukan jumlah glyph dalam kumpulan glyph yang digunakan untuk membentuk daftar tampilan kerangka font. Fungsi wglUseFontOutlines membuat daftar tampilan hitungan , satu daftar tampilan untuk setiap glyph dalam sekumpulan glyph.
unnamedParam4
Menentukan daftar tampilan awal.
unnamedParam5
Menentukan penyimpangan akor maksimum dari kerangka asli. Ketika penyimpangan nol, penyimpangan akor setara dengan satu unit desain font asli. Nilai penyimpangan harus sama dengan atau lebih besar dari 0.
unnamedParam6
Menentukan berapa banyak font yang dikecualikan ke arah z negatif. Nilai harus sama dengan atau lebih besar dari 0. Ketika ekstrusi adalah 0, daftar tampilan tidak dikecualikan.
unnamedParam7
Menentukan format, baik WGL_FONT_LINES atau WGL_FONT_POLYGONS, untuk digunakan dalam daftar tampilan. Saat format WGL_FONT_LINES, fungsi wglUseFontOutlines membuat font dengan segmen garis. Saat format WGL_FONT_POLYGONS, wglUseFontOutlines membuat font dengan poligon.
unnamedParam8
Menunjuk ke array hitungan struktur GLYPHMETRICSFLOAT yang akan menerima metrik glyph. Ketika lpgmfadalah NULL, tidak ada metrik glyph yang dikembalikan.
Nilai kembali
Ketika fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Ketika fungsi gagal, nilai yang dikembalikan adalah FALSE dan tidak ada daftar tampilan yang dihasilkan. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Fungsi wglUseFontOutlines menentukan glyph font kerangka dengan daftar tampilan dalam konteks penyajian saat ini. Fungsi wglUseFontOutlines hanya berfungsi dengan font TrueType; font stroke dan raster tidak didukung.
Setiap daftar tampilan terdiri dari segmen garis atau poligon, dan memiliki nomor identifikasi unik yang dimulai dengan nomor listBase .
Fungsi wglUseFontOutlines memperkirakan kerangka glyph dengan membagi kurva B-spline kuadrat dari kerangka ke dalam segmen garis, hingga jarak antara kerangka dan titik tengah terinterpolasi berada dalam nilai yang ditentukan oleh penyimpangan. Ini adalah format akhir yang digunakan saat format WGL_FONT_LINES. Saat Anda menentukan WGL_FONT_OUTLINES, daftar tampilan yang dibuat tidak berisi normal; sehingga pencahayaan tidak berfungsi dengan baik. Untuk mendapatkan pencahayaan garis yang benar, gunakan WGL_FONT_POLYGONS dan atur glPolygonMode( GL_FRONT, GL_LINE ). Saat Anda menentukan format sebagai WGL_FONT_POLYGONS kerangka dipesan lebih lanjut menjadi segitiga terpisah, kipas segitiga, strip segitiga, atau strip segitiga untuk membuat permukaan setiap glyph. Dengan WGL_FONT_POLYGONS, daftar tampilan yang dibuat memanggil glFrontFace( GL_CW ) atau glFrontFace( GL_CCW ); dengan demikian nilai front-face saat ini dapat diubah. Untuk tampilan teks terbaik dengan WGL_FONT_POLYGONS, cull wajah belakang sebagai berikut:
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
Struktur GLYPHMETRICSFLOAT berisi informasi tentang penempatan dan orientasi setiap glyph dalam sel karakter. Parameter lpgmf adalah array struktur GLYPHMETRICSFLOAT yang menyimpan seluruh set glyph untuk font. Setiap daftar tampilan diakhiri dengan terjemahan yang ditentukan dengan anggota gmfCellIncX dan gmfCellIncY dari struktur GLYPHMETRICSFLOAT yang sesuai. Terjemahan memungkinkan gambar karakter berturut-turut ke arah alami mereka dengan satu panggilan ke glCallLists.
Contoh
Contoh kode berikut menunjukkan cara menggambar teks menggunakan wglUseFontOutlines.
HDC hdc; // A TrueType font has already been selected
HGLRC hglrc;
GLYPHMETRICSFLOAT agmf[256];
// Make hglrc the calling thread's current rendering context
wglMakeCurrent(hdc, hglrc);
// create display lists for glyphs 0 through 255 with 0.1 extrusion
// and default deviation. The display list numbering starts at 1000
// (it could be any number)
wglUseFontOutlines(hdc, 0, 255, 1000, 0.0f, 0.1f,
WGL_FONT_POLYGONS, &agmf);
// Set up transformation to draw the string
glLoadIdentity();
glTranslate(0.0f, 0.0f, -5.0f)
glScalef(2.0f, 2.0f, 2.0f);
// Display a string
glListBase(1000); // Indicates the start of display lists for the glyphs
// Draw the characters in a string
glCallLists(24, GL_UNSIGNED_BYTE, "Hello Windows OpenGL World.");
Catatan
Header wingdi.h mendefinisikan wglUseFontOutlines sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | wingdi.h |
Pustaka | Opengl32.lib |
DLL | Opengl32.dll |