#ifndef HELI_FONT_H
#define HELI_FONT_H
#include "common.h"
typedef struct _Font *Font;
typedef struct _TextLayout *TextLayout;
typedef enum _HAlign {
HALIGN_LEFT,
HALIGN_CENTER,
HALIGN_RIGHT
} HAlign;
typedef enum _VAlign {
VALIGN_TOP,
VALIGN_CENTER,
VALIGN_BOTTOM
} VAlign;
Font createFont(const char *path);
Font createFontFromMemory(const void *data, int size);
void fontDestroy(Font font);
void textFont(Font font);
void textFontDefault();
Font fontClone(Font font);
void text(double x, double y, const char *text);
void textf(double x, double y, const char *format, ...);
void textAlign(HAlign hor, VAlign vert);
void textSize(double size);
TextLayout createTextLayout(const char *text);
TextLayout createTextLayoutEx(const char *text, int length);
TextLayout createTextLayoutf(const char *format, ...);
void textLayoutDestroy(TextLayout layout);
void textLayoutDraw(TextLayout layout, double x, double y);
void textLayoutDrawFrom(TextLayout layout, double x, double y, int start);
void textLayoutDrawSubstr(TextLayout layout, double x, double y, int start, int length);
double textLayoutGetLeft(TextLayout layout);
double textLayoutGetTop(TextLayout layout);
double textLayoutGetWidth(TextLayout layout);
double textLayoutGetHeight(TextLayout layout);
double textLayoutGetTopAscenderLine(TextLayout layout);
double textLayoutGetTopXLine(TextLayout layout);
double textLayoutGetBottomBaseline(TextLayout layout);
int textLayoutCursorUp(TextLayout layout, int cursor);
int textLayoutCursorDown(TextLayout layout, int cursor);
double textLayoutCursorGetX(TextLayout layout, int cursor);
double textLayoutCursorGetY(TextLayout layout, int cursor);
double textLayoutCursorGetHeight(TextLayout layout, int cursor);
#endif