1997-08-17 21:09:35 +00:00
|
|
|
|
.\" Copyright (c) 1997 S<>ren Schmidt
|
|
|
|
|
.\" All rights reserved.
|
|
|
|
|
.\"
|
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
|
.\" are met:
|
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
|
.\" notice, this list of conditions and the following disclaimer,
|
|
|
|
|
.\" in this position and unchanged.
|
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
|
.\" 3. The name of the author may not be used to endorse or promote products
|
|
|
|
|
.\" derived from this software withough specific prior written permission.
|
|
|
|
|
.\"
|
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
|
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
|
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
|
|
|
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
|
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
|
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
|
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
.\"
|
1997-10-16 09:12:31 +00:00
|
|
|
|
.\" $Id: vgl.3,v 1.1 1997/08/17 21:09:35 sos Exp $
|
1997-08-17 21:09:35 +00:00
|
|
|
|
|
|
|
|
|
.Dd August 13, 1997
|
|
|
|
|
.Dt VGL 3
|
|
|
|
|
.Os FreeBSD 3
|
|
|
|
|
.Sh NAME
|
|
|
|
|
.Nm vgl
|
|
|
|
|
.Nd Video Graphics Library functions
|
|
|
|
|
.Sh SYNOPSIS
|
|
|
|
|
.Fd #include <vgl.h>
|
|
|
|
|
|
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
|
Libvgl is a library that enables the programmer access to the graphics
|
|
|
|
|
modes supported by the console driver (syscons). The library takes care of
|
|
|
|
|
programming the actual video hardware, and provides a number of simple
|
|
|
|
|
functions to do various graphic operations. There is also support for a
|
|
|
|
|
mouse via the standard mouse system in FreeBSD, see
|
|
|
|
|
.Fn moused
|
|
|
|
|
, including the ability to transparantly have a mousepointer superimposed on
|
|
|
|
|
the graphic image currently being worked on.
|
|
|
|
|
The library takes care of screenswitching by storing the current image in
|
|
|
|
|
memory before swithing to another virtual console, and restoring when the
|
|
|
|
|
user switches back. This allows several graphic applications at once, but
|
|
|
|
|
on different virtual consoles.
|
|
|
|
|
|
|
|
|
|
Below is a short description of the various functions:
|
|
|
|
|
|
|
|
|
|
.Sh AUTHOR
|
|
|
|
|
.An S<EFBFBD>ren Schmidt (sos@FreeBSD.org)
|
|
|
|
|
|
|
|
|
|
.Sh FUNCTIONS
|
|
|
|
|
|
|
|
|
|
.Ft int
|
|
|
|
|
.Fn VGLInit "int mode"
|
|
|
|
|
|
|
|
|
|
Initialize the library and set up the graphic mode
|
|
|
|
|
.Em mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLEnd "void"
|
|
|
|
|
|
|
|
|
|
Terminate graphic mode, and restore the screenmode that was active before
|
|
|
|
|
.Fn VGLInit
|
|
|
|
|
was called.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLCheckSwitch "void"
|
|
|
|
|
|
|
|
|
|
If the program goes into longer periods of processing without doing
|
|
|
|
|
any graphics output, calling this function occasionally will allow
|
|
|
|
|
the system to switch screens.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft int
|
|
|
|
|
.Fn VGLTextSetFontFile "char *filename"
|
|
|
|
|
|
|
|
|
|
Instruct the char/string functions to use the font in file
|
|
|
|
|
.Em filename
|
|
|
|
|
instead of the buildin font.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft int
|
|
|
|
|
.Fn VGLMouseInit "int mode"
|
|
|
|
|
|
|
|
|
|
Initialize the mouse. The optional onscreen mousepointer is shown if the
|
|
|
|
|
argument is
|
1997-10-16 09:12:31 +00:00
|
|
|
|
.Em VGL_MOUSESHOW
|
1997-08-17 21:09:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLMouseMode "int mode"
|
|
|
|
|
|
|
|
|
|
Either shows the mousepointer if the argument is
|
1997-10-16 09:12:31 +00:00
|
|
|
|
.Em VGL_MOUSESHOW
|
1997-08-17 21:09:35 +00:00
|
|
|
|
, or hide the mousepointer if the argument is
|
1997-10-16 09:12:31 +00:00
|
|
|
|
.Em VGL_MOUSEHIDE
|
1997-08-17 21:09:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft int
|
|
|
|
|
.Fn VGLMouseStatus "int *x" "int *y" "char *buttons"
|
|
|
|
|
|
1997-10-16 09:12:31 +00:00
|
|
|
|
Returns the current mousepointer coordinates and button state in
|
1997-08-17 21:09:35 +00:00
|
|
|
|
.Em x, y, buttons. The return value reflects if the mousepointer
|
|
|
|
|
is currently shown on screen or not.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLMouseSetImage "VGLBitmap *AndMask" "VGLBitmap *OrMask"
|
|
|
|
|
|
|
|
|
|
With this function it is possible to change the image of the mousepointer
|
|
|
|
|
on screen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLMouseSetStdImage "void"
|
|
|
|
|
|
|
|
|
|
This function restores the mousepointer to the standard arrow.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLLine "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
|
|
|
|
|
|
|
|
|
|
Draw a line from
|
|
|
|
|
.Em x1, y1
|
|
|
|
|
to
|
|
|
|
|
.Em x2, y2
|
|
|
|
|
in color
|
|
|
|
|
.Em color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
|
|
|
|
|
|
|
|
|
|
Draw a box with upper left hand corner at
|
|
|
|
|
.Em x1, y1
|
|
|
|
|
and lower right hand corner at
|
|
|
|
|
.Em x2, y2
|
|
|
|
|
in color
|
|
|
|
|
.Em color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLFilledBox "VGLBitmap *object" "int x1" "int y1" "int x2" "int y2" "byte color"
|
|
|
|
|
|
|
|
|
|
Draw a filled (solid) box with upper left hand corner at
|
|
|
|
|
.Em x1, y1
|
|
|
|
|
and lower right hand corner at
|
|
|
|
|
.Em x2, y2
|
|
|
|
|
in color
|
|
|
|
|
.Em color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color"
|
|
|
|
|
|
|
|
|
|
Draw an ellipse centered at
|
|
|
|
|
.Em xc, yc
|
|
|
|
|
make it
|
|
|
|
|
.Em a
|
|
|
|
|
pixels wide, and
|
|
|
|
|
.Em b
|
|
|
|
|
pixels high in color
|
|
|
|
|
.Em color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLFilledEllipse "VGLBitmap *object" "int xc" "int yc" "int a" "int b" "byte color"
|
|
|
|
|
|
|
|
|
|
Draw a filled (solid) ellipse centered at
|
|
|
|
|
.Em xc, yc
|
|
|
|
|
make it
|
|
|
|
|
.Em a
|
|
|
|
|
pixels wide, and
|
|
|
|
|
.Em b
|
|
|
|
|
pixels high in color
|
|
|
|
|
.Em color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft int
|
|
|
|
|
.Fn VGLBitmapCopy "VGLBitmap *src" "int srcx" "int srcy" "VGLBitmap *dst" "int dstx" "int dsty" "int width" "int hight"
|
|
|
|
|
|
|
|
|
|
Copy a rectangle of pixels from bitmap
|
|
|
|
|
.Em src
|
|
|
|
|
upper lefthand corner at
|
|
|
|
|
.Em srcx, srcy
|
|
|
|
|
to bitmap
|
|
|
|
|
.Em dst
|
|
|
|
|
at
|
|
|
|
|
.Em dstx, dsty
|
|
|
|
|
of the size
|
|
|
|
|
.Em width, hight
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLBitmapPutChar "VGLBitmap *Object" "int x" "int y" "byte ch" "byte fgcol" "byte bgcol" "int fill" "int dir"
|
|
|
|
|
|
|
|
|
|
Write the character
|
|
|
|
|
.Em ch
|
|
|
|
|
at position
|
|
|
|
|
.Em x, y
|
|
|
|
|
in foregroundcolor
|
|
|
|
|
.Em fgcol.
|
|
|
|
|
If
|
|
|
|
|
.Em fill
|
|
|
|
|
is != 0, use the color
|
|
|
|
|
.Em bgcol
|
1997-10-16 09:12:31 +00:00
|
|
|
|
as background otherwise the background is transparent.
|
1997-08-17 21:09:35 +00:00
|
|
|
|
The character is drawn in the direction specified by the argument
|
|
|
|
|
.Em dir
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLBitmapString "VGLBitmap *Object" "int x" "int y" "char *str" "byte fgcol" "byte bgcol" "int fill" "int dir"
|
|
|
|
|
|
|
|
|
|
Write the string
|
|
|
|
|
.Em str
|
|
|
|
|
at position
|
|
|
|
|
.Em x, y
|
|
|
|
|
in foregroundcolor
|
|
|
|
|
.Em fgcol.
|
|
|
|
|
If
|
|
|
|
|
.Em fill
|
|
|
|
|
is != 0, use the color
|
|
|
|
|
.Em bgcol
|
|
|
|
|
as background otherwise the background is transparant.
|
|
|
|
|
The string is drawn in the direction specified by the argument
|
|
|
|
|
.Em dir
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLClear "VGLBitmap *object" "byte color"
|
|
|
|
|
|
|
|
|
|
Clears the entire bitmap to color
|
|
|
|
|
.Em color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLSetPalette "byte *red" "byte *green" "byte *blue"
|
|
|
|
|
|
|
|
|
|
This function sets the palette used, the arguments
|
|
|
|
|
.Em red, green, blue
|
|
|
|
|
should point to byte arrays of 256 positions each.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLSetPaletteIndex "byte color" "byte red" "byte green" "byte blue"
|
|
|
|
|
|
|
|
|
|
Set the palette index
|
|
|
|
|
.Em color
|
|
|
|
|
to the specified RGB value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLSetBorder "byte color"
|
|
|
|
|
|
|
|
|
|
Set the bordercolor to color
|
|
|
|
|
.Em color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Ft void
|
|
|
|
|
.Fn VGLBlankDisplay "int blank"
|
|
|
|
|
|
|
|
|
|
Blank the display if the argment
|
|
|
|
|
.Em blank
|
|
|
|
|
!= 0. This can be done to shut off the screen during diplay updates that
|
|
|
|
|
the use hould first see when its done.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Sh HISTORY
|
|
|
|
|
The
|
|
|
|
|
.Nm
|
|
|
|
|
library appeared in FreeBSD 3.0
|