SVGACC.H
上传用户:kammenn
上传日期:2007-06-26
资源大小:210k
文件大小:10k
源码类别:

GDI/图象编程

开发平台:

C/C++

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