[brlcad-commits] SF.net SVN: brlcad:[49894] brlcad/trunk/src/libfb/libfb.3
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <sta...@us...> - 2012-04-03 17:31:39
|
Revision: 49894 http://brlcad.svn.sourceforge.net/brlcad/?rev=49894&view=rev Author: starseeker Date: 2012-04-03 17:31:26 +0000 (Tue, 03 Apr 2012) Log Message: ----------- Uh, what? didn't mean to change libfb.3 Modified Paths: -------------- brlcad/trunk/src/libfb/libfb.3 Modified: brlcad/trunk/src/libfb/libfb.3 =================================================================== --- brlcad/trunk/src/libfb/libfb.3 2012-04-03 17:26:42 UTC (rev 49893) +++ brlcad/trunk/src/libfb/libfb.3 2012-04-03 17:31:26 UTC (rev 49894) @@ -1,383 +1,487 @@ -'\" t -.\" Title: libfb - FrameBuffer Library -.\" Author: BRL-CAD Team -.\" Generator: DocBook XSL-NS Stylesheets v1.76.1 <http://docbook.sf.net/> -.\" Date: 04/03/2012 -.\" Manual: BRL-CAD Libraries -.\" Source: BRL-CAD -.\" Language: English +.TH LIBFB 3 BRL-CAD +.\" L I B F B . 3 +.\" BRL-CAD .\" -.TH "LIBFB \- FRAMEBUFFER" "3" "04/03/2012" "BRL\-CAD" "BRL\-CAD Libraries" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" +.\" Copyright (c) 2005-2012 United States Government as represented by +.\" the U.S. Army Research Laboratory. +.\" +.\" Redistribution and use in source (Docbook format) and 'compiled' +.\" forms (PDF, PostScript, HTML, RTF, etc), with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" +.\" 1. Redistributions of source code (Docbook format) must retain the +.\" above copyright notice, this list of conditions and the following +.\" disclaimer. +.\" +.\" 2. Redistributions in compiled form (transformed to other DTDs, +.\" converted to PDF, PostScript, HTML, RTF, and other formats) 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 documentation without specific prior +.\" written permission. +.\" +.\" THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\".\".\" +.SH NAME libfb \- multiple device, generic frame buffer library -.SH "GENERIC FRAME BUFFER ROUTINES" -.HP \w'FBIO\ *fb_open('u -.BI "FBIO *fb_open(*\ " "fbfile" ", int\ fb_close\ (\ fbp\ )\ FBIO\ *\ " "fbp" ", int\ fb_read\ (\ fbp\ ,\ x\ ,\ y\ ,\ addr\ ,\ count\ )\ FBIO\ *\ " "fbp" ");" -.sp -.if n \{\ -.RS 4 -.\} -.ft B +.SH SYNOPSIS .nf - RGBpixel *addr; - long count; - - -.fi -.ft -.if n \{\ -.RE -.\} -.HP \w'int\ fb_write('u -.BI "int fb_write(*\ " "fbp" ", RGBpixel\ *\ " "addr" ", long\ " "count" ", int\ fb_rmap\ (\ fbp\ ,\ cmap\ )\ FBIO\ *\ " "fbp" ", ColorMap\ *\ " "cmap" ");" -.HP \w'int\ fb_wmap('u -.BI "int fb_wmap(*\ " "fbp" ", ColorMap\ *\ " "cmap" ");" -.HP \w'int\ fb_clear('u -.BI "int fb_clear(*\ " "fbp" ", RGBpixel\ *\ " "colorp" ");" -.HP \w'char\ *fb_gettype('u -.BI "char *fb_gettype(*\ " "fbp" ");" -.HP \w'int\ fb_getwidth('u -.BI "int fb_getwidth(*\ " "fbp" ");" -.HP \w'int\ fb_getheight('u -.BI "int fb_getheight(*\ " "fbp" ");" -.SH "HARDWARE SPECIFIC FRAME BUFFER ROUTINES" -.HP \w'int\ fb_cursor('u -.BI "int fb_cursor(*\ " "fbp" ", int\ fb_scursor\ (\ fbp\ ,\ mode\ ,\ x\ ,\ y\ )\ FBIO\ *\ " "fbp" ", int\ fb_setcursor\ (\ fbp\ ,\ bits\ ,\ xbits\ ,\ ybits\ ,\ xorig\ ,\ yorig\ )\ FBIO\ *\ " "fbp" ", unsigned\ char\ " "bits" "[]);" -.sp -.if n \{\ -.RS 4 -.\} -.ft B -.nf - int xbits, ybits; - int xorig, yorig; - - -.fi -.ft -.if n \{\ -.RE -.\} -.HP \w'int\ fb_window('u -.BI "int fb_window(*\ " "fbp" ", int\ fb_zoom\ (\ fbp\ ,\ x\ ,\ y\ )\ FBIO\ *\ " "fbp" ", /\ *Buffered\ frame\ buffer\ I/O:\ */\ int\ fb_ioinit\ (\ fbp\ )\ FBIO\ *\ " "fbp" ");" -.HP \w'int\ fb_seek('u -.BI "int fb_seek(*\ " "fbp" ", void\ fb_tell\ (\ fbp\ ,\ xp\ ,\ yp\ )\ FBIO\ *\ " "fbp" ", int\ *xp\ ,\ *\ " "yp" ");" -.HP \w'int\ fb_rpixel('u -.BI "int fb_rpixel(*\ " "fbp" ", RGBpixel\ *\ " "pixelp" ");" -.HP \w'int\ fb_wpixel('u -.BI "int fb_wpixel(*\ " "fbp" ", RGBpixel\ *\ " "pixelp" ");" -.HP \w'int\ fb_flush('u -.BI "int fb_flush(*\ " "fbp" ");" -.HP \w'void\ fb_log('u -.BI "void fb_log(format\ [\ " "" ", arg\ ]\ \&.\&.\&.\ " "" ");" -.SH "DESCRIPTION" +.B #include <fb.h> .PP -These routines are designed to provide a device\-independent method of using frame buffers or files containing frame buffer images\&. The coordinate system used is first\-quadrant (0\&.\&.width\-1, 0\&.\&.height\-1), with integer addressing\&. Translation to hardware coordinate systems is handled by the library\&. +/* Generic frame buffer routines: */ .PP -This version of the library assumes that red, green, and blue intensities are described by unsigned 8\-bit bytes in the range (0\&.\&.255)\&. The library interface uses arrays of -\fBRGBpixel\fRs, which is a typedef for an array of three unsigned chars (this was done to avoid structure padding)\&. Note that a pointer to an -\fBRGBpixel\fR +.B FBIO "*fb_open(fbfile, width, height)" +.B char *fbfile; +.PP +.B int fb_close(fbp) +.B FBIO *fbp; +.PP +.B int "fb_read(fbp, x, y, addr, count)" +.B FBIO *fbp; +.B RGBpixel *addr; +.B size_t count; +.PP +.B int "fb_write(fbp, x, y, addr, count)" +.B FBIO *fbp; +.B RGBpixel *addr; +.B size_t count; +.PP +.B int fb_rmap(fbp, cmap) +.B FBIO *fbp; +.B ColorMap *cmap; +.PP +.B int fb_wmap(fbp, cmap) +.B FBIO *fbp; +.B ColorMap *cmap; +.PP +.B int fb_clear(fbp, colorp) +.B FBIO *fbp; +.B RGBpixel *colorp; +.PP +.B char *fb_gettype(fbp) +.B FBIO *fbp; +.PP +.B int fb_getwidth(fbp) +.B FBIO *fbp; +.PP +.B int fb_getheight(fbp) +.B FBIO *fbp; +.PP +/* Hardware specific frame buffer routines: */ +.PP +.B int fb_cursor(fbp, mode, x, y) +.B FBIO *fbp; +.PP +.B int fb_scursor(fbp, mode, x, y) +.B FBIO *fbp; +.PP +.B int "fb_setcursor(fbp, bits, xbits, ybits, xorig, yorig)" +.B FBIO *fbp; +.B unsigned char bits[]; +.B int xbits, ybits; +.B int xorig, yorig; +.PP +.B int fb_window(fbp, x, y) +.B FBIO *fbp; +.PP +.B int fb_zoom(fbp, x, y) +.B FBIO *fbp; +.PP +/* Buffered frame buffer I/O: */ +.PP +.B int fb_ioinit(fbp) +.B FBIO *fbp; +.PP +.B int fb_seek(fbp, x, y) +.B FBIO *fbp; +.PP +.B void fb_tell(fbp, xp, yp) +.B FBIO *fbp; +.B int *xp, *yp; +.PP +.B int fb_rpixel(fbp, pixelp) +.B FBIO *fbp; +.B RGBpixel *pixelp; +.PP +.B int fb_wpixel(fbp, pixelp) +.B FBIO *fbp; +.B RGBpixel *pixelp; +.PP +.B int fb_flush(fbp) +.B FBIO *fbp; +.PP +.B void "fb_log(format [, arg ] ... )" +.B char *format; +.SH DESCRIPTION +These routines are designed to provide a device-independent +method of using frame buffers or files containing frame buffer +images. +The coordinate system used is first-quadrant (0..width-1, 0..height-1), +with integer addressing. Translation to hardware coordinate systems +is handled by the library. +.PP +This version of the library assumes that red, green, and blue +intensities are described by unsigned 8-bit bytes in the range (0..255). +The library interface uses arrays of +.BR RGBpixel s, +which is a typedef for an array of three unsigned chars (this was +done to avoid structure padding). Note that a pointer to an +.B RGBpixel is thus the name of the -\fBRGBpixel\fR -itself, i\&.e\&. no ampersand is needed\&. +.B RGBpixel +itself, i.e. no ampersand is needed. .PP -The exact interpretation of color maps tends to be somewhat device specific\&. The three ColorMap arrays each have 256 entries of unsigned 16\-bit values\&. In order to accomodate color maps with differing amounts of output resolution, the color map entries are fixed\-point fractions in the range (0\&.0\&.\&.1\&.0)\&. In integer notation, the range is (0\&.\&.65525)\&. For devices with less than 16 bits of output from their color maps, the left\-most portion of each entry is used\&. +The exact interpretation of color maps tends to be somewhat device +specific. +The three ColorMap arrays each have 256 entries of unsigned 16-bit values. +In order to accomodate color maps with differing amounts of output +resolution, the color map entries are fixed-point fractions +in the range (0.0..1.0). In integer notation, the range is (0..65525). +For devices with less than 16 bits of output from their color maps, +the left-most portion of each entry is used. .PP - -\fIFb_open\fR +.I Fb_open\^ is used to open a frame buffer file -\fIfbfile\fR\&. The file may be either the name of a supported frame buffer interface, referenced as "/dev/interface", or the name of a UNIX file\&. The routine will try to determine if the file opened was a real frame buffer by examining the name, and if so will perform whatever initialization actions are necessary\&. If the value of -\fIfbfile\fR +.IR fbfile\^ . +The file may be either the name of a supported frame buffer interface, +referenced as "/dev/interface", +or the name of a UNIX file. +The routine will try to determine if the file opened was +a real frame buffer by examining the name, +and if so will perform +whatever initialization actions are necessary. +If the value of +.I fbfile\^ is - -NULL +.B +.SM NULL and the environment variable - -\fBFB_FILE\fR +.B +.SM FB_FILE is set, then the value of -\fBFB_FILE\fR -is used; otherwise the default frame buffer device for the system is used\&. See below for more details\&. The -\fIwidth\fR +.SM FB_FILE +is used; +otherwise the default frame buffer device for the system is used. +See below for more details. +The +.I width\^ and -\fIheight\fR -parameters specify the initial size of display desired\&. If these are zero the default sizes for that device will be used\&. On a successful open, the frame buffer I/O (FBIO) structure pointer is returned\&. This structure contains size you were actually given, as well as the maximum possible size for the selected device\&. A return of FBIO_NULL indicates failure\&. +.I height\^ +parameters specify the initial size of display desired. +If these are zero the default sizes for that device will be used. +On a successful open, +the frame buffer I/O (FBIO) structure pointer is returned. +This structure contains size you were actually given, as well +as the maximum possible size for the selected device. +A return of FBIO_NULL indicates failure. .PP - -\fIFb_close\fR -simply closes the frame buffer\&. +.I Fb_close\^ +simply closes the frame buffer. .PP - -\fIFb_read\fR +.I Fb_read\^ reads -\fIcount\fR +.I count\^ pixels from the frame buffer starting at the location specified by -\fIx\fR +.I x\^ and -\fIy\fR, and places them at program memory address specified by -\fIaddr\fR\&. -\fIFb_read\fR -returns the number of pixels actually read, or \-1 on error\&. +.IR y\^ , +and places them at program memory address specified +by +.IR addr\^ . +.I Fb_read\^ +returns the number of pixels actually read, or -1 on error. .PP - -\fIFb_write\fR +.I Fb_write\^ writes -\fIcount\fR +.I count\^ pixels from program address -\fIaddr\fR -into the frame buffer starting at the location specified by -\fIx\fR +.I addr\^ +into the frame buffer starting at the location +specified +by +.I x\^ and -\fIy\fR\&. -\fIFb_write\fR -returns the number of pixels actually written, or \-1 on error\&. +.IR y\^ . +.I Fb_write\^ +returns the number of pixels actually written, or +-1 on error. .PP - -\fIFb_rmap\fR -reads in the color map from the frame buffer and leaves at the location pointed to by -\fIcmap\fR\&. +.I Fb_rmap\^ +reads in the color map from the frame buffer and +leaves at the location pointed to by +.IR cmap\^ . .PP - -\fIFb_wmap\fR +.I Fb_wmap\^ writes the color map pointed to by -\fIcmap\fR -into the frame buffer\&. If the value of -\fIcmap\fR +.I cmap\^ +into the frame buffer. If the value of +.I cmap\^ is - -NULL -then a linear color map is used as the default\&. +.B +.SM NULL +then a linear color map is used as the default. .PP - -\fIFb_clear\fR -erases the frame buffer by setting all pixels to the given color\&. If the color pointer is NULL, black will be used\&. On a UNIX file, this entails writing the entire file, which is an expensive operation, whereas on most frame buffer displays this can be done in less than a second by a special command\&. +.I Fb_clear\^ +erases the frame buffer by setting all pixels to the given +color. +If the color pointer is NULL, black will be used. +On a UNIX file, this entails writing the entire file, +which is an expensive operation, whereas on most +frame buffer displays +this can be done in less than a second by a special command. .PP - -\fIFb_gettype\fR -returns a pointer to a string describing the frame buffer specified by the FBIO pointer\&. +.I Fb_gettype\^ +returns a pointer to a string describing the frame buffer +specified by the FBIO pointer. .PP - -\fIFb_getwidth\fR +.I Fb_getwidth\^ and -\fIFb_getheight\fR -returns the current size of the FBIO frame buffer\&. +.I Fb_getheight\^ +returns the current size of the FBIO frame buffer. .PP -The following routines work in conjunction with those described above to provide functions which only apply if the frame buffer file is actually a hardware frame buffer display\&. +The following routines work in conjunction with those described above +to provide functions which only apply if the frame buffer +file is actually a hardware frame buffer display. .PP - -\fIFb_cursor\fR +.I Fb_cursor\^ places the cursor at the image space coordinates given by -\fIx\fR +.I x\^ and -\fIy\fR\&. If the mode is non\-zero, the cursor is made visible, and if mode is zero, the cursor is turned off\&. +.IR y\^ . +If the mode is non-zero, the cursor is made visible, and +if mode is zero, the cursor is turned off. .PP - -\fIFb_scursor\fR +.I Fb_scursor\^ is the same as -\fIfb_cursor\fR -except that it places the cursor at the -\fBscreen\fR +.I fb_cursor\^ +except that it +places the cursor at the +.B screen space coordinates given by -\fIx\fR +.I x\^ and -\fIy\fR\&. +.IR y\^ . .PP - -\fIFb_setcursor\fR -allows the user to set the bitmap used to represent the cursor, thereby changing the cursor shape\&. This is not necessarily supported by all hardware\&. The argument -\fIbits\fR -is a pointer to an array of unsigned chars containing the bits of the cursor\&. The arguments -\fIxbits\fR +.I Fb_setcursor\^ +allows the user to set the bitmap used to represent the cursor, +thereby changing the cursor shape. +This is not necessarily supported +by all hardware. +The argument +.I bits\^ +is a pointer to an array +of unsigned chars containing the bits of the cursor. +The arguments +.I xbits and -\fIybits\fR -specify the size of the cursor bitmap\&. The number of bytes in the -\fIbits\fR -array will be the width rounded up to a mutiple of eight (so that the cursor "scanlines" are byte aligned) times the height\&. -\fIbits\fR[0] is the lower left corner, -\fIbits\fR[1] is to the right of it, etc\&. The next line of the -\fIbits\fR -array goes above the current one\&. Within a byte the most significant bit is the leftmost\&. The values -\fIxorig\fR +.I ybits +specify the size of the cursor bitmap. The number of bytes in the +.I bits +array will be the width rounded up to a mutiple of +eight (so that the cursor "scanlines" are byte aligned) times the +height. +.IR bits [0] +is the lower left corner, +.IR bits [1] +is to the right of it, etc. The next line of the +.I bits +array goes above the current one. Within a byte the most significant +bit is the leftmost. The values +.I xorig and -\fIyorig\fR -specify which bit in the bitmap actually gets placed at the location specified in the cursor move routines\&. Again, a first quadrant coordinate system is used\&. +.I yorig +specify which bit in the bitmap actually gets placed at the location +specified in the cursor move routines. Again, a first quadrant coordinate +system is used. .PP - -\fIFb_window\fR -sets the frame buffer window center position to the image space coordinates given by -\fIx\fR +.I Fb_window\^ +sets the frame buffer window center position to the image space coordinates +given by +.I x\^ and -\fIy\fR\&. This command is usually used in conjunction with the -\fIfb_zoom\fR -routine\&. +.IR y\^ . +This command is usually used in conjunction with the +.I fb_zoom\^ +routine. .PP - -\fIFb_zoom\fR -sets the zoom factor for the X coordinate to -\fIx\fR -and the zoom factor for the Y coordinate to -\fIy\fR\&. Zooming is generally done by pixel replication in hardware\&. +.I Fb_zoom\^ +sets the zoom factor for the X coordinate +to +.I x\^ +and the zoom factor for the Y coordinate +to +.IR y\^ . +Zooming is generally done +by pixel replication in hardware. .PP -The following routines work in conjunction with those described above to provide buffered reading and writing of frame buffer images either to a real frame buffer or a UNIX file\&. The routines use a simple paging strategy to hold \(lqbands\(rq of the image in core\&. Since horizontal bands are buffered, the ideal motion is to scan left to right, then bottom to top\&. +The following routines work in conjunction with those described above +to provide buffered reading and writing of frame buffer images +either to a real frame buffer or a UNIX file. +The routines use a simple paging strategy to hold ``bands'' of +the image in core. +Since horizontal bands are buffered, the +ideal motion is to scan left to right, then bottom to top. .PP - -\fIFb_ioinit\fR -should be called before using any of the other buffered I/O routines and repeated whenever the frame buffer is reopened\&. +.I Fb_ioinit\^ +should be called before using any of the other buffered I/O routines and +repeated whenever the frame buffer is reopened. .PP - -\fIFb_seek\fR -is used to position the current read/write pointer to the location to the next position to be read or written\&. It is not necessary to do a -\fIfb_seek\fR +.I Fb_seek\^ +is used to position the current read/write pointer to +the location to the next position to be read or written. +It is not necessary to do a +.I fb_seek\^ after every read or write since both -\fIfb_rpixel\fR +.I fb_rpixel\^ and -\fIfb_wpixel\fR -imply an automatic move to the next pixel\&. If you read or write the last pixel on a scan line, the pointer will automatically move to the beginning of the following scan line\&. +.I fb_wpixel\^ +imply an automatic move to the next pixel. +If you read or write the last pixel on a scan line, +the pointer will automatically move to the beginning +of the following scan line. .PP - -\fIFb_tell\fR -returns the current location of the read write pointer in terms of (X,Y) coordinates on the frame buffer\&. The X and Y values are returned into the integers pointed to by -\fIxp\fR +.I Fb_tell\^ +returns the current location of the read write pointer +in terms of (X,Y) coordinates on the frame buffer. +The X and Y values are returned into the integers pointed to +by +.I xp\^ and -\fIyp\fR\&. +.IR yp\^ . .PP - -\fIFb_rpixel\fR -reads the pixel at the current frame buffer location and returns it into the location specifed by -\fIpixelp\fR\&. +.I Fb_rpixel\^ +reads the pixel at the current frame buffer location +and returns it into the location specifed +by +.IR pixelp\^ . .PP - -\fIFb_wpixel\fR +.I Fb_wpixel\^ writes the pixel pointed to by -\fIpixelp\fR -at the current frame buffer location\&. +.I pixelp\^ +at the current frame buffer location. .PP - -\fIFb_flush\fR -caused any current buffered frame buffer pages to be written out\&. Unnecessary writes are avoided by the use of page reference bits\&. +.I Fb_flush\^ +caused any current buffered frame buffer pages to be written out. +Unnecessary writes are avoided by the use of page reference bits. .PP -The following is a printing routine which this library uses to indicate errors\&. +The following is a printing routine which this library uses to +indicate errors. .PP - -\fIFb_log\fR +.I Fb_log\^ will convert, format and print its -\fIargs\fR +.I args\^ under control of -\fIformat\fR -to the standard error output\&. For more detailed information on the specification of the control string, see -\fBprintf\fR(3S)\&. This function may be supplied by the application if different behavior is desired\&. +.I format\^ +to the standard error output. +For more detailed information on the specification of the control string, +see +.IR printf\^ (3S). +This function may be supplied by the application if different behavior +is desired. .SH "FB_FILE DEVICES" -.PP -The following devices are supported by the library; not all may be available on any given system\&. New device support can be incorporated by the addition of a single module to the library\&. -.PP -/dev/debug\fI[num]\fR -.RS 4 -The "/dev/debug" interface prints one line to logs each call to the frame buffer library\&. - -\fInum\fR -is a bitvector indicating the levels of verbosity of the output\&. See -\fBfb\&.h\fR -for the bit definitions\&. -.RE -.PP -\fIfilename\fR -.RS 4 +The following devices are supported by the library; not all may +be available on any given system. New device support can be +incorporated by the addition of a single module to the library. +.TP +.BI /dev/debug [num] +The "/dev/debug" interface prints one line to logs each call +to the frame buffer library. +.br +.I num +is a bitvector indicating the levels of verbosity of the output. See +.B fb.h +for the bit definitions. +.TP +.I filename Disk file interface -.RE +.TP +.BI hostname: [devicename] +TCP-based network links to a remote framebuffer, where +.I devicename +is any from this list, for example, +fictitious.brlcad.org:/dev/ik0 or fictitious.brlcad.org:/dev/sgi. +A +.B hostname +with a null +.I devicename +will select the default display device on that host. +If explicitly specifying a remote device, +be careful not to omit the colon between the host and device name, +or you will be specifying a local disk file as the result. +Note that for security reasons, it is not permitted to access a +disk file via the remote interface. +.SH EXAMPLE +.I Libfb\^ +can be loaded with any +C +program: .PP -\fBhostname:\fR\fI[devicename]\fR -.RS 4 -TCP\-based network links to a remote framebuffer, where -\fIdevicename\fR -is any from this list, for example, fictitious\&.brlcad\&.org:/dev/ik0 or fictitious\&.brlcad\&.org:/dev/sgi\&. A -\fBhostname\fR -with a null\fIdevicename\fR -will select the default display device on that host\&. If explicitly specifying a remote device, be careful not to omit the colon between the host and device name, or you will be specifying a local disk file as the result\&. Note that for security reasons, it is not permitted to access a disk file via the remote interface\&. +.RS +$ \|\fI/bin/cc \|program.c \|-lfb -l\<system-library...\>\fP .RE -.SH "EXAMPLES" -.PP - -\fILibfb\fR -can be loaded with any C program: .sp -.if n \{\ -.RS 4 -.\} -.nf +where +.I <system-library> +denotes specific libraries necesary on a particular machine. All machines +with networking will require the "-lpkg" option. Machines which support the +X Windows(tm) system will require the "-lX11" option. .sp -.if n \{\ -.RS 4 -.\} -.nf -$ /bin/cc program\&.c \-lfb \-l\e<system\-library\&.\&.\&.\e> -.fi -.if n \{\ -.RE -.\} -.sp - - -.fi -.if n \{\ -.RE -.\} -.PP -where -\fI<system\-library>\fR -denotes specific libraries necesary on a particular machine\&. All machines with networking will require the "\-lpkg" option\&. Machines which support the X Windows(tm) system will require the "\-lX11" option\&. +.SH FILES +fb.h +.br +/usr/brl/lib/libfb.a +.SH "SEE ALSO" +fbhelp(1), brlcad(1). .SH "RETURN VALUES" -.PP - -\fIfb_close\fR, -\fIfb_write\fR, -\fIfb_read\fR, -\fIfb_wmap\fR, -\fIfb_rmap\fR, -\fIfb_clear\fR, -\fIfb_cursor\fR, -\fIfb_scursor\fR, -\fIfb_setcursor\fR, -\fIfb_window\fR, -\fIfb_zoom\fR, -\fIfb_ioinit\fR, -\fIfb_seek\fR, -\fIfb_wpixel\fR, -\fIfb_rpixel\fR +.IR fb_close\^ , +.IR fb_write\^ , +.IR fb_read\^ , +.IR fb_wmap\^ , +.IR fb_rmap\^ , +.IR fb_clear\^ , +.IR fb_cursor\^ , +.IR fb_scursor\^ , +.IR fb_setcursor\^ , +.IR fb_window\^ , +.IR fb_zoom\^ , +.IR fb_ioinit\^ , +.IR fb_seek\^ , +.IR fb_wpixel\^ , +.I fb_rpixel\^ and -\fIfb_flush\fR -return \-1 to indicate failure\&. -\fIFb_open\fR -returns FBIO_NULL to indicate failure, and a non\-null FBIO structure pointer upon success\&. -\fIfb_read\fR, and -\fIfb_write\fR -return the number of pixels actually read or written\&. -\fIfb_gettype\fR -returns a pointer to a NULL terminated description string\&. -.SH "SEE ALSO" -.PP -\fBfbhelp\fR(1), -\fBbrlcad\fR(1)\&. +.I fb_flush\^ +return \-1 to indicate failure. +.I Fb_open\^ +returns FBIO_NULL to indicate failure, and a non-null FBIO structure pointer +upon success. +.IR fb_read\^ , +and +.IR fb_write\^ +return the number of pixels actually read or written. +.IR fb_gettype\^ +returns a pointer to a NULL terminated description string. +.SH BUGS +Vertical scanning will incur the most overhead, making it almost +impractical. +Due to the way memory is organized +in frame buffers and UNIX files, vertical scanning will never +be easy unless the image can be rotated. .SH "BUG REPORTS" -.PP -Reports of bugs or problems should be submitted via electronic mail to <devs@brlcad\&.org>, or via the "cadbug\&.sh" script\&. -.SH "AUTHOR" -.PP -\fBBRL\-CAD Team\fR +Reports of bugs or problems should be submitted via electronic +mail to <de...@br...>. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |