X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fx11.h;h=3db9bae3aac2427a7329a46eaf8535e1a1341ef6;hb=ff2510f5098b545a03965c6b95296eec6885a4fb;hp=76c34d8a2a5c3ef64ff86283ddc8c022bcd08fff;hpb=fe158e864d3fa4b0221e9c88d8dfff0157051396;p=rocksndiamonds.git diff --git a/src/libgame/x11.h b/src/libgame/x11.h index 76c34d8a..3db9bae3 100644 --- a/src/libgame/x11.h +++ b/src/libgame/x11.h @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2001 Artsoft Entertainment * +* (c) 1994-2002 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -34,6 +34,15 @@ #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 @@ -60,6 +69,8 @@ typedef XClientMessageEvent ClientMessageEvent; struct X11DrawableInfo { char *source_filename; + + int width, height; Drawable drawable; Drawable clip_mask; GC gc; /* GC for normal drawing (inheritated from 'window') */ @@ -284,11 +295,18 @@ struct XY #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 **); + +void X11ZoomBitmap(Bitmap *, Bitmap *); + Bitmap *X11LoadImage(char *); #endif /* X11_H */