262 |
|
XMapWindow(ourdisplay, gwind); |
263 |
|
dev_input(); /* sets size and view angles */ |
264 |
|
if (!odInit(DisplayWidth(ourdisplay,ourscreen) * |
265 |
< |
DisplayHeight(ourdisplay,ourscreen) / 10)) |
265 |
> |
DisplayHeight(ourdisplay,ourscreen) / 4)) |
266 |
|
error(SYSTEM, "insufficient memory for value storage"); |
267 |
|
odev.name = id; |
268 |
|
odev.firstuse = 1; /* can't recycle samples */ |
363 |
|
if (gfn == NULL) { |
364 |
|
gmEndGeom(); |
365 |
|
gmEndPortal(); |
366 |
+ |
wipeclean(); /* new geometry, so redraw it */ |
367 |
|
return; |
368 |
|
} |
369 |
|
if (access(gfn, R_OK) == 0) |
464 |
|
gmDrawPortals(PORTRED, PORTGRN, PORTBLU, PORTALP); |
465 |
|
checkglerr("rendering base view"); |
466 |
|
} |
467 |
< |
if (mapped && viewsteady) { |
468 |
< |
if (isperspective) { /* first time after steady */ |
468 |
< |
#ifdef STEREO |
469 |
< |
pushright(); |
470 |
< |
popright(); |
471 |
< |
#endif |
467 |
> |
if (mapped && viewsteady) |
468 |
> |
if (isperspective > 0) { /* first time after steady */ |
469 |
|
if (ndrawn) |
470 |
|
xferdepth(); /* transfer and clear depth */ |
471 |
|
setglortho(); /* set orthographic view */ |
472 |
< |
} else { |
472 |
> |
} else if (!isperspective) { |
473 |
|
#ifdef STEREO |
474 |
|
pushright(); |
475 |
|
odUpdate(1); /* draw right eye */ |
477 |
|
#endif |
478 |
|
odUpdate(0); /* draw left eye */ |
479 |
|
} |
483 |
– |
} |
480 |
|
glFlush(); /* flush OpenGL */ |
481 |
|
rayqleft = RAYQLEN; |
482 |
|
/* flush X11 and return # pending */ |