aboutsummaryrefslogtreecommitdiff
path: root/sys/imio/imfls.gx
diff options
context:
space:
mode:
Diffstat (limited to 'sys/imio/imfls.gx')
-rw-r--r--sys/imio/imfls.gx34
1 files changed, 34 insertions, 0 deletions
diff --git a/sys/imio/imfls.gx b/sys/imio/imfls.gx
new file mode 100644
index 00000000..49016816
--- /dev/null
+++ b/sys/imio/imfls.gx
@@ -0,0 +1,34 @@
+# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
+
+include <imhdr.h>
+include <imio.h>
+
+# IMFLS? -- Flush the output buffer, if necessary. Convert the datatype
+# of the pixels upon output, if the datatype of the pixels in the imagefile
+# is different than that requested by the calling program.
+
+procedure imfls$t (imdes)
+
+pointer imdes
+pointer bdes, bp
+errchk imflsh
+
+begin
+ # Ignore the flush request if the output buffer has already been
+ # flushed.
+
+ if (IM_FLUSH(imdes) == YES) {
+ bdes = IM_OBDES(imdes)
+ bp = BD_BUFPTR(bdes)
+
+ # Convert datatype of pixels, if necessary, and flush buffer.
+ if (IM_PIXTYPE(imdes) != TY_PIXEL || SZ_INT != SZ_INT32) {
+ call impak$t (Memc[bp], Memc[bp], BD_NPIX(bdes),
+ IM_PIXTYPE(imdes))
+ }
+
+ call imflsh (imdes, bp, BD_VS(bdes,1), BD_VE(bdes,1), BD_NDIM(bdes))
+
+ IM_FLUSH(imdes) = NO
+ }
+end