xref: /freebsd/lib/libvgl/vgl.3 (revision b2e8bf35bd1760d0ddec12b6d84088d2682e3e2b)
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.Dd October 28, 1999
29.Dt VGL 3
30.Os FreeBSD 3.0
31.Sh NAME
32.Nm VGLBitmapCopy ,
33.Nm VGLBitmapPutChar ,
34.Nm VGLBitmapString ,
35.Nm VGLBlankDisplay ,
36.Nm VGLBox ,
37.Nm VGLCheckSwitch ,
38.Nm VGLClear ,
39.Nm VGLEllipse ,
40.Nm VGLEnd ,
41.Nm VGLFilledBox ,
42.Nm VGLFilledEllipse ,
43.Nm VGLInit ,
44.Nm VGLLine ,
45.Nm VGLMouseInit ,
46.Nm VGLMouseMode ,
47.Nm VGLMouseSetImage ,
48.Nm VGLMouseSetStdImage ,
49.Nm VGLMouseStatus ,
50.Nm VGLSetBorder ,
51.Nm VGLSetPalette ,
52.Nm VGLSetPaletteIndex ,
53.Nm VGLTextSetFontFile
54.Nd Video Graphics Library functions (libvgl)
55.Sh SYNOPSIS
56.Fd #include <vgl.h>
57.Ft int
58.Fn VGLInit "int mode"
59.Ft void
60.Fn VGLEnd "void"
61.Ft void
62.Fn VGLCheckSwitch "void"
63.Ft int
64.Fn VGLTextSetFontFile "char *filename"
65.Ft int
66.Fn VGLMouseInit "int mode"
67.Ft void
68.Fn VGLMouseMode "int mode"
69.Ft int
70.Fn VGLMouseStatus "int *x" "int *y" "char *buttons"
71.Ft void
72.Fn VGLMouseSetImage "VGLBitmap *AndMask" "VGLBitmap *OrMask"
73.Ft void
74.Fn VGLMouseSetStdImage "void"
75.Ft void
76.Fn VGLLine "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
77.Ft void
78.Fn VGLBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
79.Ft void
80.Fn VGLFilledBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
81.Ft void
82.Fn VGLEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color"
83.Ft void
84.Fn VGLFilledEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color"
85.Ft int
86.Fn VGLBitmapCopy "VGLBitmap *src" "int srcx" "int srcy" "VGLBitmap *dst" "int dstx" "int dsty" "int width" "int hight"
87.Ft void
88.Fn VGLBitmapPutChar "VGLBitmap *Object" "int x" "int y" "byte ch" "byte fgcol" "byte bgcol" "int fill" "int dir"
89.Ft void
90.Fn VGLBitmapString "VGLBitmap *Object" "int x" "int y" "char *str" "byte fgcol" "byte bgcol" "int fill" "int dir"
91.Ft void
92.Fn VGLClear "VGLBitmap *object" "byte color"
93.Ft void
94.Fn VGLSetPalette "byte *red" "byte *green" "byte *blue"
95.Ft void
96.Fn VGLSetPaletteIndex "byte color" "byte red" "byte green" "byte blue"
97.Ft void
98.Fn VGLSetBorder "byte color"
99.Ft void
100.Fn VGLBlankDisplay "int blank"
101.Sh DESCRIPTION
102.Nm Libvgl
103is a library that enables the programmer access to the graphics
104modes supported by the console driver (syscons). The library takes care of
105programming the actual video hardware, and provides a number of simple
106functions to do various graphic operations. There is also support for a
107mouse via the standard mouse system in
108.Fx ,
109see
110.Xr mouse 4 ,
111including the ability to transparently have a mouse pointer superimposed on
112the graphic image currently being worked on.
113The library takes care of screen switching by storing the current image in
114memory before switching to another virtual console, and restoring when the
115user switches back. This allows several graphic applications at once, but
116on different virtual consoles.
117
118Below is a short description of the various functions:
119.Pp
120.Fn VGLInit
121initialize the library and set up the graphic mode
122.Em mode .
123.Pp
124.Fn VGLEnd
125terminate graphic mode, and restore the screenmode that was active before
126.Fn VGLInit
127was called.
128.Pp
129.Fn VGLCheckSwitch
130if the program goes into longer periods of processing without doing
131any graphics output, calling this function occasionally will allow
132the system to switch screens.
133.Pp
134.Fn VGLTextSetFontFile
135instruct the char/string functions to use the font in file
136.Em filename
137instead of the builtin font.
138.Pp
139.Fn VGLMouseInit
140initialize the mouse. The optional on-screen mouse pointer is shown if the
141argument is
142.Em VGL_MOUSESHOW .
143.Pp
144.Fn VGLMouseMode
145either shows the mouse pointer if the argument is
146.Em VGL_MOUSESHOW ,
147or hides the mouse pointer if the argument is
148.Em VGL_MOUSEHIDE .
149.Pp
150.Fn VGLMouseStatus
151returns the current mouse pointer coordinates and button state in
152.Em x , y ,
153buttons. The return value reflects if the mouse pointer
154is currently shown on screen or not.
155.Pp
156.Fn VGLMouseSetImage
157with this function it is possible to change the image of the mouse pointer
158on screen.
159.Pp
160.Fn VGLMouseSetStdImage
161this function restores the mouse pointer to the standard arrow.
162.Pp
163.Fn VGLLine
164draw a line from
165.Em x1 , y1
166to
167.Em x2 , y2
168in color
169.Em color .
170.Pp
171.Fn VGLBox
172draw a box with upper left hand corner at
173.Em x1 , y1
174and lower right hand corner at
175.Em x2 , y2
176in color
177.Em color .
178.Pp
179.Fn VGLFilledBox
180draw a filled (solid) box with upper left hand corner at
181.Em x1 , y1
182and lower right hand corner at
183.Em x2 , y2
184in color
185.Em color .
186.Pp
187.Fn VGLEllipse
188draw an ellipse centered at
189.Em xc , yc
190make it
191.Em a
192pixels wide, and
193.Em b
194pixels high in color
195.Em color .
196.Pp
197.Fn VGLFilledEllipse
198draw a filled (solid) ellipse centered at
199.Em xc , yc
200make it
201.Em a
202pixels wide, and
203.Em b
204pixels high in color
205.Em color .
206.Pp
207.Fn VGLBitmapCopy
208copy a rectangle of pixels from bitmap
209.Em src
210upper left hand corner at
211.Em srcx , srcy
212to bitmap
213.Em dst
214at
215.Em dstx , dsty
216of the size
217.Em width , height .
218.Pp
219.Fn VGLBitmapPutChar
220write the character
221.Em ch
222at position
223.Em x , y
224in foreground color
225.Em fgcol .
226If
227.Em fill
228is != 0, use the color
229.Em bgcol
230as background otherwise the background is transparent.
231The character is drawn in the direction specified by the argument
232.Em dir .
233.Pp
234.Fn VGLBitmapString
235write the string
236.Em str
237at position
238.Em x , y
239in foreground color
240.Em fgcol .
241If
242.Em fill
243is != 0, use the color
244.Em bgcol
245as background otherwise the background is transparent.
246The string is drawn in the direction specified by the argument
247.Em dir .
248.Pp
249.Fn VGLClear
250clears the entire bitmap to color
251.Em color .
252.Pp
253.Fn VGLSetPalette
254this function sets the palette used, the arguments
255.Em red , green , blue
256should point to byte arrays of 256 positions each.
257.Pp
258.Fn VGLSetPaletteIndex
259set the palette index
260.Em color
261to the specified RGB value.
262.Pp
263.Fn VGLSetBorder
264set the border color to color
265.Em color .
266.Pp
267.Fn VGLBlankDisplay
268blank the display if the argment
269.Em blank
270!= 0. This can be done to shut off the screen during display updates that
271the user should first see when it's done.
272.Sh AUTHORS
273.An S�ren Schmidt Aq sos@FreeBSD.org
274.Sh HISTORY
275The
276.Nm vgl
277library appeared in
278.Fx 3.0