hgefont.h
上传用户:jalin138
上传日期:2022-02-12
资源大小:5720k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /*
  2. ** Haaf's Game Engine 1.7
  3. ** Copyright (C) 2003-2007, Relish Games
  4. ** hge.relishgames.com
  5. **
  6. ** hgeFont helper class header
  7. */
  8. #ifndef HGEFONT_H
  9. #define HGEFONT_H
  10. #include "hge.h"
  11. #include "hgesprite.h"
  12. #define HGETEXT_LEFT 0
  13. #define HGETEXT_RIGHT 1
  14. #define HGETEXT_CENTER 2
  15. #define HGETEXT_HORZMASK 0x03
  16. #define HGETEXT_TOP 0
  17. #define HGETEXT_BOTTOM 4
  18. #define HGETEXT_MIDDLE 8
  19. #define HGETEXT_VERTMASK 0x0C
  20. /*
  21. ** HGE Font class
  22. */
  23. class hgeFont
  24. {
  25. public:
  26. hgeFont(const char *filename, bool bMipmap=false);
  27. ~hgeFont();
  28. void Render(float x, float y, int align, const char *string);
  29. void printf(float x, float y, int align, const char *format, ...);
  30. void printfb(float x, float y, float w, float h, int align, const char *format, ...);
  31. void SetColor(DWORD col);
  32. void SetZ(float z);
  33. void SetBlendMode(int blend);
  34. void SetScale(float scale) {fScale=scale;}
  35. void SetProportion(float prop) { fProportion=prop; }
  36. void SetRotation(float rot) {fRot=rot;}
  37. void SetTracking(float tracking) {fTracking=tracking;}
  38. void SetSpacing(float spacing) {fSpacing=spacing;}
  39. DWORD GetColor() const {return dwCol;}
  40. float GetZ() const {return fZ;}
  41. int GetBlendMode() const {return nBlend;}
  42. float GetScale() const {return fScale;}
  43. float GetProportion() const { return fProportion; }
  44. float GetRotation() const {return fRot;}
  45. float GetTracking() const {return fTracking;}
  46. float GetSpacing() const {return fSpacing;}
  47. hgeSprite* GetSprite(char chr) const { return letters[(unsigned char)chr]; }
  48. float GetPreWidth(char chr) const { return pre[(unsigned char)chr]; }
  49. float GetPostWidth(char chr) const { return post[(unsigned char)chr]; }
  50. float GetHeight() const { return fHeight; }
  51. float GetStringWidth(const char *string, bool bMultiline=true) const;
  52. private:
  53. hgeFont();
  54. hgeFont(const hgeFont &fnt);
  55. hgeFont& operator= (const hgeFont &fnt);
  56. char* _get_line(char *file, char *line);
  57. static HGE *hge;
  58. static char buffer[1024];
  59. HTEXTURE hTexture;
  60. hgeSprite* letters[256];
  61. float pre[256];
  62. float post[256];
  63. float fHeight;
  64. float fScale;
  65. float fProportion;
  66. float fRot;
  67. float fTracking;
  68. float fSpacing;
  69. DWORD dwCol;
  70. float fZ;
  71. int nBlend;
  72. };
  73. #endif