Patch for VOGLE 1.2 with SUN Fortran
Eric H. Echidna
echidna at eric.ecr.mu.oz.au
Sat Mar 16 08:44:00 AEST 1991
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:
More information about the Comp.sys.sun
mailing list