2 * $Source: x:/prj/tech/libsrc/dev2d/RCS/mode.c $
5 * $Date: 1996/11/18 12:38:24 $
7 * Mode information tables.
9 * This file is part of the 2d library.
16 grs_mode_info grd_mode_info
[GRD_MODES
] = {
17 { GRM_320x200x8
, 0x13, 320, 200, 8, 1, 0 },
18 { GRM_320x200x8X
, -1, 320, 200, 8, 1, 0 },
19 { GRM_320x400x8
, -1, 320, 400, 8, 1, 0 },
20 { GRM_320x240x8
, -1, 320, 240, 8, 1, 0 },
21 { GRM_320x480x8
, -1, 320, 480, 8, 1, 0 },
23 // Next come the variable vesa modes. We do not know in advance what
24 // the mode numbers are going to be.
26 { GRM_640x350x4
, 0x0, 640, 350, 4, 0, 0 },
27 { GRM_640x400x4
, 0x0, 640, 400, 4, 0, 0 },
28 { GRM_640x480x4
, 0x0, 640, 480, 4, 0, 0 },
29 { GRM_800x600x4
, 0x0, 800, 600, 4, 0, 0 },
30 { GRM_1024x768x4
, 0x0, 1024, 768, 4, 0, 0 },
31 { GRM_1280x1024x4
, 0x0, 1280, 1024, 4, 0, 0 },
32 { GRM_1600x1200x4
, 0x0, 1600, 1200, 4, 0, 0 },
34 { GRM_320x200x8S
, 0x0, 320, 200, 8, 1, 0 },
35 { GRM_320x240x8S
, 0x0, 320, 240, 8, 1, 0 },
36 { GRM_320x400x8S
, 0x0, 320, 400, 8, 1, 0 },
37 { GRM_360x200x8
, 0x0, 360, 200, 8, 1, 0 },
38 { GRM_360x240x8
, 0x0, 360, 240, 8, 1, 0 },
39 { GRM_360x400x8
, 0x0, 360, 400, 8, 1, 0 },
40 { GRM_640x350x8
, 0x0, 640, 350, 8, 1, 0 },
41 { GRM_640x400x8
, 0x0, 640, 400, 8, 1, 0 },
42 { GRM_640x480x8
, 0x0, 640, 480, 8, 1, 0 },
43 { GRM_800x600x8
, 0x0, 800, 600, 8, 1, 0 },
44 { GRM_1024x768x8
, 0x0, 1024, 768, 8, 1, 0 },
45 { GRM_1280x1024x8
, 0x0, 1280, 1024, 8, 1, 0 },
46 { GRM_1600x1200x8
, 0x0, 1600, 1200, 8, 1, 0 },
48 { GRM_320x200x15
, 0x0, 320, 200, 15, 1, 0 },
49 { GRM_320x240x15
, 0x0, 320, 240, 15, 1, 0 },
50 { GRM_320x400x15
, 0x0, 320, 400, 15, 1, 0 },
51 { GRM_360x200x15
, 0x0, 360, 200, 15, 1, 0 },
52 { GRM_360x240x15
, 0x0, 360, 240, 15, 1, 0 },
53 { GRM_360x400x15
, 0x0, 360, 400, 15, 1, 0 },
54 { GRM_640x350x15
, 0x0, 640, 350, 15, 1, 0 },
55 { GRM_640x400x15
, 0x0, 640, 400, 15, 1, 0 },
56 { GRM_640x480x15
, 0x0, 640, 480, 15, 1, 0 },
57 { GRM_800x600x15
, 0x0, 800, 600, 15, 1, 0 },
58 { GRM_1024x768x15
, 0x0, 1024, 768, 15, 1, 0 },
59 { GRM_1280x1024x15
, 0x0, 1280, 1024, 15, 1, 0 },
60 { GRM_1600x1200x15
, 0x0, 1600, 1200, 15, 1, 0 },
62 { GRM_320x200x16
, 0x0, 320, 200, 16, 1, 0 },
63 { GRM_320x240x16
, 0x0, 320, 240, 16, 1, 0 },
64 { GRM_320x400x16
, 0x0, 320, 400, 16, 1, 0 },
65 { GRM_360x200x16
, 0x0, 360, 200, 16, 1, 0 },
66 { GRM_360x240x16
, 0x0, 360, 240, 16, 1, 0 },
67 { GRM_360x400x16
, 0x0, 360, 400, 16, 1, 0 },
68 { GRM_640x350x16
, 0x0, 640, 350, 16, 1, 0 },
69 { GRM_640x400x16
, 0x0, 640, 400, 16, 1, 0 },
70 { GRM_640x480x16
, 0x0, 640, 480, 16, 1, 0 },
71 { GRM_800x600x16
, 0x0, 800, 600, 16, 1, 0 },
72 { GRM_1024x768x16
, 0x0, 1024, 768, 16, 1, 0 },
73 { GRM_1280x1024x16
, 0x0, 1280, 1024, 16, 1, 0 },
74 { GRM_1600x1200x16
, 0x0, 1600, 1200, 16, 1, 0 },
76 { GRM_320x200x24
, 0x0, 320, 200, 24, 0, 0 },
77 { GRM_320x240x24
, 0x0, 320, 240, 24, 0, 0 },
78 { GRM_320x400x24
, 0x0, 320, 400, 24, 0, 0 },
79 { GRM_360x200x24
, 0x0, 360, 200, 24, 0, 0 },
80 { GRM_360x240x24
, 0x0, 360, 240, 24, 0, 0 },
81 { GRM_360x400x24
, 0x0, 360, 400, 24, 0, 0 },
82 { GRM_640x350x24
, 0x0, 640, 350, 24, 0, 0 },
83 { GRM_640x400x24
, 0x0, 640, 400, 24, 0, 0 },
84 { GRM_640x480x24
, 0x0, 640, 480, 24, 0, 0 },
85 { GRM_800x600x24
, 0x0, 800, 600, 24, 0, 0 },
86 { GRM_1024x768x24
, 0x0, 1024, 768, 24, 0, 0 },
87 { GRM_1280x1024x24
, 0x0, 1280, 1024, 24, 0, 0 },
88 { GRM_1600x1200x24
, 0x0, 1600, 1200, 24, 0, 0 },
90 { GRM_320x200x32
, 0x0, 320, 200, 32, 0, 0 },
91 { GRM_320x240x32
, 0x0, 320, 240, 32, 0, 0 },
92 { GRM_320x400x32
, 0x0, 320, 400, 32, 0, 0 },
93 { GRM_360x200x32
, 0x0, 360, 200, 32, 0, 0 },
94 { GRM_360x240x32
, 0x0, 360, 240, 32, 0, 0 },
95 { GRM_360x400x32
, 0x0, 360, 400, 32, 0, 0 },
96 { GRM_640x350x32
, 0x0, 640, 350, 32, 0, 0 },
97 { GRM_640x400x32
, 0x0, 640, 400, 32, 0, 0 },
98 { GRM_640x480x32
, 0x0, 640, 480, 32, 0, 0 },
99 { GRM_800x600x32
, 0x0, 800, 600, 32, 0, 0 },
100 { GRM_1024x768x32
, 0x0, 1024, 768, 32, 0, 0 },
101 { GRM_1280x1024x32
, 0x0, 1280, 1024, 32, 0, 0 },
102 { GRM_1600x1200x32
, 0x0, 1600, 1200, 32, 0, 0 },
104 { GRM_400x300x8
, 0x0, 400, 300, 8, 1, 0 },
105 { GRM_512x384x8
, 0x0, 512, 384, 8, 1, 0 },
106 { GRM_400x300x15
, 0x0, 400, 300, 15, 1, 0 },
107 { GRM_512x384x15
, 0x0, 512, 384, 15, 1, 0 },
108 { GRM_400x300x16
, 0x0, 400, 300, 16, 1, 0 },
109 { GRM_512x384x16
, 0x0, 512, 384, 16, 1, 0 },
110 { GRM_400x300x24
, 0x0, 400, 300, 24, 0, 0 },
111 { GRM_512x384x24
, 0x0, 512, 384, 24, 0, 0 },
112 { GRM_400x300x32
, 0x0, 400, 300, 32, 0, 0 },
113 { GRM_512x384x32
, 0x0, 512, 384, 32, 0, 0 },
116 const char * grd_mode_names
[GRD_MODES
] = {
207 // Finds the first 2d mode with w,h, and bitdepth. Differs
208 // from gr_find_mode() in that it doesn't care whether the
209 // mode is really supported by the current hardware
210 int gr_mode_from_info(int w
, int h
, int bitDepth
)
215 for (i
= 0, info
= grd_mode_info
; i
< GRD_MODES
; i
++, info
++) {
216 if (info
->w
==w
&& info
->h
==h
&& info
->bitDepth
==bitDepth
)
222 // Get a human-readable form of the mode name
223 const char * gr_mode_name(int mode
)
225 if (mode
< GRD_MODES
)
226 return grd_mode_names
[mode
];