| |
| /* Copyright (c) Mark J. Kilgard, 1994. */ |
| |
| /* This program is freely distributable without licensing fees |
| and is provided without guarantee or warrantee expressed or |
| implied. This program is -not- in the public domain. */ |
| |
| #include "glutint.h" |
| #include "glutbitmap.h" |
| |
| /* CENTRY */ |
| int GLUTAPIENTRY |
| glutBitmapWidth(GLUTbitmapFont font, int c) |
| { |
| BitmapFontPtr fontinfo; |
| const BitmapCharRec *ch; |
| |
| #if defined(_WIN32) || defined(GLUT_IMPORT_LIB) |
| fontinfo = (BitmapFontPtr) __glutFont(font); |
| #else |
| fontinfo = (BitmapFontPtr) font; |
| #endif |
| |
| if (c < fontinfo->first || c >= fontinfo->first + fontinfo->num_chars) |
| return 0; |
| ch = fontinfo->ch[c - fontinfo->first]; |
| if (ch) |
| return ch->advance; |
| else |
| return 0; |
| } |
| |
| int GLUTAPIENTRY |
| glutBitmapLength(GLUTbitmapFont font, const unsigned char *string) |
| { |
| int c, length; |
| BitmapFontPtr fontinfo; |
| const BitmapCharRec *ch; |
| |
| #if defined(_WIN32) || defined(GLUT_IMPORT_LIB) |
| fontinfo = (BitmapFontPtr) __glutFont(font); |
| #else |
| fontinfo = (BitmapFontPtr) font; |
| #endif |
| |
| length = 0; |
| for (; *string != '\0'; string++) { |
| c = *string; |
| if (c >= fontinfo->first && c < fontinfo->first + fontinfo->num_chars) { |
| ch = fontinfo->ch[c - fontinfo->first]; |
| if (ch) |
| length += ch->advance; |
| } |
| } |
| return length; |
| } |
| |
| /* ENDCENTRY */ |