X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fbumps.c;h=28c58aacd5089dd6d43f010a9efea471350a132c;hp=be4c95b9755cec0b2c8d0c5d398df3a780f87a0c;hb=40eacb5812ef7c0e3374fb139afbb4f5bc8bbfb5;hpb=2c902d6065f9856adf31e8540a94f1e42e68e905 diff --git a/hacks/bumps.c b/hacks/bumps.c index be4c95b9..28c58aac 100644 --- a/hacks/bumps.c +++ b/hacks/bumps.c @@ -306,10 +306,17 @@ void InitBumpMap( SBumps *pBumps, XWindowAttributes *pXWinAttribs ) uint16_ maxHeight; double softenMultiplier = 1.0f; BOOL bInvert = (BOOL)get_boolean_resource( "invert", "Boolean" ); + Pixmap p; aColors = (XColor*)malloc( pBumps->iWinWidth * sizeof(XColor) ); - grab_screen_image( pXWinAttribs->screen, pBumps->Win ); - pScreenImage = XGetImage( pBumps->pDisplay, pBumps->Win, 0, 0, pBumps->iWinWidth, pBumps->iWinHeight, ~0L, ZPixmap ); + + p = XCreatePixmap(pBumps->pDisplay, pBumps->Win, + pXWinAttribs->width, pXWinAttribs->height, + pXWinAttribs->depth); + load_random_image (pXWinAttribs->screen, pBumps->Win, p); + + pScreenImage = XGetImage( pBumps->pDisplay, p, 0, 0, pBumps->iWinWidth, pBumps->iWinHeight, ~0L, ZPixmap ); + XFreePixmap (pBumps->pDisplay, p); /* jwz: get the grabbed bits off the screen fast */ XClearWindow (pBumps->pDisplay, pBumps->Win);