OpenGL 汉字显示 请高手们 帮忙C++  转换为 Delphi,能让我们初学者学习一下。
我不知道OpenGL 中如何显示汉字。如果你们有解决的方法能发给我吗?这样就不用在转换了。查了一些资料都是C++。由于C++基础太差,看不太懂,希望朋友们给转换一下。
其中头文件在 Delphi 中是什么文件?
-------------
第一个例子#include   "StdAfx.h"   
#include   "OutlineFont.h"   
    
  COutlineFont::COutlineFont(   
          CDC*   dc,     
          char*   fontname,   char*   string)   
  {   
          //   Class   constructor.   
          //   Stores   each   character   in   its   own   display   list   
          //   for   later   drawing   via   the   wglUseFontOutlines()   call.   
            char   cch;     
            unsigned   int   ich=0;     
            unsigned   int   i=0;     
            unsigned   int   j=0;     
  //;   bool   bWGL;   
    
    m_iCount   =   strlen(string);   
          if   (dc   &&   fontname   &&   strlen(fontname)   >   0)   {   
    
                  m_pDC   =   dc;   
                  m_listbase   =   glGenLists(256);   
    
                  //   Setup   the   Font   characteristics   
                  LOGFONT   logfont;   
                  GLYPHMETRICSFLOAT   gmf[256];   
    
                  logfont.lfHeight                 =   -100;   
                  logfont.lfWidth                   =   0;   
                  logfont.lfEscapement         =   0;   
                  logfont.lfOrientation       =   logfont.lfEscapement;   
                  logfont.lfWeight                 =   FW_NORMAL;   
    //               logfont.lfItalic                 =   FALSE;   
  //                 logfont.lfUnderline           =   FALSE;   
  //                 logfont.lfStrikeOut           =   FALSE;   
                  logfont.lfCharSet               =   GB2312_CHARSET;//ANSI_CHARSET;   
                  logfont.lfOutPrecision     =   OUT_DEFAULT_PRECIS;   
                  logfont.lfClipPrecision   =   CLIP_DEFAULT_PRECIS;   
                  logfont.lfQuality               =   DEFAULT_QUALITY;   
                  logfont.lfPitchAndFamily   =   VARIABLE_PITCH   |   FF_SWISS;   
                  strcpy(logfont.lfFaceName,   fontname);   
    
                  CFont   font;   
                  CFont*   oldfont;   
                  BOOL   success   =   font.CreateFontIndirect(&logfont);   
                  oldfont   =   m_pDC->SelectObject(&font);   
    i=0;     
    j=0;     
    while(i<strlen(string))   
    {   
    if   (IsDBCSLeadByte(string[i]))   
    {   ///判断是否为双字节     
    ich=string[i];     
    ich=(ich<<8)+256;   ////256为汉字内码“偏移量”     
    ich=ich+string[i+1];     
    i++;i++;     
    wglUseFontOutlines(m_pDC->m_hDC,   /////字体轮廓设备联系DC     
    ich,   /////要转换为显示列表的第一个字符     
    1,   /////要转换为显示列表的字符数     
    m_listbase+j,   /////显示列表的基数     
    0.0f,   /////指定与实际轮廓的最大偏移量     
    0.15f,   /////在Z轴负方向的值     
    WGL_FONT_POLYGONS,   /////指定显示列表线段或多边形     
    &gmf[j]);   /////接受字符的地址     
    FTextList[j]=j;     
    j++;     
    }     
    else{     
    cch=string[i];     
    i++;     
    wglUseFontOutlines(m_pDC->m_hDC,   /////字体轮廓设备联系DC     
    cch,   /////要转换为显示列表的第一个字符     
    1,   /////要转换为显示列表的字符数     
    m_listbase+j,   /////显示列表的基数     
    0.0f,   /////指定与实际轮廓的最大偏移量     
    0.15f,   /////在Z轴负方向的值     
    WGL_FONT_POLYGONS,   /////指定显示列表线段或多边形     
    &gmf[j]);   /////接受字符的地址     
    FTextList[j]=j;     
    j++;     
    }     
    }     
                  if   (!success)   
  {   
  /*                         FALSE   ==   wglUseFontOutlines(   
                                  m_pDC->m_hDC,     
                                  0,     
                                  256,     
                                  m_listbase,   
                                  0.0,     
                                  0.0,     
                                  WGL_FONT_POLYGONS,   
                                  gmf))   {*/   
                          glDeleteLists(m_listbase,   256);   
                          m_listbase   =   0;   
                  }   
                  else   {   
                          m_pDC->SelectObject(oldfont);   
                  }   
          }   
  }   
    
  COutlineFont::~COutlineFont()   
  {   
          //   Class   destructor.   
    
          glDeleteLists(m_listbase,   256);   
          m_listbase   =   0;   
  }   
    
    
  void   
  COutlineFont::DrawString(char*   s)   
  {   
          //   Draws   the   given   text   string.   
    
  ///         GLsizei   m_iCount   =   GLsizei(strlen(s));   
          if   (m_iCount   >   0)   {   
  //   Must   save/restore   the   list   base.   
  glPushAttrib(GL_LIST_BIT);{   
  glListBase(m_listbase);   
  glCallLists(m_iCount,   GL_UNSIGNED_BYTE,   &FTextList);   
  }   glPopAttrib();   
          }   
  }   ----------------------------
 第二个例子 使用OPENGL显示中文的类,发不上来
 http://blog.csdn.net/hili/archive/2006/03/22/632986.aspx 
非常急,不慎感激!