echidna@eric.ecr.mu.oz.au (Eric H. Echidna) (03/16/91)
There was a slight bug introduced into VOGLE 1.2 affecting only those people using the SUN Fortran interface. The reason appears to be caused because SUN Fortran IO routines call a routine called _scale (it should be called something like __F77_scale). Of course, any usual graphics program written in C will have a routine called this (the _ usually gets prepended latter). The fix is to make sure that none of our VOGLE internal routines call scale. We had actually encountered this before but forgot about it. Here is the patch: *** src/objects.c Wed Feb 27 17:54:40 1991 --- ../objects.c Wed Feb 27 18:00:40 1991 *************** *** 484,509 **** t += 4; break; case SCALE: ! /* ! * Do the operations directly on the top matrix of ! * the stack to speed things up. ! */ ! ! vdevice.transmat->m[0][0] *= t[1].f; ! vdevice.transmat->m[0][1] *= t[1].f; ! vdevice.transmat->m[0][2] *= t[1].f; ! vdevice.transmat->m[0][3] *= t[1].f; ! ! vdevice.transmat->m[1][0] *= t[2].f; ! vdevice.transmat->m[1][1] *= t[2].f; ! vdevice.transmat->m[1][2] *= t[2].f; ! vdevice.transmat->m[1][3] *= t[2].f; ! ! vdevice.transmat->m[2][0] *= t[3].f; ! vdevice.transmat->m[2][1] *= t[3].f; ! vdevice.transmat->m[2][2] *= t[3].f; ! vdevice.transmat->m[2][3] *= t[3].f; ! t += 4; break; case ROTATE: --- 484,490 ---- t += 4; break; case SCALE: ! scale(t[1].f, t[2].f, t[3].f); t += 4; break; case ROTATE: