]> 4ch.mooo.com Git - 16.git/blob - 16/xw/modex.h
16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / 16 / xw / modex.h
1 /*\r
2     MODEX.H - C/C++ include file for the MODEX library\r
3     Copyright (c) 1994 Alessandro Scotti\r
4 */\r
5 \r
6 #ifndef _MODEX_H_               // Avoid nested inclusions\r
7 #define _MODEX_H_\r
8 \r
9 //\r
10 // Video modes\r
11 //\r
12 #define MX_TEXT     0           // 80x25 text\r
13 #define MX_320x175  1           // 320x175x256\r
14 #define MX_320x200  2           // 320x200x256, 4 pages, aspect 6:5\r
15 #define MX_320x240  3           // 320x240x256, 3 pages, aspect 1:1\r
16 #define MX_320x350  4           // 320x350x256\r
17 #define MX_320x400  5           // 320x400x256, 2 pages\r
18 #define MX_320x480  6           // 320x480x256, 1 page\r
19 #define MX_360x175  7           // 360x175x256\r
20 #define MX_360x200  8           // 360x200x256, 3 pages\r
21 #define MX_360x240  9           // 360x240x256, 2 pages\r
22 #define MX_360x350  10          // 360x350x256\r
23 #define MX_360x400  11          // 360x400x256, 1 page\r
24 #define MX_360x480  12          // 360x480x256, 1 page\r
25 #define MX_400x600  13          // 400x600x256, 1 page\r
26 \r
27 //\r
28 // Fade effects\r
29 //\r
30 #define MX_FADEIN   0\r
31 #define MX_FADEOUT  1\r
32 \r
33 //\r
34 // Raster ops\r
35 //\r
36 #define OP_SET      0           // No operator\r
37 #define OP_AND      1           // And\r
38 #define OP_OR       2           // Or\r
39 #define OP_XOR      3           // Xor\r
40 #define OP_TRANS    4           // Transparent\r
41 #define OP_ADD      5           // Additive\r
42 #define OP_MOVE     0           // Alias for OP_SET\r
43 \r
44 //\r
45 // Temporary definitions\r
46 //\r
47 #define MXBYTE      unsigned char\r
48 #define MXBOOL      short int\r
49 #define MXSINT      short int\r
50 #define MXUINT      unsigned short int\r
51 #define MXAPI       far pascal\r
52 #define MXPTR       void far *\r
53 \r
54 // Functions\r
55 \r
56 #ifdef __cplusplus                      // Avoid C++ name mangling\r
57 extern "C" {\r
58 #endif\r
59 \r
60 //\r
61 // Initialization\r
62 //\r
63 MXSINT  MXAPI mxInit( void );             // Returns 0 if successful\r
64 void    MXAPI mxTerm( void );\r
65 MXUINT  MXAPI mxGetVersion( void );\r
66 //\r
67 // Mode setting\r
68 //\r
69 void    MXAPI mxChangeMode( MXUINT mode );\r
70 void    MXAPI mxSetMode( MXUINT mode );\r
71 void    MXAPI mxGetAspect( MXUINT far *aspectx, MXUINT far *aspecty );\r
72 void    MXAPI mxGetScreenSize( MXUINT far *width, MXUINT far *height );\r
73 //\r
74 // Hardware support\r
75 //\r
76 void    MXAPI mxWriteMode( MXBYTE wm );\r
77 void    MXAPI mxSplitScreen( MXUINT line );\r
78 void    MXAPI mxStartAddress( MXUINT sa );\r
79 void    MXAPI mxStartLine( MXUINT sl );\r
80 void    MXAPI mxWaitDisplay( void );\r
81 void    MXAPI mxWaitRetrace( void );\r
82 void    MXAPI mxWritePlane( MXBYTE wp );\r
83 void    MXAPI mxReadPlane( MXBYTE rp );\r
84 void    MXAPI mxRowAddress( MXBYTE ra );\r
85 //\r
86 // Virtual screen\r
87 //\r
88 void    MXAPI mxGetVirtualScreen( MXUINT far *width, MXUINT far *height );\r
89 void    MXAPI mxSetVirtualScreen( MXUINT width, MXUINT height );\r
90 void    MXAPI mxPan( MXUINT x, MXUINT y );\r
91 //\r
92 // Clipping\r
93 //\r
94 MXBOOL  MXAPI mxGetClip( void );\r
95 MXBOOL  MXAPI mxGetClipRegion( MXSINT far *x, MXSINT far *y, MXSINT far *w, MXSINT far *h );\r
96 MXBOOL  MXAPI mxSetClip( MXBOOL );\r
97 void    MXAPI mxSetClipRegion( MXUINT x, MXUINT y, MXUINT width, MXUINT height );\r
98 //\r
99 // Graphics\r
100 //\r
101 void    MXAPI mxBitBlt( MXSINT sx, MXSINT sy, MXUINT width, MXUINT height, MXSINT dx, MXSINT dy );\r
102 void    MXAPI mxFillBox( MXSINT x, MXSINT y, MXUINT width, MXUINT height, MXUINT color, MXUINT op );\r
103 MXBYTE  MXAPI mxGetPixel( MXSINT x, MXSINT y );\r
104 void    MXAPI mxPutPixel( MXSINT x, MXSINT y, MXBYTE color );\r
105 void    MXAPI mxLine( MXSINT x1, MXSINT y1, MXSINT x2, MXSINT y2, MXUINT color, MXUINT op );\r
106 void    MXAPI mxGetImage( MXPTR img, MXSINT x, MXSINT y, MXUINT width, MXUINT height );\r
107 void    MXAPI mxPutImage( MXPTR img, MXSINT x, MXSINT y, MXUINT w, MXUINT h, MXUINT op );\r
108 void    MXAPI mxPutTile( MXPTR tile, MXSINT x, MXSINT y, MXUINT width, MXUINT height );\r
109 void    MXAPI mxTransPutTile( MXPTR tile, MXSINT x, MXSINT y, MXUINT w, MXUINT h );\r
110 void    MXAPI mxCircle( MXSINT x, MXSINT y, MXUINT radius, MXBYTE color );\r
111 void    MXAPI mxStretchImage( MXPTR img, MXSINT x, MXSINT y, MXUINT w, MXUINT h, MXUINT neww, MXUINT newh, MXUINT op );\r
112 //\r
113 // Palette\r
114 //\r
115 void    MXAPI mxColorToGray( MXPTR source, MXPTR dest, MXUINT count );\r
116 void    MXAPI mxGammaCorrect( MXPTR source, MXPTR dest, MXUINT count );\r
117 void    MXAPI mxGetColor( MXUINT index, MXSINT far *r, MXSINT far *g, MXSINT far *b );\r
118 void    MXAPI mxSetColor( MXUINT index, MXSINT red, MXSINT green, MXSINT blue );\r
119 void    MXAPI mxGetPalette( MXPTR palette, MXUINT index, MXUINT count );\r
120 void    MXAPI mxSetPalette( MXPTR palette, MXUINT index, MXUINT count );\r
121 void    MXAPI mxFadePalette( MXPTR, MXUINT, MXUINT, MXUINT, MXUINT, MXUINT, MXUINT );\r
122 void    MXAPI mxRotatePalette( MXPTR palette, MXUINT count, MXSINT step );\r
123 //\r
124 // Text\r
125 //\r
126 MXSINT  MXAPI mxSetFont( MXPTR font, MXUINT charwidth, MXUINT charheight );\r
127 void    MXAPI mxSetTextColor( MXUINT color, MXUINT op );\r
128 void    MXAPI mxGetTextStep( MXSINT far *deltax, MXSINT far *deltay );\r
129 void    MXAPI mxSetTextStep( MXSINT deltax, MXSINT deltay );\r
130 void    MXAPI mxOutChar( MXSINT x, MXSINT y, char c );\r
131 void    MXAPI mxOutText( MXSINT x, MXSINT y, char far *sz );\r
132 //\r
133 // Convex polygons\r
134 //\r
135 void    MXAPI mxFillPoly( MXUINT, MXPTR, MXPTR, MXUINT, MXUINT );\r
136 void    MXAPI mxGouraudPoly( MXUINT, MXPTR, MXPTR, MXPTR, MXUINT, MXUINT );\r
137 void    MXAPI mxTexturePoly( MXUINT, MXPTR, MXPTR, MXPTR, MXPTR, MXUINT, MXUINT );\r
138 \r
139 #ifdef __cplusplus\r
140 }\r
141 #endif\r
142 \r
143 //\r
144 // Remove temporary defines\r
145 //\r
146 #undef  MXBYTE\r
147 #undef  MXBOOL\r
148 #undef  MXSINT\r
149 #undef  MXUINT\r
150 #undef  MXPTR\r
151 #undef  MXAPI\r
152 \r
153 #endif  // _MODEX_H_\r