 ========================
  Using SDL with PicoGUI
 ========================

- Originally contributed by Micah Dowty <micahjd@users.sourceforge.net>

PicoGUI is a scalable GUI system with a unique architecture, primarily focused
on scalability to various embedded systems. You can find more information
including a FAQ at http://picogui.org

To use the patch:

  1. When compiling, add the "--enable-video-picogui" switch to ./configure

  2. When running your program, ensure that the picogui driver for SDL
     is in use by setting the SDL_VIDEODRIVER environment variable 
     to "picogui".

  3. The program must also be linked to the C client library for PicoGUI
     (libpgui.so). If the program is being compiled with a patched SDL 
     installed this should be done automatically. If you want to use an
     existing binary with PicoGUI, you can set the LD_PRELOAD environment
     variable to the path of your libpgui.so file.

Capabilities:

  So far only basic functionality is provided on true color (linear16/24/32)
  devices. Accessing a memory mapped bitmap, updating the display, and handling
  mouse/keyboard input. This functionality has been tested with several
  applications, including mplayer, Xine, sldroids, and Abuse.

TODO list:

  - YUV overlays will be helpful for watching video on set top boxes or other
    embedded devices that have some graphics acceleration hardware

  - Account for rotated bitmap storage in pgserver

  - Support for hiding or changing the cursor

  - The display should be centered when the SDL application is smaller
    than the PicoGUI panel

  - Fullscreen or any other special modes

  - Support for indexed and grayscale modes

  - Probably much more...

--- The End ---
