blob: 403d30792a78ae7080ceb98653f028cadb6e4b79 (
plain) (
tree)
|
|
/*
** Haaf's Game Engine 1.7
** Copyright (C) 2003-2007, Relish Games
** hge.relishgames.com
**
** hgeFont helper class header
*/
#ifndef HGEFONT_H
#define HGEFONT_H
#include "hge.h"
#include "hgesprite.h"
#define HGETEXT_LEFT 0
#define HGETEXT_RIGHT 1
#define HGETEXT_CENTER 2
#define HGETEXT_HORZMASK 0x03
#define HGETEXT_TOP 0
#define HGETEXT_BOTTOM 4
#define HGETEXT_MIDDLE 8
#define HGETEXT_VERTMASK 0x0C
/*
** HGE Font class
*/
class hgeFont
{
public:
hgeFont(const char *filename, bool bMipmap=false);
~hgeFont();
void Render(float x, float y, int align, const char *string);
void printf(float x, float y, int align, const char *format, ...);
void printfb(float x, float y, float w, float h, int align, const char *format, ...);
void SetColor(DWORD col);
void SetZ(float z);
void SetBlendMode(int blend);
void SetScale(float scale) {fScale=scale;}
void SetProportion(float prop) { fProportion=prop; }
void SetRotation(float rot) {fRot=rot;}
void SetTracking(float tracking) {fTracking=tracking;}
void SetSpacing(float spacing) {fSpacing=spacing;}
DWORD GetColor() const {return dwCol;}
float GetZ() const {return fZ;}
int GetBlendMode() const {return nBlend;}
float GetScale() const {return fScale;}
float GetProportion() const { return fProportion; }
float GetRotation() const {return fRot;}
float GetTracking() const {return fTracking;}
float GetSpacing() const {return fSpacing;}
hgeSprite* GetSprite(char chr) const { return letters[(unsigned char)chr]; }
float GetPreWidth(char chr) const { return pre[(unsigned char)chr]; }
float GetPostWidth(char chr) const { return post[(unsigned char)chr]; }
float GetHeight() const { return fHeight; }
float GetStringWidth(const char *string, bool bMultiline=true) const;
HTEXTURE GetTexture(){return hTexture;}
private:
hgeFont();
hgeFont(const hgeFont &fnt);
hgeFont& operator= (const hgeFont &fnt);
char* _get_line(char *file, char *line);
static HGE *hge;
static char buffer[1024];
HTEXTURE hTexture;
hgeSprite* letters[256];
float pre[256];
float post[256];
float fHeight;
float fScale;
float fProportion;
float fRot;
float fTracking;
float fSpacing;
DWORD dwCol;
float fZ;
int nBlend;
};
#endif
|