OpenGL如何显示文本?

      不管是DirectX9还是GDI,处理文本都是很方便的,但是在OpenGL中,我似乎没找到很方便的处理方式,在网上搜了一下,结果如下: 
      在http://www.opengl.org/resources/features/fontsurvey/ 里说,处理OpenGL处理文本有三种方式,我试用了一种。
      这里要用到glut(把glut下载下来,把头文件glut.h放到...\PlatformSDK\Include\gl下,把两个lib放到...\PlatformSDK\Lib,把两个dll放到system32下)

void* bitmap_fonts[7= {
      GLUT_BITMAP_9_BY_15,
      GLUT_BITMAP_8_BY_13,
      GLUT_BITMAP_TIMES_ROMAN_10,
      GLUT_BITMAP_TIMES_ROMAN_24,
      GLUT_BITMAP_HELVETICA_10,
      GLUT_BITMAP_HELVETICA_12,
      GLUT_BITMAP_HELVETICA_18     
   }
;
print_bitmap_string(
void* font,const char* s)
{
   
if (s && strlen(s)) {
      
while (*s) {
         glutBitmapCharacter(font, 
*s);
         s
++;
      }

   }

}

int CDGL::TextOut(int x,int y,const char* cstr,int color)
{     
   
   glRasterPos2f(x, y);
          print_bitmap_string(
bitmap_fonts[4], cstr);

          
return 1;
}

我在我的Plot3D项目里试用,能够用,尽管还不是很方便。


posted @ 2007-06-13 22:18 eyye的眼睛 阅读(507) 评论(3)  编辑 收藏 网摘

  回复  引用    
#1楼 2007-06-13 22:22 | xxx [未注册用户]
有几种方式拉,你这种是带贴图地
  回复  引用  查看    
#2楼 2007-08-22 15:15 | Phinecos(洞庭散人)      

void strokeString(int x, int y, char *msg, void *font)
{
glPushMatrix();
glTranslatef(x, y, 0);
glScalef(.04, .04, .04);
while (*msg) {
glutStrokeCharacter(font, *msg);
msg++;
}
glPopMatrix();
}
  回复  引用  查看    
#3楼 2007-08-22 15:15 | Phinecos(洞庭散人)      

void strokeString(int x, int y, char *msg, void *font)
{
glPushMatrix();
glTranslatef(x, y, 0);
glScalef(.04, .04, .04);
while (*msg) {
glutStrokeCharacter(font, *msg);
msg++;
}
glPopMatrix();
}

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-06-18 20:59 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: