Makale numarası: 131024 - Son Gözden Geçirme: 21 Kasım 2006 Salı - Gözden geçirme: 3.4

OpenGL uygulamalarında three-Dimensional metin çizim

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Yalnızca pencere tek arabelleğe ise TextOut, GDI işlemleri bir OpenGL penceresinde gerçekleştirilebilir. Windows NT uygulamasının OpenGL GDI grafik çift arabelleğe penceresinde desteklemiyor. Bu nedenle, bir çift arabelleğe penceresinde, örneğin metin çizmek için GDI işlevleri kullanamazsınız. Metin çift arabelleğe penceresinde çizmek için <a0></a0>, bir uygulama wglUseFontBitmaps ve wglUseFontOutlines işlevleri, bir yazı tipinde görüntüleme listeleri karakter oluşturmak için kullanabilirsiniz ve sonra karakterleri yazı tipi glCallLists işlevi ile çizin.

WglUseFontOutlines işlevi, Windows NT 3.51 için yenidir ve 3-B karakterler, TrueType yazı tiplerini çizmek için kullanılabilir. Bu karakterler Döndürülmüş, ölçeklenebilir, dönüştürülmüş ve tüm diğer OpenGL 3-B görüntü gibi görüntülenemez. Bu işlev, TrueType yazı tipleriyle çalışacak biçimde tasarlanmıştır.

GLFONT örnek wglUseFontOutlines işlevi, TrueType yazı tipi ve çizme, Ölçek ve glifleri yazı tipi karakterleri çizmek için glCallLists kullanarak döndürme nasıl karakterler için görüntü listeleri oluşturmak ve OpenGL levler döndürmek ve bunları ölçeklemek için nasıl kullanılacağını gösterir. Win32 SDK için Windows NT Bu örnek derlemeye 3.51 ve kendi uygulamanızda wglUseFontOutlines eklemek gerekir. Ayrıca, uygulama çalıştırmak için Windows NT 3.51 gerekir.

Daha fazla bilgi

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Glfont.exe (http://download.microsoft.com/download/platformsdk/sample24/1/w9xnt4/en-us/glfont.exe)
Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır. WglUseFontOutlines görüntü listeleri oluşturmak istediğiniz TrueType yazı tipini belirtmek için <a0></a0>, önce istediğiniz mantıksal yazı tipi CreateFont veya CreateFontIndirect kullanarak oluşturmalısınız. Sonra NesneSeç ile ekran aygıt içerik (HDC) içinde oluşturulan HFONT seçin ve HDC wglUseFontOutlines işlevine gönderme gerekir. Her karakter, x ve y eşlenen listelerindeki görüntüleme yönergeleri. Negatif z yönünde wglUseFontOutlines parametresinde kalıp derinliği belirtmek gerekir.

Çokgen veya çizgi parçaları olarak oluşturulması için 3-B glifleri isteyip istemediğinizi belirtebilirsiniz. 3-B glifleri olan satırları kesimi oluşturmak için wglUseFontOutlines söyleyin için <a0></a0>, biçim parametresinde WGL_FONT_LINES belirtin. Çokgenler ile oluşturmak için <a0></a0>, WGL_FONT_POLYGONS belirtin.

Arial TrueType yazı tipi karakterlerini bir dizi Çokgen çizmek için görüntü listeleri kümesi nasıl oluşturulacağını gösteren bir örnek aşağıdadır:
   LOGFONT     lf;
   HFONT       hFont, hOldFont;
   GLYPHMETRICSFLOAT agmf[256];

   // An hDC and an hRC have already been created.
   wglMakeCurrent( hDC, hRC );

   // Let's create a TrueType font to display.
   memset(&lf,0,sizeof(LOGFONT));
   lf.lfHeight               =   -20 ;
   lf.lfWeight               =   FW_NORMAL ;
   lf.lfCharSet              =   ANSI_CHARSET ;
   lf.lfOutPrecision         =   OUT_DEFAULT_PRECIS ;
   lf.lfClipPrecision        =   CLIP_DEFAULT_PRECIS ;
   lf.lfQuality              =   DEFAULT_QUALITY ;
   lf.lfPitchAndFamily       =   FF_DONTCARE|DEFAULT_PITCH;
   lstrcpy (lf.lfFaceName, "Arial") ;

   hFont = CreateFontIndirect(&lf);
   hOldFont = SelectObject(hDC,hFont);

   // Create a set of display lists based on the TT font we selected
   if (!(wglUseFontOutlines(hDC, 0, 255, GLF_START_LIST, 0.0f, 0.15f,
      WGL_FONT_POLYGONS, agmf)))
        MessageBox(hWnd,"wglUseFontOutlines failed!","GLFont",MB_OK);

   DeleteObject(SelectObject(hDC,hOldFont));
   .  .  .  .
   .  .  .  .
   .  .  .  .
   .  .  .  .
				
dizede 3-B Bu karakterleri görüntülemek için şu kodu kullanın:
   // Display string with display lists created by wglUseFontOutlines()
   glListBase(GLF_START_LIST); // indicate start of display lists

   // Draw the characters
   glCallLists(6, GL_UNSIGNED_BYTE, "OpenGL");
				

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Win32 Uygulama Programlama Arabirimi, Ne zaman ne ile kullanilir:
    • Microsoft Windows NT Server 3.51
    • Microsoft Windows NT Server 4.0 Standard Edition
    • Microsoft Windows NT Workstation 3.51
    • Microsoft Windows NT Workstation 4.0 Developer Edition
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows 95
Anahtar Kelimeler: 
kbmt kbfile kbinfo KB131024 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:131024  (http://support.microsoft.com/kb/131024/en-us/ )