xref: /freebsd/lib/libvgl/vgl.3 (revision 4cf49a43559ed9fdad601bdcccd2c55963008675)
1.\" Copyright (c) 1997 S�ren Schmidt
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer,
9.\"    in this position and unchanged.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\" 3. The name of the author may not be used to endorse or promote products
14.\"    derived from this software withough specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26.\"
27.\" $FreeBSD$
28
29.Dd August 13, 1997
30.Dt VGL 3
31.Os FreeBSD 3
32.Sh NAME
33.Nm vgl
34.Nd Video Graphics Library functions
35.Sh SYNOPSIS
36.Fd #include <vgl.h>
37
38.Sh DESCRIPTION
39Libvgl is a library that enables the programmer access to the graphics
40modes supported by the console driver (syscons). The library takes care of
41programming the actual video hardware, and provides a number of simple
42functions to do various graphic operations. There is also support for a
43mouse via the standard mouse system in FreeBSD, see
44.Fn moused
45, including the ability to transparently have a mouse pointer superimposed on
46the graphic image currently being worked on.
47The library takes care of screen switching by storing the current image in
48memory before switching to another virtual console, and restoring when the
49user switches back. This allows several graphic applications at once, but
50on different virtual consoles.
51
52Below is a short description of the various functions:
53
54.Sh AUTHORS
55.An S�ren Schmidt Aq sos@FreeBSD.org
56
57.Sh FUNCTIONS
58
59.Ft int
60.Fn VGLInit "int mode"
61
62Initialize the library and set up the graphic mode
63.Em mode .
64
65
66.Ft void
67.Fn VGLEnd "void"
68
69Terminate graphic mode, and restore the screenmode that was active before
70.Fn VGLInit
71was called.
72
73
74.Ft void
75.Fn VGLCheckSwitch "void"
76
77If the program goes into longer periods of processing without doing
78any graphics output, calling this function occasionally will allow
79the system to switch screens.
80
81
82.Ft int
83.Fn VGLTextSetFontFile "char *filename"
84
85Instruct the char/string functions to use the font in file
86.Em filename
87instead of the builtin font.
88
89
90.Ft int
91.Fn VGLMouseInit "int mode"
92
93Initialize the mouse. The optional on-screen mouse pointer is shown if the
94argument is
95.Em VGL_MOUSESHOW .
96
97
98.Ft void
99.Fn VGLMouseMode "int mode"
100
101Either shows the mouse pointer if the argument is
102.Em VGL_MOUSESHOW
103, or hides the mouse pointer if the argument is
104.Em VGL_MOUSEHIDE .
105
106
107.Ft int
108.Fn VGLMouseStatus "int *x" "int *y" "char *buttons"
109
110Returns the current mouse pointer coordinates and button state in
111.Em x, y
112, buttons. The return value reflects if the mouse pointer
113is currently shown on screen or not.
114
115
116.Ft void
117.Fn VGLMouseSetImage "VGLBitmap *AndMask" "VGLBitmap *OrMask"
118
119With this function it is possible to change the image of the mouse pointer
120on screen.
121
122
123.Ft void
124.Fn VGLMouseSetStdImage "void"
125
126This function restores the mouse pointer to the standard arrow.
127
128
129.Ft void
130.Fn VGLLine "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
131
132Draw a line from
133.Em x1, y1
134to
135.Em x2, y2
136in color
137.Em color .
138
139
140.Ft void
141.Fn VGLBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
142
143Draw a box with upper left hand corner at
144.Em x1, y1
145and lower right hand corner at
146.Em x2, y2
147in color
148.Em color .
149
150
151.Ft void
152.Fn VGLFilledBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
153
154Draw a filled (solid) box with upper left hand corner at
155.Em x1, y1
156and lower right hand corner at
157.Em x2, y2
158in color
159.Em color .
160
161
162.Ft void
163.Fn VGLEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color"
164
165Draw an ellipse centered at
166.Em xc, yc
167make it
168.Em a
169pixels wide, and
170.Em b
171pixels high in color
172.Em color .
173
174
175.Ft void
176.Fn VGLFilledEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color"
177
178Draw a filled (solid) ellipse centered at
179.Em xc, yc
180make it
181.Em a
182pixels wide, and
183.Em b
184pixels high in color
185.Em color .
186
187
188.Ft int
189.Fn VGLBitmapCopy "VGLBitmap *src" "int srcx" "int srcy" "VGLBitmap *dst" "int dstx" "int dsty" "int width" "int hight"
190
191Copy a rectangle of pixels from bitmap
192.Em src
193upper left hand corner at
194.Em srcx, srcy
195to bitmap
196.Em dst
197at
198.Em dstx, dsty
199of the size
200.Em width, height .
201
202
203.Ft void
204.Fn VGLBitmapPutChar "VGLBitmap *Object" "int x" "int y" "byte ch" "byte fgcol" "byte bgcol" "int fill" "int dir"
205
206Write the character
207.Em ch
208at position
209.Em x, y
210in foreground color
211.Em fgcol.
212If
213.Em fill
214is != 0, use the color
215.Em bgcol
216as background otherwise the background is transparent.
217The character is drawn in the direction specified by the argument
218.Em dir .
219
220
221.Ft void
222.Fn VGLBitmapString "VGLBitmap *Object" "int x" "int y" "char *str" "byte fgcol" "byte bgcol" "int fill" "int dir"
223
224Write the string
225.Em str
226at position
227.Em x, y
228in foreground color
229.Em fgcol.
230If
231.Em fill
232is != 0, use the color
233.Em bgcol
234as background otherwise the background is transparent.
235The string is drawn in the direction specified by the argument
236.Em dir .
237
238.Ft void
239.Fn VGLClear "VGLBitmap *object" "byte color"
240
241Clears the entire bitmap to color
242.Em color .
243
244
245.Ft void
246.Fn VGLSetPalette "byte *red" "byte *green" "byte *blue"
247
248This function sets the palette used, the arguments
249.Em red, green, blue
250should point to byte arrays of 256 positions each.
251
252
253.Ft void
254.Fn VGLSetPaletteIndex "byte color" "byte red" "byte green" "byte blue"
255
256Set the palette index
257.Em color
258to the specified RGB value.
259
260
261.Ft void
262.Fn VGLSetBorder "byte color"
263
264Set the border color to color
265.Em color .
266
267
268.Ft void
269.Fn VGLBlankDisplay "int blank"
270
271Blank the display if the argment
272.Em blank
273!= 0. This can be done to shut off the screen during display updates that
274the user should first see when it's done.
275
276
277.Sh HISTORY
278The
279.Nm
280library appeared in FreeBSD 3.0
281