2
* GRUB -- GRand Unified Bootloader
3
* Copyright (C) 2005,2006,2007,2008 Free Software Foundation, Inc.
5
* GRUB is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* (at your option) any later version.
10
* GRUB is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
19
#ifndef GRUB_VIDEO_FB_HEADER
20
#define GRUB_VIDEO_FB_HEADER 1
22
#include <grub/symbol.h>
23
#include <grub/types.h>
25
#include <grub/video.h>
27
/* FB module internal prototype (should not be used from elsewhere). */
29
struct grub_video_fbblit_info;
31
struct grub_video_fbrender_target;
33
#define GRUB_VIDEO_FBSTD_NUMCOLORS 16
34
extern struct grub_video_palette_data grub_video_fbstd_colors[GRUB_VIDEO_FBSTD_NUMCOLORS];
37
grub_video_fb_init (void);
40
grub_video_fb_fini (void);
43
grub_video_fb_get_info (struct grub_video_mode_info *mode_info);
46
grub_video_fb_get_palette (unsigned int start, unsigned int count,
47
struct grub_video_palette_data *palette_data);
49
grub_video_fb_set_palette (unsigned int start, unsigned int count,
50
struct grub_video_palette_data *palette_data);
52
grub_video_fb_set_viewport (unsigned int x, unsigned int y,
53
unsigned int width, unsigned int height);
55
grub_video_fb_get_viewport (unsigned int *x, unsigned int *y,
56
unsigned int *width, unsigned int *height);
59
grub_video_fb_map_color (grub_uint32_t color_name);
62
grub_video_fb_map_rgb (grub_uint8_t red, grub_uint8_t green,
66
grub_video_fb_map_rgba (grub_uint8_t red, grub_uint8_t green,
67
grub_uint8_t blue, grub_uint8_t alpha);
70
grub_video_fb_unmap_color (grub_video_color_t color,
71
grub_uint8_t *red, grub_uint8_t *green,
72
grub_uint8_t *blue, grub_uint8_t *alpha);
75
grub_video_fb_unmap_color_int (struct grub_video_fbblit_info * source,
76
grub_video_color_t color,
77
grub_uint8_t *red, grub_uint8_t *green,
78
grub_uint8_t *blue, grub_uint8_t *alpha);
81
grub_video_fb_fill_rect (grub_video_color_t color, int x, int y,
82
unsigned int width, unsigned int height);
85
grub_video_fb_blit_bitmap (struct grub_video_bitmap *bitmap,
86
enum grub_video_blit_operators oper, int x, int y,
87
int offset_x, int offset_y,
88
unsigned int width, unsigned int height);
91
grub_video_fb_blit_render_target (struct grub_video_fbrender_target *source,
92
enum grub_video_blit_operators oper,
93
int x, int y, int offset_x, int offset_y,
94
unsigned int width, unsigned int height);
97
grub_video_fb_scroll (grub_video_color_t color, int dx, int dy);
100
grub_video_fb_create_render_target (struct grub_video_fbrender_target **result,
101
unsigned int width, unsigned int height,
102
unsigned int mode_type __attribute__ ((unused)));
105
grub_video_fb_create_render_target_from_pointer (struct grub_video_fbrender_target **result,
106
const struct grub_video_mode_info *mode_info,
110
grub_video_fb_delete_render_target (struct grub_video_fbrender_target *target);
113
grub_video_fb_get_active_render_target (struct grub_video_fbrender_target **target);
116
grub_video_fb_set_active_render_target (struct grub_video_fbrender_target *target);
118
#endif /* ! GRUB_VIDEO_FB_HEADER */