#ifndef _GFX_FB_H
#define _GFX_FB_H
#include <sys/visual_io.h>
#include <pnglite.h>
#ifdef __cplusplus
extern "C" {
#endif
struct framebuffer {
struct vis_identifier ident;
int fd;
uint8_t *fb_addr;
int fb_height;
int fb_width;
int fb_depth;
int fb_bpp;
int fb_size;
int fb_pitch;
uint16_t terminal_origin_x;
uint16_t terminal_origin_y;
uint16_t font_width;
uint16_t font_height;
uint8_t red_mask_size;
uint8_t red_field_position;
uint8_t green_mask_size;
uint8_t green_field_position;
uint8_t blue_mask_size;
uint8_t blue_field_position;
};
extern struct framebuffer fb;
void gfx_framework_init(void);
void gfx_framework_fini(void);
void gfx_fb_setpixel(uint32_t, uint32_t);
void gfx_fb_drawrect(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
void gfx_term_drawrect(uint32_t, uint32_t, uint32_t, uint32_t);
void gfx_fb_line(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
void gfx_fb_bezier(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t,
uint32_t);
#define FL_PUTIMAGE_BORDER 0x1
#define FL_PUTIMAGE_NOSCROLL 0x2
#define FL_PUTIMAGE_DEBUG 0x80
int gfx_fb_putimage(png_t *, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t);
#ifdef __cplusplus
}
#endif
#endif