e14743d1 |
1 | ================================================================= |
2 | Patch version 0.9 of SDL(Simple DirectMedia Layer) for Nano-X API |
3 | ================================================================= |
4 | |
5 | Authors: Hsieh-Fu Tsai, clare@setabox.com |
6 | Greg Haerr, greg@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@setabox.com or niky@cmlab.csie.ntu.edu.tw |
97 | or greg@censoft.com |