1/* 2 * Copyright 1994-1997 Mark Kilgard, All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Mark Kilgard 7 */ 8 9 10#include "glutint.h" 11#include "glutbitmap.h" 12 13 14/* CENTRY */ 15int APIENTRY 16glutBitmapWidth(GLUTbitmapFont font, int c) 17{ 18 BitmapFontPtr fontinfo; 19 const BitmapCharRec *ch; 20 21#ifdef _WIN32 22 fontinfo = (BitmapFontPtr) __glutFont(font); 23#else 24 fontinfo = (BitmapFontPtr) font; 25#endif 26 27 if (c < fontinfo->first || c >= fontinfo->first + fontinfo->num_chars) 28 return 0; 29 ch = fontinfo->ch[c - fontinfo->first]; 30 if (ch) 31 return ch->advance; 32 else 33 return 0; 34} 35 36int APIENTRY 37glutBitmapLength(GLUTbitmapFont font, const unsigned char *string) 38{ 39 int c, length; 40 BitmapFontPtr fontinfo; 41 const BitmapCharRec *ch; 42 43#ifdef _WIN32 44 fontinfo = (BitmapFontPtr) __glutFont(font); 45#else 46 fontinfo = (BitmapFontPtr) font; 47#endif 48 49 length = 0; 50 for (; *string != '\0'; string++) { 51 c = *string; 52 if (c >= fontinfo->first && c < fontinfo->first + fontinfo->num_chars) { 53 ch = fontinfo->ch[c - fontinfo->first]; 54 if (ch) 55 length += ch->advance; 56 } 57 } 58 return length; 59} 60 61/* ENDCENTRY */ 62