Bagikan melalui


wglUseFontOutlinesA (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 berapa banyak kedalaman font dalam arah z.

Thelpgmfparameter mengembalikan struktur GLYPHMETRICSFLOAT yang berisi informasi tentang penempatan dan orientasi setiap glyph dalam sel karakter.

Sintaksis

BOOL wglUseFontOutlinesA(
  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 kumpulan glyph pertama yang membentuk daftar tampilan kerangka font.

unnamedParam3

Menentukan jumlah glyph dalam kumpulan glyph yang digunakan untuk membentuk daftar tampilan kerangka font. Fungsi wglUseFontOutlines membuat jumlah daftar tampilan, satu daftar tampilan untuk setiap glyph dalam satu set glyph.

unnamedParam4

Menentukan daftar tampilan awal.

unnamedParam5

Menentukan penyimpangan akordal maksimum dari kerangka asli. Ketika penyimpangan nol, penyimpangan akordal setara dengan satu unit desain font asli. Nilai penyimpangan harus sama dengan atau lebih besar dari 0.

unnamedParam6

Menentukan berapa banyak font yang dikecualikan dalam 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 jumlah struktur GLYPHMETRICSFLOAT yaitu menerima metrik glyph. Ketika lpgmfNULL, tidak ada metrik glyph yang dikembalikan.

Mengembalikan nilai

Ketika fungsi berhasil, nilai pengembalian TRUE.

Ketika fungsi gagal, nilai pengembalian FALSE dan tidak ada daftar tampilan yang dihasilkan. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Komentar

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 ketika 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 aturglPolygonMode ( GL_FRONT, GL_LINE ). Saat Anda menentukan format sebagai WGL_FONT_POLYGONS kerangka dipengaruhi lebih lanjut menjadi segitiga terpisah, kipas segitiga, strip segitiga, atau strip kuadrilateral untuk membuat permukaan setiap glyph. Dengan WGL_FONT_POLYGONS, tampilan yang dibuat mencantumkan panggilan glFrontFace( GL_CW ) atau glFrontFace( GL_CCW ); dengan demikian nilai front-face saat ini mungkin 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 memegang seluruh set glyph untuk font. Setiap daftar tampilan diakhiri dengan terjemahan yang ditentukan dengan gmfCellIncX dan gmfCellIncY anggota struktur GLYPHMETRICSFLOAT yang sesuai. Terjemahan memungkinkan gambar karakter berturut-turut ke arah alami mereka dengan satu panggilan ke glCallLists.

Catatan Dengan OpenGL untuk Windows, Anda tidak dapat melakukan panggilan GDI ke konteks perangkat saat format piksel di-buffer ganda. Anda dapat mengatasi batasan ini dengan menggunakan wglUseFontOutlines dan wglUseFontBitmaps, saat menggunakan konteks perangkat buffer ganda.
 

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.");

Nota

Header wingdi.h mendefinisikan wglUseFontOutlines sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosem 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

Syarat Nilai
klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Platform Target Windows
Header wingdi.h
Pustaka Opengl32.lib
DLL Opengl32.dll

Lihat juga

GLYPHMETRICSFLOAT

OpenGL di Windows

Fungsi WGL

glCallLists

glListBase

glTexGen

wglUseFontBitmaps