TexFont.h
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:2k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1997. */
  2. /* This program is freely distributable without licensing fees  and is
  3.    provided without guarantee or warrantee expressed or  implied. This
  4.    program is -not- in the public domain. */
  5. #ifndef __TEXFONT_H__
  6. #define __TEXFONT_H__
  7. #include <GL/gl.h>
  8. #define TXF_FORMAT_BYTE 0
  9. #define TXF_FORMAT_BITMAP 1
  10. typedef struct {
  11.   unsigned short c;       /* Potentially support 16-bit glyphs. */
  12.   unsigned char width;
  13.   unsigned char height;
  14.   signed char xoffset;
  15.   signed char yoffset;
  16.   signed char advance;
  17.   char dummy;           /* Space holder for alignment reasons. */
  18.   short x;
  19.   short y;
  20. } TexGlyphInfo;
  21. typedef struct {
  22.   GLfloat t0[2];
  23.   GLshort v0[2];
  24.   GLfloat t1[2];
  25.   GLshort v1[2];
  26.   GLfloat t2[2];
  27.   GLshort v2[2];
  28.   GLfloat t3[2];
  29.   GLshort v3[2];
  30.   GLfloat advance;
  31. } TexGlyphVertexInfo;
  32. typedef struct {
  33.   GLuint texobj;
  34.   int tex_width;
  35.   int tex_height;
  36.   int max_ascent;
  37.   int max_descent;
  38.   int num_glyphs;
  39.   int min_glyph;
  40.   int range;
  41.   unsigned char *teximage;
  42.   TexGlyphInfo *tgi;
  43.   TexGlyphVertexInfo *tgvi;
  44.   TexGlyphVertexInfo **lut;
  45. } TexFont;
  46. extern char *txfErrorString(void);
  47. extern TexFont *txfLoadFont(
  48.   char *filename);
  49. extern void txfUnloadFont(
  50.   TexFont * txf);
  51. extern GLuint txfEstablishTexture(
  52.   TexFont * txf,
  53.   GLuint texobj,
  54.   GLboolean setupMipmaps);
  55. extern void txfBindFontTexture(
  56.   TexFont * txf);
  57. extern void txfGetStringMetrics(
  58.   TexFont * txf,
  59.   char *string,
  60.   int len,
  61.   int *width,
  62.   int *max_ascent,
  63.   int *max_descent);
  64. extern void txfRenderGlyph(
  65.   TexFont * txf,
  66.   int c);
  67. extern void txfRenderString(
  68.   TexFont * txf,
  69.   char *string,
  70.   int len);
  71. extern void txfRenderFancyString(
  72.   TexFont * txf,
  73.   char *string,
  74.   int len);
  75. #endif /* __TEXFONT_H__ */