  =================================================================
  Patch version 0.9 of SDL(Simple DirectMedia Layer) for Nano-X API
  =================================================================
  
  Authors: Hsieh-Fu Tsai, clare@setabox.com
           Greg Haerr, greg@censoft.com

  This patch is against SDL version 1.2.4.
  It enhances previous patch 0.8 by providing direct framebuffer
  access as well as dynamic hardware pixel type support, not
  requiring a compile-time option setting for different framebuffer
  modes.
  Tested against Microwindows version 0.89pre9.

  Older Microwindows versions
  ===========================
  If running on a version older than Microwindows 0.89pre9,
  the following items might need to be patched in Microwindows.

  1. Patch src/nanox/client.c::GrClose()
  It fixes the client side GrClose(). In the original version, 
  GrOpen() can only be called once. When the GrOpen() is called at 
  the second time, the program will terminate. In order to prevent
  this situation, we need to insert "nxSocket = -1" after 
  "close(nxSocket)" in GrClose(). If you do not have this problem,
  you may skip this step. 

  2. Patch src/nanox/clientfb.c to return absolute x,y coordinates
  when using GrGetWindowFBInfo().  Copy the version 0.89pre9
  of src/nanox/clientfb.c to your system, or configure
  using --disable-nanox-direct-fb.

  =============
  Quick Install 
  =============

  1. ./configure --disable-video-x11 --disable-video-fbcon \ 
       --enable-video-nanox \ 
       --with-nanox-pixel-type=[rgb/0888/888/565/555/332/pal] 
  2. make clean 
  3. make 
  4. make install (as root) 

  ============
  Nitty-gritty 
  ============

  --enable-nanox-direct-fb       Use direct framebuffer access
  --enable-nanox-debug           Show debug messages 
  --enable-nanox-share-memory    Use shared-memory to speed up 

  When running multi-threaded applications using SDL, such
  as SMPEG, set THREADSAFE=Y in Microwindows' config file,
  to enable GrXXX() system call critical section support.

  =============================================
  Some programs can be used to test this patch. 
  =============================================

  1. http://www.cs.berkeley.edu/~weimer/atris (a tetris-like game) 
  2. http://www.libsdl.org/projects/newvox/
  3. http://www.libsdl.org/projects/xflame/
  4. http://www.libsdl.org/projects/optimum/ 
  5. http://www.gnugeneration.com/software/loop/ 
  6: http://www.lokigames.com/development/smpeg.php3 (SMPEG version 0.4.4)

  =========
  Todo List 
  =========

  1. Create hardware surface
  2. Create YUVOverlay on hardware
  3. Use OpenGL
  4. Gamma correction
  5. Hide/Change mouse pointer
  6. Better window movement control with direct fb access
  7. Palette handling in 8bpp could be improved

  =====================
  Supporting Institutes
  =====================
  
  Many thanks to go to Setabox Co., Ltd. and CML (Communication and
  Multimedia Laboratory, http://www.cmlab.csie.ntu.edu.tw/) in the 
  Department of Computer Science and Information Engineering of 
  National Taiwan University for supporting this porting project.
  
  Century Embedded Technologies (http://embedded.censoft.com)
  for this patch.

  ===================
  Contact Information
  ===================

  Welcome to give me any suggestion and to report bugs.
  My e-mail address : clare@setabox.com or niky@cmlab.csie.ntu.edu.tw
                      or greg@censoft.com
