void KScienceSaver::initLens() { int min = (width() < height()) ? width() : height(); border = 1 + SCI_MAX_MOVE; radius = (size[mode] * min) / 100; if( radius<<1 == min ) radius--; diam = radius << 1; myAssert( diam < min, "assertion violated: diam < min" ); origin = radius + border; side = origin << 1; d->buffer = XSubImage( d->xRootWin, 0, 0, side, side ); myAssert( d->buffer != 0, "can't allocate pixmap" ); d->offset = (T32bit **) malloc( sizeof(T32bit *) * side ); myAssert( d->offset != 0, "too few memory" ); switch( mode ) { case MODE_WHIRL: initWhirlLens(); break; case MODE_SPHERE: initSphereLens(); break; case MODE_EXPONENTIAL: case MODE_CONTRACTION: initExponentialLens(); break; case MODE_CURVATURE: initCurvatureLens(); break; case MODE_WAVE: initWaveLens(); break; default: myAssert( false, "internal error (wrong mode in initLens() )" ); } }
XSetForeground(XtDisplay(new), new_sw->scale.gc, new_sw->scale.foreground_pixel); } if (streq(XtNimage, args[i].name)) { XDestroyImage(cur_sw->scale.image); if (new_sw->scale.image == NULL) new_sw->scale.image = XCreateImage(XtDisplay(new), DefaultVisual(XtDisplay(new), DefaultScreen(XtDisplay(new))), 1, XYBitmap, 0, XtCalloc(1, sizeof(char)), 1, 1, 8, 0); else new_sw->scale.image = XSubImage(new_sw->scale.image, 0, 0, new_sw->scale.image->width, new_sw->scale.image->height); if (new_sw->scale.resize) TryResize(new_sw); if (new_sw->scale.autoscale) Autoscale(new_sw); else { GetScaledSize(new_sw); BuildTable(new_sw); } PositionImage(new_sw); redisplay = True; } if (streq(XtNuserData, args[i].name))