#ifndef __GFX_H
#define __GFX_H

#include "_config_lib_.h"

#include "_config_lib_graphics.h"
#if (gfxUSE_DRIVE == gfxUSE_DRIVE_ILI9341)
#include "ili9341.h"
#endif

void gfx_Init(void);
void gfx_SetRotation(u8 x);
u8 gfx_GetRotation(void);
void gfx_DrawLine(int x0, int y0, int x1, int y1, int color);
void gfx_DrawFastVLine(s16 x, s16 y, s16 h, uint color);
void gfx_DrawFastHLine(s16 x, s16 y, s16 w, uint color);
void gfx_FillRect(int x, int y, int w, int h, uint color);
void gfx_FillScreen(uint color);
void gfx_DrawRect(int x, int y, int w, int h, uint color);
void gfx_DrawTriangle(int x0, int y0, int x1, int y1, int x2, int y2, uint color);
void gfx_FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2, uint color);
void gfx_DrawCircle(int x0, int y0, int r, uint color);
void gfx_DrawCircleHelper( int x0, int y0, int r, uint cornername, uint color);
void gfx_FillCircleHelper(int x0, int y0, int r, uint cornername, int delta, uint color);
void gfx_FillCircle(int x0, int y0, int r, uint color);
void gfx_DrawRoundRect(int x, int y, int w, int h, int r, uint color);
void gfx_FillRoundRect(int x, int y, int w, int h, int r, uint color);

#include "fonts.h"
void gfx_SetCursor(int x, int y);
int gfx_GetCursorX(void);
int gfx_GetCursorY(void);
void gfx_SetTextSize(int s);
void gfx_SetTextColor(uint c);
void gfx_SetTextWrap(int w);
void gfx_cp437(int x);
void gfx_SetFont(tGFXfont *f);
void gfx_DrawChar(int x, int y, unsigned char c, uint color, uint size);
int gfx_PutChar(n16 ch);

#if (TFT_USE_PRINTF == pdON)
void gfx_printfInit(uint dev);
void gfx_printf(const cpchar fmt, ...);
#endif

#endif // __GFX_H
