rnd-20020424-1-src
[rocksndiamonds.git] / src / libgame / x11.h
index 783deb3ebb5c10dfd458450b100260875cbfaa4c..3ccac7953c86d0da6350e4146bef303b3f03d511 100644 (file)
@@ -1,15 +1,14 @@
 /***********************************************************
-*  Rocks'n'Diamonds -- McDuffin Strikes Back!              *
+* Artsoft Retro-Game Library                               *
 *----------------------------------------------------------*
-*  ©1995 Artsoft Development                               *
-*        Holger Schemel                                    *
-*        33659 Bielefeld-Senne                             *
-*        Telefon: (0521) 493245                            *
-*        eMail: aeglos@valinor.owl.de                      *
-*               aeglos@uni-paderborn.de                    *
-*               q99492@pbhrzx.uni-paderborn.de             *
+* (c) 1994-2001 Artsoft Entertainment                      *
+*               Holger Schemel                             *
+*               Detmolder Strasse 189                      *
+*               33604 Bielefeld                            *
+*               Germany                                    *
+*               e-mail: info@artsoft.org                   *
 *----------------------------------------------------------*
-*  x11.h                                                   *
+* x11.h                                                    *
 ***********************************************************/
 
 #ifndef X11_H
 
 /* X11 type definitions */
 
-typedef Pixmap                 Bitmap;
-typedef Window                 DrawWindow;
-typedef Drawable               DrawBuffer;
+typedef struct X11DrawableInfo Bitmap;
+typedef struct X11DrawableInfo DrawWindow;
+typedef struct X11DrawableInfo DrawBuffer;
+/* "Pixel" is already defined in X11/Intrinsic.h */
 
 typedef KeySym                 Key;
 
@@ -55,6 +55,27 @@ typedef XFocusChangeEvent    FocusChangeEvent;
 typedef XClientMessageEvent    ClientMessageEvent;
 
 
+/* structure definitions */
+
+struct X11DrawableInfo
+{
+  char *source_filename;
+
+  int width, height;
+  Drawable drawable;
+  Drawable clip_mask;
+  GC gc;               /* GC for normal drawing (inheritated from 'window') */
+  GC line_gc[2];       /* GC for foreground and background line drawing     */
+  GC stored_clip_gc;   /* GC for masked drawing (used for whole Pixmap)     */
+  GC clip_gc;          /* can be 'stored_clip_gc' or one-tile-only clip GC  */
+};
+
+struct XY
+{
+  short x, y;
+};
+
+
 /* X11 symbol definitions */
 
 #define EVENT_BUTTONPRESS      ButtonPress
@@ -269,6 +290,7 @@ typedef XClientMessageEvent ClientMessageEvent;
 /* X11 function definitions */
 
 inline void X11InitVideoDisplay(void);
-inline void X11InitVideoBuffer(DrawBuffer *, DrawWindow *);
+inline void X11InitVideoBuffer(DrawBuffer **, DrawWindow **);
+Bitmap *X11LoadImage(char *);
 
 #endif /* X11_H */