<?xml version="1.0" encoding="ISO8859-1"?>
<fpdoc-descriptions>
<!--

   $Id: graph.xml,v 1.2 2004/10/14 18:59:34 michael Exp $
   This file is part of the FPC documentation.
   Copyright (C) 1997, by Michael Van Canneyt

   The FPC documentation is free text; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.

   The FPC Documentation is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with the FPC documentation; see the file COPYING.LIB.  If not,
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.
 -->
<package name="rtl">
<module name="graph">
<short>TP compatible unit to handle screen graphics.</short>
<!-- \FPCexampledir{graphex} -->
<descr>
<p>
This document describes the <var>GRAPH</var> unit for Free Pascal, for all
platforms. The unit was first written for dos by Florian kl\"ampfl, but was
later completely rewritten by Carl-Eric Codere to be completely portable.
The unit is provided for compatibility only: It is recommended to use more
modern graphical systems. The graph unit will allow to recompile old
programs, they will work to some extent, but if the application has
heavy graphical needs, it's recommended to use another set of graphical
routines, suited to the platform the program should work on.
</p>
</descr>

<topic name="Requirements">
<short>Requirements</short>
<descr>
<p>
The unit Graph exports functions and procedures for graphical output.
It requires at least a VGA-compatible Card or a VGA-Card with software-driver
(min. <b>512Kb</b> video memory).
</p>
</descr>
</topic>

<topic name="Modes">
<short>A word about mode selection</short>
<descr>
<p>
The graph unit was implemented for compatibility with the old Turbo Pascal graph
unit. For this reason, the mode constants as they were defined in the
Turbo Pascal graph unit are retained.
</p>
<p>
However, since
</p>
<ol>
<li> Video cards have evolved very much</li>
<li> Free Pascal runs on multiple platforms</li>
</ol>
<p>
it was decided to implement new mode and graphic driver constants,
which are more independent of the specific platform the program runs on.
</p>
<p>
In this section we give a short explanation of the new mode system. the
following drivers were defined:
</p>
<code>
D1bit = 11;
D2bit = 12;
D4bit = 13;
D6bit = 14;  { 64 colors Half-brite mode - Amiga }
D8bit = 15;
D12bit = 16; { 4096 color modes HAM mode - Amiga }
D15bit = 17;
D16bit = 18;
D24bit = 19; { not yet supported }
D32bit = 20; { not yet supported }
D64bit = 21; { not yet supported }

lowNewDriver = 11;
highNewDriver = 21;
</code>
<p>
Each of these drivers specifies a desired color-depth.
</p>
<p>
The following modes have been defined:
</p>
<code>
detectMode = 30000;
m320x200 = 30001;
m320x256 = 30002; { amiga resolution (PAL) }
m320x400 = 30003; { amiga/atari resolution }
m512x384 = 30004; { mac resolution }
m640x200 = 30005; { vga resolution }
m640x256 = 30006; { amiga resolution (PAL) }
m640x350 = 30007; { vga resolution }
m640x400 = 30008;
m640x480 = 30009;
m800x600 = 30010;
m832x624 = 30011; { mac resolution }
m1024x768 = 30012;
m1280x1024 = 30013;
m1600x1200 = 30014;
m2048x1536 = 30015;

lowNewMode = 30001;
highNewMode = 30015;
</code>
<p>
These modes start at 30000 because Borland specified that the mode number
should be ascending with increasing X resolution, and the new constants
shouldn't interfere with the old ones.
</p>
<p>
The above constants can be used to set a certain color depth and resultion,
as demonstrated in the below example.
</p>
<p>
If other modes than the ones above are supported by the graphics card,
you will not be able to select them with this mechanism.
</p>
<p>
For this reason, there is also a 'dynamic' mode number, which is assigned at
run-time. This number increases with increasing X resolution. It can be
queried with the <var>getmoderange</var> call. This call will return the range
of modes which are valid for a certain graphics driver. The numbers are
guaranteed to be consecutive, and can be used to search for a certain
resolution, as in the second example below.
</p>
<p>
Thus, the <var>getmoderange</var> function can be used to detect all available
modes and drivers, as in the third example below:
</p>
</descr>
<example file="graphex/inigraph1"/>
<example file="graphex/inigraph2"/>
<example file="graphex/modrange"/>
</topic>

<topic name="TargetIssuesDos">
<short>Target specific issues: DOS</short>
<descr>
<p>
VESA modes (i.e., anything but 320x200x256 and 640x480x16) do not work
under most installations of Windows NT, Windows 2000 and Windows XP.
They also do not work for some people under Windows 98 and Windows ME,
depending on their graphics drivers. However, the graph unit cannot
detect this, because no errors are returned from the system.
In such cases, the screen simply turns black, or will show garbage.
</p>
<p>
Nothing can be done about this, the reason is missing or buggy
support in the graphics drivers of the operating system.
</p>
</descr>
</topic>

<topic name="TargetIssuesWindows">
<short>Target specific issues: Windows</short>
<descr>
<p>
The windows version of the Graph units is not very performant. It works,
thus allowing to port old TP programs to Windows, but that is all what can
be expected from it. Further, it is windowed only: A separate window is
opened in which the graphics are displayed. This means that the normal
keyboard/mouse handling as provided by the crt and/or keyboard/mouse units
wil not work in the graphical window. If keyboard and mouse input are needed
the winmouse and the wincrt unit should be used instead.
To hide the console window, compile with the
</p>
<code>
{$apptype gui}
</code>
<p>
switch.
</p>
<p>
Further, the following extra modes are available:
</p>
<code>
mLargestWindow16  = $f0;
mLargestWindow256 = $f1;
mLargestWindow32k = $f2;
mLargestWindow64k = $f3;
mLargestWindow16M = $f4;
mMaximizedWindow16 = $f5;
mMaximizedWindow256 = $f6;
mMaximizedWindow32k = $f7;
mMaximizedWindow64k = $f8;
mMaximizedWindow16M = $f9;
</code>
</descr>
</topic>

<topic name="TargetIssuesWindows">
<short>Target specific issues: Linux</short>
<descr>
<p>
There are several issues on Linux that need to be taken care of:
</p>
<p>
The Linux version of the <file>Graph</file> unit uses the <file>libvga</file>
library. This library works on the console, not under X.
</p>
<p>
If you get an error similar to
</p>
<code>
/usr/bin/ld: cannot find -lvga
</code>
<p>
This can mean one of two things: either libvga and it's development package
is not installed properly, or the directory where it is installed is not in
the linker path.
</p>
<p>
To remedy the former, you should install both the libvga
package and libvga-devel package (or compile and install from scratch).
</p>
<p>
To remedy the latter, you should add the path to the compiler command-line
using the <var>-Fl</var> option.
</p>
<p>
Programs using <file>libvga</file> need root privileges to run.
You can make them setuid root with the following command:
</p>
<code>
chown root.root myprogram
chmod u+s myprogram
</code>
<p>
The libvga library will give up the root privileges after it is initialized.
</p>
<p>
there is an experimental version of the Graphics library available that
uses GGI to do all the drawing, but it is not well tested. It's called
<file>ggigraph</file> and is distributed in source form only.
</p>
<p>
Do not use the CRT unit together with the Graph unit: the console may
end up in an unusable state. Instead, the <file>ncurses</file> unit may function
fine.
</p>
</descr>
</topic>

<topic name="FuncInitializion">
<short>Categorized functions: Initialization</short>
<descr>
<p>
Initialization of the graphics screen.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="ClearDevice"/></td><td>Empty the graphics screen</td></tr>
<tr><td><link id="CloseGraph"/></td><td>Finish drawing session, return to text mode</td></tr>
<tr><td><link id="DetectGraph"/></td><td>Detect graphical modes</td></tr>
<tr><td><link id="GetAspectRatio"/></td><td>Get aspect ratio of screen</td></tr>
<tr><td><link id="GetModeRange"/></td><td>Get range of valid modes for current driver</td></tr>
<tr><td><link id="GraphDefaults"/></td><td>Set defaults</td></tr>
<tr><td><link id="GetDriverName"/></td><td>Return name of graphical driver</td></tr>
<tr><td><link id="GetGraphMode"/></td><td>Return current or last used graphics mode</td></tr>
<tr><td><link id="GetMaxMode"/></td><td>Get maximum mode for current driver</td></tr>
<tr><td><link id="GetModeName"/></td><td>Get name of current mode</td></tr>
<tr><td><link id="GraphErrorMsg"/></td><td>String representation of graphical error</td></tr>
<tr><td><link id="GraphResult"/></td><td>Result of last drawing operation</td></tr>
<tr><td><link id="InitGraph"/></td><td>Initialize graphics drivers</td></tr>
<tr><td><link id="InstallUserDriver"/></td><td>Install a new driver</td></tr>
<tr><td><link id="RegisterBGIDriver"/></td><td>Register a new driver</td></tr>
<tr><td><link id="RestoreCRTMode"/></td><td>Go back to text mode</td></tr>
<!--
<tr><td><link id="SetGraphBufSize"/></td><td>Set buffer size for graphical operations</td></tr>
-->
<tr><td><link id="SetGraphMode"/></td><td>Set graphical mode</td></tr>
</table>
</descr>
</topic>

