Mercurial > sdl-ios-xcode
view README.NanoX @ 637:6862d4294870
te: 27 Jun 2003 21:16:01 +0100
From: Alan Swanson
Subject: [SDL] New XFree 4.3 Video Mode Patch
The current patch to fix the issues with XFree 4.3 it is a bit of
overkill to a simple problem. Default screen settings should be set in
X, not selected by SDL with environment variables. Any program or user
using non-standard or unset display modes get what they deserve :-)
If you look at the unsorted list of modes returned by X, here's mine;
1280 x 1024 @ 85.0 >
1024 x 768 @ 100.3 > USER
800 x 600 @ 125.5 > SET
640 x 480 @ 124.9 >
1280 x 1024 @ 75.0 ]
1280 x 1024 @ 60.0 ]
1280 x 960 @ 85.0 ] X11
1280 x 960 @ 60.0 ] AUTO
1152 x 864 @ 75.0 ]
1152 x 768 @ 54.8 ]
960 x 720 @ 120.0 ]
...
640 x 400 @ 85.1 ] 256k
576 x 432 @ 150.0 ] 249k PIXEL
640 x 350 @ 85.1 ] 224k COUNT
576 x 384 @ 109.6 ] 221k
...
The user set modes come first followed by X set modes which are ordered
by decreasing number of pixels and refresh.
The reason why every other library or program not using SDL was working
is due to SDL scanning the modes in reverse getting X11 provided modes
modes with the lowest refresh.
The solution is to scan forward for the first user set mode or highest X
mode. The qsort still keeps user set modes above higher refresh modes
added by X.
For the best match we still reverse search for the nearest larger size
and then try to find a higher version of it.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 28 Jun 2003 17:16:52 +0000 |
parents | 26dafefeebb2 |
children |
line wrap: on
line source
================================================================= 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