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