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