<topic name="FuncScreen">
<short>Categorized functions: Screen management</short>
<descr>
<p>
General drawing screen management functions.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="ClearViewPort"/></td><td>Clear the current viewport</td></tr>
<tr><td><link id="GetImage"/></td><td>Copy image from screen to memory</td></tr>
<tr><td><link id="GetMaxX"/></td><td>Get maximum X coordinate</td></tr>
<tr><td><link id="GetMaxY"/></td><td>Get maximum Y coordinate</td></tr>
<tr><td><link id="GetX"/></td><td>Get current X position</td></tr>
<tr><td><link id="GetY"/></td><td>Get current Y position</td></tr>
<tr><td><link id="ImageSize"/></td><td>Get size of selected image</td></tr>
<tr><td><link id="GetViewSettings"/></td><td>Get current viewport settings</td></tr>
<tr><td><link id="PutImage"/></td><td>Copy image from memory to screen</td></tr>
<tr><td><link id="SetActivePage"/></td><td>Set active video page</td></tr>
<tr><td><link id="SetAspectRatio"/></td><td>Set aspect ratio for drawing routines</td></tr>
<tr><td><link id="SetViewPort"/></td><td>Set current viewport</td></tr>
<tr><td><link id="SetVisualPage"/></td><td>Set visual page</td></tr>
<tr><td><link id="SetWriteMode"/></td><td>Set write mode for screen operations</td></tr>
</table>
</descr>
</topic>


<topic name="FuncColorManagement">
<short>Categorized functions: Color management</short>
<descr>
<p>
All functions related to color management.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="GetBkColor"/></td><td>Get current background color</td></tr>
<tr><td><link id="GetColor"/></td><td>Get current foreground color</td></tr>
<tr><td><link id="GetDefaultPalette"/></td><td>Get default palette entries</td></tr>
<tr><td><link id="GetMaxColor"/></td><td>Get maximum valid color</td></tr>
<tr><td><link id="GetPaletteSize"/></td><td>Get size of palette for current mode</td></tr>
<tr><td><link id="GetPixel"/></td><td>Get color of selected pixel</td></tr>
<tr><td><link id="GetPalette"/></td><td>Get palette entry</td></tr>
<tr><td><link id="SetAllPalette"/></td><td>Set all colors in palette</td></tr>
<tr><td><link id="SetBkColor"/></td><td>Set background color</td></tr>
<tr><td><link id="SetColor"/></td><td>Set foreground color</td></tr>
<tr><td><link id="SetPalette"/></td><td>Set palette entry</td></tr>
<tr><td><link id="SetRGBPalette"/></td><td>Set palette entry with RGB values</td></tr>
</table>
</descr>
</topic>

<topic name="FuncDrawing">
<short>Categorized functions: Drawing primitives</short>
<descr>
<p>
Functions for simple drawing.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="Arc"/></td><td>Draw an arc</td></tr>
<tr><td><link id="Circle"/></td><td>Draw a complete circle</td></tr>
<tr><td><link id="DrawPoly"/></td><td>Draw a polygone with N points</td></tr>
<tr><td><link id="Ellipse"/></td><td>Draw an ellipse</td></tr>
<tr><td><link id="GetArcCoords"/></td><td>Get arc coordinates</td></tr>
<tr><td><link id="GetLineSettings"/></td><td>Get current line drawing settings</td></tr>
<tr><td><link id="Line"/></td><td>Draw line between 2 points</td></tr>
<tr><td><link id="LineRel"/></td><td>Draw line relative to current position</td></tr>
<tr><td><link id="LineTo"/></td><td>Draw line from current position to absolute position</td></tr>
<tr><td><link id="MoveRel"/></td><td>Move cursor relative to current position</td></tr>
<tr><td><link id="MoveTo"/></td><td>Move cursor to absolute position</td></tr>
<tr><td><link id="PieSlice"/></td><td>Draw a pie slice</td></tr>
<tr><td><link id="PutPixel"/></td><td>Draw 1 pixel</td></tr>
<tr><td><link id="Rectangle"/></td><td>Draw a non-filled rectangle</td></tr>
<tr><td><link id="Sector"/></td><td>Draw a sector</td></tr>
<tr><td><link id="SetLineStyle"/></td><td>Set current line drawing style</td></tr>
</table>
</descr>
</topic>

<topic name="FuncFilledDrawing">
<short>Categorized functions: Filled drawings</short>
<descr>
<p>
Functions for drawing filled regions.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="Bar3D"/></td><td>Draw a filled 3D-style bar</td></tr>
<tr><td><link id="Bar"/></td><td>Draw a filled rectangle</td></tr>
<tr><td><link id="FloodFill"/></td><td>Fill starting from coordinate</td></tr>
<tr><td><link id="FillEllipse"/></td><td>Draw a filled ellipse</td></tr>
<tr><td><link id="FillPoly"/></td><td>Draw a filled polygone</td></tr>
<tr><td><link id="GetFillPattern"/></td><td>Get current fill pattern</td></tr>
<tr><td><link id="GetFillSettings"/></td><td>Get current fill settings</td></tr>
<tr><td><link id="SetFillPattern"/></td><td>Set current fill pattern</td></tr>
<tr><td><link id="SetFillStyle"/></td><td>Set current fill settings</td></tr>
</table>
</descr>
</topic>


<topic name="FuncTextHandling">
<short>Categorized functions: Text and font handling</short>
<descr>
<p>
Functions to set texts on the screen.
</p>
<table>
<th><td>Name</td><td>Description</td></th>
<tr><td><link id="GetTextSettings"/></td><td>Get current text settings</td></tr>
<tr><td><link id="InstallUserFont"/></td><td>Install a new font</td></tr>
<tr><td><link id="OutText"/></td><td>Write text at current cursor position</td></tr>
<tr><td><link id="OutTextXY"/></td><td>Write text at coordinates X,Y</td></tr>
<tr><td><link id="RegisterBGIFont"/></td><td>Register a new font</td></tr>
<tr><td><link id="SetTextJustify"/></td><td>Set text justification</td></tr>
<tr><td><link id="SetTextStyle"/></td><td>Set text style</td></tr>
<tr><td><link id="SetUserCharSize"/></td><td>Set text size</td></tr>
<tr><td><link id="TextHeight"/></td><td>Calculate height of text</td></tr>
<tr><td><link id="TextWidth"/></td><td>Calculate width of text</td></tr>
</table>
</descr>
</topic>


<element name="ArcCoordsType">
<short>Describe the last arc which was drawn on screen</short>
</element>
<element name="ArcCoordsType.X">
<short>Center X coordinate</short>
</element>
<element name="ArcCoordsType.Y">
<short>Center Y coordinate</short>
</element>
<element name="ArcCoordsType.XStart">
<short>Drawing segment start X coordinate</short>
</element>
<element name="ArcCoordsType.YStart">
<short>Drawing segment start Y coordinate</short>
</element>
<element name="ArcCoordsType.XEnd">
<short>Drawing segment end X coordinate</short>
</element>
<element name="ArcCoordsType.YEnd">
<short>Drawing segment end Y coordinate</short>
</element>

<element name="FillPatternType">
<short>Bit pattern used when drawing lines. Set bits are drawn.</short>
</element>

<element name="FillSettingsType">
<short>Record describing fill mode</short>
</element>
<element name="FillSettingsType.Pattern">
<short>Fill bit pattern. Set bits are drawn..</short>
</element>
<element name="FillSettingsType.Color">
<short>Color used to fill</short>
</element>

<element name="LineSettingsType">
<short>Record describing current line drawing mode</short>
</element>
<element name="LineSettingsType.LineStyle">
<short>Line style used when drawing.</short>
</element>
<element name="LineSettingsType.Pattern">
<short>Pattern used when drawing.</short>
</element>
<element name="LineSettingsType.Width">
<short>Line width used when drawing.</short>
</element>

<element name="RGBRec">
<short>Record describing palette RGB color</short>
</element>
<element name="RGBRec.Red">
<short>Red component of color</short>
</element>
<element name="RGBRec.Green">
<short>Green component of color</short>
</element>
<element name="RGBRec.Blue">
<short>Blue component of color</short>
</element>

<element name="PaletteType">
<short>Record describing palette.</short>
</element>
<element name="PaletteType.Size">
<short>Actual size of palette (number of entries)</short>
</element>
<element name="PaletteType.Colors">
<short>Color entries in palette.</short>
</element>

<element name="PointType">
<short>Record describing a point in a 2 dimensional plane</short>
</element>
<element name="PointType.X">
<short>X coordinate</short>
</element>
<element name="PointType.Y">
<short>Y coordinate</short>
</element>

<element name="TextSettingsType">
<short>Record describing how texts are drawn.</short>
</element>
TextSettingsType = Record
 Font,Direction, CharSize, Horiz, Vert : Word
end;
<element name="TextSettingsType.Font">
<short>Font used.</short>
</element>
<element name="TextSettingsType.Direction">
<short>Direction in which to write.</short>
</element>
<element name="TextSettingsType.CharSize">
<short>Font size</short>
</element>
<element name="TextSettingsType.Horiz">
<short>Horizontal justification</short>
</element>
<element name="TextSettingsType.Vert">
<short>Vertical justification</short>
</element>

<element name="ViewPortType">
<short>Record describing a viewport</short>
</element>
<element name="ViewPortType.X1">
<short>X coordinate of upper-left corner.</short>
</element>
<element name="ViewPortType.X2">
<short>X coordinate of lower-right corner.</short>
</element>
<element name="ViewPortType.Y1">
<short>Y coordinate of upper-left corner.</short>
</element>
<element name="ViewPortType.Y2">
<short>Y coordinate of lower-right corner.</short>
</element>
<element name="ViewPortType.Clip">
<short>Should drawing be clipped to the current rectangle?</short>
</element>


<element name="Arc">
<short>Draw part of a circle</short>
<descr>
<var>Arc</var> draws part of a circle with center at <var>(X,Y)</var>, radius
<var>radius</var>, starting from angle <var>start</var>, stopping at angle <var>stop</var>.
These  angles are measured
counterclockwise.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Circle"/>
<link id="Ellipse"/> 
<link id="GetArcCoords"/>
<link id="PieSlice"/>
<link id="Sector"/>
</seealso>
</element>

