1 ================================================================= |
1 ================================================================= |
2 Patch version 0.8 of SDL(Simple DirectMedia Layer) for Nano-X API |
2 Patch version 0.9 of SDL(Simple DirectMedia Layer) for Nano-X API |
3 ================================================================= |
3 ================================================================= |
4 |
4 |
5 Author: Hsieh-Fu Tsai, clare@setabox.com |
5 Authors: Hsieh-Fu Tsai, clare@setabox.com |
|
6 Greg Haerr, greg@censoft.com |
6 |
7 |
7 There are two patch files in this package. |
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. |
8 |
14 |
9 1. The first patch file, nanox.patch, is to fix a bug in Nano-X. |
15 Older Microwindows versions |
10 This patch is proposed by Gary James (gjames@twcny.rr.com). |
16 =========================== |
|
17 If running on a version older than Microwindows 0.89pre9, |
|
18 the following items might need to be patched in Microwindows. |
11 |
19 |
|
20 1. Patch src/nanox/client.c::GrClose() |
12 It fixes the client side GrClose(). In the original version, |
21 It fixes the client side GrClose(). In the original version, |
13 GrOpen() can only be called once. When the GrOpen() is called at |
22 GrOpen() can only be called once. When the GrOpen() is called at |
14 the second time, the program will terminate. In order to prevent |
23 the second time, the program will terminate. In order to prevent |
15 this situation, we need to insert "nxSocket = -1" after |
24 this situation, we need to insert "nxSocket = -1" after |
16 "close(nxSocket)" in GrClose(). If you do not have this problem, |
25 "close(nxSocket)" in GrClose(). If you do not have this problem, |
17 you may skip this step. |
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. |
18 |
32 |
19 ============= |
33 ============= |
20 Quick Install |
34 Quick Install |
21 ============= |
35 ============= |
22 |
36 |
29 |
43 |
30 ============ |
44 ============ |
31 Nitty-gritty |
45 Nitty-gritty |
32 ============ |
46 ============ |
33 |
47 |
34 --with-nanox-pixel-type=[rgb/0888/888/565/555/332/pal] |
48 --enable-nanox-direct-fb Use direct framebuffer access |
35 |
|
36 If the wrong pixel type is used, the program will crash when the |
|
37 sub-routine updates the screen. This option depends on SCREEN_PIXTYPE |
|
38 which is defined in Microwin0.89pre7/src/config. SCREEN_PIXTYPE |
|
39 is used to define the pixel type in Microwindows/Nano-X. |
|
40 I only test the program when the pixel type is in "rgb" |
|
41 (Microwin under X11) or "888" (framebuffer in 24-bit). |
|
42 |
|
43 --enable-nanox-debug Show debug messages |
49 --enable-nanox-debug Show debug messages |
44 --enable-nanox-share-memory Use shared-memory to speed up |
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. |
45 |
55 |
46 ============================================= |
56 ============================================= |
47 Some programs can be used to test this patch. |
57 Some programs can be used to test this patch. |
48 ============================================= |
58 ============================================= |
49 |
59 |
50 1. http://www.cs.berkeley.edu/~weimer/atris (a tetris-like game) |
60 1. http://www.cs.berkeley.edu/~weimer/atris (a tetris-like game) |
51 2. http://www.libsdl.org/projects/newvox/ |
61 2. http://www.libsdl.org/projects/newvox/ |
52 3. http://www.libsdl.org/projects/xflame/ |
62 3. http://www.libsdl.org/projects/xflame/ |
53 4. http://www.libsdl.org/projects/optimum/ |
63 4. http://www.libsdl.org/projects/optimum/ |
54 5. http://www.gnugeneration.com/software/loop/ |
64 5. http://www.gnugeneration.com/software/loop/ |
55 |
65 6: http://www.lokigames.com/development/smpeg.php3 (SMPEG version 0.4.4) |
|
66 |
56 ========= |
67 ========= |
57 Todo List |
68 Todo List |
58 ========= |
69 ========= |
59 |
70 |
60 1. Create hardware surface |
71 1. Create hardware surface |
61 2. Create YUVOverlay on hardware |
72 2. Create YUVOverlay on hardware |
62 3. Use OpenGL |
73 3. Use OpenGL |
63 4. Gamma correction |
74 4. Gamma correction |
64 5. Hide/Change mouse pointer |
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 |
65 |
78 |
66 ===================== |
79 ===================== |
67 Supporting Institutes |
80 Supporting Institutes |
68 ===================== |
81 ===================== |
69 |
82 |
70 Many thanks to go to Setabox Co., Ltd. and CML (Communication and |
83 Many thanks to go to Setabox Co., Ltd. and CML (Communication and |
71 Multimedia Laboratory, http://www.cmlab.csie.ntu.edu.tw/) in the |
84 Multimedia Laboratory, http://www.cmlab.csie.ntu.edu.tw/) in the |
72 Department of Computer Science and Information Engineering of |
85 Department of Computer Science and Information Engineering of |
73 National Taiwan University for supporting this porting project. |
86 National Taiwan University for supporting this porting project. |
74 |
87 |
|
88 Century Embedded Technologies (http://embedded.censoft.com) |
|
89 for this patch. |
|
90 |
75 =================== |
91 =================== |
76 Contact Information |
92 Contact Information |
77 =================== |
93 =================== |
78 |
94 |
79 Welcome to give me any suggestion and to report bugs. |
95 Welcome to give me any suggestion and to report bugs. |
80 My e-mail address : clare@setabox.com or niky@cmlab.csie.ntu.edu.tw |
96 My e-mail address : clare@setabox.com or niky@cmlab.csie.ntu.edu.tw |
81 |
97 or greg@censoft.com |