GRDEF.H 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
  11. COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
  12. */
  13. extern int gr_modex_setmode(short mode);
  14. extern void gr_modex_setplane(short plane);
  15. extern void gr_modex_setstart(short x, short y, int wait_for_retrace);
  16. extern void gr_modex_uscanline( short x1, short x2, short y, unsigned char color );
  17. extern void gr_pal_setblock( int start, int n, unsigned char * palette );
  18. extern void gr_pal_getblock( int start, int n, unsigned char * palette );
  19. extern void gr_pal_setone( int index, unsigned char red, unsigned char green, unsigned char blue );
  20. extern int gr_vesa_setmodea(int mode);
  21. extern int gr_vesa_checkmode(int mode);
  22. extern void gr_vesa_setstart(short x, short y );
  23. extern void gr_vesa_setpage(int page);
  24. extern void gr_vesa_incpage();
  25. extern void gr_vesa_scanline(short x1, short x2, short y, unsigned char color );
  26. extern int gr_vesa_setlogical(int pixels_per_scanline);
  27. extern void gr_vesa_bitblt( unsigned char * source_ptr, unsigned int vesa_address, int height, int width );
  28. extern void gr_vesa_pixel( unsigned char color, unsigned int offset );
  29. void gr_linear_movsb( void * source, void * dest, unsigned short nbytes);
  30. void gr_linear_movsw( void * source, void * dest, unsigned short nbytes);
  31. void gr_linear_stosd( ubyte * source, unsigned char color, unsigned short nbytes);
  32. extern unsigned int gr_var_color;
  33. extern unsigned int gr_var_bwidth;
  34. extern unsigned char * gr_var_bitmap;
  35. void gr_linear_movsd( ubyte * source, ubyte * dest, int nbytes);
  36. #ifndef MACINTOSH
  37. #pragma aux gr_linear_movsd parm [esi] [edi] [ecx] modify exact [ecx esi edi eax ebx] = \
  38. " cld " \
  39. " mov ebx, ecx " \
  40. " mov eax, edi" \
  41. " and eax, 011b" \
  42. " jz d_aligned" \
  43. " mov ecx, 4" \
  44. " sub ecx, eax" \
  45. " sub ebx, ecx" \
  46. " rep movsb" \
  47. " d_aligned: " \
  48. " mov ecx, ebx" \
  49. " shr ecx, 2" \
  50. " rep movsd" \
  51. " mov ecx, ebx" \
  52. " and ecx, 11b" \
  53. " rep movsb";
  54. #endif // ifdef MACINTOSH
  55. void gr_linear_line( int x0, int y0, int x1, int y1);
  56. extern unsigned int Table8to32[256];
  57. extern unsigned char * gr_video_memory;
  58. #define WIDTH grd_curcanv->cv_bitmap.bm_w
  59. #define HEIGHT grd_curcanv->cv_bitmap.bm_h
  60. #define MINX 0
  61. #define MINY 0
  62. #define MAXX (WIDTH-1)
  63. #define MAXY (HEIGHT-1)
  64. #define TYPE grd_curcanv->cv_bitmap.bm_type
  65. #define DATA grd_curcanv->cv_bitmap.bm_data
  66. #define XOFFSET grd_curcanv->cv_bitmap.bm_x
  67. #define YOFFSET grd_curcanv->cv_bitmap.bm_y
  68. #define ROWSIZE grd_curcanv->cv_bitmap.bm_rowsize
  69. #define COLOR grd_curcanv->cv_color
  70. void order( int *x1, int *x2 );