rnd-20020803-1-src
[rocksndiamonds.git] / src / libgame / x11.h
index ca1247c50bc0a2c1459ae6eba6b1186d6e0b96a6..c42f25cc54fe4d896277a192c5348b01351e2d2f 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-2002 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
@@ -265,9 +286,15 @@ typedef XClientMessageEvent        ClientMessageEvent;
 #define KSYM_F23               XK_F23
 #define KSYM_F24               XK_F24
 
+#define KSYM_FKEY_FIRST                KSYM_F1
+#define KSYM_FKEY_LAST         KSYM_F24
+#define KSYM_NUM_FKEYS         (KSYM_FKEY_LAST - KSYM_FKEY_FIRST + 1)
+
 
 /* X11 function definitions */
 
-inline void X11InitBufferedDisplay(DrawBuffer *, DrawWindow *);
+inline void X11InitVideoDisplay(void);
+inline void X11InitVideoBuffer(DrawBuffer **, DrawWindow **);
+Bitmap *X11LoadImage(char *);
 
 #endif /* X11_H */