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 >
Wrap
Text File
|
1991-08-25
|
3KB
|
92 lines
#define WHITE 0
#define BLACK 0xffff
#define UWordScale 1 /* Zweierlogarithmus von sizeof(UWORD)
d.h. 0 fuer UWORD = unsigned char
1 fuer UWORD = unsigned short
falls short 16 bit
2 fuer UWORD = unsigned long
falls long 32 bit */
#define UWordBitSize ((UWord)((1<<(3+UWordScale))))
#define UWordmodMask ((UWord)((1<<(3+UWordScale))-1))
#define UWordFirstBitSet ((UWord)(1<<UWordmodMask))
#define UWordBitSet(x) (UWordFirstBitSet>>((x)&UWordmodMask))
#define ScreenLineLength 40 /* Anzahl der Worte pro Bildschirm-
zeile */
#define ScreenLineCount 384 /* Anzahl der Bildschirmzeilen */
#define ScreenColumnCount (ScreenLineLength * UWordBitSize)
#define ScreenAddress(x,y) (screenbaseaddress+\
((y)*ScreenLineLength+((x)>>(3+UWordScale))))
/* Berechnet einen Wortzeiger auf das
Wort, welches das Pixel (x,y) ent-
haelt. */
#define PReset(x,y)\
(*ScreenAddress(x,y)&=~(UWordFirstBitSet>>((x)&UWordmodMask)))
/* Setzen eines Pixels auf dem Schirm
(Farbe = weiß) */
#define PSet(x,y)\
(*ScreenAddress(x,y)|=UWordFirstBitSet>>((x)&UWordmodMask))
/* RueckSetzen eines Pixels auf dem
Schirm (Farbe = Schwarz) */
typedef unsigned short UWord;
typedef short Word;
typedef struct {
Word x1,y1,x2,y2;
unsigned Maske;
UWord Laenge;
} LineCallPaket;
typedef struct {
struct {
char ex, ey;
Word x, y;
} e[3];
Word mid_x, mid_y;
} koordinate_system;
typedef struct {
Word px, py;
} screen_point;
typedef struct {
float x, y, z;
} point;
extern koordinate_system koord_syst;
extern UWord *screenbaseaddress; /* Anfangsadresse des Bildschirms */
extern UWord *_screenbaseinit(); /* Initialisierungsroutine fuer die
Anfangsadresse */
extern _line( ); /* Zeichnet eine Linie von (x1,y1)
nach (x2,y2) */
extern UWord *get_screenbase(); /* Holt die Bildschirmbasisaddresse */
extern BitBltBlock( Quelle, Ziel, ZAMaske, ZEMaske,
Wortlaenge, Shiftcount, GXCode,
Quellversatz, Zielversatz, Zeilenzahl );
/*
register
UWORD *Quelle,
*Ziel;
UWORD ZAMaske,
ZEMaske,
Wortlaenge;
register
unsigned Shiftcount;
unsigned short GXCode;
int Quellversatz,
Zielversatz;
int Zeilenzahl;
*/
/* Transferiert Bitblock von Quelle
nach Ziel */