?? simple_graphics.h
字號(hào):
#ifndef __SIMPLE_GRAPHICS_H__
#define __SIMPLE_GRAPHICS_H__
#include "vga_controller.h"
#define DO_FILL 1
#define DO_NOT_FILL 0
#define BLACK_8 0x00
#define FONT_10PT_ROW 11
#define FONT_10PT_COLUMN 8
typedef struct {
int hbegin;
int vbegin;
int hend;
int f_color;
int b_color;
char* string;
char* font;
int ms_delay;
int ticks_at_last_move;
int text_scroll_index;
char text_scroll_started;
int window_width;
int length_of_string;
int scroll_points;
int string_points;
} vid_text_scroll_struct;
typedef struct {
int vertex_x[3];
int vertex_y[3];
// int ax, ay;
// int bx, by;
// int cx, cy;
int spans_needed;
int max_span;
int top_y;
int bottom_y;
int col;
int fill;
int center_z;
int *span_array;
} triangle_struct;
/* color conversion macro */
#define vid_color_convert24_16_m( x ) (unsigned short)(((*(x + 2) & 0xF8) >> 3) | ((*(x + 1) & 0xFC) << 3) | ((*(x + 0) & 0xF8) << 8))
extern char* cour10_font;
int vid_merge_colors(int red, int green, int blue);
unsigned short vid_color_convert24_16(char* color24);
int vid_color_convert16_24(unsigned short color16, char* color24);
int vid_copy_line_to_frame_buffer( int x, int y, char* buffer, int num_pixels, int source_color_depth, display_frame_buffer_struct* frame_buffer );
int vid_print_string(int horiz_offset, int vert_offset, int color, char *font, display_frame_buffer_struct* frame_buffer, char string[]);
int vid_scroll_string(vid_text_scroll_struct* scroll, display_frame_buffer_struct* frame_buffer);
vid_text_scroll_struct* vid_scroll_string_init(int hbegin, int vbegin, int hend, int f_color, int b_color, char* font, int ms_delay, char *string);
void vid_scroll_string_quit(vid_text_scroll_struct* scroll);
int vid_move_block(int xbegin, int ybegin, int xend, int yend, int x_distance, int y_distance, int backfill_color, display_frame_buffer_struct* frame_buffer);
int vid_print_char (int horiz_offset, int vert_offset, int color, char character, char *font, display_frame_buffer_struct* frame_buffer);
void vid_draw_line(int horiz_start, int vert_start, int horiz_end, int vert_end, int width, int color, display_frame_buffer_struct* frame_buffer);
void vid_set_pixel(int horiz, int vert, unsigned int color, display_frame_buffer_struct* frame_buffer);
short vid_get_pixel(int horiz, int vert, display_frame_buffer_struct* frame_buffer);
int vid_draw_circle(int Hcenter, int Vcenter, int radius, int color, char fill, display_frame_buffer_struct* frame_buffer);
void vid_circle_points(int cx, int cy, int x, int y, int color, char fill, display_frame_buffer_struct* frame_buffer);
int vid_draw_box (int horiz_start, int vert_start, int horiz_end, int vert_end, int color, int fill, display_frame_buffer_struct* frame_buffer);
void vid_paint_block (int Hstart, int Vstart, int Hend, int Vend, int color, display_frame_buffer_struct* frame_buffer);
void vid_draw_horiz_line (short Hstart, short Hend, int V, int color, display_frame_buffer_struct* frame_buffer);
inline int max3( int a, int b, int c );
inline int min3( int a, int b, int c );
int max_diff3(int a, int b, int c);
inline void vid_put_pixel_in_span_map( int x, int y, int *span_array );
void vid_bres_scan_edges( int x1, int y1, int x2, int y2, int *span_array);
void vid_draw_triangle(triangle_struct* tri, display_frame_buffer_struct* frame_buffer);
void vid_draw_horiz_line (short Hstart, short Hend, int V, int color, display_frame_buffer_struct* frame_buffer);
void vid_draw_sloped_line( unsigned short horiz_start,
unsigned short vert_start,
unsigned short horiz_end,
unsigned short vert_end,
unsigned short width,
int color,
display_frame_buffer_struct* frame_buffer);
void CopyImage16( short * __restrict__ source_buffer,
short * __restrict__ dest_buffer,
short source_width, short source_height,
short dest_width, short dest_height );
void CropImage16( short * __restrict__ source_buffer,
short * __restrict__ dest_buffer,
short source_width, short source_height,
short crop_left, short crop_right,
short crop_top, short crop_bottom,
short dest_width, short dest_height );
//Color Definitions
#define ALICEBLUE_16 0xF7DF
#define ANTIQUEWHITE_16 0xFF5A
#define AQUA_16 0x07DF
#define AQUAMARINE_16 0x7FDA
#define AZURE_16 0xF7DF
#define BEIGE_16 0xF79B
#define BISQUE_16 0xFF18
#define BLACK_16 0x0000
#define BLANCHEDALMOND_16 0xFF59
#define BLUE_16 0x001F
#define BLUEVIOLET_16 0x895C
#define BROWN_16 0xA145
#define BURLYWOOD_16 0xDDD0
#define CADETBLUE_16 0x5CD4
#define CHARTREUSE_16 0x7FC0
#define CHOCOLATE_16 0xD343
#define CORAL_16 0xFBCA
#define CORNFLOWERBLUE_16 0x649D
#define CORNSILK_16 0xFFDB
#define CRIMSON_16 0xD887
#define CYAN_16 0x07DF
#define DARKBLUE_16 0x0011
#define DARKCYAN_16 0x0451
#define DARKGOLDENROD_16 0xBC01
#define DARKGRAY_16 0xAD55
#define DARKGREEN_16 0x0300
#define DARKKHAKI_16 0xBD8D
#define DARKMAGENTA_16 0x8811
#define DARKOLIVEGREEN_16 0x5345
#define DARKORANGE_16 0xFC40
#define DARKORCHID_16 0x9999
#define DARKRED_16 0x8800
#define DARKSALMON_16 0xEC8F
#define DARKSEAGREEN_16 0x8DD1
#define DARKSLATEBLUE_16 0x49D1
#define DARKSLATEGRAY_16 0x2A49
#define DARKTURQUOISE_16 0x065A
#define DARKVIOLET_16 0x901A
#define DEEPPINK_16 0xF892
#define DEEPSKYBLUE_16 0x05DF
#define DIMGRAY_16 0x6B4D
#define DODGERBLUE_16 0x1C9F
#define FELDSPAR_16 0xD48E
#define FIREBRICK_16 0xB104
#define FLORALWHITE_16 0xFFDE
#define FORESTGREEN_16 0x2444
#define FUCHSIA_16 0xF81F
#define GAINSBORO_16 0xDEDB
#define GHOSTWHITE_16 0xFFDF
#define GOLD_16 0xFE80
#define GOLDENROD_16 0xDD04
#define GRAY_16 0x8410
#define GRAY25_16 0x4208
#define GRAY50_16 0x7BCF
#define GRAY75_16 0xC618
#define GREEN_16 0x0400
#define GREENYELLOW_16 0xAFC5
#define HONEYDEW_16 0xF7DE
#define HOTPINK_16 0xFB56
#define INDIANRED_16 0xCACB
#define INDIGO_16 0x4810
#define IVORY_16 0xFFDE
#define KHAKI_16 0xF711
#define LAVENDER_16 0xE71F
#define LAVENDERBLUSH_16 0xFF9E
#define LAWNGREEN_16 0x7FC0
#define LEMONCHIFFON_16 0xFFD9
#define LIGHTBLUE_16 0xAEDC
#define LIGHTCORAL_16 0xF410
#define LIGHTCYAN_16 0xE7DF
#define LIGHTGOLDENRODYELLOW_16 0xFFDA
#define LIGHTGREEN_16 0x9752
#define LIGHTGREY_16 0xD69A
#define LIGHTPINK_16 0xFD98
#define LIGHTSALMON_16 0xFD0F
#define LIGHTSEAGREEN_16 0x2595
#define LIGHTSKYBLUE_16 0x865F
#define LIGHTSLATEBLUE_16 0x839F
#define LIGHTSLATEGRAY_16 0x7453
#define LIGHTSTEELBLUE_16 0xB61B
#define LIGHTYELLOW_16 0xFFDC
#define LIME_16 0x07C0
#define LIMEGREEN_16 0x3646
#define LINEN_16 0xFF9C
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -