diff options
Diffstat (limited to 'sys/pmio/pmplr.gx')
-rw-r--r-- | sys/pmio/pmplr.gx | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sys/pmio/pmplr.gx b/sys/pmio/pmplr.gx new file mode 100644 index 00000000..6f87601b --- /dev/null +++ b/sys/pmio/pmplr.gx @@ -0,0 +1,34 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include <pmset.h> +include <plio.h> + +# PM_PLR -- Put a line segment input as a range list to a mask, applying the +# given ROP to combine the pixels with those of the output mask. + +procedure pm_plr$t (pl, v, rl_src, rl_depth, npix, rop) + +pointer pl #I mask descriptor +long v[PL_MAXDIM] #I vector coords of line segment +PIXEL rl_src[3,ARB] #I input range list +int rl_depth #I range list pixel depth, bits +int npix #I number of pixels affected +int rop #I rasterop + +pointer sp, ll_src +int ll_len, pl_r2l$t() +include "../pmio.com" + +begin + if (PM_MAPXY(pl) == NO) + call pl_plr$t (pl, v, rl_src, rl_depth, npix, rop) + else { + call smark (sp) + call salloc (ll_src, LL_MAXLEN(pl), TY_SHORT) + + ll_len = pl_r2l$t (rl_src, 1, Mems[ll_src], npix) + call pm_plls (pl, v, Mems[ll_src], rl_depth, npix, rop) + + call sfree (sp) + } +end |