“GPGS: a device-independent general purpose graphic system for stand-alone and satellite graphics” by Caruthers, Van den Bos and van Dam

  • ©L. C. Caruthers, Jan Van den Bos, and Andries (Andy) van Dam




    GPGS: a device-independent general purpose graphic system for stand-alone and satellite graphics



    GPGS is a subroutine package offering powerful and versatile support for passive and interactive vector graphics, for time-sharing, batch, and stand-alone minicomputer systems. The package is computer, language, and operating system, as well as display device independent. Its key purpose is to allow for transportabiliit of programs and programmers by providing easy to learn, high level features. The applications programmer writes his program once and then executes it on any supported graphics equipment without recompiling or relinking it. Device-independence was implemented by dividing GPGS into a device-independent part invoked by the applications programmer, and internal, “device drivers”, one per display device. Like the GSPC “Core System” whose design it influenced, GPGS is a general purpose package. It has a subset of graphics facilities to handle output of line and character primitives with attributes such as line style and character size, and input from interaction tools such as lightpens, keyboards, valuators, and function keys. It also supports 2D and 3D viewin transformationss for clipping and window to viewport mapping, and coordinate transformations.Unlike the GSPC Core System, GPGS also includes a set of basic features for modelling objects which allows definition of device independent masters called seudo picture segment. These are distinguished from normal, device (DPU) dependent pictur segments into which primitives and their attribute-value settings are ordinarily compiled. These masters may be instanced subject to affine transformations (translate, rotate, and scale) to create a typical master-instance hierarchy. The hierarchy may be stored in a disk based library or compiled into a normal picture segment for output to a display device.The images of objects stored in device dependent picture segments may be transformed on the display surface by v port (image) transformations. These typically allow use of hardware transformation capabilities for dragging or tumbling object images.Host/satellite graphics is accommodated by having the device independent part of GPGS in the host and splitting the device drivers across host and satellite. At the source code level it therefore makes no difference on which.configuration a program will be executed.Among the existing implementations are versions written in assembler for the IB 360/370 and the PDP 11, in both stand-alone and satellite mode, and under a variety of operating systems. They support plotters, storage tubes, and high performance refresh displays. FORTRAN based implementations exist for the Univac 1108, the PDP 10, and a Harris minicomputer.


    1. IBM – Graphics Subroutine Package (GSP) for FORTRAN IV, COBOL, and PL/I; form GC27-6932.
    2. Woodsford, P. A., The Design and Implementation of the GINO 3-D Graphics Software Package, Software – Practice and Experience, Vol. 1 (October 1971), p. 335.
    3. Caruthers, L. C., and van Dam, A., GPGS User’s Tutorial, Informatica, Faculty of Science, University of Nijmegen, The Netherlands, October 1975.
    4. Groot, D., Hermans, E., Caruthers, L. C., and Schwartz, J., GPGS Reference Manual, Rekencentrum, T. H. Delft and Informatica, Faculty of Science, University of Nijmegen, The Netherlands, May 1977.
    5. SIGGRAPH GSPC, First Report on Graphics Standards, Proceedings of SIGGRAPH 77, San Jose, July 1977.
    6. Skaland, M., Zachrisen, M., High-Level Graph-Plotting Routines for GPGS-F, Preliminary Specifications, RUNIT Report, University of Trondheim, Norway, 1976.
    7. Wallace, V. L., The Semantics of Graphic Input Devices, Proceedings ACM Symposium on Graphic Languages, 26-27 April 1976, Miami Beach, Florida, pp. 61-65.
    8. Foley, J. D., Picture Naming and Modification: An Overview, Proceedings ACM Symposium on Graphics Languages, 26-27 April 1976, Miami Beach, Florida, pp. 49-53.
    9. GPGS-F User’s Guide, RUNIT Computer Centre, University of Trondheim, Norway, September, 1975.

ACM Digital Library Publication: