2006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
* DISTLIST: Added include/grub/video.h, term/gfxterm.c, video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c. * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod, gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod. (video_mod_SOURCES): Added. (video_mod_CFLAGS): Likewise. (video_mod_LDFLAGS): Likewise. (gfxterm_mod_SOURCES): Likewise. (gfxterm_mod_CFLAGS): Likewise. (gfxterm_mod_LDFLAGS): Likewise. (videotest_mod_SOURCES): Likewise. (videotest_mod_CFLAGS): Likewise. (videotest_mod_LDFLAGS): Likewise. (vesafb_mod_SOURCES): Removed. (vesafb_mod_CFLAGS): Likewise. (vesafb_mod_LDFLAGS): Likewise. (vga_mod_SOURCES): Likewise. (vga_mod_CFLAGS): Likewise. (vga_mod_LDFLAGS): Likewise. * commands/videotest.c: New file. * font/manager.c (fill_with_default_glyph): Modified to use grub_font_glyph. (grub_font_get_glyph): Likewise. (fontmanager): Renamed from this... (font_manager): ... to this. * include/grub/font.h (grub_font_glyph): Added new structure. (grub_font_get_glyph): Modified to use grub_font_glyph. * include/grub/misc.h (grub_abs): Added as inline function. * include/grub/video.h: New file. * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro. (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise. (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise. (grub_vbe_get_controller_info): Renamed from this... (grub_vbe_bios_get_controller_info): ... to this. (grub_vbe_get_mode_info): Renamed from this... (grub_vbe_bios_get_mode_info): ... to this. (grub_vbe_set_mode): Renamed from this... (grub_vbe_bios_set_mode): ... to this. (grub_vbe_get_mode): Renamed from this... (grub_vbe_bios_get_mode): ... to this. (grub_vbe_set_memory_window): Renamed from this... (grub_vbe_bios_set_memory_window): ... to this. (grub_vbe_get_memory_window): Renamed from this... (grub_vbe_bios_get_memory_window): ... to this. (grub_vbe_set_scanline_length): Renamed from this... (grub_vbe_set_scanline_length): ... to this. (grub_vbe_get_scanline_length): Renamed from this... (grub_vbe_bios_get_scanline_length): ... to this. (grub_vbe_set_display_start): Renamed from this... (grub_vbe_bios_set_display_start): ... to this. (grub_vbe_get_display_start): Renamed from this... (grub_vbe_bios_get_display_start): ... to this. (grub_vbe_set_palette_data): Renamed from this... (grub_vbe_bios_set_palette_data): ... to this. (grub_vbe_set_pixel_rgb): Removed. (grub_vbe_set_pixel_index): Likewise. * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed from this... (grub_vbe_bios_get_controller_info): ... to this. (grub_vbe_get_mode_info): Renamed from this... (grub_vbe_bios_get_mode_info): ... to this. (grub_vbe_set_mode): Renamed from this... (grub_vbe_bios_set_mode): ... to this. (grub_vbe_get_mode): Renamed from this... (grub_vbe_bios_get_mode): ... to this. (grub_vbe_set_memory_window): Renamed from this... (grub_vbe_bios_set_memory_window): ... to this. (grub_vbe_get_memory_window): Renamed from this... (grub_vbe_bios_get_memory_window): ... to this. (grub_vbe_set_scanline_length): Renamed from this... (grub_vbe_set_scanline_length): ... to this. (grub_vbe_get_scanline_length): Renamed from this... (grub_vbe_bios_get_scanline_length): ... to this. (grub_vbe_set_display_start): Renamed from this... (grub_vbe_bios_set_display_start): ... to this. (grub_vbe_get_display_start): Renamed from this... (grub_vbe_bios_get_display_start): ... to this. (grub_vbe_set_palette_data): Renamed from this... (grub_vbe_bios_set_palette_data): ... to this. (grub_vbe_bios_get_controller_info): Fixed problem with registers getting corrupted after calling it. Added more pushes and pops. (grub_vbe_bios_set_mode): Likewise. (grub_vbe_bios_get_mode): Likewise. (grub_vbe_bios_get_memory_window): Likewise. (grub_vbe_bios_set_scanline_length): Likewise. (grub_vbe_bios_get_scanline_length): Likewise. (grub_vbe_bios_get_display_start): Likewise. (grub_vbe_bios_set_palette_data): Likewise. * normal/cmdline.c (cl_set_pos): Refresh the screen. (cl_insert): Likewise. (cl_delete): Likewise. * term/gfxterm.c: New file. * term/i386/pc/vesafb.c: Removed file. * video/video.c: New file. * video/i386/pc/vbe.c (real2pm): Added new function. (grub_video_vbe_draw_pixel): Likewise. (grub_video_vbe_get_video_ptr): Likewise. (grub_video_vbe_get_pixel): Likewise (grub_video_vbe_init): Likewise. (grub_video_vbe_fini): Likewise. (grub_video_vbe_setup): Likewise. (grub_video_vbe_get_info): Likewise. (grub_video_vbe_set_palette): Likewise. (grub_video_vbe_get_palette): Likewise. (grub_video_vbe_set_viewport): Likewise. (grub_video_vbe_get_viewport): Likewise. (grub_video_vbe_map_color): Likewise. (grub_video_vbe_map_rgb): Likewise. (grub_video_vbe_map_rgba): Likewise. (grub_video_vbe_unmap_color): Likewise. (grub_video_vbe_fill_rect): Likewise. (grub_video_vbe_blit_glyph): Likewise. (grub_video_vbe_blit_bitmap): Likewise. (grub_video_vbe_blit_render_target): Likewise. (grub_video_vbe_scroll): Likewise. (grub_video_vbe_swap_buffers): Likewise. (grub_video_vbe_create_render_target): Likewise. (grub_video_vbe_delete_render_target): Likewise. (grub_video_vbe_set_active_render_target): Likewise. (grub_vbe_set_pixel_rgb): Remove function. (grub_vbe_set_pixel_index): Likewise. (index_color_mode): Remove static variable. (active_mode): Likewise. (framebuffer): Likewise. (bytes_per_scan_line): Likewise. (grub_video_vbe_adapter): Added new static variable. (framebuffer): Likewise. (render_target): Likewise. (initial_mode): Likewise. (mode_in_use): Likewise. (mode_list): Likewise.
This commit is contained in:
parent
5f97350bc7
commit
bd0d7896cf
15 changed files with 3234 additions and 313 deletions
|
@ -24,7 +24,31 @@
|
|||
|
||||
#define GRUB_FONT_MAGIC "PPF\x7f"
|
||||
|
||||
struct grub_font_glyph
|
||||
{
|
||||
/* Glyph width in pixels. */
|
||||
grub_uint8_t width;
|
||||
|
||||
/* Glyph height in pixels. */
|
||||
grub_uint8_t height;
|
||||
|
||||
/* Glyph width in characters. */
|
||||
grub_uint8_t char_width;
|
||||
|
||||
/* Glyph baseline position in pixels (from up). */
|
||||
grub_uint8_t baseline;
|
||||
|
||||
/* Glyph bitmap data array of bytes in ((width + 7) / 8) * height.
|
||||
Bitmap is formulated by height scanlines, each scanline having
|
||||
width number of pixels. Pixels are coded as bits, value 1 meaning
|
||||
of opaque pixel and 0 is transparent. If width does not fit byte
|
||||
boundary, it will be padded with 0 to make it fit. */
|
||||
grub_uint8_t bitmap[32];
|
||||
};
|
||||
|
||||
typedef struct grub_font_glyph *grub_font_glyph_t;
|
||||
|
||||
int grub_font_get_glyph (grub_uint32_t code,
|
||||
unsigned char bitmap[32], unsigned *width);
|
||||
grub_font_glyph_t glyph);
|
||||
|
||||
#endif /* ! GRUB_FONT_HEADER */
|
||||
|
|
|
@ -27,6 +27,13 @@
|
|||
/* Default video mode to be used. */
|
||||
#define GRUB_VBE_DEFAULT_VIDEO_MODE 0x101
|
||||
|
||||
/* VBE status codes. */
|
||||
#define GRUB_VBE_STATUS_OK 0x004f
|
||||
|
||||
/* VBE memory model types. */
|
||||
#define GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL 0x04
|
||||
#define GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR 0x06
|
||||
|
||||
/* Note:
|
||||
|
||||
Please refer to VESA BIOS Extension 3.0 Specification for more descriptive
|
||||
|
@ -117,7 +124,7 @@ struct grub_vbe_mode_info_block
|
|||
|
||||
/* Reserved field to make structure to be 256 bytes long, VESA BIOS
|
||||
Extension 3.0 Specification says to reserve 189 bytes here but
|
||||
that doesn't make structure to be 256 bytes. So additional one is
|
||||
that doesn't make structure to be 256 bytes. So additional one is
|
||||
added here. */
|
||||
grub_uint8_t reserved4[189 + 1];
|
||||
} __attribute__ ((packed));
|
||||
|
@ -147,45 +154,45 @@ struct grub_vbe_palette_data
|
|||
/* Prototypes for kernel real mode thunks. */
|
||||
|
||||
/* Call VESA BIOS 0x4f00 to get VBE Controller Information, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_get_controller_info) (struct grub_vbe_info_block *controller_info);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_get_controller_info) (struct grub_vbe_info_block *controller_info);
|
||||
|
||||
/* Call VESA BIOS 0x4f01 to get VBE Mode Information, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_get_mode_info) (grub_uint32_t mode,
|
||||
struct grub_vbe_mode_info_block *mode_info);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_get_mode_info) (grub_uint32_t mode,
|
||||
struct grub_vbe_mode_info_block *mode_info);
|
||||
|
||||
/* Call VESA BIOS 0x4f02 to set video mode, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_set_mode) (grub_uint32_t mode,
|
||||
struct grub_vbe_crtc_info_block *crtc_info);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_set_mode) (grub_uint32_t mode,
|
||||
struct grub_vbe_crtc_info_block *crtc_info);
|
||||
|
||||
/* Call VESA BIOS 0x4f03 to return current VBE Mode, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_get_mode) (grub_uint32_t *mode);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_get_mode) (grub_uint32_t *mode);
|
||||
|
||||
/* Call VESA BIOS 0x4f05 to set memory window, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_set_memory_window) (grub_uint32_t window,
|
||||
grub_uint32_t position);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_set_memory_window) (grub_uint32_t window,
|
||||
grub_uint32_t position);
|
||||
|
||||
/* Call VESA BIOS 0x4f05 to return memory window, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_get_memory_window) (grub_uint32_t window,
|
||||
grub_uint32_t *position);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_get_memory_window) (grub_uint32_t window,
|
||||
grub_uint32_t *position);
|
||||
|
||||
/* Call VESA BIOS 0x4f06 to set scanline length (in bytes), return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_set_scanline_length) (grub_uint32_t length);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_set_scanline_length) (grub_uint32_t length);
|
||||
|
||||
/* Call VESA BIOS 0x4f06 to return scanline length (in bytes), return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_get_scanline_length) (grub_uint32_t *length);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_get_scanline_length) (grub_uint32_t *length);
|
||||
|
||||
/* Call VESA BIOS 0x4f07 to set display start, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_set_display_start) (grub_uint32_t x,
|
||||
grub_uint32_t y);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_set_display_start) (grub_uint32_t x,
|
||||
grub_uint32_t y);
|
||||
|
||||
/* Call VESA BIOS 0x4f07 to get display start, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_get_display_start) (grub_uint32_t *x,
|
||||
grub_uint32_t *y);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_get_display_start) (grub_uint32_t *x,
|
||||
grub_uint32_t *y);
|
||||
|
||||
/* Call VESA BIOS 0x4f09 to set palette data, return status. */
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_set_palette_data) (grub_uint32_t color_count,
|
||||
grub_uint32_t start_index,
|
||||
struct grub_vbe_palette_data *palette_data);
|
||||
grub_vbe_status_t EXPORT_FUNC(grub_vbe_bios_set_palette_data) (grub_uint32_t color_count,
|
||||
grub_uint32_t start_index,
|
||||
struct grub_vbe_palette_data *palette_data);
|
||||
|
||||
/* Prototypes for helper functions. */
|
||||
|
||||
|
@ -195,13 +202,5 @@ grub_err_t grub_vbe_set_video_mode (grub_uint32_t mode,
|
|||
grub_err_t grub_vbe_get_video_mode (grub_uint32_t *mode);
|
||||
grub_err_t grub_vbe_get_video_mode_info (grub_uint32_t mode,
|
||||
struct grub_vbe_mode_info_block *mode_info);
|
||||
void grub_vbe_set_pixel_rgb (grub_uint32_t x,
|
||||
grub_uint32_t y,
|
||||
grub_uint8_t red,
|
||||
grub_uint8_t green,
|
||||
grub_uint8_t blue);
|
||||
void grub_vbe_set_pixel_index (grub_uint32_t x,
|
||||
grub_uint32_t y,
|
||||
grub_uint8_t color);
|
||||
|
||||
#endif /* ! GRUB_VBE_MACHINE_HEADER */
|
||||
|
|
|
@ -76,4 +76,14 @@ grub_ssize_t EXPORT_FUNC(grub_utf8_to_ucs4) (grub_uint32_t *dest,
|
|||
const grub_uint8_t *src,
|
||||
grub_size_t size);
|
||||
|
||||
/* Inline functions. */
|
||||
static inline unsigned int
|
||||
grub_abs (int x)
|
||||
{
|
||||
if (x < 0)
|
||||
return (unsigned int)(-x);
|
||||
else
|
||||
return (unsigned int)x;
|
||||
}
|
||||
|
||||
#endif /* ! GRUB_MISC_HEADER */
|
||||
|
|
309
include/grub/video.h
Normal file
309
include/grub/video.h
Normal file
|
@ -0,0 +1,309 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
*
|
||||
* GRUB is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GRUB; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef GRUB_VIDEO_HEADER
|
||||
#define GRUB_VIDEO_HEADER 1
|
||||
|
||||
#include <grub/err.h>
|
||||
#include <grub/symbol.h>
|
||||
#include <grub/types.h>
|
||||
|
||||
typedef grub_uint32_t grub_video_color_t;
|
||||
|
||||
struct grub_video_render_target;
|
||||
|
||||
/* Defines used to describe video mode or rendering target. */
|
||||
#define GRUB_VIDEO_MODE_TYPE_ALPHA 0x00000008
|
||||
#define GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED 0x00000004
|
||||
#define GRUB_VIDEO_MODE_TYPE_INDEX_COLOR 0x00000002
|
||||
#define GRUB_VIDEO_MODE_TYPE_RGB 0x00000001
|
||||
|
||||
/* Defines used to mask flags. */
|
||||
#define GRUB_VIDEO_MODE_TYPE_COLOR_MASK 0x00000003
|
||||
|
||||
/* Defines used to specify requested bit depth. */
|
||||
#define GRUB_VIDEO_MODE_TYPE_DEPTH_MASK 0x0000ff00
|
||||
#define GRUB_VIDEO_MODE_TYPE_DEPTH_POS 8
|
||||
|
||||
/* Defined predefined render targets. */
|
||||
#define GRUB_VIDEO_RENDER_TARGET_DISPLAY ((struct grub_video_render_target *) 0)
|
||||
#define GRUB_VIDEO_RENDER_TARGET_FRONT_BUFFER ((struct grub_video_render_target *) 0)
|
||||
#define GRUB_VIDEO_RENDER_TARGET_BACK_BUFFER ((struct grub_video_render_target *) 1)
|
||||
|
||||
struct grub_video_mode_info
|
||||
{
|
||||
/* Width of the screen. */
|
||||
unsigned int width;
|
||||
|
||||
/* Height of the screen. */
|
||||
unsigned int height;
|
||||
|
||||
/* Mode type bitmask. Contains information like is it Index color or
|
||||
RGB mode. */
|
||||
unsigned int mode_type;
|
||||
|
||||
/* Bits per pixel. */
|
||||
unsigned int bpp;
|
||||
|
||||
/* Bytes per pixel. */
|
||||
unsigned int bytes_per_pixel;
|
||||
|
||||
/* Pitch of one scanline. How many bytes there are for scanline. */
|
||||
unsigned int pitch;
|
||||
|
||||
/* In index color mode, number of colors. In RGB mode this is 256. */
|
||||
unsigned int number_of_colors;
|
||||
|
||||
/* How many bits are reserved for red color. */
|
||||
unsigned int red_mask_size;
|
||||
|
||||
/* What is location of red color bits. In Index Color mode, this is 0. */
|
||||
unsigned int red_field_pos;
|
||||
|
||||
/* How many bits are reserved for green color. */
|
||||
unsigned int green_mask_size;
|
||||
|
||||
/* What is location of green color bits. In Index Color mode, this is 0. */
|
||||
unsigned int green_field_pos;
|
||||
|
||||
/* How many bits are reserved for blue color. */
|
||||
unsigned int blue_mask_size;
|
||||
|
||||
/* What is location of blue color bits. In Index Color mode, this is 0. */
|
||||
unsigned int blue_field_pos;
|
||||
|
||||
/* How many bits are reserved in color. */
|
||||
unsigned int reserved_mask_size;
|
||||
|
||||
/* What is location of reserved color bits. In Index Color mode,
|
||||
this is 0. */
|
||||
unsigned int reserved_field_pos;
|
||||
};
|
||||
|
||||
struct grub_video_render_target
|
||||
{
|
||||
/* Copy of the screen's mode info structure, except that width, height and
|
||||
mode_type has been re-adjusted to requested render target settings. */
|
||||
struct grub_video_mode_info mode_info;
|
||||
|
||||
struct
|
||||
{
|
||||
unsigned int x;
|
||||
unsigned int y;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
} viewport;
|
||||
|
||||
/* Indicates wether the data has been allocated by us and must be freed
|
||||
when render target is destroyed. */
|
||||
int is_allocated;
|
||||
|
||||
/* Pointer to data. Can either be in video card memory or in local host's
|
||||
memory. */
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct grub_video_palette_data
|
||||
{
|
||||
grub_uint8_t r; /* Red color value (0-255). */
|
||||
grub_uint8_t g; /* Green color value (0-255). */
|
||||
grub_uint8_t b; /* Blue color value (0-255). */
|
||||
grub_uint8_t a; /* Reserved bits value (0-255). */
|
||||
};
|
||||
|
||||
struct grub_font_glyph;
|
||||
struct grub_video_bitmap;
|
||||
|
||||
struct grub_video_adapter
|
||||
{
|
||||
/* The video adapter name. */
|
||||
const char *name;
|
||||
|
||||
/* Initialize the video adapter. */
|
||||
grub_err_t (*init) (void);
|
||||
|
||||
/* Clean up the video adapter. */
|
||||
grub_err_t (*fini) (void);
|
||||
|
||||
grub_err_t (*setup) (unsigned int width,
|
||||
unsigned int height,
|
||||
unsigned int mode_type);
|
||||
|
||||
grub_err_t (*get_info) (struct grub_video_mode_info *mode_info);
|
||||
|
||||
grub_err_t (*set_palette) (unsigned int start,
|
||||
unsigned int count,
|
||||
struct grub_video_palette_data *palette_data);
|
||||
|
||||
grub_err_t (*get_palette) (unsigned int start,
|
||||
unsigned int count,
|
||||
struct grub_video_palette_data *palette_data);
|
||||
|
||||
grub_err_t (*set_viewport) (unsigned int x,
|
||||
unsigned int y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t (*get_viewport) (unsigned int *x,
|
||||
unsigned int *y,
|
||||
unsigned int *width,
|
||||
unsigned int *height);
|
||||
|
||||
grub_video_color_t (*map_color) (grub_uint32_t color_name);
|
||||
|
||||
grub_video_color_t (*map_rgb) (grub_uint8_t red,
|
||||
grub_uint8_t green,
|
||||
grub_uint8_t blue);
|
||||
|
||||
grub_video_color_t (*map_rgba) (grub_uint8_t red,
|
||||
grub_uint8_t green,
|
||||
grub_uint8_t blue,
|
||||
grub_uint8_t alpha);
|
||||
|
||||
grub_err_t (*fill_rect) (grub_video_color_t color,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t (*blit_glyph) (struct grub_font_glyph *glyph,
|
||||
grub_video_color_t color,
|
||||
int x,
|
||||
int y);
|
||||
|
||||
grub_err_t (*blit_bitmap) (struct grub_video_bitmap *bitmap,
|
||||
int x,
|
||||
int y,
|
||||
int offset_x,
|
||||
int offset_y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t (*blit_render_target) (struct grub_video_render_target *source,
|
||||
int x,
|
||||
int y,
|
||||
int offset_x,
|
||||
int offset_y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t (*scroll) (grub_video_color_t color,
|
||||
int dx,
|
||||
int dy);
|
||||
|
||||
grub_err_t (*swap_buffers) (void);
|
||||
|
||||
grub_err_t (*create_render_target) (struct grub_video_render_target **result,
|
||||
unsigned int width,
|
||||
unsigned int height,
|
||||
unsigned int mode_type);
|
||||
|
||||
grub_err_t (*delete_render_target) (struct grub_video_render_target *target);
|
||||
|
||||
grub_err_t (*set_active_render_target) (struct grub_video_render_target *target);
|
||||
|
||||
/* The next video adapter. */
|
||||
struct grub_video_adapter *next;
|
||||
};
|
||||
typedef struct grub_video_adapter *grub_video_adapter_t;
|
||||
|
||||
void EXPORT_FUNC(grub_video_register) (grub_video_adapter_t adapter);
|
||||
void EXPORT_FUNC(grub_video_unregister) (grub_video_adapter_t adapter);
|
||||
void EXPORT_FUNC(grub_video_iterate) (int (*hook) (grub_video_adapter_t adapter));
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_setup) (unsigned int width,
|
||||
unsigned int height,
|
||||
unsigned int mode_type);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_restore) (void);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_get_info) (struct grub_video_mode_info *mode_info);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_set_palette) (unsigned int start,
|
||||
unsigned int count,
|
||||
struct grub_video_palette_data *palette_data);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_get_palette) (unsigned int start,
|
||||
unsigned int count,
|
||||
struct grub_video_palette_data *palette_data);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_set_viewport) (unsigned int x,
|
||||
unsigned int y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_get_viewport) (unsigned int *x,
|
||||
unsigned int *y,
|
||||
unsigned int *width,
|
||||
unsigned int *height);
|
||||
|
||||
grub_video_color_t EXPORT_FUNC(grub_video_map_color) (grub_uint32_t color_name);
|
||||
|
||||
grub_video_color_t EXPORT_FUNC(grub_video_map_rgb) (grub_uint8_t red,
|
||||
grub_uint8_t green,
|
||||
grub_uint8_t blue);
|
||||
|
||||
grub_video_color_t EXPORT_FUNC(grub_video_map_rgba) (grub_uint8_t red,
|
||||
grub_uint8_t green,
|
||||
grub_uint8_t blue,
|
||||
grub_uint8_t alpha);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_fill_rect) (grub_video_color_t color,
|
||||
int x,
|
||||
int y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_blit_glyph) (struct grub_font_glyph *glyph,
|
||||
grub_video_color_t color,
|
||||
int x,
|
||||
int y);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_blit_bitmap) (struct grub_video_bitmap *bitmap,
|
||||
int x,
|
||||
int y,
|
||||
int offset_x,
|
||||
int offset_y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_blit_render_target) (struct grub_video_render_target *source,
|
||||
int x,
|
||||
int y,
|
||||
int offset_x,
|
||||
int offset_y,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_scroll) (grub_video_color_t color,
|
||||
int dx,
|
||||
int dy);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_swap_buffers) (void);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_create_render_target) (struct grub_video_render_target **result,
|
||||
unsigned int width,
|
||||
unsigned int height,
|
||||
unsigned int mode_type);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_delete_render_target) (struct grub_video_render_target *target);
|
||||
|
||||
grub_err_t EXPORT_FUNC(grub_video_set_active_render_target) (struct grub_video_render_target *target);
|
||||
|
||||
#endif /* ! GRUB_VIDEO_HEADER */
|
Loading…
Add table
Add a link
Reference in a new issue