rnd-20040821-3-src
[rocksndiamonds.git] / src / game_em / init.c
index cc2f6534e3b27719e2ebdf06a55951e62f7420ed..9011788e1f7f3732523580003703f43fd2d51c94 100644 (file)
@@ -439,6 +439,20 @@ int open_all(void)
 
          pcxBitmapsX2[i]->clip_mask = clip_mask;
 
+         /* add clip mask GC */
+         {
+           XGCValues clip_gc_values;
+           unsigned long clip_gc_valuemask;
+
+           clip_gc_values.graphics_exposures = False;
+           clip_gc_values.clip_mask = pcxBitmapsX2[i]->clip_mask;
+           clip_gc_valuemask = GCGraphicsExposures | GCClipMask;
+           pcxBitmapsX2[i]->stored_clip_gc = XCreateGC(display,
+                                                       window->drawable,
+                                                       clip_gc_valuemask,
+                                                       &clip_gc_values);
+         }
+
 #if 0
          printf("::: %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
                 pcxBitmaps[i]->gc,
@@ -491,6 +505,11 @@ int open_all(void)
                return(1);
        }
 
+#if 1
+       screenBitmap->drawable = screenPixmap;
+       scoreBitmap->drawable = scorePixmap;
+#endif
+
        spriteBitmap = XCreatePixmap(display, xwindow, TILEX, TILEY, 1);
        if(spriteBitmap == 0) {
                fprintf(stderr, "%s: \"%s\": %s: %s\n", progname, XDisplayName(arg_display), "failed to create pixmap", strerror(errno));
@@ -948,7 +967,9 @@ void close_all(void)
        if(privateColourmap) XFreeColormap(display, privateColourmap);
        if(privateColours) free(privateColours);
        if(privateFlags) free(privateFlags);
+#if 0
        if(display) XCloseDisplay(display);
+#endif
 }
 
 /* ---------------------------------------------------------------------- */