Draw_Fill_Rectangleを追加。
@@ -30,3 +30,15 @@ | ||
30 | 30 | } |
31 | 31 | return; |
32 | 32 | } |
33 | + | |
34 | +void Draw_Fill_Rectangle_16(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1) | |
35 | +{ | |
36 | + uint x, y; | |
37 | + c = RGB_32_To_16(c); | |
38 | + for(y = y0; y <= y1; y++){ | |
39 | + for(x = x0; x <= x1; x++){ | |
40 | + ((ushort *)vram)[y * xsize + x] = (ushort)c; | |
41 | + } | |
42 | + } | |
43 | + return; | |
44 | +} |
@@ -30,3 +30,16 @@ | ||
30 | 30 | } |
31 | 31 | return; |
32 | 32 | } |
33 | + | |
34 | +void Draw_Fill_Rectangle_08(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1) | |
35 | +{ | |
36 | + uint x, y; | |
37 | + c = RGB_32_To_08(c); | |
38 | + for(y = y0; y <= y1; y++){ | |
39 | + for(x = x0; x <= x1; x++){ | |
40 | + ((uchar *)vram)[y * xsize + x] = (uchar)c; | |
41 | + } | |
42 | + } | |
43 | + return; | |
44 | +} | |
45 | + |
@@ -15,6 +15,7 @@ | ||
15 | 15 | Initialise_Graphic(vesa->BitsPerPixel); |
16 | 16 | IO_STI(); |
17 | 17 | |
18 | + Draw_Fill_Rectangle(vesa->PhysBasePtr, boot->scrnx, 0xc6c6c6, 0, 0, boot->scrnx, boot->scrny); | |
18 | 19 | Draw_Put_String(vesa->PhysBasePtr, boot->scrnx, 0, 0, 0xFFFFFF, "Welcome to CHNOSProject."); |
19 | 20 | |
20 | 21 | for (;;) { |
@@ -21,15 +21,19 @@ | ||
21 | 21 | }; |
22 | 22 | |
23 | 23 | void (*Draw_Put_String)(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s); |
24 | +void (*Draw_Fill_Rectangle)(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1); | |
24 | 25 | |
25 | 26 | void Initialise_Graphic(uint bpp) |
26 | 27 | { |
27 | 28 | if(bpp == 8){ |
28 | 29 | Draw_Put_String = Draw_Put_String_08; |
30 | + Draw_Fill_Rectangle = Draw_Fill_Rectangle_08; | |
29 | 31 | } else if(bpp == 16){ |
30 | 32 | Draw_Put_String = Draw_Put_String_16; |
33 | + Draw_Fill_Rectangle = Draw_Fill_Rectangle_16; | |
31 | 34 | } else if(bpp == 32){ |
32 | 35 | Draw_Put_String = Draw_Put_String_32; |
36 | + Draw_Fill_Rectangle = Draw_Fill_Rectangle_32; | |
33 | 37 | } |
34 | 38 | return; |
35 | 39 | } |
@@ -29,3 +29,15 @@ | ||
29 | 29 | } |
30 | 30 | return; |
31 | 31 | } |
32 | + | |
33 | +void Draw_Fill_Rectangle_32(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1) | |
34 | +{ | |
35 | + uint x, y; | |
36 | + for(y = y0; y <= y1; y++){ | |
37 | + for(x = x0; x <= x1; x++){ | |
38 | + ((uint *)vram)[y * xsize + x] = c; | |
39 | + } | |
40 | + } | |
41 | + return; | |
42 | +} | |
43 | + |
@@ -103,17 +103,21 @@ | ||
103 | 103 | /*grap_08.c*/ |
104 | 104 | void Draw_Put_Font_08(void *vram, uint xsize, uint x, uint y, uint c, const uchar *font); |
105 | 105 | void Draw_Put_String_08(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s); |
106 | +void Draw_Fill_Rectangle_08(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1); | |
106 | 107 | /*grap_16.c*/ |
107 | 108 | void Draw_Put_Font_16(void *vram, uint xsize, uint x, uint y, uint c, const uchar *font); |
108 | 109 | void Draw_Put_String_16(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s); |
110 | +void Draw_Fill_Rectangle_16(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1); | |
109 | 111 | /*grap_32.c*/ |
110 | 112 | void Draw_Put_Font_32(void *vram, uint xsize, uint x, uint y, uint c, const uchar *font); |
111 | 113 | void Draw_Put_String_32(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s); |
114 | +void Draw_Fill_Rectangle_32(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1); | |
112 | 115 | /*graphic.c*/ |
113 | 116 | void Initialise_Graphic(uint bpp); |
114 | 117 | uchar RGB_32_To_08(uint c32); |
115 | 118 | ushort RGB_32_To_16(uint c32); |
116 | 119 | extern void (*Draw_Put_String)(void *vram, uint xsize, uint x, uint y, uint c, const uchar *s); |
120 | +extern void (*Draw_Fill_Rectangle)(void *vram, uint xsize, uint c, uint x0, uint y0, uint x1, uint y1); | |
117 | 121 | |
118 | 122 | /*intrpt.c 割り込み設定とどこにも属さない割り込みハンドラー*/ |
119 | 123 | void Initialise_ProgrammableInterruptController(void); |