X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fx11.c;h=6c2942d1f00b5128fdd447aa33a470cf2d2e6577;hb=14089dac2cbe56e563863e1e5adb8847944fd262;hp=cfa0ce78857abc3ee46afc846e42bd63b201cf45;hpb=dfe0a71a9939e0c55bb54dcc92db1749e8e21747;p=rocksndiamonds.git diff --git a/src/libgame/x11.c b/src/libgame/x11.c index cfa0ce78..6c2942d1 100644 --- a/src/libgame/x11.c +++ b/src/libgame/x11.c @@ -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 * @@ -234,12 +234,19 @@ static DrawWindow *X11InitWindow() static void SetImageDimensions(Bitmap *bitmap) { +#if defined(TARGET_ALLEGRO) + BITMAP *allegro_bitmap = (BITMAP *)(bitmap->drawable); + + bitmap->width = allegro_bitmap->w; + bitmap->height = allegro_bitmap->h; +#else Window root; int x, y; unsigned int border_width, depth; XGetGeometry(display, bitmap->drawable, &root, &x, &y, &bitmap->width, &bitmap->height, &border_width, &depth); +#endif } Bitmap *X11LoadImage(char *filename) @@ -247,10 +254,8 @@ Bitmap *X11LoadImage(char *filename) Bitmap *new_bitmap = CreateBitmapStruct(); char *error = "Read_PCX_to_Pixmap(): %s '%s'"; int pcx_err; - -#if defined(PLATFORM_MSDOS) - rest(100); -#endif + XGCValues clip_gc_values; + unsigned long clip_gc_valuemask; pcx_err = Read_PCX_to_Pixmap(display, window->drawable, window->gc, filename, &new_bitmap->drawable, &new_bitmap->clip_mask); @@ -293,6 +298,12 @@ Bitmap *X11LoadImage(char *filename) return NULL; } + clip_gc_values.graphics_exposures = False; + clip_gc_values.clip_mask = new_bitmap->clip_mask; + clip_gc_valuemask = GCGraphicsExposures | GCClipMask; + new_bitmap->stored_clip_gc = XCreateGC(display, window->drawable, + clip_gc_valuemask, &clip_gc_values); + /* set GraphicContext inheritated from Window */ new_bitmap->gc = window->gc;