convert line ends
[canaan.git] / prj / tech / libsrc / dev2d / mode.h
blobbca8cd7e2f0de8724d0c8b44399ae143d5cfa14e
1 // $Header: x:/prj/tech/libsrc/dev2d/RCS/mode.h 1.6 1997/11/21 11:56:32 KEVIN Exp $
3 #ifndef __MODE_H
4 #define __MODE_H
5 #include <grd.h>
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
10 #define GRM_FIRST_SVGA_MODE GRM_640x350x4
12 // Translate 'x' to 'X' from mode list in emode.h
14 enum {
15 GRM_320X200X8,
16 GRM_320X200X8X,
17 GRM_320X400X8,
18 GRM_320X240X8,
19 GRM_320X480X8,
21 GRM_640X350X4,
22 GRM_640X400X4,
23 GRM_640X480X4,
24 GRM_800X600X4,
25 GRM_1024X768X4,
26 GRM_1280X1024X4,
27 GRM_1600X1200X4,
29 GRM_320X200X8S,
30 GRM_320X240X8S,
31 GRM_320X400X8S,
32 GRM_360X200X8,
33 GRM_360X240X8,
34 GRM_360X400X8,
35 GRM_640X350X8,
36 GRM_640X400X8,
37 GRM_640X480X8,
38 GRM_800X600X8,
39 GRM_1024X768X8,
40 GRM_1280X1024X8,
41 GRM_1600X1200X8,
43 GRM_320X200X15,
44 GRM_320X240X15,
45 GRM_320X400X15,
46 GRM_360X200X15,
47 GRM_360X240X15,
48 GRM_360X400X15,
49 GRM_640X350X15,
50 GRM_640X400X15,
51 GRM_640X480X15,
52 GRM_800X600X15,
53 GRM_1024X768X15,
54 GRM_1280X1024X15,
55 GRM_1600X1200X15,
57 GRM_320X200X16,
58 GRM_320X240X16,
59 GRM_320X400X16,
60 GRM_360X200X16,
61 GRM_360X240X16,
62 GRM_360X400X16,
63 GRM_640X350X16,
64 GRM_640X400X16,
65 GRM_640X480X16,
66 GRM_800X600X16,
67 GRM_1024X768X16,
68 GRM_1280X1024X16,
69 GRM_1600X1200X16,
71 GRM_320X200X24,
72 GRM_320X240X24,
73 GRM_320X400X24,
74 GRM_360X200X24,
75 GRM_360X240X24,
76 GRM_360X400X24,
77 GRM_640X350X24,
78 GRM_640X400X24,
79 GRM_640X480X24,
80 GRM_800X600X24,
81 GRM_1024X768X24,
82 GRM_1280X1024X24,
83 GRM_1600X1200X24,
85 GRM_320X200X32,
86 GRM_320X240X32,
87 GRM_320X400X32,
88 GRM_360X200X32,
89 GRM_360X240X32,
90 GRM_360X400X32,
91 GRM_640X350X32,
92 GRM_640X400X32,
93 GRM_640X480X32,
94 GRM_800X600X32,
95 GRM_1024X768X32,
96 GRM_1280X1024X32,
97 GRM_1600X1200X32,
99 GRM_400X300X8,
100 GRM_512X384X8,
101 GRM_400X300X15,
102 GRM_512X384X15,
103 GRM_400X300X16,
104 GRM_512X384X16,
105 GRM_400X300X24,
106 GRM_512X384X24,
107 GRM_400X300X32,
108 GRM_512X384X32,
112 // Define the flags to send gr_set_mode. Done so that TRUE (=1) and
113 // FALSE (=0) still work as they used to.
115 #define MODE_CLEAR_BIT 1
116 #define MODE_LINEAR_BIT 2
118 #define NO_CLEAR_BANKED 0
119 #define CLEAR_BANKED 1
120 #define NO_CLEAR_LINEAR 2
121 #define CLEAR_LINEAR (MODE_CLEAR_BIT | MODE_LINEAR_BIT)
123 #ifdef _WIN32
124 #define MODE_WINDOWED 0x000000004
125 #define MODE_FULLSCREEN 0x000000008
126 #else
127 #define MODE_WINDOWED 0x000000000
128 #define MODE_FULLSCREEN 0x000000000
129 #endif
131 extern grs_mode_info grd_mode_info[];
132 extern int gr_set_mode (int mode, uint flags);
134 // Enumerated mode <--> Mode info conversions
135 #define gr_mode_info_from_mode(mode) (&grd_mode_info[(mode)])
136 extern int gr_mode_from_info(int w, int h, int bitDepth);
137 extern const char * gr_mode_name(int mode);
139 // Finds the first 2d mode with w,h, and bitdepth
140 // Note it doesn't care about flat, linear, banked, or anything else
141 // Hopefully the 2d is organized with flat first.
142 extern int gr_find_mode(int w, int h, int bitDepth);
144 // find mode from specified -1 terminated list
145 extern int gr_find_mode_list(int w, int h, int bitDepth, short *mode_list);
147 // Also checks for all the flag bits set
148 extern int gr_find_mode_flags(int w,int h,int bitDepth,uchar flags);
150 // find mode from specified -1 terminated list
151 extern int gr_find_mode_flags_list(int w,int h,int bitDepth,uchar flags,short *mode_list);
153 #define gr_mode_linear(mode) (grd_mode_info[(mode)].flags & GRM_IS_LINEAR)
154 #define gr_mode_supported(mode) (grd_mode_info[(mode)].flags & GRM_IS_SUPPORTED)
155 #define gr_mode_flat(mode) (gr_mode_linear(mode)||(mode==GRM_320x200x8))
156 #define grd_bpp (grd_mode_info[grd_mode].bitDepth)
158 #ifdef __cplusplus
160 #endif
161 #endif /* !__MODE_H */