/***********************************************************
* Artsoft Retro-Game Library *
*----------------------------------------------------------*
-* (c) 1994-2000 Artsoft Entertainment *
+* (c) 1994-2002 Artsoft Entertainment *
* Holger Schemel *
* Detmolder Strasse 189 *
* 33604 Bielefeld *
#define TARGET_STRING "X11"
#endif
+#if defined(PLATFORM_UNIX)
+/* This triggers some stuff that is needed because X11 (XSetClipOrigin(),
+ to be precise) is often very slow when preparing a masked XCopyArea()
+ for big Pixmaps.
+ To prevent this, small (tile-sized) mask Pixmaps are created which will
+ then be set much faster with XSetClipOrigin() and speed things up a lot. */
+#define TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND
+#endif
+
#define FULLSCREEN_STATUS FULLSCREEN_NOT_AVAILABLE
/* X11 type definitions */
-typedef struct X11DrawableInfo *Bitmap;
-typedef struct X11DrawableInfo *DrawWindow;
-typedef struct X11DrawableInfo *DrawBuffer;
+typedef struct X11DrawableInfo Bitmap;
+typedef struct X11DrawableInfo DrawWindow;
+typedef struct X11DrawableInfo DrawBuffer;
+/* "Pixel" is already defined in X11/Intrinsic.h */
typedef KeySym Key;
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 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 X11InitVideoDisplay(void);
-inline void X11InitVideoBuffer(DrawBuffer *, DrawWindow *);
+inline void X11InitVideoBuffer(DrawBuffer **, DrawWindow **);
+
+void X11ZoomBitmap(Bitmap *, Bitmap *);
+
+Bitmap *X11LoadImage(char *);
#endif /* X11_H */