X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Ft3d.c;h=959d24aff5c6604738963b01bcaaf2b88eee6516;hb=HEAD;hp=08df87132a658590d7dcbb0e83174b3f624430c1;hpb=f8cf5ac7b2f53510f80a0eaf286a25298be17bfe;p=xscreensaver diff --git a/hacks/t3d.c b/hacks/t3d.c index 08df8713..a62c5546 100644 --- a/hacks/t3d.c +++ b/hacks/t3d.c @@ -13,10 +13,10 @@ of the command-line options provided by screenhack.c. */ -#ifndef HAVE_COCOA +#ifndef HAVE_JWXYZ # define FASTDRAW # define FASTCOPY -#endif /* !HAVE_COCOA */ +#endif /* !HAVE_JWXYZ */ #include #include @@ -325,7 +325,7 @@ initialize (struct state *st) st->planes=st->xgwa.depth; -#ifdef HAVE_COCOA +#ifdef HAVE_JWXYZ # define GXandInverted GXcopy /* #### this can't be right, right? */ #endif st->gc = XCreateGC (st->dpy, st->window, 0, xgc); @@ -372,6 +372,9 @@ initialize (struct state *st) printf("fast\t%i\nmarks\t%i\nwait\t%i\n",st->fastch,st->maxk,st->timewait); #endif + free (xgc); + free (xorgc); + free (xandgc); } static void fill_kugel(struct state *st, int i, Pixmap buf, int setcol); @@ -527,7 +530,10 @@ static void fill_kugel(struct state *st, int i, Pixmap buf, int setcol) { double ra; - int m,col,inc=1,inr=3,d; + int m,col,inr=3,d; +#ifdef USE_POLYGON + int inc=1; +#endif d=(int)((ABS(st->kugeln[i].r1)*2)); if (d==0) d=1; @@ -557,16 +563,23 @@ fill_kugel(struct state *st, int i, Pixmap buf, int setcol) #ifdef PRTDBX printf("Radius: %f\n",ra); #endif +#ifdef USE_POLYGON if(-ra< 3.0) inc=14; else if(-ra< 6.0) inc=8; else if(-ra<20.0) inc=4; else if(-ra<40.0) inc=2; +#endif if(setcol) { - if (m==27) col=33; + if (m==27) + col=33; else col=(int)(m); - if (col>33) col=33; col/=3; + + if (col>33) + col=33; + + col/=3; setink(st->colors[col].pixel); } @@ -926,6 +939,13 @@ t3d_event (Display *dpy, Window window, void *closure, XEvent *event) static void t3d_free (Display *dpy, Window window, void *closure) { + struct state *st = (struct state *) closure; + XFreeGC (dpy, st->gc); + XFreeGC (dpy, st->orgc); + XFreeGC (dpy, st->andgc); + XFreePixmap (dpy, st->buffer); + free (st->zeit); + free (st); }