SmartAudio/lichee/brandy/u-boot-2014.07/include/boot_gui.h

91 lines
2.2 KiB
C

#ifndef __BOOT_GUI_H__
#define __BOOT_GUI_H__
enum {
FB_ID_0 = 0,
FB_ID_1,
FB_ID_2,
FB_ID_3,
FB_ID_NUM, /* excuse me: it is not the number of framebuffer */
FB_ID_INVALID,
};
enum {
FB_PIXEL_ALPHA_MODE = 0,
FB_GLOBAL_ALPHA_MODE,
FB_GLOBAL_PIXEL_ALPHA_MODE,
};
typedef struct color {
unsigned char blue;
unsigned char green;
unsigned char red;
unsigned char alpha;
} argb_t;
typedef struct point {
int x;
int y;
} point_t;
typedef struct rect {
int left;
int top;
int right;
int bottom;
} rect_t;
struct canvas {
unsigned char *base; /* read only */
char *pixel_format_name; /* read only */
argb_t color; /* default color */
int width; /* read only */
int height; /* read only */
int bpp; /* read only */
int stride; /* read only */
int (*draw_point)(struct canvas *cv, argb_t *color, point_t *coords);
/* draw a line, the points of from and to would be drawn */
int (*draw_line)(struct canvas *cv, argb_t *color, point_t *from, point_t *to);
/* draw_rect/fill_rect: not include the line and row of right_bottom */
int (*draw_rect)(struct canvas *cv, argb_t *color, rect_t *rect);
int (*fill_rect)(struct canvas *cv, argb_t *color, rect_t *rect);
int (*copy_block)(struct canvas *cv, point_t *src, point_t *dst,
unsigned int width, unsigned int height);
/* not auto switch to next line when drawing to the end of line */
int (*draw_chars)(struct canvas *cv, argb_t *color, point_t *coords,
char *chs, unsigned int count);
/* only deal the interest region in spec case:
* such as scn_win of interset region is interge, smooth boot
*/
int (*set_interest_region)(struct canvas *cv, rect_t *rects, unsigned int count,
argb_t *uninterest_region_color);
void *this_fb; /* prohibit read&write */
};
#ifdef CONFIG_BOOT_GUI
extern int disp_devices_open(void);
extern int fb_init(void);
extern int fb_quit(void);
extern struct canvas *fb_lock(const unsigned int fb_id);
extern int fb_unlock(unsigned int fb_id, rect_t *dirty_rects, int count);
extern int fb_set_alpha_mode(unsigned int fb_id,
unsigned char alpha_mode, unsigned char alpha_value);
extern int save_disp_cmd(void);
#endif /* #ifdef CONFIG_BOOT_GUI */
#endif /* __BOOT_GUI_H__ */