Rev 3386 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3386 | Rev 4153 | ||
---|---|---|---|
Line 54... | Line 54... | ||
54 | uint16_t vesa_width; |
54 | uint16_t vesa_width; |
55 | uint16_t vesa_height; |
55 | uint16_t vesa_height; |
56 | uint16_t vesa_bpp; |
56 | uint16_t vesa_bpp; |
57 | uint16_t vesa_scanline; |
57 | uint16_t vesa_scanline; |
58 | 58 | ||
- | 59 | uint8_t vesa_red_mask; |
|
- | 60 | uint8_t vesa_red_pos; |
|
- | 61 | ||
- | 62 | uint8_t vesa_green_mask; |
|
- | 63 | uint8_t vesa_green_pos; |
|
- | 64 | ||
- | 65 | uint8_t vesa_blue_mask; |
|
- | 66 | uint8_t vesa_blue_pos; |
|
- | 67 | ||
59 | int vesa_present(void) |
68 | int vesa_present(void) |
60 | { |
69 | { |
61 | if (vesa_width != 0xffff) |
- | |
62 | return true; |
- | |
63 | if (vesa_height != 0xffff) |
70 | if ((vesa_width != 0xffff) && (vesa_height != 0xffff)) |
64 | return true; |
71 | return true; |
- | 72 | ||
65 | return false; |
73 | return false; |
66 | } |
74 | } |
67 | 75 | ||
68 | void vesa_init(void) |
76 | void vesa_init(void) |
69 | { |
77 | { |
Line 72... | Line 80... | ||
72 | switch (vesa_bpp) { |
80 | switch (vesa_bpp) { |
73 | case 8: |
81 | case 8: |
74 | visual = VISUAL_INDIRECT_8; |
82 | visual = VISUAL_INDIRECT_8; |
75 | break; |
83 | break; |
76 | case 16: |
84 | case 16: |
- | 85 | if ((vesa_red_mask == 5) && (vesa_red_pos == 10) |
|
- | 86 | && (vesa_green_mask == 5) && (vesa_green_pos == 5) |
|
- | 87 | && (vesa_blue_mask == 5) && (vesa_blue_pos == 0)) |
|
- | 88 | visual = VISUAL_RGB_5_5_5; |
|
- | 89 | else |
|
77 | visual = VISUAL_RGB_5_6_5; |
90 | visual = VISUAL_RGB_5_6_5; |
78 | break; |
91 | break; |
79 | case 24: |
92 | case 24: |
80 | visual = VISUAL_RGB_8_8_8; |
93 | visual = VISUAL_RGB_8_8_8; |
81 | break; |
94 | break; |
82 | case 32: |
95 | case 32: |
83 | visual = VISUAL_RGB_0_8_8_8; |
96 | visual = VISUAL_RGB_0_8_8_8; |
84 | break; |
97 | break; |
85 | default: |
98 | default: |
86 | panic("Unsupported bits per pixel"); |
99 | panic("Unsupported bits per pixel."); |
87 | } |
100 | } |
88 | 101 | ||
89 | fb_init(vesa_ph_addr, vesa_width, vesa_height, vesa_scanline, visual); |
102 | fb_properties_t vesa_props = { |
- | 103 | .addr = vesa_ph_addr, |
|
- | 104 | .offset = 0, |
|
- | 105 | .x = vesa_width, |
|
- | 106 | .y = vesa_height, |
|
- | 107 | .scan = vesa_scanline, |
|
- | 108 | .visual = visual, |
|
- | 109 | }; |
|
- | 110 | fb_init(&vesa_props); |
|
- | 111 | } |
|
- | 112 | ||
- | 113 | void vesa_redraw(void) |
|
- | 114 | { |
|
- | 115 | fb_redraw(); |
|
90 | } |
116 | } |
91 | 117 | ||
92 | #endif |
118 | #endif |
93 | 119 | ||
94 | /** @} |
120 | /** @} |