/*
*     ___                       ___
*    / _ \___ _    _____ ____  / _ \_______ __    __
*   / ___/ _ \ |/|/ / -_) __/ / // / __/ _ `/ |/|/ /
*  /_/   \___/__,__/\__/_/   /____/_/  \_,_/|__,__/
*
*
*   Original Code by John Garrison
*   Written June 25, August 5, 1999
*   To be released under the LGPL
*
*   Drawing of TrueType fonts.
*
*   See LICENSE.TXT for more LGPL info
*/

#ifndef _PD_truetype_H
#define _PD_truetype_H

#ifdef __cplusplus
extern "C" {
#endif

#define UNICODE(c)      c

#include "powerdraw.h"

PD_TTFont *PD_TTFontInit (char *File, int Size);
int PD_SetFontSize(PD_TTFont *Font, int Size);
int PD_GetTTFontHeight (PD_TTFont *Font);
int PD_DestroyTTFont (PD_TTFont *Font);

int PD_DrawTTFontTextAlpha (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Color, int Alpha);
int PD_DrawTTFontText (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Color);
int PD_DrawTTFontTextAlphaSmooth (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Fg, PD_Color Bg, int Alpha);
int PD_DrawTTFontTextSmooth (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Fg, PD_Color Bg);


int PD_DrawTTFontTextUTF8Alpha (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Color, int Alpha);
int PD_DrawTTFontUTF8Text (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Color);
int PD_DrawTTFontTextUTF8AlphaSmooth (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Fg, PD_Color Bg, int Alpha);
int PD_DrawTTFontUTF8TextSmooth (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Fg, PD_Color Bg);


int PD_DrawTTFontTextUNICODEAlpha(PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Color, int Alpha);
int PD_DrawTTFontUNICODEText (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Color);
int PD_DrawTTFontTextUNICODEAlphaSmooth(PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Fg, PD_Color Bg, int Alpha);
int PD_DrawTTFontUNICODETextSmooth (PD_Surface *Surface, PD_TTFont *Font, char *Text, int X, int Y, PD_Color Fg, PD_Color Bg);

int PD_GetTTFTextWidth(PD_TTFont *Font, char *Text);

#ifdef __cplusplus
};
#endif

#endif