home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Fortran.51 / DISK6 / FGRAPH.FI$ / FGRAPH.bin
Text File  |  1991-04-02  |  13KB  |  486 lines

  1. ***
  2. *fgraph.fi - declare constants and functions for graphics library
  3. *
  4. *   Copyright (c) 1987-1991 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 pie(i,x1,y1,x2,y2,x3,y3,x4,y4)
  262.     INTEGER*2 pie[FAR,C,ALIAS:"__pie"],i,x1,y1,x2,y2,x3,y3,x4,y4
  263.     END
  264.  
  265.     INTERFACE TO FUNCTION pie_w(i,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4)
  266.     INTEGER*2 pie_w[FAR,C,ALIAS:"__pie_w"],i
  267.     DOUBLE PRECISION wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
  268.     END
  269.  
  270.     INTERFACE TO FUNCTION polygon(control,lppoints,cpoints)
  271.     INTEGER*2 polygon[FAR,C,ALIAS:"__polygon"],control,cpoints
  272.     STRUCTURE/xycoord/
  273.       INTEGER*2 xcoord
  274.       INTEGER*2 ycoord
  275.     END STRUCTURE
  276.     RECORD/xycoord/lppoints[FAR,REFERENCE](*)
  277.     END
  278.  
  279.     INTERFACE TO FUNCTION polygon_w(control,lppoints,cpoints)
  280.     INTEGER*2 polygon_w[FAR,C,ALIAS:"__polygon_w"],control,cpoints
  281.     STRUCTURE/wxycoord/
  282.       DOUBLE PRECISION wx
  283.       DOUBLE PRECISION wy
  284.     END STRUCTURE
  285.     RECORD/wxycoord/lppoints[FAR,REFERENCE](*)
  286.     END
  287.  
  288.     INTERFACE TO SUBROUTINE
  289.      +          putimage[FAR,C,ALIAS:"__putimage"](x,y,image,action)
  290.     INTEGER*2 x,y,action
  291.     INTEGER*1 image[FAR,REFERENCE](*)
  292.     END
  293.  
  294.     INTERFACE TO SUBROUTINE
  295.      + putimage_w[FAR,C,ALIAS:"__putimage_w"](wx,wy,image,action)
  296.     DOUBLE PRECISION wx,wy
  297.     INTEGER*1 image[FAR,REFERENCE](*)
  298.     INTEGER*2 action
  299.     END
  300.  
  301.     INTERFACE TO FUNCTION rectangle(control,x1,y1,x2,y2)
  302.     INTEGER*2 rectangle[FAR,C,ALIAS:"__rectangle"]
  303.     INTEGER*2 control,x1,y1,x2,y2
  304.     END
  305.  
  306.     INTERFACE TO FUNCTION rectangle_w(control,wx1,wy1,wx2,wy2)
  307.     INTEGER*2 rectangle_w[FAR,C,ALIAS:"__rectangle_w"],control
  308.     DOUBLE PRECISION wx1,wy1,wx2,wy2
  309.     END
  310.  
  311.     INTERFACE TO FUNCTION remappalette(index,color)
  312.     INTEGER*4 remappalette[FAR,C,ALIAS:"__remappalette"],color
  313.     INTEGER*2 index
  314.     END
  315.  
  316.     INTERFACE TO FUNCTION remapallpalette(colors)
  317.     INTEGER*2 remapallpalette[FAR,C,ALIAS:"__remapallpalette"]
  318.     INTEGER*4 colors[FAR,REFERENCE](*)
  319.     END
  320.  
  321.     INTERFACE TO SUBROUTINE
  322.      +   scrolltextwindow[FAR,C,ALIAS:"__scrolltextwindow"](rows)
  323.     INTEGER*2 rows
  324.     END
  325.  
  326.     INTERFACE TO FUNCTION selectpalette(number)
  327.     INTEGER*2 selectpalette[FAR,C,ALIAS:"__selectpalette"],number
  328.     END
  329.  
  330.     INTERFACE TO FUNCTION setactivepage(page)
  331.     INTEGER*2 setactivepage[FAR,C,ALIAS:"__setactivepage"],page
  332.     END
  333.  
  334.     INTERFACE TO FUNCTION setbkcolor(color)
  335.     INTEGER*4 setbkcolor[FAR,C,ALIAS:"__setbkcolor"],color
  336.     END
  337.  
  338.     INTERFACE TO SUBROUTINE
  339.      +       setcliprgn[FAR,C,ALIAS:"__setcliprgn"](x1,y1,x2,y2)
  340.     INTEGER*2 x1,y1,x2,y2
  341.     END
  342.  
  343.     INTERFACE TO FUNCTION setcolor(color)
  344.     INTEGER*2 setcolor[FAR,C,ALIAS:"__setcolor"]
  345.     INTEGER*2 color
  346.     END
  347.  
  348.     INTERFACE TO SUBROUTINE
  349.      +             setfillmask[FAR,C,ALIAS:"__setfillmask"](mask)
  350.     INTEGER*1 mask[FAR,REFERENCE](8)
  351.     END
  352.  
  353.     INTERFACE TO SUBROUTINE
  354.      +          setlinestyle[FAR,C,ALIAS:"__setlinestyle"](mask)
  355.     INTEGER*2 mask
  356.     END
  357.  
  358.     INTERFACE TO FUNCTION setpixel(x,y)
  359.     INTEGER*2 setpixel[FAR,C,ALIAS:"__setpixel"],x,y
  360.     END
  361.  
  362.     INTERFACE TO FUNCTION setpixel_w(wx,wy)
  363.     INTEGER*2 setpixel_w[FAR,C,ALIAS:"__setpixel_w"]
  364.     DOUBLE PRECISION wx,wy
  365.     END
  366.  
  367.     INTERFACE TO FUNCTION settextcolor(index)
  368.     INTEGER*2 settextcolor[FAR,C,ALIAS:"__settextcolor"],index
  369.     END
  370.  
  371.     INTERFACE TO FUNCTION settextcursor(attr)
  372.     INTEGER*2 settextcursor[FAR,C,ALIAS:"__settextcursor"],attr
  373.     END
  374.  
  375.     INTERFACE TO SUBROUTINE
  376.      +   settextposition[FAR,C,ALIAS:"__f_settextposition"](row,col,s)
  377.     INTEGER*2 row,col
  378.     STRUCTURE/rccoord/
  379.       INTEGER*2 row
  380.       INTEGER*2 col
  381.     END STRUCTURE
  382.     RECORD/rccoord/s[FAR,REFERENCE]
  383.     END
  384.  
  385.     INTERFACE TO FUNCTION settextrows(rows)
  386.     INTEGER*2 settextrows[FAR,C,ALIAS:"__settextrows"],rows
  387.     END
  388.  
  389.     INTERFACE TO SUBROUTINE
  390.      +   settextwindow[FAR,C,ALIAS:"__settextwindow"](r1,c1,r2,c2)
  391.     INTEGER*2 r1,c1,r2,c2
  392.     END
  393.  
  394.     INTERFACE TO FUNCTION setvideomode(mode)
  395.     INTEGER*2 setvideomode[FAR,C,ALIAS:"__setvideomode"],mode
  396.     END
  397.  
  398.     INTERFACE TO FUNCTION setvideomoderows(mode,rows)
  399.     INTEGER*2 setvideomoderows[FAR,C,ALIAS:"__setvideomoderows"]
  400.     INTEGER*2 mode,rows
  401.     END
  402.  
  403.     INTERFACE TO SUBROUTINE
  404.      +             setvieworg[FAR,C,ALIAS:"__f_setvieworg"](x,y,s)
  405.     INTEGER*2 x,y
  406.     STRUCTURE/xycoord/
  407.       INTEGER*2 xcoord
  408.       INTEGER*2 ycoord
  409.     END STRUCTURE
  410.     RECORD/xycoord/s[FAR,REFERENCE]
  411.     END
  412.  
  413.     INTERFACE TO SUBROUTINE
  414.      +        setviewport[FAR,C,ALIAS:"__setviewport"](x1,y1,x2,y2)
  415.     INTEGER*2 x1,y1,x2,y2
  416.     END
  417.  
  418.     INTERFACE TO FUNCTION setvisualpage(page)
  419.     INTEGER*2 setvisualpage[FAR,C,ALIAS:"__setvisualpage"],page
  420.     END
  421.  
  422.     INTERFACE TO FUNCTION setwindow(finvert,wx1,wy1,wx2,wy2)
  423.     INTEGER*2 setwindow[FAR,C,ALIAS:"__setwindow"]
  424.     LOGICAL*2 finvert
  425.     DOUBLE PRECISION wx1,wy1,wx2,wy2
  426.     END
  427.  
  428.     INTERFACE TO FUNCTION setwritemode(wmode)
  429.     INTEGER*2 setwritemode[FAR,C,ALIAS:"__setwritemode"],wmode
  430.     END
  431.  
  432.     INTERFACE TO FUNCTION wrapon(option)
  433.     INTEGER*2 wrapon[FAR,C,ALIAS:"__wrapon"],option
  434.     END
  435.  
  436. * FONTS
  437.  
  438.     INTERFACE TO FUNCTION getfontinfo(fi)
  439.     INTEGER*2 getfontinfo[FAR,C,ALIAS:"__f_getfontinfo"]
  440.     STRUCTURE/fontinfo/
  441.       INTEGER*2 type        ! b0 set = vector,clear = bit map
  442.       INTEGER*2 ascent    ! pix dist from top to baseline
  443.       INTEGER*2 pixwidth    ! character width in pixels, 0=prop
  444.       INTEGER*2 pixheight    ! character height in pixels
  445.       INTEGER*2 avgwidth    ! average character width in pixels
  446.       CHARACTER*81 filename   ! file name including path
  447.       CHARACTER*32 facename   ! font name
  448.     END STRUCTURE
  449.     RECORD/fontinfo/fi[FAR,REFERENCE]
  450.     END
  451.  
  452.     INTERFACE TO FUNCTION getgtextextent(text)
  453.     INTEGER*2 getgtextextent[FAR,C,ALIAS:"__f_getgtextextent"]
  454.     CHARACTER*(*) text[FAR,REFERENCE]
  455.     END
  456.  
  457.     INTERFACE TO SUBROUTINE
  458.      +             getgtextvector[FAR,C,ALIAS:"__f_getgtextvector"](x,y)
  459.     INTEGER*2 x[FAR,REFERENCE],y[FAR,REFERENCE]
  460.     END
  461.  
  462.     INTERFACE TO SUBROUTINE
  463.      +             outgtext[FAR,C,ALIAS:"__f_outgtext"](text)
  464.     CHARACTER*(*) text[FAR,REFERENCE]
  465.     END
  466.  
  467.     INTERFACE TO FUNCTION registerfonts(filename)
  468.     INTEGER*2 registerfonts[FAR,C,ALIAS:"__f_registerfonts"]
  469.     CHARACTER*(*) filename[FAR,REFERENCE]
  470.     END
  471.  
  472.     INTERFACE TO FUNCTION setfont(options)
  473.     INTEGER*2 setfont[FAR,C,ALIAS:"__f_setfont"]
  474.     CHARACTER*(*) options[FAR,REFERENCE]
  475.     END
  476.  
  477.     INTERFACE TO SUBROUTINE
  478.      +             setgtextvector[FAR,C,ALIAS:"__setgtextvector"](x,y)
  479.     INTEGER*2 x,y
  480.     END
  481.  
  482.     INTERFACE TO SUBROUTINE
  483.      +             unregisterfonts[FAR,C,ALIAS:"__unregisterfonts"]()
  484.     END
  485.  
  486.