home *** CD-ROM | disk | FTP | other *** search
/ Bila Vrana / BILA_VRANA.iso / 007A / SVGACC24.ZIP / SVGACC.H < prev    next >
C/C++ Source or Header  |  1996-01-30  |  11KB  |  290 lines

  1. /* SVGACC Include File for Microsoft compatible C/C++ compilers
  2.  * Copyright 1993-1996 by Stephen L. Balkum and Daniel A. Sill
  3.  * Zephyr Software P.O. Box 7704, Austin, Texas  78713-7704
  4.  * Last Update 1/1/95
  5.  */
  6.  
  7. #ifndef SVGACC_H
  8. #define SVGACC_H
  9.  
  10. typedef unsigned char byte;
  11.  
  12. typedef struct {
  13.     char r;
  14.     char g;
  15.     char b;
  16. } RGB;
  17.  
  18. typedef RGB PaletteData[256];
  19.  
  20. typedef struct {
  21.     byte hotspotx;
  22.     byte hotspoty;
  23.     byte data[384];
  24. } MouseCursor;
  25.  
  26. typedef struct {
  27.     byte width;
  28.     byte height;
  29.     byte data[4096];
  30. } Font;
  31.  
  32. typedef enum {
  33.     NO_ACTION = 0,
  34.     SET,
  35.     XOR,
  36.     OR,
  37.     AND
  38. } PixelMode;
  39.  
  40. typedef enum {
  41.     UNKNOWN = 0,
  42.     ACUMOS,
  43.     ATI,
  44.     AHEADA,
  45.     AHEADB,
  46.     CHIPSTECH,
  47.     CIRRUS,
  48.     EVEREX,
  49.     GENOA,
  50.     NCR,
  51.     OAKTECH,
  52.     PARADISE,
  53.     REALTEK,
  54.     TRIDENT,
  55.     TSENG3,
  56.     TSENG4,
  57.     VESA,
  58.     VIDEO7,
  59.     AVANCE,
  60.     MXIC,
  61.     PRIMUS
  62. } VGAChipset;
  63.  
  64. typedef struct {
  65.     unsigned int width;
  66.     unsigned int height;
  67.     byte data[1];
  68. } RasterBlock;
  69.  
  70. typedef struct {
  71.     int x;
  72.     int y;
  73. } D2Point;
  74.  
  75. typedef struct {
  76.     int x;
  77.     int y;
  78.     int z;
  79. } D3Point;
  80.  
  81. typedef struct {
  82.     int eyex;
  83.     int eyey;
  84.     int eyez;
  85.     int scrd;
  86.     int theta;
  87.     int phi;
  88. } ProjParameters;
  89.  
  90. #ifdef __cplusplus
  91. extern "C" {
  92. #endif
  93.  
  94. /* Global variables */
  95. extern const int far maxx;
  96. extern const int far maxy;
  97. extern const int far viewx1;
  98. extern const int far viewy1;
  99. extern const int far viewx2;
  100. extern const int far viewy2;
  101.  
  102. /* 'BLocK' methods to manipulate RasterBlocks on and off the screen */
  103.  
  104. extern int  far blkget (int x1, int y1, int x2, int y2, RasterBlock far *gfxblk);
  105. extern void far blkput (PixelMode mode, int x, int y, RasterBlock far *gfxblk);
  106. extern void far blkresize (unsigned newxsize, unsigned newysize, RasterBlock far *sourcegfxblk, RasterBlock far *destgfxblk);
  107. extern int  far blkrotate (int ang, int backfill, RasterBlock far *sourcegfxblk, RasterBlock far *destgfxblk);
  108. extern int  far blkrotatesize (int ang, RasterBlock far *sourcegfxblk);
  109.  
  110. /* 'BYTECOPY' method for fast memory copy */
  111.  
  112. extern void far bytecopy (void far *src, void far *dst, unsigned long numbytes);
  113.  
  114. /* '2D' methods to transform D2Points */
  115.  
  116. extern void far d2rotate (int points, int xorigin, int yorigin, int ang, D2Point far *inary, D2Point far *outary);
  117. extern void far d2scale (int points, int xscale, int yscale, D2Point far *inary, D2Point far *outary);
  118. extern void far d2translate (int points, int xtrans, int ytrans, D2Point far *inary, D2Point far *outary);
  119.  
  120. /* '3D' methods to transform D3Points */
  121.  
  122. extern int  far d3project (int points, ProjParameters far *params, D3Point far *inary, D2Point far *outary);
  123. extern void far d3rotate (int points, int xorigin, int yorigin, int zorigin, int zrang, int yrang, int xrang, D3Point far *inary, D3Point far *outary);
  124. extern void far d3scale (int points, int xscale, int yscale, int zscale, D3Point far *inary, D3Point far *outary);
  125. extern void far d3translate (int points, int xtrans, int ytrans, int ztrans, D3Point far *inary, D3Point far *outary);
  126.  
  127. /* 'DRaW' methods for placing text and graphics primitives on screen */
  128.  
  129. extern void far drwaline (int colrbits, int colr, int x1, int y1, int x2, int y2);
  130. extern void far drwbox (PixelMode mode, int colr, int x1, int y1, int x2, int y2);
  131. extern void far drwcirarc (PixelMode mode, int colr, int centerx, int centery, int radius, long startang, long endang);
  132. extern void far drwcircle (PixelMode mode, int colr, int centerx, int centery, int radius);
  133. extern void far drwcubicbezier (PixelMode mode, int colr, D2Point far *pon1, D2Point far *poff1, D2Point far *poff2, D2Point far *pon2);
  134. extern void far drwellarc (PixelMode mode, int colr, int centerx, int centery, int radiusx, int radiusy, long startang, long endang);
  135. extern void far drwellipse (PixelMode mode, int colr, int centerx, int centery, int radiusx, int radiusy);
  136. extern void far drwfillbox (PixelMode mode, int colr, int x1, int y1, int x2, int y2);
  137. extern void far drwfillcircle (PixelMode mode, int colr, int centerx, int centery, int radius);
  138. extern void far drwfillellipse (PixelMode mode, int colr, int centerx, int centery, int radiusx, int radiusy);
  139. extern void far drwline (PixelMode mode, int colr, int x1, int y1, int x2, int y2);
  140. extern void far drwpoint (PixelMode mode, int colr, int x, int y);
  141. extern void far drwstring (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y);
  142. extern void far drwstringdn (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y);
  143. extern void far drwstringlt (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y);
  144. extern void far drwstringrt (PixelMode mode, int fcolr, int bcolr, const char far *strng, int x, int y);
  145.  
  146. /* 'FILL' methods for filling various regions on screen with a color */
  147.  
  148. extern void far fillarea (int xseed, int yseed, int bordercolr, int fillcolr);
  149. extern void far fillconvexpoly (int colr, int points, D2Point far *inary);
  150. extern void far fillpoly (int colr, int points, D2Point far *inary);
  151. extern void far fillcolor (int xseed, int yseed, int oldcolr, int newcolr);
  152. extern void far fillpage (int colr);
  153. extern void far fillscreen (int colr);
  154. extern void far fillview (int colr);
  155.  
  156. /* 'FONT' methods for setting the current font */
  157.  
  158. extern void far fontgetinfo (int far *wdth, int far *hght);
  159. extern void far fontset (Font far *font);
  160. extern void far fontsystem (void);
  161.  
  162. /* 'GET' methods to return information held by library */
  163.  
  164. extern void far getlaststring (RasterBlock far *strnggfxblk);
  165. extern long far getarccos (long cosvalue);
  166. extern long far getarcsin (long sinvalue);
  167. extern long far getarctan (long tanvalue);
  168. extern long far getcos (long angle);
  169. extern int  far getpoint (int x, int y);
  170. extern long far getsin (long angle);
  171. extern long far gettan (long angle);
  172.  
  173. /* 'JOYSTICK' method to read joysticks' status */
  174.  
  175. extern void far joystickinfo (int far *jax, int far *jay, int far *jabuts, int far *jbx, int far *jby, int far *jbbuts);
  176.  
  177. /* 'MOUSE' methods to interact with mouse driver */
  178.  
  179. extern void far mousebutpress (int reqbut, int far *xloc, int far *yloc, int far *num, int far *mbuts);
  180. extern void far mousebutrelease (int reqbut, int far *xloc, int far *yloc, int far *num, int far *mbuts);
  181. extern void far mousecursordefault (void);
  182. extern void far mousecursorset (MouseCursor far *mousecursor);
  183. extern void far mouseenter (void);
  184. extern void far mouseexit (void);
  185. extern void far mousehide (void);
  186. extern void far mouseinfo (int far *drvmajorver, int far *drvminorver, int far *mousetype, int far *irqnumber);
  187. extern void far mouselocset (int xloc, int yloc);
  188. extern void far mouserangeset (int x1, int y1, int x2, int y2);
  189. extern void far mouserestorestate (byte far *mousebuf);
  190. extern void far mousesavestate (byte far *mousebuf);
  191. extern void far mousesensset (int xsens, int ysens, int dblspdthresh);
  192. extern void far mouseshow (void);
  193. extern void far mousestatus (int far *x, int far *y, int far *mbuts);
  194. extern int  far mousestoragesize (void);
  195.  
  196. extern void far overscanset (int colr);
  197.  
  198. /* 'PAGE' methods to control paging abilities */
  199.  
  200. extern int  far pageactive (int page);
  201. extern int  far pagedisplay (int x, int y, int page);
  202.  
  203. /* 'PALette' methods to manipulate and activate palettes */
  204.  
  205. extern void far palchgauto (RGB far *pal, RGB far *newpal, int firstcolr, int lastcolr, int speed);
  206. extern void far palchgstep (RGB far *pal, RGB far *newpal, int firstcolr, int lastcolr, int percent);
  207. extern void far palcopy (RGB far *srcpal, RGB far *destpal, int firstcolr, int lastcolr);
  208. extern void far paldimstep (RGB far *pal, int firstcolr, int lastcolr, int percent);
  209. extern void far palget (RGB far *pal, int firstcolr, int lastcolr);
  210. extern void far palioauto (RGB far *pal, int firstcolr, int lastcolr, int speed);
  211. extern void far palrotate (RGB far *pal, int firstcolr, int lastcolr, int shift);
  212. extern void far palset (RGB far *pal, int firstcolr, int lastcolr);
  213.  
  214. /* 'PCX' methods to read / write PCX