libplot has bindings for several programming languages.
Regardless of which language binding is used, the concepts behind
libplot (Plotters, and a fixed set of operations that can be
applied to any Plotter) remain the same. However, the ways in which
Plotters are manipulated (created, selected for use, and deleted)
may differ between bindings. This section discusses the C binding.
If you are writing an application in C that will use
draw vector graphics, the first thing you need to know is how, in the
C binding, Plotters are manipulated. There are four special
functions for this, which you can invoke:
deletepl, and the parameter-setting function
Actually, you would usually invoke them under the names
pl_parampl. That is
because in the C binding, the names of all functions begin with "pl_"
unless the header file
plotcompat.h is included. See section C compiling and linking.
pl_newpl function will create a Plotter of specified type.
Its first argument may be "X", "Xdrawable", "pnm", "gif", "ai", "ps",
"fig", "pcl", "hpgl", "tek", or "meta". It returns a nonnegative
integer (a "handle") that may be used to refer to the Plotter.
Before using a Plotter that you have created (i.e., before invoking any
libplot operations on it), you must select the Plotter
for use by calling
pl_selectpl. Only one Plotter may be
selected at a time, but by calling
pl_selectpl you may switch
from Plotter to Plotter at any time, even when the selected Plotter is
open. A Plotter that is not currently selected can be deleted, and
its storage freed, by calling
Strictly speaking, you do not need to call
pl_deletepl in order to draw graphics.
That is because at startup, a single Metafile Plotter that writes to
standard output (with handle `0') is automatically created and
selected. The presence of this default Plotter is for compatibility
with pre-GNU versions of
libplot. Of course, you may not
wish to obtain output in metafile format, and you may not wish to write
to standard output.
You should get into the habit of calling
pl_deletepl whenever you
are finished using a Plotter. In general, Plotters that do not plot
graphics in real time (Postscript Plotters in particular) write out
graphics only when the plot is finished, and
The following table summarizes the action of the four functions in the C binding that are used for Plotter manipulation.
libplotoperations is subsequently invoked, it will be applied to the selected Plotter. Only one Plotter may be selected at a time. At startup, a single Metafile Plotter that writes to standard output (with handle `0') is automatically created and selected. The handle of the previously selected Plotter is returned. A negative return value indicates the specified Plotter does not exist or could not be selected.
char *, i.e., a string. Unrecognized parameters are ignored. For a list of the recognized parameters and their meaning, see section Device driver parameters.
Up to now we have not discussed the fourth function,
Even though the Plotter interface is largely Plotter-independent, it
is useful to be able to specify certain aspects of a Plotter's behavior
at the time it is created. Plotter behavior is captured by a manageable
number of parameters, which we call device driver parameters.
A value for any parameter can be specified by calling
pl_parampl. This function does not operate on any particular
Plotter: it belongs to the C binding as a whole. The parameter
values used by any Plotter are constant over the lifetime of the
Plotter, and are those that were in effect when the Plotter was created.
Actually, a slightly more sophisticated rule applies. If at Plotter
creation time a parameter is set, the value specified by the most recent
pl_parampl will be the value used by the Plotter. If at
Plotter creation time a parameter is not set, its default value
will be used, unless the parameter is string-valued and there is an
environment variable of the same name, in which case the value of that
environment variable will be used. This rule increases run-time
flexibility: an application programmer may allow non-critical driver
parameters to be specified by the user via environment variables. Once
set, a parameter may be unset by the programmer by calling
pl_parampl with a value argument of NULL. This further increases
Go to the first, previous, next, last section, table of contents.