home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK4 / INCLUDE / FGRAPH.FI$ / FGRAPH
Encoding:
Text File  |  1991-11-07  |  13.2 KB  |  490 lines

  1. ***
  2. *fgraph.fi - declare constants and functions for graphics library
  3. *
  4. *   Copyright (c) 1987-1992 Microsoft Corporation.  All rights reserved.
  5. *
  6. *Purpose:
  7. *   This file declares the graphics library functions and
  8. *   the manifest constants that are used with them.
  9. *
  10. *******************************************************************************
  11.  
  12. $NOTRUNCATE
  13. $NOTSTRICT
  14.  
  15. * user-visible declarations for FORTRAN Graphics Library
  16.  
  17.     INTERFACE TO FUNCTION arc(x1,y1,x2,y2,x3,y3,x4,y4)
  18.     INTEGER*2 arc[FAR,C,ALIAS:"__arc"],x1,y1,x2,y2,x3,y3,x4,y4
  19.     END
  20.  
  21.     INTERFACE TO FUNCTION arc_w(wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4)
  22.     INTEGER*2 arc_w[FAR,C,ALIAS:"__arc_w"]
  23.     DOUBLE PRECISION wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
  24.     END
  25.  
  26.     INTERFACE TO FUNCTION getarcinfo(lpstart,lpend,lppaint)
  27.     INTEGER*2 getarcinfo[FAR,C,ALIAS:"__getarcinfo"]
  28.     STRUCTURE/xycoord/
  29.       INTEGER*2 xcoord
  30.       INTEGER*2 ycoord
  31.     END STRUCTURE
  32.     RECORD/xycoord/lpstart[FAR,REFERENCE]
  33.     RECORD/xycoord/lpend[FAR,REFERENCE]
  34.     RECORD/xycoord/lppaint[FAR,REFERENCE]
  35.     END
  36.  
  37.     INTERFACE TO SUBROUTINE
  38.      +             clearscreen[FAR,C,ALIAS:"__clearscreen"](area)
  39.     INTEGER*2 area
  40.     END
  41.  
  42.     INTERFACE TO FUNCTION displaycursor(toggle)
  43.     INTEGER*2 displaycursor[FAR,C,ALIAS:"__displaycursor"],toggle
  44.     END
  45.  
  46.     INTERFACE TO FUNCTION ellipse(control,x1,y1,x2,y2)
  47.     INTEGER*2 ellipse[FAR,C,ALIAS:"__ellipse"],control,x1,y1,x2,y2
  48.     END
  49.  
  50.     INTERFACE TO FUNCTION ellipse_w(control,wx1,wy1,wx2,wy2)
  51.     INTEGER*2 ellipse_w[FAR,C,ALIAS:"__ellipse_w"],control
  52.     DOUBLE PRECISION wx1,wy1,wx2,wy2
  53.     END
  54.  
  55.     INTERFACE TO FUNCTION floodfill(x,y,boundary)
  56.     INTEGER*2 floodfill[FAR,C,ALIAS:"__floodfill"],x,y,boundary
  57.     END
  58.  
  59.     INTERFACE TO FUNCTION floodfill_w(wx1,wy1,boundary)
  60.     INTEGER*2 floodfill_w[FAR,C,ALIAS:"__floodfill_w"],boundary
  61.     DOUBLE PRECISION wx1,wy1
  62.     END
  63.  
  64.     INTERFACE TO FUNCTION getactivepage()
  65.     INTEGER*2 getactivepage[FAR,C,ALIAS:"__getactivepage"]
  66.     END
  67.  
  68.     INTERFACE TO FUNCTION getbkcolor()
  69.     INTEGER*4 getbkcolor[FAR,C,ALIAS:"__getbkcolor"]
  70.     END
  71.  
  72.     INTERFACE TO FUNCTION getcolor()
  73.     INTEGER*2 getcolor[FAR,C,ALIAS:"__getcolor"]
  74.     END
  75.  
  76.     INTERFACE TO SUBROUTINE
  77.      +   getcurrentposition[FAR,C,ALIAS:"__f_getcurrentposition"](s)
  78.     STRUCTURE/xycoord/
  79.       INTEGER*2 xcoord
  80.       INTEGER*2 ycoord
  81.     END STRUCTURE
  82.     RECORD/xycoord/s[FAR,REFERENCE]
  83.     END
  84.  
  85.     INTERFACE TO SUBROUTINE 
  86.      + getcurrentposition_w[FAR,C,ALIAS:"__f_getcurrentposition_wxy"](s)
  87.     STRUCTURE/wxycoord/
  88.       DOUBLE PRECISION wx
  89.       DOUBLE PRECISION wy
  90.     END STRUCTURE
  91.     RECORD/wxycoord/s[FAR,REFERENCE]
  92.     END
  93.  
  94.     INTERFACE TO SUBROUTINE
  95.      +             getfillmask[FAR,C,ALIAS:"__getfillmask"](mask)
  96.     INTEGER*1 mask[FAR,REFERENCE](8)
  97.     END
  98.  
  99.     INTERFACE TO SUBROUTINE
  100.      +       getimage[FAR,C,ALIAS:"__getimage"](x1,y1,x2,y2,image)
  101.     INTEGER*2 x1,y1,x2,y2
  102.     INTEGER*1 image[FAR,REFERENCE](*)
  103.     END
  104.  
  105.     INTERFACE TO SUBROUTINE
  106.      +   getimage_w[FAR,C,ALIAS:"__getimage_w"](wx1,wy1,wx2,wy2,image)
  107.     DOUBLE PRECISION wx1,wy1,wx2,wy2
  108.     INTEGER*1 image[FAR,REFERENCE](*)
  109.     END
  110.  
  111.     INTERFACE TO FUNCTION getlinestyle()
  112.     INTEGER*2 getlinestyle[FAR,C,ALIAS:"__getlinestyle"]
  113.     END
  114.  
  115.     INTERFACE TO SUBROUTINE
  116.      +             getphyscoord[FAR,C,ALIAS:"__f_getphyscoord"](x,y,s)
  117.     INTEGER*2 x,y
  118.     STRUCTURE/xycoord/
  119.       INTEGER*2 xcoord
  120.       INTEGER*2 ycoord
  121.     END STRUCTURE
  122.     RECORD/xycoord/s[FAR,REFERENCE]
  123.     END
  124.  
  125.     INTERFACE TO FUNCTION getpixel(x,y)
  126.     INTEGER*2 getpixel[FAR,C,ALIAS:"__getpixel"],x,y
  127.     END
  128.  
  129.     INTERFACE TO FUNCTION getpixel_w(wx,wy)
  130.     INTEGER*2 getpixel_w[FAR,C,ALIAS:"__getpixel_w"]
  131.     DOUBLE PRECISION wx,wy
  132.     END
  133.  
  134.     INTERFACE TO FUNCTION gettextcolor()
  135.     INTEGER*2 gettextcolor[FAR,C,ALIAS:"__gettextcolor"]
  136.     END
  137.  
  138.     INTERFACE TO FUNCTION gettextcursor()
  139.     INTEGER*2 gettextcursor[FAR,C,ALIAS:"__gettextcursor"]
  140.     END
  141.  
  142.     INTERFACE TO SUBROUTINE
  143.      +     gettextposition[FAR,C,ALIAS:"__f_gettextposition"](s)
  144.     STRUCTURE/rccoord/
  145.       INTEGER*2 row
  146.       INTEGER*2 col
  147.     END STRUCTURE
  148.     RECORD/rccoord/s[FAR,REFERENCE]
  149.     END
  150.  
  151.     INTERFACE TO SUBROUTINE
  152.      +   gettextwindow[FAR,C,ALIAS:"__gettextwindow"](r1,c1,r2,c2)
  153.     INTEGER*2 r1[FAR,REFERENCE],c1[FAR,REFERENCE]
  154.     INTEGER*2 r2[FAR,REFERENCE],c2[FAR,REFERENCE]
  155.     END
  156.  
  157.     INTERFACE TO SUBROUTINE
  158.      +             getvideoconfig[FAR,C,ALIAS:"__getvideoconfig"](s)
  159.     STRUCTURE/videoconfig/
  160.       INTEGER*2 numxpixels       ! number of pixels on X axis
  161.       INTEGER*2 numypixels       ! number of pixels on Y axis
  162.       INTEGER*2 numtextcols      ! number of text columns available
  163.       INTEGER*2 numtextrows      ! number of text rows available
  164.       INTEGER*2 numcolors        ! number of actual colors
  165.       INTEGER*2 bitsperpixel     ! number of bits per pixel
  166.       INTEGER*2 numvideopages    ! number of available video pages
  167.       INTEGER*2 mode             ! current video mode
  168.       INTEGER*2 adapter          ! active display adapter
  169.       INTEGER*2 monitor          ! active display monitor
  170.       INTEGER*2 memory           ! adapter video memory in K bytes
  171.     END STRUCTURE
  172.     RECORD/videoconfig/s[FAR,REFERENCE]
  173.     END
  174.  
  175.     INTERFACE TO SUBROUTINE
  176.      +             getviewcoord[FAR,C,ALIAS:"__f_getviewcoord"](x,y,s)
  177.     INTEGER*2 x,y
  178.     STRUCTURE/xycoord/
  179.       INTEGER*2 xcoord
  180.       INTEGER*2 ycoord
  181.     END STRUCTURE
  182.     RECORD/xycoord/s[FAR,REFERENCE]
  183.     END
  184.  
  185.     INTERFACE TO SUBROUTINE
  186.      +     getviewcoord_w[FAR,C,ALIAS:"__f_getviewcoord_w"](wx,wy,s)
  187.     DOUBLE PRECISION wx,wy
  188.     STRUCTURE/xycoord/
  189.       INTEGER*2 xcoord
  190.       INTEGER*2 ycoord
  191.     END STRUCTURE
  192.     RECORD/xycoord/s[FAR,REFERENCE]
  193.     END
  194.  
  195.     INTERFACE TO FUNCTION getvisualpage()
  196.     INTEGER*2 getvisualpage[FAR,C,ALIAS:"__getvisualpage"]
  197.     END
  198.  
  199.     INTERFACE TO SUBROUTINE
  200.      +     getwindowcoord[FAR,C,ALIAS:"__f_getwindowcoord"](x,y,s)
  201.     INTEGER*2 x,y
  202.     STRUCTURE/wxycoord/
  203.       DOUBLE PRECISION wx
  204.       DOUBLE PRECISION wy
  205.     END STRUCTURE
  206.     RECORD/wxycoord/s[FAR,REFERENCE]
  207.     END
  208.  
  209.     INTERFACE TO FUNCTION getwritemode()
  210.     INTEGER*2 getwritemode[FAR,C,ALIAS:"__getwritemode"]
  211.     END
  212.  
  213.     INTERFACE TO FUNCTION grstatus()
  214.     INTEGER*2 grstatus[FAR,C,ALIAS:"__grstatus"]
  215.     END
  216.  
  217.     INTERFACE TO FUNCTION imagesize(x1,y1,x2,y2)
  218.     INTEGER*4 imagesize[FAR,C,ALIAS:"__imagesize"]
  219.     INTEGER*2 x1,y1,x2,y2
  220.     END
  221.  
  222.     INTERFACE TO FUNCTION imagesize_w(wx1,wy1,wx2,wy2)
  223.     INTEGER*4 imagesize_w[FAR,C,ALIAS:"__imagesize_w"]
  224.     DOUBLE PRECISION wx1,wy1,wx2,wy2
  225.     END
  226.  
  227.     INTERFACE TO FUNCTION lineto(x,y)
  228.     INTEGER*2 lineto[FAR,C,ALIAS:"__lineto"],x,y
  229.     END
  230.  
  231.     INTERFACE TO FUNCTION lineto_w(wx,wy)
  232.     INTEGER*2 lineto_w[FAR,C,ALIAS:"__lineto_w"]
  233.     DOUBLE PRECISION wx,wy
  234.     END
  235.  
  236.     INTERFACE TO SUBROUTINE
  237.      +             moveto[FAR,C,ALIAS:"__f_moveto"](x,y,s)
  238.     INTEGER*2 x,y
  239.     STRUCTURE/xycoord/
  240.       INTEGER*2 xcoord
  241.       INTEGER*2 ycoord
  242.     END STRUCTURE
  243.     RECORD/xycoord/s[FAR,REFERENCE]
  244.     END
  245.  
  246.     INTERFACE TO SUBROUTINE
  247.      +             moveto_w[FAR,C,ALIAS:"__f_moveto_w"](wx,wy,s)
  248.     DOUBLE PRECISION wx,wy
  249.     STRUCTURE/wxycoord/
  250.       DOUBLE PRECISION wx
  251.       DOUBLE PRECISION wy
  252.     END STRUCTURE
  253.     RECORD/wxycoord/s[FAR,REFERENCE]
  254.     END
  255.  
  256.     INTERFACE TO SUBROUTINE
  257.      +             outtext[FAR,C,ALIAS:"__f_outtext"](text)
  258.     CHARACTER*(*) text[FAR,REFERENCE]
  259.     END
  260.  
  261.     INTERFACE TO FUNCTION inchar()
  262.     INTEGER*2 inchar[FAR,C,ALIAS:"__inchar"]
  263.     END
  264.  
  265.     INTERFACE TO FUNCTION pie(i,x1,y1,x2,y2,x3,y3,x4,y4)
  266.     INTEGER*2 pie[FAR,C,ALIAS:"__pie"],i,x1,y1,x2,y2,x3,y3,x4,y4
  267.     END
  268.  
  269.     INTERFACE TO FUNCTION pie_w(i,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4)
  270.     INTEGER*2 pie_w[FAR,C,ALIAS:"__pie_w"],i
  271.     DOUBLE PRECISION wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
  272.     END
  273.  
  274.     INTERFACE TO FUNCTION polygon(control,lppoints,cpoints)
  275.     INTEGER*2 polygon[FAR,C,ALIAS:"__polygon"],control,cpoints
  276.     STRUCTURE/xycoord/
  277.       INTEGER*2 xcoord
  278.       INTEGER*2 ycoord
  279.     END STRUCTURE
  280.     RECORD/xycoord/lppoints[FAR,REFERENCE](*)
  281.     END
  282.  
  283.     INTERFACE TO FUNCTION polygon_w(control,lppoints,cpoints)
  284.     INTEGER*2 polygon_w[FAR,C,ALIAS:"__polygon_w"],control,cpoints
  285.     STRUCTURE/wxycoord/
  286.       DOUBLE PRECISION wx
  287.       DOUBLE PRECISION wy
  288.     END STRUCTURE
  289.     RECORD/wxycoord/lppoints[FAR,REFERENCE](*)
  290.     END
  291.  
  292.     INTERFACE TO SUBROUTINE
  293.      +          putimage[FAR,C,ALIAS:"__putimage"](x,y,image,action)
  294.     INTEGER*2 x,y,action
  295.     INTEGER*1 image[FAR,REFERENCE](*)
  296.     END
  297.  
  298.     INTERFACE TO SUBROUTINE
  299.      + putimage_w[FAR,C,ALIAS:"__putimage_w"](wx,wy,image,action)
  300.     DOUBLE PRECISION wx,wy
  301.     INTEGER*1 image[FAR,REFERENCE](*)
  302.     INTEGER*2 action
  303.     END
  304.  
  305.     INTERFACE TO FUNCTION rectangle(control,x1,y1,x2,y2)
  306.     INTEGER*2 rectangle[FAR,C,ALIAS:"__rectangle"]
  307.     INTEGER*2 control,x1,y1,x2,y2
  308.     END
  309.  
  310.     INTERFACE TO FUNCTION rectangle_w(control,wx1,wy1,wx2,wy2)
  311.     INTEGER*2 rectangle_w[FAR,C,ALIAS:"__rectangle_w"],control
  312.     DOUBLE PRECISION wx1,wy1,wx2,wy2
  313.     END
  314.  
  315.     INTERFACE TO FUNCTION remappalette(index,color)
  316.     INTEGER*4 remappalette[FAR,C,ALIAS:"__remappalette"],color
  317.     INTEGER*2 index
  318.     END
  319.  
  320.     INTERFACE TO FUNCTION remapallpalette(colors)
  321.     INTEGER*2 remapallpalette[FAR,C,ALIAS:"__remapallpalette"]
  322.     INTEGER*4 colors[FAR,REFERENCE](*)
  323.     END
  324.  
  325.     INTERFACE TO SUBROUTINE
  326.      +   scrolltextwindow[FAR,C,ALIAS:"__scrolltextwindow"](rows)
  327.     INTEGER*2 rows
  328.     END
  329.  
  330.     INTERFACE TO FUNCTION selectpalette(number)
  331.     INTEGER*2 selectpalette[FAR,C,ALIAS:"__selectpalette"],number
  332.     END
  333.  
  334.     INTERFACE TO FUNCTION setactivepage(page)
  335.     INTEGER*2 setactivepage[FAR,C,ALIAS:"__setactivepage"],page
  336.     END
  337.  
  338.     INTERFACE TO FUNCTION setbkcolor(color)
  339.     INTEGER*4 setbkcolor[FAR,C,ALIAS:"__setbkcolor"],color
  340.     END
  341.  
  342.     INTERFACE TO SUBROUTINE
  343.      +       setcliprgn[FAR,C,ALIAS:"__setcliprgn"](x1,y1,x2,y2)
  344.     INTEGER*2 x1,y1,x2,y2
  345.     END
  346.  
  347.     INTERFACE TO FUNCTION setcolor(color)
  348.     INTEGER*2 setcolor[FAR,C,ALIAS:"__setcolor"]
  349.     INTEGER*2 color
  350.     END
  351.  
  352.     INTERFACE TO SUBROUTINE
  353.      +             setfillmask[FAR,C,ALIAS:"__setfillmask"](mask)
  354.     INTEGER*1 mask[FAR,REFERENCE](8)
  355.     END
  356.  
  357.     INTERFACE TO SUBROUTINE
  358.      +          setlinestyle[FAR,C,ALIAS:"__setlinestyle"](mask)
  359.     INTEGER*2 mask
  360.     END
  361.  
  362.     INTERFACE TO FUNCTION setpixel(x,y)
  363.     INTEGER*2 setpixel[FAR,C,ALIAS:"__setpixel"],x,y
  364.     END
  365.  
  366.     INTERFACE TO FUNCTION setpixel_w(wx,wy)
  367.     INTEGER*2 setpixel_w[FAR,C,ALIAS:"__setpixel_w"]
  368.     DOUBLE PRECISION wx,wy
  369.     END
  370.  
  371.     INTERFACE TO FUNCTION settextcolor(index)
  372.     INTEGER*2 settextcolor[FAR,C,ALIAS:"__settextcolor"],index
  373.     END
  374.  
  375.     INTERFACE TO FUNCTION settextcursor(attr)
  376.     INTEGER*2 settextcursor[FAR,C,ALIAS:"__settextcursor"],attr
  377.     END
  378.  
  379.     INTERFACE TO SUBROUTINE
  380.      +   settextposition[FAR,C,ALIAS:"__f_settextposition"](row,col,s)
  381.     INTEGER*2 row,col
  382.     STRUCTURE/rccoord/
  383.       INTEGER*2 row
  384.       INTEGER*2 col
  385.     END STRUCTURE
  386.     RECORD/rccoord/s[FAR,REFERENCE]
  387.     END
  388.  
  389.     INTERFACE TO FUNCTION settextrows(rows)
  390.     INTEGER*2 settextrows[FAR,C,ALIAS:"__settextrows"],rows
  391.     END
  392.  
  393.     INTERFACE TO SUBROUTINE
  394.      +   settextwindow[FAR,C,ALIAS:"__settextwindow"](r1,c1,r2,c2)
  395.     INTEGER*2 r1,c1,r2,c2
  396.     END
  397.  
  398.     INTERFACE TO FUNCTION setvideomode(mode)
  399.     INTEGER*2 setvideomode[FAR,C,ALIAS:"__setvideomode"],mode
  400.     END
  401.  
  402.     INTERFACE TO FUNCTION setvideomoderows(mode,rows)
  403.     INTEGER*2 setvideomoderows[FAR,C,ALIAS:"__setvideomoderows"]
  404.     INTEGER*2 mode,rows
  405.     END
  406.  
  407.     INTERFACE TO SUBROUTINE
  408.      +             setvieworg[FAR,C,ALIAS:"__f_setvieworg"](x,y,s)
  409.     INTEGER*2 x,y
  410.     STRUCTURE/xycoord/
  411.       INTEGER*2 xcoord
  412.       INTEGER*2 ycoord
  413.     END STRUCTURE
  414.     RECORD/xycoord/s[FAR,REFERENCE]
  415.     END
  416.  
  417.     INTERFACE TO SUBROUTINE
  418.      +        setviewport[FAR,C,ALIAS:"__setviewport"](x1,y1,x2,y2)
  419.     INTEGER*2 x1,y1,x2,y2
  420.     END
  421.  
  422.     INTERFACE TO FUNCTION setvisualpage(page)
  423.     INTEGER*2 setvisualpage[FAR,C,ALIAS:"__setvisualpage"],page
  424.     END
  425.  
  426.     INTERFACE TO FUNCTION setwindow(finvert,wx1,wy1,wx2,wy2)
  427.     INTEGER*2 setwindow[FAR,C,ALIAS:"__setwindow"]
  428.     LOGICAL*2 finvert
  429.     DOUBLE PRECISION wx1,wy1,wx2,wy2
  430.     END
  431.  
  432.     INTERFACE TO FUNCTION setwritemode(wmode)
  433.     INTEGER*2 setwritemode[FAR,C,ALIAS:"__setwritemode"],wmode
  434.     END
  435.  
  436.     INTERFACE TO FUNCTION wrapon(option)
  437.     INTEGER*2 wrapon[FAR,C,ALIAS:"__wrapon"],option
  438.     END
  439.  
  440. * FONTS
  441.  
  442.     INTERFACE TO FUNCTION getfontinfo(fi)
  443.     INTEGER*2 getfontinfo[FAR,C,ALIAS:"__f_getfontinfo"]
  444.     STRUCTURE/fontinfo/
  445.       INTEGER*2 type        ! b0 set = vector,clear = bit map
  446.       INTEGER*2 ascent    ! pix dist from top to baseline
  447.       INTEGER*2 pixwidth    ! character width in pixels, 0=prop
  448.       INTEGER*2 pixheight    ! character height in pixels
  449.       INTEGER*2 avgwidth    ! average character width in pixels
  450.       CHARACTER*81 filename   ! file name including path
  451.       CHARACTER*32 facename   ! font name
  452.     END STRUCTURE
  453.     RECORD/fontinfo/fi[FAR,REFERENCE]
  454.     END
  455.  
  456.     INTERFACE TO FUNCTION getgtextextent(text)
  457.     INTEGER*2 getgtextextent[FAR,C,ALIAS:"__f_getgtextextent"]
  458.     CHARACTER*(*) text[FAR,REFERENCE]
  459.     END
  460.  
  461.     INTERFACE TO SUBROUTINE
  462.      +             getgtextvector[FAR,C,ALIAS:"__f_getgtextvector"](x,y)
  463.     INTEGER*2 x[FAR,REFERENCE],y[FAR,REFERENCE]
  464.     END
  465.  
  466.     INTERFACE TO SUBROUTINE
  467.      +             outgtext[FAR,C,ALIAS:"__f_outgtext"](text)
  468.     CHARACTER*(*) text[FAR,REFERENCE]
  469.     END
  470.  
  471.     INTERFACE TO FUNCTION registerfonts(filename)
  472.     INTEGER*2 registerfonts[FAR,C,ALIAS:"__f_registerfonts"]
  473.     CHARACTER*(*) filename[FAR,REFERENCE]
  474.     END
  475.  
  476.     INTERFACE TO FUNCTION setfont(options)
  477.     INTEGER*2 setfont[FAR,C,ALIAS:"__f_setfont"]
  478.     CHARACTER*(*) options[FAR,REFERENCE]
  479.     END
  480.  
  481.     INTERFACE TO SUBROUTINE
  482.      +             setgtextvector[FAR,C,ALIAS:"__setgtextvector"](x,y)
  483.     INTEGER*2 x,y
  484.     END
  485.  
  486.     INTERFACE TO SUBROUTINE
  487.      +             unregisterfonts[FAR,C,ALIAS:"__unregisterfonts"]()
  488.     END
  489.  
  490.