<element name="Bar">
<short>Draw filled rectangle</short>
<descr>
Draws a rectangle with corners at <var>(X1,Y1)</var> and <var>(X2,Y2)</var> 
and fills it with the current color and fill-style.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Bar3D"/>,
<link id="Rectangle"/>
</seealso>
</element>

<element name="Bar3D">
<short>Draw filled 3-dimensional rectangle</short>
<descr>
<p>
<var>Bar3d</var> draws a 3-dimensional Bar  with corners at <var>(X1,Y1)</var> and <var>(X2,Y2)</var> 
and fills it with the current color and fill-style.
<var>Depth</var> specifies the number of pixels used to show the depth of the
bar.
</p>
<p>
If <var>Top</var> is true; then a 3-dimensional top is drawn.
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Bar"/>
<link id="Rectangle"/>
</seealso>
</element>

<element name="Circle">
<short>Draw a complete circle</short>
<descr>
<var>Circle</var> draws a complete circle with center at <var>(X,Y)</var>, radius
<var>radius</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Ellipse"/>
<link id="Arc"/>
<link id="GetArcCoords"/>
<link id="PieSlice"/>
<link id="Sector"/>
</seealso>
</element>

<element name="ClearDevice">
<short>Clear the complete screen</short>
<descr>
Clears the graphical screen (with the current
background color), and sets the pointer at <var>(0,0)</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ClearViewPort"/>
<link id="SetBkColor"/>
</seealso>
</element>

<element name="ClearViewPort">
<short>Clear the current viewport</short>
<descr>
Clears the current viewport. The current background color is used as filling
color. The pointer is set at <var>(0,0)</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="ClearDevice"/>
<link id="SetViewPort"/>
<link id="SetBkColor"/>
</seealso>
</element>

<element name="CloseGraph">
<short>Close graphical system.</short>
<descr>
Closes the graphical system, and restores the
screen modus which was active before the graphical modus was
activated.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
</seealso>
</element>

<element name="DetectGraph">
<short>Detect correct graphical driver to use</short>
<descr>
<var>DetectGraph</var> checks the hardware in the PC and determines the driver and screen-modus to
be used. These are returned in <var>Driver</var> and <var>Modus</var>, and can be fed
to <var>InitGraph</var>. 
See the <var>InitGraph</var> for a list of drivers and modi.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
</seealso>
</element>

<element name="DrawPoly">
<short>Draw a polygone</short>
<descr>
<var>DrawPoly</var> draws a polygone with <var>NumberOfPoints</var> corner points, using the
current color and line-style. PolyPoints is an array of type <link id="PointType"/>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Bar"/>
<link id="Bar3D"/>
<link id="Rectangle"/>
</seealso>
</element>

