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