LinuxGuruz
  • Last 5 Forum Topics
    Replies
    Views
    Last post


The Web Only This Site
  • BOOKMARK

  • ADD TO FAVORITES

  • REFERENCES


  • MARC

    Mailing list ARChives
    - Search by -
     Subjects
     Authors
     Bodies





    FOLDOC

    Computing Dictionary




  • Text Link Ads






  • LINUX man pages
  • Linux Man Page Viewer


    The following form allows you to view linux man pages.

    Command:

    svgalib

    
    
    

    TABLE OF CONTENTS

           0. Introduction
           1. Installation
           2. How to use svgalib
           3. Description of svgalib functions
           4. Overview of supported SVGA chipsets and modes
           5. Detailed comments on certain device drivers
           6. Goals
           7. References (location of latest version, apps etc.)
           8. Known bugs
    
    
    

    0. INTRODUCTION

           This  is  a  low  level graphics library for Linux, originally based on
           VGAlib 1.2 by Tommy Frandsen. VGAlib supported a number of standard VGA
           graphics  modes,  as  well  as  Tseng  ET4000 high resolution 256-color
           modes. As of now, support for many more chipsets has  been  added.  See
           section 4 Overview of supported SVGA chipsets and modes
    
           It  supports  transparent  virtual  console switching, that is, you can
           switch consoles to and from  text  and  graphics  mode  consoles  using
           alt-[function  key].  Also,  svgalib corrects most of VGAlib's textmode
           corruption behaviour by catching SIGSEGV,  SIGFPE,  SIGILL,  and  other
           fatal  signals  and ensuring that a program is running in the currently
           visible virtual console before setting a graphics mode.
    
           Note right here that SIGUSR1 and SIGUSR2 are  used  to  manage  console
           switching  internally  in  svgalib.   You can not use them in your pro-
           grams. If your program needs to use one of those signals,  svgalib  can
           be compiled to use other signals, by editing libvga.h
    
           This  version  includes  code to hunt for a free virtual console on its
           own in case you are not starting the program from one (but instead over
           a  network or modem login, from within screen(1) or an xterm(1)).  Pro-
           vided there is a free console, this succeeds if you are root or if  the
           svgalib  calling  user own the current console. This is to avoid people
           not using the console being able to fiddle with it.  On  graceful  exit
           the  program  returns to the console from which it was started.  Other-
           wise it remains in text mode at the VC which svgalib allocated to allow
           you  to  see any error messages. In any case, any I/O the svgalib makes
           in text mode (after calling vga_init(3)) will also take place  at  this
           new console.
    
           Alas,  some games misuse their suid root privilege and run as full root
           process. svgalib cannot detect this and allows Joe Blow User to open  a
           new  VC  on  the console. If this annoys you, ROOT_VC_SHORTCUT in Make-
           file.cfg allows you to disable allocating a new  VC  for  root  (except
           when he owns the current console) when you compile svgalib. This is the
           default.
    
           When the library is used by a program at run-time, first the chipset is
           detected and the appropriate driver is used. This means that a graphics
           end of this document.
    
           I have added a simple VGA textmode font restoration  utility  (restore-
           font(1))  which  may help if you suffer from XFree86 textmode font cor-
           ruption. It can also be used to change the textmode font. It comes with
           some other textmode utilities: restoretextmode(1) (which saves/restores
           textmode registers), restorepalette(1), and the script textmode(1).  If
           you  run  the  savetextmode(1)  script  to save textmode information to
           /tmp, you'll be able to restore textmode  by  running  the  textmode(1)
           script.
    
    
    

    1. INSTALLATION

           Installation  is  easy in general but there are many options and things
           you should keep in mind. This document however assumes that svgalib  is
           already installed.
    
           If  you need information on installation see 0-INSTALL which comes with
           the svgalib distribution.
    
           However, even after installation of the library you might need to  con-
           figure svgalib using the file /etc/vga/libvga.config.  Checkout section
           4 Overview of supported SVGA chipsets and  modes  and  libvga.config(5)
           for information.
    
    
    

    2. HOW TO USE SVGALIB

           For  basic  svgalib  usage  (no  mouse,  no  raw keyboard) add #include
           <vga.h> at the beginning your program.  Use vga_init(3) as  your  first
           svgalib call. This will give up root privileges right after initializa-
           tion, making setuid-root binaries relatively safe.
    
           The function  vga_getdefaultmode(3)  checks  the  environment  variable
           SVGALIB_DEFAULT_MODE  for a default mode, and returns the corresponding
           mode number. The environment string can either be a mode  number  or  a
           mode  name as in (G640x480x2, G640x480x16, G640x480x256 , G640x480x32K,
           G640x480x64K, G640x480x16M).  As an example, to set the default  graph-
           ics mode to 640x480, 256 colors, use:
    
           export SVGALIB_DEFAULT_MODE=G640x480x256
    
           on  the bash(1) command line. If a program needs just a linear VGA/SVGA
           resolution (as required by vgagl(7)), only modes where bytesperpixel in
           the vga_modeinfo structure returned by vga_getmodeinfo(3) is greater or
           equal to 1 should be accepted (this is 0 for tweaked  planar  256-color
           VGA modes).
    
           Use  vga_setmode(graphicsmode)  to  set  a  graphics mode. Use vga_set-
           mode(TEXT) to restore textmode before program exit.
    
           Programs that use svgalib must #include<vga.h>; if they  also  use  the
           external  graphics  library  vgagl(7), you must also #include<vgagl.h>.
           accel(6), testaccel(6), plane(6), and wrapdemo(6).
    
           Debugging your programs will turn out to be rather  difficult,  because
           the svgalib application can not restore textmode when it returns to the
           debugger.
    
           Happy are the users with a serial terminal, X-station, or  another  way
           to log into the machine from network. These can use
    
           textmode </dev/ttyN
    
           on the console where the program runs and continue.
    
           However,  the  vga_flip(3) function allows you to switch to textmode by
           entering a call to it blindly into  your  debugger  when  your  program
           stops  in  graphics  mode.   vga_flip(3) is not very robust though. You
           shall not call it when svgalib is not yet initialized or in textmode.
    
           Before continuing your program, you must then call vga_flip(3) again to
           return  to  graphics  mode.  If  the  program  will not make any screen
           accesses or svgalib calls before it returns to the  debugger,  you  can
           omit that, of course.
    
           This  will  only  work if your program and the debugger run in the same
           virtual linux console.
    
    
    

    3. DESCRIPTION OF SVGALIB FUNCTIONS

           Each function has its own section 3 manual page. For a  list  of  vgagl
           functions see vgagl(7).
    
       Initialization
           vga_init(3)
                  - initialize svgalib library.
           vga_disabledriverreport(3)
                  - makes svgalib not emit any startup messages.
           vga_claimvideomemory(3)
                  - declare the amount of video memory used.
           vga_safety_fork(3)
                  - start a parallel process to restore the console at a crash.
           vga_setchipset(3)
                  - force chipset.
           vga_setchipsetandfeatures(3)
                  - force chipset and optional parameters.
    
       Inquire hardware configuration
           vga_getmousetype(3)
                  - returns the mouse type configured.
           vga_getcurrentchipset(3)
                  - returns the current SVGA chipset.
           vga_getmonitortype(3)
                  - returns the monitor type configured.
    
           vga_screenoff(3), vga_screenon(3)
                  - turn generation of the video signal on or off.
    
       Get video mode information
           vga_getxdim(3), vga_getydim(3), vga_getcolors(3)
                  - return the current screen resolution.
           vga_white(3)
                  - return the color white in the current screen resolution.
           vga_getcurrentmode(3)
                  - returns the current video mode.
           vga_hasmode(3)
                  - returns if a video mode is supported.
           vga_getmodeinfo(3)
                  - returns pointer to mode information structure for a mode.
           vga_getdefaultmode(3)
                  - returns the default graphics mode number.
           vga_lastmodenumber(3)
                  - returns the last video mode number.
           vga_getmodename(3)
                  - return a name for the given video mode.
           vga_getmodenumber(3)
                  - return a number for the given video mode.
    
       Drawing primitives
           vga_clear(3)
                  - clear the screen.
           vga_setcolor(3)
                  - set the current color.
           vga_setrgbcolor(3)
                  - set the current color.
           vga_setegacolor(3)
                  - set the current color.
           vga_drawpixel(3)
                  - draw a pixel on the screen.
           vga_drawscanline(3)
                  - draw a horizontal line of pixels.
           vga_drawscansegment(3)
                  - draw a horizontal line of pixels.
           vga_drawline(3)
                  - draw a line on the screen.
           vga_getpixel(3)
                  - get a pixels value from the screen.
           vga_getscansegment(3)
                  - get a list of consecutive pixel values.
           vga_waitretrace(3)
                  - wait for vertical retrace.
    
       Basic (non raw) keyboard I/O
           vga_getch(3)
                  - wait for a key.
           vga_getkey(3)
                  - read a character from the keyboard without waiting.
    
           vga_copytoplanar16(3)
                  - copy linear pixmap into VGA 16 color mode video memory.
           vga_copytoplane(3)
                  -  copy  linear pixmap to some planes of VGA 16 color mode video
                  memory.
    
       Manage color lookup tables
           vga_setpalette(3)
                  - set a color in the color lookup table.
           vga_getpalette(3)
                  - get a color in the color lookup table.
           vga_setpalvec(3)
                  - sets colors in the color lookup table.
           vga_getpalvec(3)
                  - gets colors from the color lookup table.
    
       Mouse handling
           vga_setmousesupport(3)
                  - enable mouse support.
           mouse_init(3), mouse_init_return_fd(3)
                  - specifically initialize a mouse.
           mouse_close(3)
                  - explicitly close a mouse.
           mouse_update(3)
                  - updates the mouse state.
           mouse_waitforupdate(3)
                  - wait for an mouse update.
           mouse_setscale(3)
                  - sets a mouse scale factor.
           mouse_setwrap(3)
                  - set what happens at the mouse boundaries.
           mouse_setxrange(3), mouse_setyrange(3)
                  - define the boundaries for the mouse cursor.
           mouse_getx(3), mouse_gety(3), mouse_getbutton(3)
                  - query the mouse state.
           mouse_setposition(3)
                  - set the current mouse position.
           mouse_getposition_6d(3), mouse_setposition_6d(3), mouse_setrange_6d(3)
                  - provide an interface to 3d mice.
           mouse_seteventhandler(3), mouse_setdefaulteventhandler(3)
                  - set a mouse event handler.
    
       Raw keyboard handling
           keyboard_init(3), keyboard_init_return_fd(3)
                  - initialize the keyboard to raw mode.
           keyboard_close(3)
                  - return the keyboard to normal operation from raw mode.
           keyboard_update(3), keyboard_waitforupdate(3)
                  - process raw keyboard events.
           keyboard_translatekeys(3)
                  - modify scancode mappings in raw keyboard mode.
           keyboard_keypressed(3)
           joystick_update(3)
                  - query and process joystick state changes.
           joystick_sethandler(3), joystick_setdefaulthandler(3)
                  - define own joystick even handler.
           joystick_getnumaxes(3), joystick_getnumbuttons(3)
                  - query the capabilities of a joystick.
           joystick_getaxis(3), joystick_getbutton(3)
                  - query the state of a joystick.
           joystick_button1|2|3|4(3),  joystick_getb1|2|3|4(3), joystick_x|y|z(3),
           joystick_getx|y|z(3)
                  - convenience macros to query the joystick position.
    
       Accelerator interface (new style)
           vga_accel(3)
                  - calls the graphics accelerator.
    
       Accelerator interface (old style)
           vga_bitblt(3)
                  - copy pixmap on screen using an accelerator.
           vga_fillblt(3)
                  - fill rectangular area in video memory with a single color.
           vga_hlinelistblt(3)
                  - draw horizontal scan lines.
           vga_imageblt(3)
                  -  copy a rectangular pixmap from system memory to video memory.
           vga_blitwait(3)
                  - wait for any accelerator operation to finish.
    
       Controlling VC switches
           vga_lockvc(3)
                  - disables virtual console switching for safety.
           vga_unlockvc(3)
                  - re-enables virtual console switching.
           vga_oktowrite(3)
                  - indicates whether the program has direct access to the SVGA.
           vga_runinbackground(3)
                  - enable running of the program while there is no VGA access.
           vga_runinbackground_version(3)
                  - returns the version of the current background support.
    
       Debugging aids
           vga_dumpregs(3)
                  - dump the contents of the SVGA registers.
           vga_gettextfont(3), vga_puttextfont(3)
                  - get/set the font used in text mode.
           vga_gettextmoderegs(3), vga_settextmoderegs(3)
                  - get/set the vga state used in text mode.
           vga_flip(3)
                  - toggle between text and graphics mode.
           vga_setflipchar(3)
                  - set the character causing a vga_flip().
    
           card. As of this writing there are  a  few  known  problems  with  this
           driver. Read below.
    
       ARK Logic ARK1000PV/2000PV
           Full  support,  limited RAMDAC support. Only ARK1000PV tested. Supports
           Clocks and Ramdac lines in config file.
    
       ATI SVGA (VGA Wonder and friends)
           This is no real driver. I do not support any  new  modes.   However  it
           saves  additional card setup and thus allows use of the plain VGA modes
           even when you are using non standard text  modes.  It  is  possible  to
           enforce use of this driver even on ATI Mach32 but not very useful.
    
       ATI Mach32
           The  driver  by  Michael Weller supports all ATI BIOS-defined modes and
           more... It hits the best out of your card.  Some  modes  may  not  have
           nice  default timings but it uses the ATI's EEPROM for custom config or
           allows to specify modes in libvga.config(5).  Some problems  may  occur
           with  quite some third party cards (usually on board) Mach32 based con-
           trollers as they do not completely conform to the Mach32  data  sheets.
           Check out svgalib.mach32(7) (and libvga.config(5)).
    
       ATI Mach64 (rage)
           A driver for ATi Mach64 based cards with internal DAC.
    
       Chips  and  Technologies  chipsets  65525,  65535, 65546, 65548, 65550, and
           65554 (usually in laptops).
           This server was written using the SVGALIB patch from Sergio and  Angelo
           Masci as a starting point. This version of the code resembled the XFree
           server code that was used up to XFree 3.1.2. As such it  was  incapable
           of  programming  the  clocks,  using linear addressing, Hi-Color, True-
           Color modes or the hardware acceleration. All of  these  features  have
           since  been  added  to  the code.  The 64200 and 64300 chips are unsup-
           ported, however these chips are very similar to the 6554x  chips  which
           are supported.
    
       Cirrus Logic GD542x/3x
           All  the  modes, including 256 color, 32K/64K color, 16M color (3 bytes
           per pixel) and 32-bit pixel 16M color modes (5434). Some  bitblt  func-
           tions are supported.  The driver doesn't work with mode dumps, but uses
           a SVGA abstraction with mode timings like the X drivers.
    
       Genoa(?) GVGA6400 cards.
           Supported.
    
    
       S3
           The driver is not complete, but should work on a number  of  cards/RAM-
           DACs, and 640x480x256 should work on most card. The best support is for
           a 801/805 with AT&T20C490-compatible RAMDAC, and S3-864  +  SDAC.   All
           256/32K/64K/16M  works  for  them  (within the bounds of video memory &
           ramdac restrictions).
    
           The supported cards include S3 Virge and S3 Trio64 cards.
    
           None of the acceleration function is supported yet.
    
           The chip level code should work with the 964/868/968, but  most  likely
           the card they come on would use an unsupported ramdac/clock chip.  Sup-
           port for these chips is slowly being added.
    
           Clocks and Ramdac lines in libvga.config(5) supported.
    
           The maximum pixel clock (in MHz) of the ramdac can be set using a  Dac-
           speed  line  in the config file. A reasonable default is assumed if the
           Dacspeed line is omitted.  Clocks should be the  same  as  in  XFree86.
           Supported  ramdac  IDs:  Sierra32K,  SC15025,  SDAC, GenDAC, ATT20C490,
           ATT20C498, IBMRGB52x.
    
           Example:
           Clocks 25.175 28.3 40 70 50 75 36 44.9 0 118 77 31.5 110 65 72 93.5
           Ramdac att20c490
           DacSpeed 85
    
           Also supported, at least in combination with the SC15025/26A ramdac, is
           the  ICD 2061A clock chip.  Since it cannot be autodetected you need to
           define it in the config file using a Clockchip line. As there is no way
           to  read  the  current settings out of the 2061, you have the option to
           specify the frequency used when switching back to text mode  as  second
           argument in the Clockchip line.
    
           This  is  especially  required if your text mode is an 132 column mode,
           since these modes use a clock from the  clock  chip,  while  80  column
           modes use a fixed clock of 25 MHz.  The text mode frequency defaults to
           40 MHz, if omitted.
    
           Example:
           ClockChip icd2061a 40.0
    
       Trident TVGA 8900C/9000 (and possibly also 8800CS/8900A/B)  and  also  TVGA
           9440
           Derived  from  tvgalib  by  Toomas  Losin.  TVGA  9440  support  by ARK
           <ark@lhq.com, root@ark.dyn.ml.or>.
    
           Supports 640x480x256, 800x600x256, 1024x768x256  (interlaced  and  non-
           interlaced)  Might  be useful to add 16-color modes (for those equipped
    
                  bit2 = false, bit1 = false
                         force 8900.
    
                  bit2 = false, bit1 = true
                         force 9440.
    
                  bit2 = true, bit1 = false
                         force 9680.
    
                  bit0 = true
                         force noninterlaced.
    
                  bit0 = false
                         force  interlaced  which  only  matters on 8900's with at
                         least 1M since there is no 512K interlaced  mode  on  the
                         8900 or any of the other cards.
    
       Tseng ET4000/ET4000W32(i/p)
           Derived  from  VGAlib;  not  the same register values.  ET4000 register
           values are not compatible; see svgalib.et4000(7).
    
           Make sure the colors are right in hicolor  mode;  the  vgatest  program
           should draw the same color bars for 256 and hicolor modes (the DAC type
           is defined at compilation  in  et4000.regs  or  the  dynamic  registers
           file).   ET4000/W32  based cards usually have an AT&T or Sierra 15025/6
           DAC. With recent W32p based cards, you might have some  luck  with  the
           AT&T  DAC  type.   If the high resolution modes don't work, you can try
           dumping the registers in DOS using the program in the et4000/ directory
           and putting them in a file (/etc/vga/libvga.et4000 is parsed at runtime
           if  DYNAMIC  is  defined  in  Makefile.cfg  at  compilation  (this   is
           default)).
    
           Supported    modes    are   640x480x256,   800x600x256,   1024x768x256,
           640x480x32K, 800x600x32K, 640x480x16M, etc.
    
           Reports of ET4000/W32i/p functionality are welcome.
    
           There may be a problem with the way the hicolor DAC  register  is  han-
           dled;  dumped  registers  may  use  one of two timing methods, with the
           value written to the register for a particular DAC for a  hicolor  mode
           (in  vgahico.c)  being  correct for just one of the these methods. As a
           consequence some dumped resolutions may work while others don't.
    
       Tseng ET6000
           Most modes of which the card is capable are supported.  The 8 15 16  24
           and 32 bit modes are supported.
    
           The  ET6000 has a built in DAC and there is no problem coming from that
           area. The ET6000 is capable  of  acceleration,  but  this  as  well  as
    
       VESA
           Please  read  README.vesa  and  README.lrmi  in doc subdirectory of the
           standard distribution.
    
           Go figure! I turned off autodetection in the release, as a broken  bios
           will  be  called  too, maybe crashing the machine. Enforce VESA mode by
           putting a chipset VESA in the end of your libvga.config(5).
    
           Note that it will leave protected mode and call the cards bios  opening
           the door to many hazards.
    
    
    

    5. DETAILED COMMENTS ON CERTAIN DEVICE DRIVERS

           This  section  contains  detailed information by the authors on certain
           chipsets.
    
       AT3D (AT25)
           Also known as Promotion at25. Popular as the 2D part of a  voodoo  rush
           card.
    
           I  have written a driver for this chipset, based on the XF86 driver for
           this chipset.
    
           The programs that work with this driver include all the programs in the
           demos directory, zgv and dvisvga (tmview).
    
           I believe it should be easy to make it work on AT24, AT6422.
    
       ATI Mach32
           Please see svgalib.mach32(7).
    
       ATI Mach64
           The  rage.c  driver works only on mach64 based cards with internal DAC.
           The driver might misdetect the base frequency the card uses, so if when
           setting  any svgalib modes the screen blanks, or complains about out of
           bound frequencies, or the display is  unsynced,  then  try  adding  the
           option RageDoubleClock to the config file.
    
       Chips  and  Technologies  chipsets  65525,  65535, 65546, 65548, 65550, and
           65554 (usually in laptops).
           Please see svgalib.chips(7).
    
       Tseng ET4000/ET4000W32(i/p)
           Please see svgalib.et4000(7).
    
           My  et6000  card is on a PCI bus.  The card will run on a vesa bus, but
           since I don't have one on my machine I couldn't develop vesa  bus  han-
           dling.  I quit if the bus is a vesa bus.
    
           I  check for an et6000 card, which can be unequivocally identified. The
           et4000 driver does not properly identify et4000 cards.  It  thinks  the
           et6000 card is an et4000, but can only run it in vga modes.
    
           I have found the following four modelines to be useful in libvga.config
           or in ~/.svgalibrc for proper display of some modes.
    
           Modeline "512x384@79" 25.175 512 560 592 640  384 428 436 494
           Modeline "400x300@72" 25.000 400 456 472 520  300 319 332 350  DOUBLES-
           CAN
           Modeline "512x480@71" 25.175 512 584 600 656  480 500 510 550
           Modeline "400x600@72" 25.000 400 440 488 520  600 639 644 666
    
           Don Secrest <secrest@uiuc.edu> Aug 21, 1999
    
       Oak Technologies OTI-037/67/77/87
           First  a  few  comments  of  me  (Michael  Weller <eowmob@exp-math.uni-
           essen.de>):
    
           As of this writing (1.2.8) fixes were made to the oak driver  by  Frodo
           Looijaard  <frodol@dds.nl>  to  reenable OTI-067 support. It is unknown
           right now if they might have broken OTI-087 support. The author of  the
           '87  support  Christopher  Wiles  <wileyc@moscow.com> owns no longer an
           OTI-087 card and can thus  no  longer  give  optimal  support  to  this
           driver.  Thus  you might be better off contacting me or Frodo for ques-
           tions. If you are a knowledgeable OTI-087 user and experience  problems
           you  are  welcome  to provide fixes.  No user of a OTI-087 is currently
           known to me, so if you are able to fix problems with the driver  please
           do so (and contact me) as noone else can.
    
           Michael.
    
           Now back to the original Oak information:
    
           The original OTI driver, which supported the OTI-067/77 at 640x480x256,
           has been augmented with the following features:
    
           1)     Supported resolutions/colors have been expanded to  640x480x32K,
                  800x600x256/32K, 1024x768x256, and 1280x1024x16.
    
           2)     The  OTI-087  (all  variants) is now supported.  Video memory is
                  correctly recognized.
    
           The driver as it exists now is somewhat schizoid.  As the '87  incorpo-
           information for the '87 was wrong also.
    
           64K  modes  do  not  work.   I can't even get Oak's BIOS to enter those
           modes.
    
           I have included a 1280x1024x16 mode, but I haven't tested it.  My moni-
           tor can't handle that resolution.  According to the documentation, with
           2 megs the '87 should be able to do  an  interlaced  1280x1024x256  ...
           again,  I  couldn't get the BIOS to do the mode.  I haven't 2 megs any-
           way, so there it sits.
    
           I have included routines for entering and leaving  linear  mode.   They
           should  work,  but  they  don't.   It looks like a pointer to the frame
           buffer is not being passed to SVGALIB.  I've been  fighting  with  this
           one  for a month.  If anyone wants to play with this, let me know if it
           can be make to work.  I've got exams that I need to pass.
    
           Tidbit: I pulled the extended register info  out  of  the  video  BIOS.
           When  the  information  thus  obtained  failed  to work, I procured the
           OTI-087 data book.  It appears that Oak's video BIOS sets various modes
           incorrectly  (e.g.  setting  8-bit color as 4, wrong dot clock frequen-
           cies, etc.).  Sort of makes me wonder ...
    
           Christopher M. Wiles (a0017097@wsuaix.csc.wsu.edu)
           12 September 1994
    
    
    

    6. GOALS

           I think the ability to use a VGA/SVGA graphics resolution in  one  vir-
           tual   console,  and  being able to switch to any other virtual console
           and back makes a fairly useful implementation of graphics modes in  the
           Linux console.
    
           Programs  that use svgalib must be setuid root. I don't know how desir-
           able it is to have this changed; direct port access can hardly be  done
           without.  Root  privileges  can now be given up right after initializa-
           tion. I noticed some unimplemented stuff in  the  kernel  header  files
           that  may  be  useful,  although  doing all register I/O via the kernel
           would incur a significant context-switching  overhead.  An  alternative
           might be to have a pseudo /dev/vga device that yields the required per-
           missions when opened, the device being readable by  programs  in  group
           vga.
    
           It  is important that textmode is restored properly and reliably; it is
           fairly reliable at the moment, but  fast  console  switching  back  and
           forth  between  two  consoles running graphics can give problems.  Wild
           virtual console switching also sometimes corrupts the contents  of  the
           textmode screen buffer (not the textmode registers or font).  Also if a
           program crashes it may write into the area  where  the  saved  textmode
           registers  are  stored,  causing textmode not be restored correctly. It
           would be a good idea to somehow store this information in a 'safe' area
           (say  a  kernel buffer). Note that the vga_safety_fork(3) thing has the
           color  supporting  graphical  window  environment with cut-and-paste, I
           believe it would be surprisingly little work to come up with  a  simple
           but very useful client-server system with shmem, the most useful appli-
           cations being fairly trivial  to  write  (e.g.  shell  window,   bitmap
           viewer).     And many X apps would port trivially.
    
           This  is  old information, please be sure to read svgalib.faq(7) if you
           are interested in further goals.
    
    
    

    7. REFERENCES

           The latest version of  svgalib  can  be  found  on  sunsite.unc.edu  in
           /pub/Linux/libs/graphics  or  tsx-11.mit.edu in /pub/linux/sources/libs
           as svgalib-X.X.X.tar.gz.  As of this  writing  the  latest  version  is
           svgalib-1.4.1.tar.gz.  There are countless mirrors of these ftp servers
           in the world. Certainly a server close to you will carry it.
    
           The       original       VGAlib       is       on       tsx-11.mit.edu,
           pub/linux/sources/libs/vgalib12.tar.Z.   tvgalib-1.0.tar.Z  is  in  the
           same directory.
    
           SLS has long been distributing an old  version  of  VGAlib.   Slackware
           keeps  a  fairly up-to-date version of svgalib, but it may be installed
           in different directories from what svgalib likes to do by default.  The
           current  svgalib  install tries to remove most of this. It also removes
           /usr/bin/setmclk and /usr/bin/convfont, which is  a  security  risk  if
           setuid-root.  Actually the recent makefiles try to do a really good job
           to cleanup the mess which some distributions make.
    
           If you want to recompile the a.out shared library, you  will  need  the
           DLL  'tools'  package  (found  on tsx-11.mit.edu, GCC dir).  To make it
           work with recent ELF compiler's you actually need to hand patch it. You
           should  probably  not  try  to compile it. Compiling the ELF library is
           deadly simple.
    
           And here is a list of other  references  which  is  horribly  outdated.
           There  are  many  more  svgalib applications as well as the directories
           might have changed.  However, these will give you  a  start  point  and
           names to hunt for on CD's or in ftp archives.
    
       Viewers (in /pub/Linux/apps/graphics/viewers on sunsite.unc.edu):
           spic   Picture viewer; JPG/PPM/GIF; truecolor; scrolling.
           zgv    Full-featured viewer with nice file selector.
           see-jpeg
                  Shows picture as it is being built up.
           mpeg-linux
                  svgalib  port  of the Berkeley MPEG decoder (mpeg_play); it also
                  includes an X binary.
           flip   FLI/FLC player (supports SVGA-resolution).
    
    
       Docs
           In the vga directory of the SIMTEL MSDOS collection, there is a package
           called  vgadoc3 which is a collection of VGA/SVGA register information.
    
           The XFree86 driver sources distributed with the link-kit may  be  help-
           ful.
    
       Miscellaneous
           There's  an  alternative RAW-mode keyboard library by Russell Marks for
           use with svgalib on sunsite.unc.edu.
    
           LIBGRX, the extensive framebuffer library by  Csaba  Biegl  distributed
           with  DJGPP,  has  been  ported  to  Linux.  Contact  Hartmut  Schirmer
           (phc27@rz.uni-kiel.d400.de, subject prefix "HARTMUT:"). A  more  up-to-
           date  port  by  Daniel  Jackson  (djackson@icomp.intel.com)  is on sun-
           site.unc.edu.
    
           The vgalib ghostscript device driver  sources  can  be  found  on  sun-
           site.unc.edu,   /pub/Linux/apps/graphics.    Ghostscript  patches  from
           Slackware: ftp.cdrom.com, /pub/linux/misc.  gnuplot patches are on sun-
           site.unc.edu.
    
           Mitch  D'Souza  has  written font functions that work in 16 color modes
           and can use VGA textmode (codepage format) fonts; these can be found in
           his  g3fax  package  in sunsite.unc.edu.  These functions may go into a
           later version of svgalib.
    
    
    

    8. KNOWN BUGS

           This section is most probably outdated, none of these problems  are  no
           longer reported.
    
           Using a 132 column textmode may cause graphics modes to fail. Try using
           something like 80x28.
    
           The console switching doesn't preserve some registers that may be  used
           to draw in planar VGA modes.
    
           Wild console switching can cause the text screen to be corrupted, espe-
           cially when switching between two graphics consoles.
    
           On ET4000, having run XFree86 may cause high resolution modes  to  fail
           (this is more XFree86's fault).
    
           The  Trident  probing  routine in the XFree86 server may cause standard
           VGA modes to fail after exiting X on a Cirrus. Try putting a  'Chipset'
           line in your Xconfig to avoid the Trident probe, or use the link kit to
           build a server without the Trident driver.  Saving  and  restoring  the
           textmode  registers with savetextmode/textmode (restoretextmode) should
           also work. [Note: svgalib now resets the particular extended  register,
    
    
    

    FILES

           /etc/vga/libvga.config
           /etc/vga/libvga.et4000
    
    
    

    SEE ALSO

           svgalib.et4000(7), svgalib.chips(7), svgalib.mach32(7), vgagl(7),  lib-
           vga.config(5),  3d(6), accel(6), bg_test(6), eventtest(6), forktest(6),
           fun(6), keytest(6), lineart(5), mousetest(6), joytest(6),  mjoytest(6),
           scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlin-
           ear(6), vgatest(6),  plane(6),  wrapdemo(6),  convfont(1),  dumpreg(1),
           fix132x43(1),  restorefont(1),  restorepalette(1),  restoretextmode(1),
           runx(1), savetextmode(1), setmclk(1), textmode(1), mach32info(1).
    
    
    

    AUTHOR

           There are many authors of svgalib. This  page  was  edited  by  Michael
           Weller  <eowmob@exp-math.uni-essen.de>.  The original documentation and
           most of svgalib was done by Harm Hanemaayer <H.Hanemaayer@inter.nl.net>
           though.
    
    
    

    Svgalib 1.4.1 16 December 1999 svgalib(7)

    
    
  • MORE RESOURCE


  • Linux

    The Distributions





    Linux

    The Software





    Linux

    The News



  • MARKETING






  • Toll Free

webmaster@linuxguruz.com
Copyright © 1999 - 2016 by LinuxGuruz