diff options
Diffstat (limited to 'src/glut/beos/glut_bwidth.cpp')
-rw-r--r-- | src/glut/beos/glut_bwidth.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/glut/beos/glut_bwidth.cpp b/src/glut/beos/glut_bwidth.cpp new file mode 100644 index 00000000000..711dfa569e3 --- /dev/null +++ b/src/glut/beos/glut_bwidth.cpp @@ -0,0 +1,59 @@ + +/* 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 <GL/glut.h> +#include "glutint.h" +#include "glutbitmap.h" + +/* CENTRY */ +int APIENTRY +glutBitmapWidth(GLUTbitmapFont font, int c) +{ + BitmapFontPtr fontinfo; + const BitmapCharRec *ch; + +#if defined(WIN32) + 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 (int)ch->advance; + else + return 0; +} + +int APIENTRY +glutBitmapLength(GLUTbitmapFont font, const char *string) +{ + int c, length; + BitmapFontPtr fontinfo; + const BitmapCharRec *ch; + +#ifdef WIN32 + 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 += (int)ch->advance; + } + } + return length; +} + +/* ENDCENTRY */ |