-}
-
-void
-init_sproingies(ModeInfo * mi)
-{
- Display *display = MI_DISPLAY(mi);
- Window window = MI_WINDOW(mi);
- int screen = MI_SCREEN(mi);
-
- int cycles = MI_CYCLES(mi);
- int batchcount = MI_BATCHCOUNT(mi);
- int size = MI_SIZE(mi);
-
- sproingiesstruct *sp;
- int wfmode = 0, grnd, mspr, w, h;
-
- if (sproingies == NULL) {
- if ((sproingies = (sproingiesstruct *) calloc(MI_NUM_SCREENS(mi),
- sizeof (sproingiesstruct))) == NULL)
- return;
- }
- sp = &sproingies[screen];
-
- sp->mono = (MI_WIN_IS_MONO(mi) ? 1 : 0);
-
- sp->glx_context = init_GL(mi);
-
- if ((cycles & 1) || MI_WIN_IS_WIREFRAME(mi) || sp->mono)
- wfmode = 1;
- grnd = (cycles >> 1);
- if (grnd > 2)
- grnd = 2;
-
- mspr = batchcount;
- if (mspr > 100)
- mspr = 100;
-
- /* wireframe, ground, maxsproingies */
- InitSproingies(wfmode, grnd, mspr, MI_SCREEN(mi), MI_NUM_SCREENS(mi), sp->mono);
-
- /* Viewport is specified size if size >= MINSIZE && size < screensize */
- if (size == 0) {
- w = MI_WIN_WIDTH(mi);
- h = MI_WIN_HEIGHT(mi);
- } else if (size < MINSIZE) {
- w = MINSIZE;
- h = MINSIZE;
- } else {
- w = (size > MI_WIN_WIDTH(mi)) ? MI_WIN_WIDTH(mi) : size;
- h = (size > MI_WIN_HEIGHT(mi)) ? MI_WIN_HEIGHT(mi) : size;
- }
-
- glViewport((MI_WIN_WIDTH(mi) - w) / 2, (MI_WIN_HEIGHT(mi) - h) / 2, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(65.0, (GLfloat) w / (GLfloat) h, 0.1, 2000.0); /* was 200000.0 */
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- swap_display = display;
- swap_window = window;
- DisplaySproingies(MI_SCREEN(mi));