From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 Jul 2015 20:46:52 -0400 Subject: Initial commit --- sys/gio/gim/gimgetmap.x | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sys/gio/gim/gimgetmap.x (limited to 'sys/gio/gim/gimgetmap.x') diff --git a/sys/gio/gim/gimgetmap.x b/sys/gio/gim/gimgetmap.x new file mode 100644 index 00000000..c58bae0d --- /dev/null +++ b/sys/gio/gim/gimgetmap.x @@ -0,0 +1,85 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include +include +include +include +include +include + +# GIM_GETMAPPING -- Get the parameters defining a mapping. The function value +# is YES if the mapping is defined and enabled and NO if the mapping is +# defined but not enabled. If the mapping is not defined ERR is returned. + +int procedure gim_getmapping (gp, mapping, rop, + src,st,sx,sy,sw,sh, dst,dt,dx,dy,dw,dh) + +pointer gp #I graphics descriptor +int mapping #I mapping to be queried +int rop #O rasterop +int src #O source raster +int st #O coordinate type for source raster +int sx,sy,sw,sh #O source rect +int dst #O destination raster +int dt #O coordinate type for destination raster +int dx,dy,dw,dh #O destination rect + +int nchars, nread +short gim[GIM_GETMAPPING_LEN] +short retval[GIM_RET_GMAP_LEN] +errchk gescape, flush, read, syserrs +int read(), btoi() + +begin + call gpl_flush() + gim[GIM_GETMAPPING_MP] = mapping + call gescape (gp, GIM_GETMAPPING, gim, GIM_GETMAPPING_LEN) + call flush (GP_FD(gp)) + + # This assumes a normal stream type GKI connection. + nchars = GIM_RET_GMAP_LEN * SZ_SHORT + nread = read (GP_FD(gp), retval, nchars) + call fseti (GP_FD(gp), F_CANCEL, OK) + if (nread != nchars) + call syserrs (SYS_FREAD, "gim_getmapping") + + # EN=0 not defined, EN=1 defined not enabled, EN=2 defined enabled. + if (retval[GIM_RET_GMAP_EN] == 0) + return (ERR) + else { + rop = retval[GIM_RET_GMAP_OP] + + src = retval[GIM_RET_GMAP_SR] + st = retval[GIM_RET_GMAP_ST] + + if (st == CT_PIXEL) { + sx = retval[GIM_RET_GMAP_SX] + sy = retval[GIM_RET_GMAP_SY] + sw = retval[GIM_RET_GMAP_SW] + sh = retval[GIM_RET_GMAP_SH] + } else { + sx = real (retval[GIM_RET_GMAP_SX]) / GKI_MAXNDC + sy = real (retval[GIM_RET_GMAP_SY]) / GKI_MAXNDC + sw = real (retval[GIM_RET_GMAP_SW]) / GKI_MAXNDC + sh = real (retval[GIM_RET_GMAP_SH]) / GKI_MAXNDC + } + + dst = retval[GIM_RET_GMAP_SR] + dt = retval[GIM_RET_GMAP_DT] + + if (dt == CT_PIXEL) { + dx = retval[GIM_RET_GMAP_DX] + dy = retval[GIM_RET_GMAP_DY] + dw = retval[GIM_RET_GMAP_DW] + dh = retval[GIM_RET_GMAP_DH] + } else { + dx = real (retval[GIM_RET_GMAP_DX]) / GKI_MAXNDC + dy = real (retval[GIM_RET_GMAP_DY]) / GKI_MAXNDC + dw = real (retval[GIM_RET_GMAP_DW]) / GKI_MAXNDC + dh = real (retval[GIM_RET_GMAP_DH]) / GKI_MAXNDC + } + + } + + return (btoi (retval[GIM_RET_GMAP_EN] == 2)) +end -- cgit