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 mengatur berapa banyak kedalaman font ke arah z.

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

Sintaks

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 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 jumlah , satu daftar tampilan untuk setiap glyph dalam satu set 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 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 hitungan struktur GLYPHMETRICSFLOAT yaitu menerima metrik glyph. Ketika lpgmfNULL, tidak ada metrik glyph yang dikembalikan.

Mengembalikan nilai

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 selanjutnya dipecahkan 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.

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

Catatan

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

   
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

Lihat juga

GLYPHMETRICSFLOAT

OpenGL di Windows

Fungsi WGL

glCallLists

glListBase

glTexGen

wglUseFontBitmaps