glut_bwidth.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:1k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1994. */
  2. /* This program is freely distributable without licensing fees
  3.    and is provided without guarantee or warrantee expressed or
  4.    implied. This program is -not- in the public domain. */
  5. #include "glutint.h"
  6. #include "glutbitmap.h"
  7. /* CENTRY */
  8. int APIENTRY 
  9. glutBitmapWidth(GLUTbitmapFont font, int c)
  10. {
  11.   BitmapFontPtr fontinfo;
  12.   const BitmapCharRec *ch;
  13. #ifdef _WIN32
  14.   fontinfo = (BitmapFontPtr) __glutFont(font);
  15. #else
  16.   fontinfo = (BitmapFontPtr) font;
  17. #endif
  18.   if (c < fontinfo->first || c >= fontinfo->first + fontinfo->num_chars)
  19.     return 0;
  20.   ch = fontinfo->ch[c - fontinfo->first];
  21.   if (ch)
  22.     return ch->advance;
  23.   else
  24.     return 0;
  25. }
  26. int APIENTRY 
  27. glutBitmapLength(GLUTbitmapFont font, const unsigned char *string)
  28. {
  29.   int c, length;
  30.   BitmapFontPtr fontinfo;
  31.   const BitmapCharRec *ch;
  32. #ifdef _WIN32
  33.   fontinfo = (BitmapFontPtr) __glutFont(font);
  34. #else
  35.   fontinfo = (BitmapFontPtr) font;
  36. #endif
  37.   length = 0;
  38.   for (; *string != ''; string++) {
  39.     c = *string;
  40.     if (c >= fontinfo->first && c < fontinfo->first + fontinfo->num_chars) {
  41.       ch = fontinfo->ch[c - fontinfo->first];
  42.       if (ch)
  43.         length += ch->advance;
  44.     }
  45.   }
  46.   return length;
  47. }
  48. /* ENDCENTRY */