diff options
Diffstat (limited to 'hacks/glx/glut_swidth.c')
-rw-r--r-- | hacks/glx/glut_swidth.c | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/hacks/glx/glut_swidth.c b/hacks/glx/glut_swidth.c new file mode 100644 index 0000000..b165a0a --- /dev/null +++ b/hacks/glx/glut_swidth.c @@ -0,0 +1,77 @@ + +/* Copyright (c) Mark J. Kilgard, 1995. */ + +/* 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. */ + +#if 0 /* for Mesa */ +# include "glutint.h" +#else /* for xscreensaver */ +# ifdef HAVE_CONFIG_H +# include "config.h" +# endif +# ifndef HAVE_JWXYZ +# include <GL/gl.h> +# endif +#ifdef HAVE_ANDROID +#include <GLES/gl.h> +#define Bool int +#endif +# ifdef HAVE_JWZGLES +# include "jwzgles.h" +# endif /* HAVE_JWZGLES */ +# undef APIENTRY +# define APIENTRY /**/ +#endif + +#include "glutstroke.h" + +/* CENTRY */ +int APIENTRY +glutStrokeWidth(GLUTstrokeFont font, int c) +{ + StrokeFontPtr fontinfo; + const StrokeCharRec *ch; + +#if defined(_WIN32) + fontinfo = (StrokeFontPtr) __glutFont(font); +#else + fontinfo = (StrokeFontPtr) font; +#endif + + if (c < 0 || c >= fontinfo->num_chars) + return 0; + ch = &(fontinfo->ch[c]); + if (ch) + return ch->right; + else + return 0; +} + +int APIENTRY +glutStrokeLength(GLUTstrokeFont font, const unsigned char *string) +{ + int c, length; + StrokeFontPtr fontinfo; + const StrokeCharRec *ch; + +#if defined(_WIN32) + fontinfo = (StrokeFontPtr) __glutFont(font); +#else + fontinfo = (StrokeFontPtr) font; +#endif + + length = 0; + for (; *string != '\0'; string++) { + c = *string; + if (c >= 0 && c < fontinfo->num_chars) { + ch = &(fontinfo->ch[c]); + if (ch) + length += ch->right; + } + } + return length; +} + +/* ENDCENTRY */ |