1 ================================================================= 2 Patch version 0.9 of SDL(Simple DirectMedia Layer) for Nano-X API 3 ================================================================= 4 5 Authors: Hsieh-Fu Tsai, clare (a] setabox.com 6 Greg Haerr, greg (a] censoft.com 7 8 This patch is against SDL version 1.2.4. 9 It enhances previous patch 0.8 by providing direct framebuffer 10 access as well as dynamic hardware pixel type support, not 11 requiring a compile-time option setting for different framebuffer 12 modes. 13 Tested against Microwindows version 0.89pre9. 14 15 Older Microwindows versions 16 =========================== 17 If running on a version older than Microwindows 0.89pre9, 18 the following items might need to be patched in Microwindows. 19 20 1. Patch src/nanox/client.c::GrClose() 21 It fixes the client side GrClose(). In the original version, 22 GrOpen() can only be called once. When the GrOpen() is called at 23 the second time, the program will terminate. In order to prevent 24 this situation, we need to insert "nxSocket = -1" after 25 "close(nxSocket)" in GrClose(). If you do not have this problem, 26 you may skip this step. 27 28 2. Patch src/nanox/clientfb.c to return absolute x,y coordinates 29 when using GrGetWindowFBInfo(). Copy the version 0.89pre9 30 of src/nanox/clientfb.c to your system, or configure 31 using --disable-nanox-direct-fb. 32 33 ============= 34 Quick Install 35 ============= 36 37 1. ./configure --disable-video-x11 --disable-video-fbcon \ 38 --enable-video-nanox \ 39 --with-nanox-pixel-type=[rgb/0888/888/565/555/332/pal] 40 2. make clean 41 3. make 42 4. make install (as root) 43 44 ============ 45 Nitty-gritty 46 ============ 47 48 --enable-nanox-direct-fb Use direct framebuffer access 49 --enable-nanox-debug Show debug messages 50 --enable-nanox-share-memory Use shared-memory to speed up 51 52 When running multi-threaded applications using SDL, such 53 as SMPEG, set THREADSAFE=Y in Microwindows' config file, 54 to enable GrXXX() system call critical section support. 55 56 ============================================= 57 Some programs can be used to test this patch. 58 ============================================= 59 60 1. http://www.cs.berkeley.edu/~weimer/atris (a tetris-like game) 61 2. http://www.libsdl.org/projects/newvox/ 62 3. http://www.libsdl.org/projects/xflame/ 63 4. http://www.libsdl.org/projects/optimum/ 64 5. http://www.gnugeneration.com/software/loop/ 65 6: http://www.lokigames.com/development/smpeg.php3 (SMPEG version 0.4.4) 66 67 ========= 68 Todo List 69 ========= 70 71 1. Create hardware surface 72 2. Create YUVOverlay on hardware 73 3. Use OpenGL 74 4. Gamma correction 75 5. Hide/Change mouse pointer 76 6. Better window movement control with direct fb access 77 7. Palette handling in 8bpp could be improved 78 79 ===================== 80 Supporting Institutes 81 ===================== 82 83 Many thanks to go to Setabox Co., Ltd. and CML (Communication and 84 Multimedia Laboratory, http://www.cmlab.csie.ntu.edu.tw/) in the 85 Department of Computer Science and Information Engineering of 86 National Taiwan University for supporting this porting project. 87 88 Century Embedded Technologies (http://embedded.censoft.com) 89 for this patch. 90 91 =================== 92 Contact Information 93 =================== 94 95 Welcome to give me any suggestion and to report bugs. 96 My e-mail address : clare (a] setabox.com or niky (a] cmlab.csie.ntu.edu.tw 97 or greg (a] censoft.com 98