home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / GRAPHICS / mgif.lzh / GIF / gpdefs.h < prev    next >
Text File  |  1991-08-25  |  3KB  |  92 lines

  1. #define WHITE 0
  2. #define BLACK 0xffff
  3.  
  4. #define UWordScale        1             /* Zweierlogarithmus von sizeof(UWORD)
  5.                                            d.h. 0 fuer UWORD = unsigned char
  6.                                                 1 fuer UWORD = unsigned short
  7.                                                   falls short 16 bit
  8.                                                 2 fuer UWORD = unsigned long
  9.                                                   falls long 32 bit */
  10.                                                   
  11. #define UWordBitSize     ((UWord)((1<<(3+UWordScale))))                   
  12. #define UWordmodMask     ((UWord)((1<<(3+UWordScale))-1))
  13. #define UWordFirstBitSet ((UWord)(1<<UWordmodMask))
  14. #define UWordBitSet(x)   (UWordFirstBitSet>>((x)&UWordmodMask))
  15.  
  16. #define ScreenLineLength 40             /* Anzahl der Worte pro Bildschirm-
  17.                                            zeile */
  18. #define ScreenLineCount 384             /* Anzahl der Bildschirmzeilen */
  19. #define ScreenColumnCount (ScreenLineLength * UWordBitSize)
  20.  
  21. #define ScreenAddress(x,y) (screenbaseaddress+\
  22. ((y)*ScreenLineLength+((x)>>(3+UWordScale))))
  23.                                         /* Berechnet einen Wortzeiger auf das
  24.                                            Wort, welches das Pixel (x,y) ent-
  25.                                            haelt. */
  26. #define PReset(x,y)\
  27.  (*ScreenAddress(x,y)&=~(UWordFirstBitSet>>((x)&UWordmodMask)))
  28.                                         /* Setzen eines Pixels auf dem Schirm
  29.                                            (Farbe = weiß) */
  30. #define PSet(x,y)\
  31.  (*ScreenAddress(x,y)|=UWordFirstBitSet>>((x)&UWordmodMask))
  32.                                         /* RueckSetzen eines Pixels auf dem
  33.                                            Schirm (Farbe = Schwarz) */
  34.                                            
  35. typedef unsigned short UWord;
  36. typedef short Word;
  37.  
  38. typedef struct {
  39.    Word x1,y1,x2,y2;
  40.    unsigned Maske;
  41.    UWord Laenge;
  42. } LineCallPaket;
  43.  
  44. typedef struct {
  45.     struct {
  46.         char ex, ey;
  47.         Word x, y;
  48.     } e[3];
  49.     Word mid_x, mid_y;
  50. } koordinate_system;
  51.  
  52. typedef struct {
  53.     Word px, py;
  54. } screen_point;
  55.  
  56. typedef struct {
  57.     float x, y, z;
  58. } point;
  59.  
  60. extern koordinate_system koord_syst;
  61.  
  62.  
  63. extern UWord *screenbaseaddress;        /* Anfangsadresse des Bildschirms */
  64.  
  65. extern UWord *_screenbaseinit();        /* Initialisierungsroutine fuer die
  66.                                            Anfangsadresse */
  67.  
  68. extern _line(                );         /* Zeichnet eine Linie von (x1,y1)
  69.                                            nach (x2,y2) */
  70.  
  71. extern UWord *get_screenbase();         /* Holt die Bildschirmbasisaddresse */
  72. extern BitBltBlock( Quelle, Ziel, ZAMaske, ZEMaske,
  73.                     Wortlaenge, Shiftcount, GXCode,
  74.                     Quellversatz, Zielversatz, Zeilenzahl );
  75. /*
  76. register
  77. UWORD *Quelle,
  78.       *Ziel;
  79. UWORD ZAMaske,
  80.       ZEMaske,
  81.       Wortlaenge;
  82. register
  83. unsigned Shiftcount;
  84. unsigned short GXCode;
  85. int Quellversatz,
  86.     Zielversatz;
  87. int Zeilenzahl;
  88. */                     
  89.                                         /* Transferiert Bitblock von Quelle
  90.                                            nach Ziel */
  91.  
  92.