From http://www.jwz.org/xscreensaver/xscreensaver-5.37.tar.gz
[xscreensaver] / hacks / glx / glschool.c
index 1ef4c130db171c0969c93526a194406e376de92f..c8f6e2c1490ae1160bfc5cbb3c9549457f9f3d54 100644 (file)
@@ -126,11 +126,12 @@ reshape_glschool(ModeInfo *mi, int width, int height)
 
        glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(sc->context));
        if (sc->school != (School *)0) {
-               setBBox(sc->school, -aspect*160, aspect*160, -130, 130, -450, -50.0);
+               glschool_setBBox(sc->school, -aspect*160, aspect*160, -130, 130, -450, -50.0);
                glDeleteLists(sc->bboxList, 1);
-                createBBoxList(&SCHOOL_BBOX(sc->school), &sc->bboxList, wire);
+                glschool_createBBoxList(&SCHOOL_BBOX(sc->school),
+                                        &sc->bboxList, wire);
        }
-       reshape(width, height);
+       glschool_reshape(width, height);
 }
 
 ENTRYPOINT void
@@ -141,13 +142,7 @@ init_glschool(ModeInfo *mi)
        Bool                                    wire = MI_IS_WIREFRAME(mi);
        glschool_configuration  *sc;
 
-       if (!scs) {
-               scs = (glschool_configuration *)calloc(MI_NUM_SCREENS(mi), sizeof(glschool_configuration));
-               if (!scs) {
-                       perror("init_glschool: ");
-                       exit(1);
-               }
-       }
+       MI_INIT (mi, scs, NULL);
        sc = &scs[MI_SCREEN(mi)];
 
        sc->drawGoal = DoDrawGoal;
@@ -156,13 +151,13 @@ init_glschool(ModeInfo *mi)
        sc->nColors = 360;
        sc->context = init_GL(mi);
        sc->colors = (XColor *)calloc(sc->nColors, sizeof(XColor));
-       make_color_ramp(0, 0,
+       make_color_ramp(0, 0, 0,
                                        0.0, 1.0, 1.0,
                                        359.0, 1.0, 1.0,
                                        sc->colors, &sc->nColors,
                                        False, 0, False);
 
-       sc->school = initSchool(NFish, AccLimit, MaxVel, MinVel, DistExp, Momentum,
+       sc->school = glschool_initSchool(NFish, AccLimit, MaxVel, MinVel, DistExp, Momentum,
                                                        MinRadius, AvoidFact, MatchFact, CenterFact, TargetFact,
                                                        DistComp);
        if (sc->school == (School *)0) {
@@ -172,11 +167,12 @@ init_glschool(ModeInfo *mi)
 
        reshape_glschool(mi, width, height);
 
-       initGLEnv(DoFog);
-       initFishes(sc->school);
-       createDrawLists(&SCHOOL_BBOX(sc->school), &sc->bboxList, &sc->goalList, &sc->fishList,
-                        &sc->fish_polys, &sc->box_polys, wire);
-       computeAccelerations(sc->school);
+       glschool_initGLEnv(DoFog);
+       glschool_initFishes(sc->school);
+       glschool_createDrawLists(&SCHOOL_BBOX(sc->school), 
+                                 &sc->bboxList, &sc->goalList, &sc->fishList,
+                                 &sc->fish_polys, &sc->box_polys, wire);
+       glschool_computeAccelerations(sc->school);
 }
 
 ENTRYPOINT void
@@ -196,17 +192,19 @@ draw_glschool(ModeInfo *mi)
         mi->polygon_count = 0;
 
        if ((sc->goalCounter % GoalChgFreq) == 0)
-               newGoal(sc->school);
+               glschool_newGoal(sc->school);
        sc->goalCounter++;
 
        sc->rotCounter++;
        sc->rotCounter = (sc->rotCounter%360);
 
-       applyMovements(sc->school);
-       drawSchool(sc->colors, sc->school, sc->bboxList, sc->goalList, sc->fishList, sc->rotCounter, sc->drawGoal, sc->drawBBox, 
-                   sc->fish_polys, sc->box_polys,
-                   &mi->polygon_count);
-       computeAccelerations(sc->school);
+       glschool_applyMovements(sc->school);
+       glschool_drawSchool(sc->colors, sc->school, sc->bboxList, 
+                            sc->goalList, sc->fishList, sc->rotCounter, 
+                              sc->drawGoal, sc->drawBBox, 
+                            sc->fish_polys, sc->box_polys,
+                            &mi->polygon_count);
+       glschool_computeAccelerations(sc->school);
 
        if (mi->fps_p)
                do_fps(mi);