view README.NanoX @ 761:c5b2b6d2d1fe

Date: Wed, 31 Dec 2003 21:55:30 +0100 From: Max Horn Subject: SDL: video/quartz cleanup while doing some experimental changes in the quartz code, I was annoyed by having to recompile that one big .o file over and over again. So I decided to finally realize one TODO: properly splitting the code over multiple files :-). With two exceptions, I didn't make code changes, only rearranged files and added new headers. Since there are several new files, making a patch didn't work out so well, so I decided to just send you all the new & modified files. The one source change I made is related to showing/hiding the mouse. I renamed cursor_visible to cursor_should_be_visible and cursor_hidden to cursor_visible; I think that makes reading the code easier. Then I added two new functions: QZ_ShowMouse and QZ_HideMouse. They help manage cursor_visible (the former 'cursor_hidden'). Finally I replaced the Carbon ShowCursor/HiderCuror calls by [NSCursor hide] and [NSCursor unhide]. The API docs are not conclusive, but it might be that with those the "cursor_visible" (former 'cursor_hidden') hack may not be necessary anymore; however so far I didn't test this hypothesis, so I left that in. The other change was to remove in_foreground and use [NSApp isActive] instead: Manually keeping track of whether we are in the foreground is error prone. This should work better in some corner cases.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 04 Jan 2004 14:55:35 +0000
parents 26dafefeebb2
children
line wrap: on
line source

  =================================================================
  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