<element name="Ellipse">
<short>Draw an ellipse</short>
<descr>
<var>Ellipse</var> draws part of an ellipse with center at <var>(X,Y)</var>.
<var>XRadius</var> and <var>Yradius</var> are the horizontal and vertical radii of the
ellipse. <var>Start</var> and <var>Stop</var> are the starting and stopping angles of
the part of the ellipse. They are measured counterclockwise from the X-axis 
(3 o'clock is equal to 0 degrees). Only positive angles can be specified.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Arc"/>
<link id="Circle"/>
<link id="FillEllipse"/>
</seealso>
</element>

<element name="FillEllipse">
<short>Draw and fill an ellipse</short>
<descr>
<var>Ellipse</var> draws an ellipse with center at <var>(X,Y)</var>.
<var>XRadius</var> and <var>Yradius</var> are the horizontal and vertical radii of the
ellipse. The ellipse is filled with the current color and fill-style.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Arc"/>
<link id="Circle"/>
<link id="GetArcCoords"/>
<link id="PieSlice"/>
<link id="Sector"/>
</seealso>
</element>

<element name="FillPoly">
<short>Draw, close and fill a polygone</short>
<descr>
<var>FillPoly</var> draws a polygone with <var>NumberOfPoints</var> corner points and fills it
using the current color and line-style. 
PolyPoints is an array of type <var>PointType</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Bar"/>
<link id="Bar3D"/>
<link id="Rectangle"/>
</seealso>
</element>

<element name="FloodFill">
<short>Fill an area with a given color</short>
<descr>
Fills the area containing the point <var>(X,Y)</var>, bounded by the color
<var>BorderColor</var>.
</descr>
<errors>
None
</errors>
<seealso>
<link id="SetColor"/>
<link id="SetBkColor"/>
</seealso>
</element>

<element name="GetArcCoords">
<short>Return coordinates of last drawn arc or ellipse.</short>
<descr>
<var>GetArcCoords</var> returns the coordinates of the latest <var>Arc</var> or
<var>Ellipse</var> call.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Arc"/>
<link id="Ellipse"/>
</seealso>
</element>

<element name="GetAspectRatio">
<short>Return screen resolution</short>
<descr>
<var>GetAspectRatio</var> determines the effective resolution of the screen. The aspect ration can
then be calculated as <var>Xasp/Yasp</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
<link id="SetAspectRatio"/>
</seealso>
</element>

<element name="GetBkColor">
<short>Return current background color</short>
<descr>
<var>GetBkColor</var> returns the current background color (the palette
entry).
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetColor"/>
<link id="SetBkColor"/>
</seealso>
</element>

<element name="GetColor">
<short>Return current drawing color</short>
<descr>
<var>GetColor</var> returns the current drawing color (the palette
entry).
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetColor"/>
<link id="SetBkColor"/>
</seealso>
</element>

<element name="GetDefaultPalette">
<short>Return default palette</short>
<descr>
<var>GetDefaultPalette</var> returns the current palette in <var>Palette</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetColor"/>
<link id="GetBkColor"/>
</seealso>
</element>

<element name="GetDriverName">
<short>Return current driver name</short>
<descr>
<var>GetDriverName</var> returns a string containing the name of the
current driver.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetModeName"/>
<link id="InitGraph"/>
</seealso>
</element>

<element name="GetFillPattern">
<short>Return current fill pattern</short>
<descr>
<var>GetFillPattern</var> returns an array with the current fill-pattern  in <var>FillPattern</var>
</descr>
<errors>
None
</errors>
<seealso>
<link id="SetFillPattern"/>
</seealso>
</element>

<element name="GetFillSettings">
<short>Return current fill settings</short>
<descr>
<var>GetFillSettings</var> returns the current fill-settings in
<var>FillInfo</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetFillPattern"/>
</seealso>
</element>

<element name="GetGraphMode">
<short>Get current graphical modus</short>
<descr>
<var>GetGraphMode</var> returns the current graphical modus
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
</seealso>
</element>

<element name="GetImage">
<short>Return a copy of a screen area</short>
<descr>
<var>GetImage</var>
Places a copy of the screen area <var>(X1,Y1)</var> to <var>X2,Y2</var> in <var>BitMap</var>
</descr>
<errors>
Bitmap must have enough room to contain the image.
</errors>
<seealso>
<link id="ImageSize"/>,
<link id="PutImage"/>
</seealso>
</element>

<element name="GetLineSettings">
<short>Get current line drawing settings</short>
<descr>
<var>GetLineSettings</var> returns the current Line settings in
<var>LineInfo</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetLineStyle"/>
</seealso>
</element>

<element name="GetMaxColor">
<short>return maximum number of colors</short>
<descr>
<var>GetMaxColor</var> returns the maximum color-number which can be 
set with <var>SetColor</var>. Contrary to Turbo Pascal, this color isn't always 
guaranteed to be white (for instance in 256+ color modes).
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetColor"/>,
<link id="GetPaletteSize"/>
</seealso>
</element>

<element name="GetMaxMode">
<short>Return biggest mode for the current driver</short>
<descr>
<var>GetMaxMode</var> returns the highest modus for
the current driver.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
</seealso>
</element>

<element name="GetMaxX">
<short>Return maximal X coordinate</short>
<descr>
<var>GetMaxX</var> returns the maximum horizontal screen
length
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetMaxY"/>
</seealso>
</element>

<element name="GetMaxY">
<short>Return maximal Y coordinate</short>
<descr>
<var>GetMaxY</var> returns the maximum number of screen
lines
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetMaxY"/>
</seealso>
</element>

<element name="GetModeName">
<short>Return description a modus</short>
<descr>
<var>GetModeName</var> Returns a string with the name of modus
<var>Modus</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetDriverName"/>
<link id="InitGraph"/>
</seealso>
</element>

<element name="GetModeRange">
<short>Return lowest and highest modus of current driver</short>
<descr>
<var>GetModeRange</var> returns the Lowest and Highest modus of the currently
installed driver. If no modes are supported for this driver, HiModus
will be -1.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
</seealso>
</element>

<element name="GetPalette">
<short>Return current palette</short>
<descr>
<var>GetPalette</var> returns in <var>Palette</var> the current palette.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetPaletteSize"/>
<link id="SetPalette"/>
</seealso>
</element>

<element name="GetPaletteSize">
<short>Return maximal number of entries in current palette </short>
<descr>
<var>GetPaletteSize</var> returns the maximum
number of entries in the current palette.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetPalette"/>,
<link id="SetPalette"/>
</seealso>
</element>

<element name="GetPixel">
<short>Return color of pixel</short>
<descr>
<var>GetPixel</var> returns the color of the point at <var>(X,Y)</var> 
</descr>
<errors>
None.
</errors>
<seealso>
<link id="PutPixel"/>
</seealso>
</element>

<element name="GetTextSettings">
<short>Return current text style</short>
<descr>
<var>GetTextSettings</var> returns the current text style settings : The font,
direction, size and placement as set with <var>SetTextStyle</var> and
<var>SetTextJustify</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetTextStyle"/>
<link id="SetTextJustify"/>
</seealso>
</element>

<element name="GetViewSettings">
<short>Return current viewport</short>
<descr>
<var>GetViewSettings</var> returns the current viewport and clipping settings in
<var>ViewPort</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetViewPort"/>
</seealso>
</element>

<element name="GetX">
<short>Return current cursor X position</short>
<descr>
<var>GetX</var> returns the X-coordinate of the current position of
the graphical pointer
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetY"/>
</seealso>
</element>

<element name="GetY">
<short>Return current cursor Y position</short>
<descr>
<var>GetY</var> returns the Y-coordinate of the current position of
the graphical pointer
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetX"/>
</seealso>
</element>

<element name="GraphDefaults">
<short>Reset graphical mode to defaults</short>
<descr>
<var>GraphDefaults</var> resets all settings for viewport, palette,
foreground and background pattern, line-style and pattern, filling style,
filling color and pattern, font, text-placement and
text size.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetViewPort"/>
<link id="SetFillStyle"/>
<link id="SetColor"/>,
<link id="SetBkColor"/>
<link id="SetLineStyle"/>
</seealso>
</element>

<element name="GraphErrorMsg">
<short>Return a description of an error</short>
<descr>
<var>GraphErrorMsg</var>
returns a string describing the error <var>Errorcode</var>. This string can be
used to let the user know what went wrong.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GraphResult"/>
</seealso>
</element>

<element name="GraphResult">
<short>Result of last graphical operation</short>
<descr>
<p>
<var>GraphResult</var> returns an error-code for
the last graphical operation. If the returned value is zero, all went well.
A value different from zero means an error has occurred.
besides all operations which draw something on the screen, 
the following procedures also can produce a <var>GraphResult</var> different from
zero:
</p>
<ul>
<li><link id="InstallUserFont"/></li>
<li><link id="SetLineStyle"/></li>
<li><link id="SetWriteMode"/></li>
<li><link id="SetFillStyle"/></li>
<li><link id="SetTextJustify"/></li>
<li><link id="SetGraphMode"/></li>
<li><link id="SetTextStyle"/></li>
</ul>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GraphErrorMsg"/>
</seealso>
</element>

<element name="ImageSize">
<short>Return size to store image</short>
<descr>
<var>ImageSize</var> returns
the number of bytes needed to store the image in the rectangle defined by
<var>(X1,Y1)</var> and <var>(X2,Y2)</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetImage"/>
</seealso>
</element>

<element name="InitGraph">
<short>Initialize grpahical system</short>
<descr>
<p>
<var>InitGraph</var> initializes the <var>graph</var> package.
<var>GraphDriver</var> has two valid values: <var>GraphDriver=0</var> which
performs an auto detect and initializes the highest possible mode with the most
colors. 1024x768x64K is the highest possible resolution supported by the
driver, if you need a higher resolution, you must edit <file>MODES.PPI</file>. 
If you need another mode, then set <var>GraphDriver</var> to a value different
from zero
and <var>graphmode</var> to the mode you wish (VESA modes where 640x480x256
is <var>101h</var> etc.).
<var>PathToDriver</var> is only needed, if you use the BGI fonts from
Borland. Free Pascal does not offer BGI fonts like Borland, these must be
obtained separately. 
</p>
<p>
Example code:
</p>
<code>
var 
   gd,gm : integer; 
   PathToDriver : string; 
begin 
   gd:=detect; { highest possible resolution } 
   gm:=0; { not needed, auto detection } 
   PathToDriver:='C:\PP\BGI'; { path to BGI fonts, 
                                drivers aren't needed } 
   InitGraph(gd,gm,PathToDriver); 
   if GraphResult&lt;&gt;grok then 
     halt; ..... { whatever you need } 
   CloseGraph; { restores the old graphics mode } 
end.
</code>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Modes"/>
<link id="DetectGraph"/>
<link id="CloseGraph"/>
<link id="GraphResult"/>
</seealso>
</element>

<element name="InstallUserDriver">
<short>Install a user driver</short>
<descr>
<var>InstallUserDriver</var> 
adds the device-driver <var>DriverPath</var> to the list of .BGI
drivers. <var>AutoDetectPtr</var> is a pointer to a possible auto-detect function.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
<link id="InstallUserFont"/>
</seealso>
</element>

<element name="InstallUserFont">
<short>Install a user-defined font</short>
<descr>
<var>InstallUserFont</var> adds the font in <var>FontPath</var> to the list of fonts
of the .BGI system.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
<link id="InstallUserDriver"/>
</seealso>
</element>

<element name="Line">
<short>Draw a line between 2 points</short>
<descr>
<var>Line</var> draws a line starting from
<var>(X1,Y1</var> to <var>(X2,Y2)</var>, in the current line style and color. The
current position is put to <var>(X2,Y2)</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="LineRel"/>
<link id="LineTo"/>
</seealso>
</element>

<element name="LineRel">
<short>Draw a line starting from current position in given direction</short>
<descr>
<var>LineRel</var> draws a line starting from
the current pointer position to the point<var>(DX,DY)</var>, \textbf{relative} to the
current position, in the current line style and color. The Current Position
is set to the endpoint of the line.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Line"/>
<link id="LineTo"/>
</seealso>
</element>

<element name="LineTo">
<short>Draw a line starting from current position to a given point</short>
<descr>
<var>LineTo</var> draws a line starting from
the current pointer position to the point<var>(DX,DY</var>, \textbf{relative} to the
current position, in the current line style and color. The Current position
is set to the end of the line.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="LineRel"/>
<link id="Line"/>
</seealso>
</element>

<element name="MoveRel">
<short>Move cursor relative to current position</short>
<descr>
<var>MoveRel</var> moves the pointer to the
point <var>(DX,DY)</var>, relative to the current pointer
position
</descr>
<errors>
None.
</errors>
<seealso>
<link id="MoveTo"/>
</seealso>
</element>

<element name="MoveTo">
<short>Move cursor to absolute position.</short>
<descr>
<var>MoveTo</var> moves the pointer to the
point <var>(X,Y)</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="MoveRel"/>
</seealso>
</element>

<element name="OutText">
<short>Write text on the screen at the current location.</short>
<descr>
<var>OutText</var> puts <var>TextString</var> on the screen, at the current pointer
position, using the current font and text settings. The current position is
moved to the end of the text.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="OutTextXY"/>
</seealso>
</element>

<element name="OutTextXY">
<short>Write text on the screen on given position</short>
<descr>
<var>OutText</var> puts <var>TextString</var> on the screen, at position <var>(X,Y)</var>,
using the current font and text settings. The current position is
moved to the end of the text.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="OutText"/>
</seealso>
</element>

<element name="PieSlice">
<short>Draw a pie-slice</short>
<descr>
<var>PieSlice</var>
draws and fills a sector of a circle with center <var>(X,Y)</var> and radius 
<var>Radius</var>, starting at angle <var>Start</var> and ending at angle <var>Stop</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Arc"/>
<link id="Circle"/>
<link id="Sector"/>
</seealso>
</element>

<element name="PutImage">
<short>Draw an in-memory image to the screen</short>
<descr>
<p>
<var>PutImage</var>
Places the bitmap in <var>Bitmap</var> on the screen at <var>(X1,Y1)</var>. <var>How</var>
determines how the bitmap will be placed on the screen. Possible values are :
</p>
<ul>
<li>CopyPut</li>
<li>XORPut</li>
<li>ORPut</li>
<li>AndPut</li>
<li>NotPut</li>
</ul>
</descr>
<errors>
None
</errors>
<seealso>
<link id="ImageSize"/>
<link id="GetImage"/>
</seealso>
</element>

<element name="PutPixel">
<short>Draw a pixel on the screen</short>
<descr>
Puts a point at
<var>(X,Y)</var> using color <var>Color</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetPixel"/>
</seealso>
</element>

<element name="Rectangle">
<short>Draw a rectangle on the screen.</short>
<descr>
Draws a rectangle with
corners at <var>(X1,Y1)</var> and <var>(X2,Y2)</var>, using the current color and
style.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Bar"/>
<link id="Bar3D"/>
</seealso>
</element>

<element name="RegisterBGIDriver">
<short>Register a new BGI driver.</short>
<descr>
Registers a user-defined BGI driver
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InstallUserDriver"/>,
<link id="RegisterBGIFont"/>
</seealso>
</element>

<element name="RegisterBGIFont">
<short>Register a new BGI font</short>
<descr>
Registers a user-defined BGI driver
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InstallUserFont"/>,
<link id="RegisterBGIDriver"/>
</seealso>
</element>

<element name="RestoreCRTMode">
<short>Restore text screen</short>
<descr>
<p>
Restores the screen modus which was active before
the graphical modus was started.
</p>
<p>
To get back to the graph mode you were last in, you can use
<var>SetGraphMode(GetGraphMode)</var>
</p>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
</seealso>
</element>

<element name="Sector">
<short>Draw and fill a sector of an ellipse</short>
<descr>
<var>Sector</var>
draws and fills a sector of an ellipse  with center <var>(X,Y)</var> and radii 
<var>XRadius</var> and <var>YRadius</var>, starting at angle <var>Start</var> and ending at angle <var>Stop</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="Arc"/>
<link id="Circle"/>
<link id="PieSlice"/>
</seealso>
</element>

<element name="SetActivePage">
<short>Set active graphical page</short>
<descr>
Sets <var>Page</var> as the active page 
for all graphical output.
</descr>
<errors>
None.
</errors>
<seealso>
</seealso>
</element>

<element name="SetAllPalette">
<short>Specify a complete new palette</short>
<descr>
Sets the current palette to
<var>Palette</var>. <var>Palette</var> is an untyped variable, usually pointing to a
record of type <var>PaletteType</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetPalette"/>
</seealso>
</element>

<element name="SetAspectRatio">
<short>Set aspect ration of the screen</short>
<descr>
Sets the aspect ratio of the
current screen to <var>Xasp/Yasp</var>.
</descr>
<errors>
None
</errors>
<seealso>
<link id="InitGraph"/>
<link id="GetAspectRatio"/>
</seealso>
</element>

<element name="SetBkColor">
<short>Set background drawing color</short>
<descr>
Sets the background color to <var>Color</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetBkColor"/>
<link id="SetColor"/>
<link id="SetWriteMode"/>
</seealso>
</element>

<element name="SetColor">
<short>Set foreground drawing color</short>
<descr>
Sets the foreground color to <var>Color</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetColor"/>
<link id="SetBkColor"/>
<link id="SetWriteMode"/>
</seealso>
</element>

<element name="SetFillPattern">
<short>Set drawing fill pattern</short>
<descr>
<var>SetFillPattern</var> sets the current fill-pattern to <var>FillPattern</var>, and
the filling color to <var>Color</var>
The pattern is an 8x8 raster, corresponding to the 64 bits in
<var>FillPattern</var>.
</descr>
<errors>
None
</errors>
<seealso>
<link id="GetFillPattern"/>
<link id="SetFillStyle"/>
<link id="SetWriteMode"/>
</seealso>
</element>

<element name="SetFillStyle">
<short>Set drawing fill style</short>
<descr>
<p>
<var>SetFillStyle</var> sets the filling pattern and color to one of the
predefined filling patterns. <var>Pattern</var> can be one of the following predefined
constants :
</p>
<dl>
<dt>EmptyFill</dt><dd>Uses backgroundcolor.</dd>
<dt>SolidFill</dt><dd> Uses filling color</dd>
<dt>LineFill</dt><dd> Fills with horizontal lines.</dd>
<dt>ltSlashFill</dt><dd> Fills with lines from left-under to top-right.</dd>
<dt>SlashFill</dt><dd> Idem as previous, thick lines.</dd>
<dt>BkSlashFill</dt><dd> Fills with thick lines from left-Top to bottom-right.</dd>
<dt>LtBkSlashFill</dt><dd> Idem as previous, normal lines.</dd>
<dt>HatchFill</dt><dd>  Fills with a hatch-like pattern.</dd>
<dt>XHatchFill</dt><dd> Fills with a hatch pattern, rotated 45 degrees.</dd>
<dt>InterLeaveFill</dt><dd> </dd>
<dt>WideDotFill</dt><dd> Fills with dots, wide spacing.</dd>
<dt>CloseDotFill</dt><dd> Fills with dots, narrow spacing.</dd>
<dt>UserFill</dt><dd> Fills with a user-defined pattern.</dd>
</dl>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetFillPattern"/>
<link id="SetWriteMode"/>
</seealso>
</element>

<element name="SetGraphBufSize">
<short>Set the graphical buffer size (do not use)</short>
<descr>
<var>SetGraphBufSize</var> is a dummy function which does not do 
anything; it is no longer needed.
</descr>
<errors>
None.
</errors>
<seealso>

</seealso>
</element>

<element name="SetGraphMode">
<short>Set graphical mode</short>
<descr>
<var>SetGraphMode</var> sets the graphical mode and clears the screen.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="InitGraph"/>
</seealso>
</element>

<element name="SetLineStyle">
<short>Set line drawing style</short>
<descr>
<p>
<var>SetLineStyle</var>
sets the drawing style for lines. You can specify a <var>LineStyle</var> which is
one of the following pre-defined constants:
</p>
<dl>
<dt>Solidln</dt><dd> draws a solid line.</dd>
<dt>Dottedln</dt><dd> Draws a dotted line.</dd>
<dt>Centerln</dt><dd> draws a non-broken centered line.</dd>
<dt>Dashedln</dt><dd> draws a dashed line.</dd>
<dt>UserBitln</dt><dd> Draws a User-defined bit pattern.</dd>
</dl>
<p>
If <var>UserBitln</var> is specified then <var>Pattern</var> contains the bit pattern.
In all another cases, <var>Pattern</var> is ignored. The parameter <var>Width</var> 
indicates how thick the line should be. You can specify one of the following
pre-defined constants:
</p>
<dl>
<dt>NormWidth</dt><dd>Normal line width</dd>
<dt>ThickWidth</dt><dd>Double line width</dd>
</dl>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetLineSettings"/>
<link id="SetWriteMode"/>
</seealso>
</element>

<element name="SetPalette">
<short>Set palette entry using color constant</short>
<descr>
<var>SetPalette</var> changes the <var>ColorNr</var>-th entry in the palette to
<var>NewColor</var>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetAllPalette"/>
<link id="SetRGBPalette"/>
</seealso>
</element>

<element name="SetRGBPalette">
<short>Set palette entry using RGB value</short>
<descr>
<var>SetRGBPalette</var> sets the <var>ColorNr</var>-th entry in the palette to the
color with RGB-values <var>Red, Green Blue</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetAllPalette"/>,
<link id="SetPalette"/>
</seealso>
</element>

<element name="SetTextJustify">
<short>Set text placement style</short>
<descr>
<p>
<var>SetTextJustify</var> controls the placement of new text, relative to the 
(graphical) cursor position. <var>Horizontal</var> controls horizontal placement, and can be
one of the following pre-defined constants:
</p>
<dl>
<dt>LeftText</dt><dd>Text is set left of the pointer.</dd>
<dt>CenterText</dt><dd>Text is set centered horizontally on the pointer.</dd>
<dt>RightText</dt><dd>Text is set to the right of the pointer.</dd>
</dl>
<p>
<var>Vertical</var> controls the vertical placement of the text, relative to the
(graphical) cursor position. Its value can be one of the following
pre-defined constants :
</p>
<dl>
<dt>BottomText</dt><dd>Text is placed under the pointer.</dd>
<dt>CenterText</dt><dd>Text is placed centered vertically on the pointer.</dd>
<dt>TopText</dt><dd>Text is placed above the pointer.</dd>
</dl>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="OutText"/>
<link id="OutTextXY"/>
</seealso>
</element>

<element name="SetTextStyle">
<short>Set text style</short>
<descr>
<p>
<var>SetTextStyle</var> controls the style of text to be put on the screen.
pre-defined constants for <var>Font</var> are:
</p>
<dl>
<dt>DefaultFont</dt><dd>The default font</dd>
<dt>TriplexFont</dt><dd>A special font</dd>
<dt>SmallFont</dt><dd>A smaller font</dd>
<dt>SansSerifFont</dt><dd>A sans-serif font (like Arial)</dd>
<dt>GothicFont</dt><dd>A gothic font</dd>
<dt>ScriptFont</dt><dd>A script font</dd>
<dt>SimpleFont</dt><dd>A simple font</dd>
<dt>TSCRFont</dt><dd>Terminal screen font</dd>
<dt>LCOMFont</dt><dd>?</dd>
<dt>EuroFont</dt><dd>?</dd>
<dt>BoldFont</dt><dd>A bold typeface font</dd>
</dl>
<p>
Pre-defined constants for <var>Direction</var> are :
</p>
<dl>
<dt>HorizDir</dt><dd>Write horizontal</dd>
<dt>VertDir</dt><dd>Write vertical</dd>
</dl>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetTextSettings"/> 
</seealso>
</element>

<element name="SetUserCharSize">
<short>Set user character size for vector font</short>
<descr>
Sets the width and height of vector-fonts. The horizontal size is given
by <var>Xasp1/Xasp2</var>, and the vertical size by <var>Yasp1/Yasp2</var>.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetTextStyle"/>
</seealso>
</element>

<element name="SetViewPort">
<short>Set the graphical drawing window</short>
<descr>
Sets the current graphical viewport (window) to the rectangle defined by
the top-left corner <var>(X1,Y1)</var> and the bottom-right corner <var>(X2,Y2)</var>.
If <var>Clip</var> is true, anything drawn outside the viewport (window) will be
clipped (i.e. not drawn). Coordinates specified after this call are relative
to the top-left corner of the viewport.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="GetViewSettings"/>
</seealso>
</element>

<element name="SetVisualPage">
<short>Set video page which is displayed.</short>
<descr>
<var>SetVisualPage</var> sets the video page to page number <var>Page</var>. 
</descr>
<errors>
None
</errors>
<seealso>
<link id="SetActivePage"/>
</seealso>
</element>

<element name="SetWriteMode">
<short>Specify binary operation to perform when drawing on screen</short>
<descr>
<p>
<var>SetWriteMode</var> controls the drawing of lines on the screen. It controls
the binary operation used when drawing lines on the screen. <var>Mode</var> can
be one of the following pre-defined constants:
</p>
<dl>
<dt>CopyPut</dt><dd>Draw as specified using current bitmask and color</dd>
<dt>XORPut</dt><dd>Draw XOR-ing current bitmask and color</dd>
</dl>
</descr>
<errors>
None.
</errors>
<seealso>
<link id="SetColor"/>
<link id="SetBkColor"/>
<link id="SetLineStyle"/>
<link id="SetFillStyle"/>
</seealso>
</element>

<element name="TextHeight">
<short>Return height (in pixels) of the given string</short>
<descr>
<var>TextHeight</var> returns the height (in pixels) of the string <var>S</var> in
the current font and text-size.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="TextWidth"/>
</seealso>
</element>

<element name="TextWidth">
<short>Return width (in pixels) of the given string</short>
<descr>
<var>TextHeight</var> returns the width (in pixels) of the string <var>S</var> in
the current font and text-size.
</descr>
<errors>
None.
</errors>
<seealso>
<link id="TextHeight"/>
</seealso>
</element>

<!-- range type Visibility: default -->
<element name="smallint">
<short>Type redefinition</short>
</element>

<!-- record type Visibility: default -->
<element name="TResolutionRec">
<short>Record describing resolution</short>
</element>

<!-- variable Visibility: default -->
<element name="TResolutionRec.x">
<short>Horizontal resolution</short>
</element>

<!-- variable Visibility: default -->
<element name="TResolutionRec.y">
<short>Vertical resolution</short>
</element>

<!-- constant Visibility: default -->
<element name="maxsmallint">
<short>Maximum value for smallint type</short>
</element>

<!-- constant Visibility: default -->
<element name="grOk">
<short>Graphical operation went OK.</short>
</element>

<!-- constant Visibility: default -->
<element name="grNoInitGraph">
<short>Error: Graphical system not initialized</short>
</element>

<!-- constant Visibility: default -->
<element name="grNotDetected">
<short>Error: Graphics device not detected.</short>
</element>

<!-- constant Visibility: default -->
<element name="grFileNotFound">
<short>Error: File for driver not found.</short>
</element>

<!-- constant Visibility: default -->
<element name="grInvalidDriver">
<short>Error: Invalid driver specified</short>
</element>

<!-- constant Visibility: default -->
<element name="grNoLoadMem">
<short>Error: Memory error.</short>
</element>

<!-- constant Visibility: default -->
<element name="grNoScanMem">
<short>Error: Could not allocate memory for scan</short>
</element>

<!-- constant Visibility: default -->
<element name="grNoFloodMem">
<short>Error: Could not allocate memory for flood operation.</short>
</element>

<!-- constant Visibility: default -->
<element name="grFontNotFound">
<short>Error: font description file not found.</short>
</element>

<!-- constant Visibility: default -->
<element name="grNoFontMem">
<short>Error: Not enough memory to load font.</short>
</element>

<!-- constant Visibility: default -->
<element name="grInvalidMode">
<short>Error: Invalid mode specified.</short>
</element>

<!-- constant Visibility: default -->
<element name="grError">
<short>Error: Unknown error.</short>
</element>

<!-- constant Visibility: default -->
<element name="grIOerror">
<short>Error: Unspecified Input/Output error.</short>
</element>

<!-- constant Visibility: default -->
<element name="grInvalidFont">
<short>Error: Invalid font description</short>
</element>

<!-- constant Visibility: default -->
<element name="grInvalidFontNum">
<short>Error: Invalid font number</short>
</element>

<!-- constant Visibility: default -->
<element name="grInvalidVersion">
<short>Error: Invalid version.</short>
</element>

<!-- constant Visibility: default -->
<element name="black">
<short>Color code: black.</short>
</element>

<!-- constant Visibility: default -->
<element name="blue">
<short>Color code: blue</short>
</element>

<!-- constant Visibility: default -->
<element name="green">
<short>Color code: green</short>
</element>

<!-- constant Visibility: default -->
<element name="cyan">
<short>Color code: Cyan</short>
</element>

<!-- constant Visibility: default -->
<element name="red">
<short>Color code: Red</short>
</element>

<!-- constant Visibility: default -->
<element name="magenta">
<short>Color code: Magenta</short>
</element>

<!-- constant Visibility: default -->
<element name="brown">
<short>Color code: brown</short>
</element>

<!-- constant Visibility: default -->
<element name="lightgray">
<short>Color code: Light gray</short>
</element>

<!-- constant Visibility: default -->
<element name="darkgray">
<short>Color code: Dark gray</short>
</element>

<!-- constant Visibility: default -->
<element name="lightblue">
<short>Color code: Light blue</short>
</element>

<!-- constant Visibility: default -->
<element name="lightgreen">
<short>Color code: Light green</short>
</element>

<!-- constant Visibility: default -->
<element name="lightcyan">
<short>Color code: Light cyan</short>
</element>

<!-- constant Visibility: default -->
<element name="lightred">
<short>Color code: Light red</short>
</element>

<!-- constant Visibility: default -->
<element name="lightmagenta">
<short>Color code: Light magenta</short>
</element>

<!-- constant Visibility: default -->
<element name="yellow">
<short>Color code: Yellow</short>
</element>

<!-- constant Visibility: default -->
<element name="white">
<short>Color code: White</short>
</element>

<!-- constant Visibility: default -->
<element name="EGABlack">
<short>Color code: EGA Black</short>
</element>

<!-- constant Visibility: default -->
<element name="EGABlue">
<short>Color code: EGA blue</short>
</element>

<!-- constant Visibility: default -->
<element name="EGAGreen">
<short>Color code: EGA green</short>
</element>

<!-- constant Visibility: default -->
<element name="EGACyan">
<short>Color code: EGA cyan</short>
</element>

<!-- constant Visibility: default -->
<element name="EGARed">
<short>Color code: EGA red</short>
</element>

<!-- constant Visibility: default -->
<element name="EGAMagenta">
<short>Color code: EGA magenta</short>
</element>

<!-- constant Visibility: default -->
<element name="EGALightgray">
<short>Color code: EGA Light gray</short>
</element>

<!-- constant Visibility: default -->
<element name="EGABrown">
<short>Color code: EGA brown</short>
</element>

<!-- constant Visibility: default -->
<element name="EGADarkgray">
<short>Color code: EGA dark gray</short>
</element>

<!-- constant Visibility: default -->
<element name="EGALightblue">
<short>Color code: EGA Light blue</short>
</element>

<!-- constant Visibility: default -->
<element name="EGALightgreen">
<short>Color code: EGA Light green</short>
</element>

<!-- constant Visibility: default -->
<element name="EGALightcyan">
<short>Color code: EGA Light cyan</short>
</element>

<!-- constant Visibility: default -->
<element name="EGALightred">
<short>Color code: EGA light red</short>
</element>

<!-- constant Visibility: default -->
<element name="EGALightmagenta">
<short>Color code: EGA light magenta</short>
</element>

<!-- constant Visibility: default -->
<element name="EGAYellow">
<short>Color code: EGA yellow</short>
</element>

<!-- constant Visibility: default -->
<element name="EGAWhite">
<short>Color code: EGA white</short>
</element>

<!-- constant Visibility: default -->
<element name="SolidLn">
<short>Line style: Solid line</short>
</element>

<!-- constant Visibility: default -->
<element name="DottedLn">
<short>Line style: Dotted line</short>
</element>

<!-- constant Visibility: default -->
<element name="CenterLn">
<short>Line style: centered line</short>
</element>

<!-- constant Visibility: default -->
<element name="DashedLn">
<short>Line style: dashed line</short>
</element>

<!-- constant Visibility: default -->
<element name="UserBitLn">
<short>Line style: User defined</short>
</element>

<!-- constant Visibility: default -->
<element name="NormWidth">
<short>Line width: Normal width</short>
</element>

<!-- constant Visibility: default -->
<element name="ThickWidth">
<short>Line width: double width</short>
</element>

<!-- constant Visibility: default -->
<element name="DefaultFont">
<short>Font number: Normal font</short>
</element>

<!-- constant Visibility: default -->
<element name="TriplexFont">
<short>Font number: Triplex font</short>
</element>

<!-- constant Visibility: default -->
<element name="SmallFont">
<short>Font number: Small font</short>
</element>

<!-- constant Visibility: default -->
<element name="SansSerifFont">
<short>Font number: Sans Serif font</short>
</element>

<!-- constant Visibility: default -->
<element name="GothicFont">
<short>Font number: Gothic font</short>
</element>

<!-- constant Visibility: default -->
<element name="ScriptFont">
<short>Font number: Script font</short>
</element>

<!-- constant Visibility: default -->
<element name="SimpleFont">
<short>Font number: Simple font</short>
</element>

<!-- constant Visibility: default -->
<element name="TSCRFont">
<short>Font number: Terminal font</short>
</element>

<!-- constant Visibility: default -->
<element name="LCOMFont">
<short>Font number: ?</short>
</element>

<!-- constant Visibility: default -->
<element name="EuroFont">
<short>Font number: ?</short>
</element>

<!-- constant Visibility: default -->
<element name="BoldFont">
<short>Font number: Bold font.</short>
</element>

<!-- constant Visibility: default -->
<element name="HorizDir">
<short>Text write direction: Horizontal</short>
</element>

<!-- constant Visibility: default -->
<element name="VertDir">
<short>Text write direction: Vertical</short>
</element>

<!-- constant Visibility: default -->
<element name="UserCharSize">
<short>User character size</short>
</element>

<!-- constant Visibility: default -->
<element name="ClipOn">
<short>Viewport clipping on</short>
</element>

<!-- constant Visibility: default -->
<element name="ClipOff">
<short>Viewport clipping off</short>
</element>

<!-- constant Visibility: default -->
<element name="TopOn">
<short>Top on</short>
</element>

<!-- constant Visibility: default -->
<element name="TopOff">
<short>Top off</short>
</element>

<!-- constant Visibility: default -->
<element name="EmptyFill">
<short>Fill style: Do not fill</short>
</element>

<!-- constant Visibility: default -->
<element name="SolidFill">
<short>Fill style: Solid fill.</short>
</element>

<!-- constant Visibility: default -->
<element name="LineFill">
<short>Fill style: Fill using horizontal lines</short>
</element>

<!-- constant Visibility: default -->
<element name="LtSlashFill">
<short>Fill style: Light diagonal (slash) lines</short>
</element>

<!-- constant Visibility: default -->
<element name="SlashFill">
<short>Fill style: Diagonal (slash) lines </short>
</element>

<!-- constant Visibility: default -->
<element name="BkSlashFill">
<short>Fill style: Diagonal (backslash) lines</short>
</element>

<!-- constant Visibility: default -->
<element name="LtBkSlashFill">
<short>Fill style: Light diagonal (backslash) lines</short>
</element>

<!-- constant Visibility: default -->
<element name="HatchFill">
<short>Fill style: Hatch lines</short>
<descr>
</descr>
</element>

<!-- constant Visibility: default -->
<element name="XHatchFill">
<short>Fill style: Heavy hatch lines</short>
</element>

<!-- constant Visibility: default -->
<element name="InterleaveFill">
<short>Fill style: Interleaving lines</short>
</element>

<!-- constant Visibility: default -->
<element name="WideDotFill">
<short>Fill style: Widely spaced dotted lines</short>
</element>

<!-- constant Visibility: default -->
<element name="CloseDotFill">
<short>Fill style: Closely spaced dotted lines</short>
</element>

<!-- constant Visibility: default -->
<element name="UserFill">
<short>Fill style: User-defined fill.</short>
</element>

<!-- constant Visibility: default -->
<element name="NormalPut">
<short>Draw operation: Use Normal (copy) operation </short>
</element>

<!-- constant Visibility: default -->
<element name="CopyPut">
<short>Draw operation: use Copy</short>
</element>

<!-- constant Visibility: default -->
<element name="XORPut">
<short>Draw operation: use XOR</short>
</element>

<!-- constant Visibility: default -->
<element name="OrPut">
<short>Draw operation: use OR</short>
</element>

<!-- constant Visibility: default -->
<element name="AndPut">
<short>Draw operation: use AND</short>
</element>

<!-- constant Visibility: default -->
<element name="NotPut">
<short>Draw operation: use NOT</short>
</element>

<!-- constant Visibility: default -->
<element name="LeftText">
<short>Horizontal text alignment: Align text left</short>
</element>

<!-- constant Visibility: default -->
<element name="CenterText">
<short>Horizontal text alignment: Center text</short>
</element>

<!-- constant Visibility: default -->
<element name="RightText">
<short>Horizontal text alignment: Align text right</short>
</element>

<!-- constant Visibility: default -->
<element name="BottomText">
<short>Vertical text alignment: Align text to bottom</short>
</element>

<!-- constant Visibility: default -->
<element name="TopText">
<short>Vertical text alignment: Align text to top</short>
</element>

<!-- constant Visibility: default -->
<element name="CurrentDriver">
<short>Currently used driver</short>
</element>

<!-- constant Visibility: default -->
<element name="Detect">
<short>Mode: Detect mode.</short>
</element>

<!-- constant Visibility: default -->
<element name="LowRes">
<short>Mode: Low resolution.</short>
</element>

<!-- constant Visibility: default -->
<element name="HercMono">
<short>Mode: Hercules, mono color</short>
</element>

<!-- constant Visibility: default -->
<element name="VGA">
<short>Mode: VGA graphics adaptor.</short>
</element>

<!-- constant Visibility: default -->
<element name="VESA">
<short>Mode: VESA graphics adaptor.</short>
</element>

<!-- constant Visibility: default -->
<element name="D1bit">
<short>Mode: Depth 1 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D2bit">
<short>Mode: Depth 2 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D4bit">
<short>Mode: Depth 4 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D6bit">
<short>Mode: Depth 6 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D8bit">
<short>Mode: Depth 8 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D12bit">
<short>Mode: Depth 12 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D15bit">
<short>Mode: Depth 15 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D16bit">
<short>Mode: Depth 16 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D24bit">
<short>Mode: Depth 24 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D32bit">
<short>Mode: Depth 32 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="D64bit">
<short>Mode: Depth 64 bit</short>
</element>

<!-- constant Visibility: default -->
<element name="lowNewDriver">
<short>Mode: lowest number for new driver</short>
</element>

<!-- constant Visibility: default -->
<element name="highNewDriver">
<short>Mode: highest number for new driver</short>
</element>

<!-- constant Visibility: default -->
<element name="Default">
<short>Default mode</short>
</element>

<!-- constant Visibility: default -->
<element name="VGALo">
<short>Mode: VGA low resolution (640x200)</short>
</element>

<!-- constant Visibility: default -->
<element name="VGAMed">
<short>Mode: VGA medium resolution (640x350)</short>
</element>

<!-- constant Visibility: default -->
<element name="VGAHi">
<short>Mode: VGA high resolution (640x480)</short>
</element>

<!-- constant Visibility: default -->
<element name="detectMode">
<short>Mode: Autodetect optimal mode</short>
</element>

<!-- constant Visibility: default -->
<element name="m320x200">
<short>Mode: Resolution 320x200</short>
</element>

<!-- constant Visibility: default -->
<element name="m320x256">
<short>Mode: Resolution 320x256</short>
</element>

<!-- constant Visibility: default -->
<element name="m320x400">
<short>Mode: Resolution 320x400</short>
</element>

<!-- constant Visibility: default -->
<element name="m512x384">
<short>Mode: Resolution 512x384</short>
</element>

<!-- constant Visibility: default -->
<element name="m640x200">
<short>Mode: Resolution 640x200</short>
</element>

<!-- constant Visibility: default -->
<element name="m640x256">
<short>Mode: Resolution 640x256</short>
</element>

<!-- constant Visibility: default -->
<element name="m640x350">
<short>Mode: Resolution 640x350</short>
</element>

<!-- constant Visibility: default -->
<element name="m640x400">
<short>Mode: Resolution 640x400</short>
</element>

<!-- constant Visibility: default -->
<element name="m640x480">
<short>Mode: Resolution 640x480</short>
</element>

<!-- constant Visibility: default -->
<element name="m800x600">
<short>Mode: Resolution 800x600</short>
</element>

<!-- constant Visibility: default -->
<element name="m832x624">
<short>Mode: Resolution 832x624</short>
</element>

<!-- constant Visibility: default -->
<element name="m1024x768">
<short>Mode: Resolution 1024x768</short>
</element>

<!-- constant Visibility: default -->
<element name="m1280x1024">
<short>Mode: Resolution 1280x1024</short>
</element>

<!-- constant Visibility: default -->
<element name="m1600x1200">
<short>Mode: Resolution 1600x1200</short>
</element>

<!-- constant Visibility: default -->
<element name="m2048x1536">
<short>Mode: Resolution 2048x1536</short>
</element>

<!-- constant Visibility: default -->
<element name="lowNewMode">
<short>Mode: Lowest possible value of the new modes.</short>
</element>

<!-- constant Visibility: default -->
<element name="highNewMode">
<short>Mode: Highest possible value of the new modes.</short>
</element>

<!-- constant Visibility: default -->
<element name="resolutions">
<short>Array with actual resolutions of the new modes</short>
</element>

<!-- constant Visibility: default -->
<element name="HercMonoHi">
<short>Mode: Hercules card, monochrome, high resolution</short>
</element>

<!-- constant Visibility: default -->
<element name="MaxColors">
<short>Max amount of colors in a palette</short>
</element>

<!-- variable Visibility: default -->
<element name="LineSettingsType.thickness">
<short>Thickness of the drawn lines.</short>
</element>

<!-- alias type Visibility: default -->
<element name="graph_float">
<short>The platform's preferred floating point size for fast graph operations</short>
</element>

<!-- constant Visibility: default -->
<element name="fillpatternTable">
<short>Table with standard fill patterns</short>
</element>

<!-- procedure type Visibility: default -->
<element name="defpixelproc">
<short>Standard pixel drawing routine prototype.</short>
<descr>
This is the standard putpixel routine used by all function
drawing routines, it will use the viewport settings, as  
well as clip, and use the current foreground color to plot the desired pixel.
</descr>
</element>

<!-- function type Visibility: default -->
<element name="getpixelproc">
<short>Standard pixel fetching routine prototype</short>
</element>

<!-- procedure type Visibility: default -->
<element name="putpixelproc">
<short>Standard pixel drawing routine prototype</short>
</element>

<!-- procedure type Visibility: default -->
<element name="clrviewproc">
<short>Standard clearviewport routine prototype</short>
</element>

<!-- procedure type Visibility: default -->
<element name="putimageproc">
<short>Standard <link id="PutImage"/> procedure prototype.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="getimageproc">
<short>Standard <link id="GetImage"/> procedure prototype.</short>
</element>

<!-- function type Visibility: default -->
<element name="imagesizeproc">
<short>Standard <link id="ImageSize"/> calculation procedure prototype.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="graphfreememprc">
<short>Procedure prototype, used when heap memory is freed by the graph routines.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="graphgetmemprc">
<short>Procedure prototype, used when heap memory is needed by the graph routines.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="hlineproc">
<short>Standard procedure prototype to draw a single horizontal line</short>
</element>

<!-- procedure type Visibility: default -->
<element name="vlineproc">
<short>Standard procedure prototype to draw a single vertical line</short>
</element>

<!-- procedure type Visibility: default -->
<element name="patternlineproc">
<short>Standard procedure prototype to draw a patterned line</short>
</element>

<!-- procedure type Visibility: default -->
<element name="ellipseproc">
<short>Standard ellipse drawing routine prototype.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="lineproc">
<short>Standard line drawing routine prototype.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="getscanlineproc">
<short>Standard getscanline routine prototype</short>
<descr>
This routine is used for <link id="FloodFill"/>
It returns an entire screen scan line with a word for each 
pixel in the scanline. Also handy for GetImage.
</descr>
</element>

<!-- procedure type Visibility: default -->
<element name="setactivepageproc">
<short>Standard <link id="SetActivePage"/> procedure prototype.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="setvisualpageproc">
<short>Standard <link id="SetVisualPage"/> procedure prototype.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="initmodeproc">
<short>Standard routine prototype to initialize a mode.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="savestateproc">
<short>Standard routine prototype to save the graphical state before a mode is set.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="restorestateproc">
<short>Standard routine prototype to restore the graphical state at a closegraph call.</short>
</element>

<!-- procedure type Visibility: default -->
<element name="setrgbpaletteproc">
<short>This routine  prototype is a hook for <link id="SetRGBPalette"/></short>
</element>

<!-- procedure type Visibility: default -->
<element name="getrgbpaletteproc">
<short>This routine prototype is a hook for <link id="GetRGBPalette"/></short>
</element>

<!-- procedure type Visibility: default -->
<element name="SetAllPaletteProc">
<short>This routine prototype is a hook for <link id="SetAllPalette"/></short>
</element>

<!-- procedure type Visibility: default -->
<element name="OutTextXYProc">
<short>This routine prototype  is a hook for <link id="OutTextXY"/></short>
</element>

<!-- procedure type Visibility: default -->
<element name="CircleProc">
<short>Standard circle drawing routine prototype.</short>
</element>

<!-- pointer type Visibility: default -->
<element name="PModeInfo">
<short>Pointer to <link id="TModeInfo"/> record </short>
</element>

<!-- record type Visibility: default -->
<element name="TModeInfo">
<short>Record describing a graphical mode.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.DriverNumber">
<short>Number of the driver to be used in <link id="InitGraph"/>.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.ModeNumber">
<short>Number of the mode to be used in <link id="InitGraph"/>.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.internModeNumber">
<short>Internal mode number. Do not use.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.MaxColor">
<short>Max. number of colors in this mode.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.PaletteSize">
<short>Max number of palette entries in this mode.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.XAspect">
<short>X aspect (Aspect ratio correction factor) of mode </short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.YAspect">
<short>Y aspect (Aspect ratio correction factor) of mode</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.MaxX">
<short>Max number of pixels in horizontal direction (columns).</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.MaxY">
<short>Max number of pixels in vertical direction (rows).</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.DirectColor">
<short>Direct color mode ? (If False, uses palette)</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.Hardwarepages">
<short>Total number of image pages - 1</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.ModeName">
<short>Mode description.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.DirectPutPixel">
<short>Mode Putpixel routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.GetPixel">
<short>Mode Getpixel routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.PutPixel">
<short>Mode Putpixel routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.SetRGBPalette">
<short>Mode SetRGBPalette routine</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.GetRGBPalette">
<short>Mode GetRGBPalette routine</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.SetAllPalette">
<short>Mode SetAllPalette routine</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.SetVisualPage">
<short>Mode SetVisualPage routine</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.SetActivePage">
<short>Mode SetActivePage routine</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.ClearViewPort">
<short>Mode Clearviewport routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.PutImage">
<short>Mode PutImage routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.GetImage">
<short>Mode GetImage routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.ImageSize">
<short>Mode ImageSize routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.GetScanLine">
<short>Mode GetScanLine routine</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.Line">
<short>Mode Line drawing routine</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.InternalEllipse">
<short>Mode ellipse drawing routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.PatternLine">
<short>Mode PatternLine routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.HLine">
<short>Mode Horizontal full line drawing routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.VLine">
<short>Mode vertical full line drawing routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.Circle">
<short>Mode circle drawing routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.InitMode">
<short>Mode initialization routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.OutTextXY">
<short>Mode OutTextXY routine.</short>
</element>

<!-- variable Visibility: default -->
<element name="TModeInfo.next">
<short>Pointer to next mode in linked list.</short>
</element>

<!-- record type Visibility: default -->
<element name="TNewModeInfo">
<short>Mode information for new modes.a</short>
</element>

<!-- variable Visibility: default -->
<element name="TNewModeInfo.modeInfo">
<short>Mode information pointers.</short>
</element>

<!-- variable Visibility: default -->
<element name="TNewModeInfo.loHiModeNr">
<short>Array of low and high bounds for modes.</short>
</element>

<!-- variable Visibility: default -->
<element name="DirectPutPixel">
<short>Hook to directly draw a pixel on the screen.</short>
</element>

<!-- variable Visibility: default -->
<element name="GetRGBPalette">
<short>Hook to set a RGB palette entries.</short>
</element>

<!-- variable Visibility: default -->
<element name="GraphFreeMemPtr">
<short>Hook to free heap memory.</short>
</element>

<!-- variable Visibility: default -->
<element name="GraphGetMemPtr">
<short>Hook to get heap memory</short>
</element>

<!-- variable Visibility: default -->
<element name="GetScanLine">
<short>Hook to get a scan line from the screen.</short>
</element>

<!-- variable Visibility: default -->
<element name="InternalEllipse">
<short>Hook to draw an ellipse</short>
</element>

<!-- variable Visibility: default -->
<element name="PatternLine">
<short>Hook to draw a patterned line</short>
</element>

<!-- variable Visibility: default -->
<element name="HLine">
<short>Hook to draw a solid horizontal line</short>
</element>

<!-- variable Visibility: default -->
<element name="VLine">
<short>Hook to draw a solid vertical line</short>
</element>

<!-- variable Visibility: default -->
<element name="SaveVideoState">
<short>Hook to save the current video state</short>
</element>

<!-- variable Visibility: default -->
<element name="RestoreVideoState">
<short>Hook to restore a saved video mode</short>
</element>

<!-- array type Visibility: default -->
<element name="TCharsetTransTable">
<short>Character transliteration table, with entries for 256 characters</short>
</element>

<!-- pointer type Visibility: default -->
<element name="PCharsetTransTable">
<short>Pointer to <link id="TCharsetTransTable"/> array.</short>
</element>

<!-- constant Visibility: default -->
<element name="AnsiToASCIITransTable">
<short>Default ansi transliteration table.</short>
</element>

<!-- constant Visibility: default -->
<element name="GraphStringTransTable">
<short>Table used when transliterating strings.</short>
</element>

<!-- constant Visibility: default -->
<element name="DrawTextBackground">
<short>Should the background of texts be drawn or should it be left untouched ?</short>
</element>

<!-- function Visibility: default -->
<element name="queryadapterinfo">
<short>Function called to retrieve the current video adapter settings.</short>
</element>

<!-- procedure Visibility: default -->
<element name="SetDirectVideo">
<short>Attempt to enter direct video mode.</short>
<descr>
<var>SetDirectVideo</var> attempts to enter direct video mode. In that mode,
everything is drawn straight in the video buffer.
</descr>
</element>

<!-- function Visibility: default -->
<element name="GetDirectVideo">
<short>Determine whether direct video mode is active.</short>
<descr>
</descr>
<errors>
</errors>
</element>

<!-- constant Visibility: default -->
<element name="G320x200x16">
<short>Mode: Resulution 320x200, 16 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x200x16">
<short>Mode: Resolution x, colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x350x16">
<short>Mode: Resolution x, colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x480x16">
<short>Mode: Resolution x, colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G320x200x256">
<short>Mode: Resolution 320x200, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G320x240x256">
<short>Mode: Resolution 320x240, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G320x400x256">
<short>Mode: Resolution 320x400, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G360x480x256">
<short>Mode: Resolution 360x480, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x480x2">
<short>Mode: Resolution 640x480, 2 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x480x256">
<short>Mode: Resolution 640x480, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G800x600x256">
<short>Mode: Resolution 800x600, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1024x768x256">
<short>Mode: Resolution 1024x768, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1280x1024x256">
<short>Mode: Resolution 1280x1024, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G320x200x32K">
<short>Mode: Resolution 320x200, 32K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G320x200x64K">
<short>Mode: Resolution 320x200, 64K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G320x200x16M">
<short>Mode: Resolution 320x200, 16M colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x480x32K">
<short>Mode: Resolution 640x480, 32K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x480x64K">
<short>Mode: Resolution 640x480, 64K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x480x16M">
<short>Mode: Resolution 640x480, 16M colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G800x600x32K">
<short>Mode: Resolution 800x600, 32K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G800x600x64K">
<short>Mode: Resolution 800x600, 64K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G800x600x16M">
<short>Mode: Resolution 800x600, 16M colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1024x768x32K">
<short>Mode: Resolution 1024x768, 32K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1024x768x64K">
<short>Mode: Resolution 1024x768, 64K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1024x768x16M">
<short>Mode: Resolution 1024x768, 16M colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1280x1024x32K">
<short>Mode: Resolution 1280x1024, 32K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1280x1024x64K">
<short>Mode: Resolution 1280x1024, 64K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1280x1024x16M">
<short>Mode: Resolution 1280x1024, 16M colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G800x600x16">
<short>Mode: Resolution 800x600, 16 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1024x768x16">
<short>Mode: Resolution 1024x768, 16 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1280x1024x16">
<short>Mode: Resolution 1280x1024, 16 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G720x348x2">
<short>Mode: Resolution 720x348, 2 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G320x200x16M32">
<short>Mode: Resolution 320x200, 16M 32-bit colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G640x480x16M32">
<short>Mode: Resolution 640x480, 16M 32-bit colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G800x600x16M32">
<short>Mode: Resolution 800x600, 16M 32-bit colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1024x768x16M32">
<short>Mode: Resolution 1024x758, 16M 32-bit colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1280x1024x16M32">
<short>Mode: Resolution 1280x1024, 16M 32-bit colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1152x864x16">
<short>Mode: Resolution 1152x864, 16 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1152x864x256">
<short>Mode: Resolution 1152x864, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1152x864x32K">
<short>Mode: Resolution 1152x864, 32K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1152x864x64K">
<short>Mode: Resolution 1152x864, 64K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1152x864x16M">
<short>Mode: Resolution 1152x864, 16M colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1152x864x16M32">
<short>Mode: Resolution 1152x864, 16M 32-bitcolors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1600x1200x16">
<short>Mode: Resolution 1600x1200, 16 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1600x1200x256">
<short>Mode: Resolution 1600x1200, 256 colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1600x1200x32K">
<short>Mode: Resolution 1600x1200, 32K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1600x1200x64K">
<short>Mode: Resolution 1600x1200, 64K colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1600x1200x16M">
<short>Mode: Resolution 1600x1200, 16M colors</short>
</element>

<!-- constant Visibility: default -->
<element name="G1600x1200x16M32">
<short>Mode: Resolution 1600x1200, 16M 32-bit colors</short>
</element>

</module>
</package>
</fpdoc-descriptions>
